智能投票器的设计与实现

2016-06-30 19:44曹阐方
电脑知识与技术 2016年14期
关键词:票数蜂鸣器按键

曹阐方

摘要:在电子设计与制造技术的发展中,核心就是电子设计自动化(EDA,Electronic Design Automation)技术。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。本次设计实验就是基于EDA技术和EP1C6Q240C8芯片(FPGA),及其外围电路,实现了五人多数表决器的设计。设计模块主要包括:控制单元、计数单元、显示单元、报警单元。实现用人数多于或等于3来判决是否通过,从而达到设计要求。

关键词:52单片机;C语言;硬件电路

中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2016)14-0145-02

Design and Analysis of Five Person Voting Machine Based on Microcomputer

CAO Chan-fang

(School of Information Engineering, Yulin University, Yulin 719000,China)

Abstract:In the development of the Electronic Design and manufacturing technology, the core is the Electronic Design Automation (EDA, Electronic Design Automation) technique. The emergence of EDA technology, greatly improve the efficiency of the circuit design and operability, reduce the labor intensity of the designer. This experiment is designed based on EDA technology and EP1C6Q240C8 chip (FPGA), and its peripheral circuit, realized the design of the five most voter. Design module mainly includes: the counting unit, control unit, display unit, alarm unit. Implementation with number is more than or equal to 3 to judgment whether through, so as to achieve the design requirements.

Key words: 52 single-chip microcomputer; C language; hardware circuit

五人表决器是广泛应用于各类比赛的一种常用设备,在技术上同时也是一种非常成熟的电子产品。在早期投票往往采用收集纸片,然后进行统计的方式。然而这种方式会导致大量的资源浪费、不可重复使用、易伪造且统计的时候易出现误差等情况发生。

针对上述问题,本文利用52单片机设计了一个智能五人表决器。此表决器具有功能稳定,易更行替换,可重复多次使用(在节点没损坏的情况下),统计票数不会出错,也不能多次投票体现了比赛的公平性,同时该表决器也具有体积轻、便易于携带等优点,具有一定的市场价值。

1 表决器系统整体设计图

2 表决器系统功能设计

本系统在考虑了表决器的性能稳定,易于更新换代的前提下,设计了能够统计并且自动显示票数,且在票数大于一半的情况下,蜂鸣器响提醒该次结果通过。

1)统计票数显示功能:在评委或观众按下键之后,单片机就可以统计出本次比赛或选举的结果,并且在LED灯上显示出所投票数。

2)开始投票信号功能:以流水灯开始流水,在主持人按下开始投票键后,以流水灯停止为信号,则观众或评委方可进行投票。

3)违规投票处理功能:在主持人没有允许开始投票的时候,若有人抢投则不计入票数,LED灯也不显示。

4)通过提示功能:在票数大余3人的情况下,则表示本轮通过,蜂鸣器响一声提示代表本次即可通过。

3 表决器系统硬件设计

1)电源电路设计:根据芯片工作电压需要主要有供电电压5V,LED显示屏12V,均由开关电源一次实现[3]。

2)主控电路:STC89C52单片机是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。

工作频率范围:0~40MHz,相当于普通8051 的0~80MHz,实际工作 频率可达48MHz[5]。

电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V 单片机)

工作温度范围:-40~+85℃(工业级)/0~75℃(商业级)

3)主持人节点设计:显示电路采用两位LED数码管显示,提示电路采用蜂鸣器完成,按键采用键盘检测实现。

4)评委节点设计:按键同样采用键盘检测来实现。

4 软件流程图设计

1) 本程序在Keil软件环境下编写编译,在STC_ISP_V483软件下进行烧写。具体流程图如下:

2) 键盘检测原理

按键按下时,与此键相连的行线与列线导通,行线在无键按下时处在高电平,显然,如果让所有的列线也处在高电平,那么,按键按下与否不会引起行线电平的变化,因此,必须使所有列线处在低电平,只有这样,当有键按下时,该键所在的行电平才会由高电平变为低电平。CPU根据行平电的变化,便能判定相应的行有键按下[2]。

示例代码[2]:

void matrixkeyscan() //键盘检程序

{

uchar temp,key;

P3=0xfe;

temp=P3;

temp=temp&0xf0;

if(temp!=0xf0) //有键被按下

{

delayms(10); //消抖

temp=P3;

temp=temp&0xf0;

if(temp!=0xf0) //再次判断

{

temp=P3;

3)消抖原理

消除抖动分为硬件消抖和软件消抖,一般的情况下采用软件消抖。在第一次检测到有按键按下时,执行延时程序,延时10ms,再次确定该键是否仍保持闭合状态,如果保持闭合状态确定的确有键按下,从而消除了抖动[1]。

5 系统调试

本系统在经过多次在不同情况下的测试后,效果均较为理想,测试数据如下。

在主持人没有按下开始键时,评委按下视为无效票(即流水灯不停止,显示器不显示),在主持人按下开始键后,流水灯停止流水,评委可开始投票。在票数超过三票后,显示票数蜂鸣器响,视作本次选手成功。若没有超过三票则蜂鸣器不响只显示票数。下一轮,主持人按键,则全部清零即可开始再一轮的投票。

6 结语

本文利用51单片机和硬件电路实现了五人表决器,经实物测试后,效果良好,反应迅速且未出错,为日后节点扩展的需要奠定了基础。同时为多种比赛场合上的灵活应用提供了可能。

参考文献:

[1] 谭浩强. C程序设计[M].4版.清华大学出版社,2010:114.

[2] 郭天祥. 新概念51单片机C语言教程——入门.提高.开发.拓展全攻略(附光盘[M]. 电子工业出版社, 2009,56:79.

[3] 江晓安,董秀峰.模拟电子技术[M]. 西安电子科技大学出版社, 2011,33:86

[4] 江晓安,董秀峰,杨颂华. 数字电子技术[M]. 西安电子科技大学出版社, 2011,20:45

[5] 王新颖.单片机原理及应用[M].北京大学出版社,2008,37:56.

猜你喜欢
票数蜂鸣器按键
电动自行车产品车速提示音检测现状和整改技术研究(2)
基于有限状态机的按键检测程序设计
掌控板制作简易钢琴
单片机驱动蜂鸣器的程序设计
2017年度河南省武术“十大杰出贡献人物”评选前50名榜单
一种多方向导光按键结构设计
丰田凯美瑞240V车间隙警告蜂鸣器异常鸣响
按键的多种状态检测及消抖处理方法
解析某型号手机按键检测程序的缺陷
专家和读者评荐 本刊编委会评定 1989年《军事历史》优秀论文(按评荐票数多少的顺序排列)