全国人大副委员长成思危说“使用电子投票器后,投反对票的人数增加了”。受这话的启发,结合单片机的特点,我们设计和制作了这款现场投票统计器。单片机具有高的性价比,且尽可能把应用所需要的存储器,各种功能的I/O口都集成在一块芯片内。具有极丰富的转移指令I/O口的逻辑操作以及位处理功能,以及他的可靠性和抗干扰能力的特点。因为人们在明确的事件目标(或已知事件的结果)后,遵循一定的逻辑推理规则,解剖实现事件结果的过程、步骤、架构。从一定的专业知识、理论基础切入,搜索实现事件的基本要素、基本组件、基本组件相互连接的架构模型,以及凝固在每个架构节点上基本要素的理论知识、组成架构基本组件的核心技术,架构各层次之间的因果关系。然后再运用现代化的工具、吸收新的元素,引入新的架构模型(理念),新的组件,重构事件以达到预期的目标。科学技术改变人们的工作、生活、学习的方式,也促进社会的民主化的进程。
1设计目的和要求
设计目的训练学生综合运用单片机的主要性能,完成一个实用电路的设计和制作。设计的要求是每个现场投票的人都有3个按键,同意、不同意和弃权。当每个人按下符合自己意愿的投票键后,单片机作键盘扫描,并分别统计3种投票的人数,然后用动态显示方 式输出3种投票结果,每人仅能有一种投票选择,再选则无效也不被统计。
2硬件电路设计
如图1所示。单片机选用89C52,P0的8个端口和P2的8个端口组成8×8=64个键盘输入,其中3×21=63个作为投票键,每人有3个键为一个投票组,电路选用按键复位方式。P1的8个端口输出统计结果,信号经过8个反相器后,驱动6个7段码显示21人的投票结果数字。P3的6个端口经反相器后,作为选通6个数码管的控制信号输出端口。
3软件设计说明
单片机最大的特点就是通过软件实现端口硬件资为2个部分,一个为主程序流程图(如图2),另一个为子程序流程图(如图3)。
流程图(如图3)。
主程序的功能:
(1)初始化堆栈、位、计数器的初值以及中断和表地址,即确定选用寄存器的空间位置、赋初值及设置堆栈,寄存器用于存放扫描键盘读数值(存于21H~
27H单元中,初值设定为“1”),每个人由3个键组成一组投票结果,每组是否投票的标志位(存放于28H~2FH单元中,没有投票的标志值为“0”),存放统计结果的初值。显示缓冲区(确定在30H~32H)的初始化,确定输出统计的结果的存放位置(存放于33H~35H初值清零),确定输出统计结果显示区的首址(30H)、定时器的设定以及确定每人3个投票键的位置。
(2)每扫描一次键盘即读取结果,确定每按键组中是否有人投票。如有人按投票键中的任一个,则锁住已投票的键盘组(将标志位置“1”)。每扫描一次键盘后就转入子程序,统计每种情况的投票人数,然后进入中断子程序,刷新一次6个7段码所显示的统计结果。最后判断是否所有的人已投票结束(检查标志位的值是否全都是“1”,如果所有的人都投票完后,停止键盘的扫描。如需要进行下一个投票时,可以按键复位,可以采取来电复位的方式。64个键盘中用63个作投票,还有一个剩余的键盘也可以用软件的方式来复位。
子程序的功能:
(1)统计3种情形的投票人数(分别在相应存放统计结果的单元33H~35H中进行累加)。
(2)中断方式的子程序,用于刷新显示缓冲区的数值。由于每种情形的最大投票人数不超过2位数,所以数码显示每种情统计结果,由个位数字和十位数字分别逐个输出。
4结语
用一块单片机设计的电路,只能实现21人的投票,如果要扩展可以用主从式的多机通信网的结构(如图4),将以上的设计作为一个基本单元,进行模块式的扩展,主机负责统计每个从机发送来的投票人数并承担显示功能,而每个单元从机的输入投票键为16×8=128,每个人使用3个键,则每块单片机可以实现42人的投票。
如果投票的人数多,输出可以经过译码器后再驱动显示器。
从理论上讲,主从式多机通信允许有255台从机,那么按这种方式扩展,投票人数的最大扩展到10 710人,但实际上是不可能达到这样的人数,因为用动态的扫描方式显示,显示的数字多时出现闪烁。电路也可以有另一种改进,增加抢答和计分功能,这样电路可用在球场比赛作计分和计时器,也可以用于娱乐场所、观众对参加比赛者的支持人数的统计和计分、答题的定时显示器。
参考文献
[1]鬲淑芳.数字电子技术基础[M].西安:陕西师范大学出版社,1995.
[2]曹巧媛.单片机原理及应用[M].第2版.北京:电子工业出版社,2002.