您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于单片机的班级投票器
1基于单片机的班级投票器【摘要】班级投票器是针对班级而设计的现场投票计数器系统,该系统可用于班级人数小于99人,职位候选人不超过10人的投票选举。投票器是由键盘接口专用芯片74C922来完成按键编码,再通过单片机采集信息,进行票数的累计,最后有四联数码管来显示选举结果。投票期间用一个按键来控制投票有效性,并通过发光二极管来完成指示工作。选举投票期间可暂停投票,查看投票结果,后可继续投票,直至达到预设的最大班级人数关闭投票系统。引言……………………………………………………………………………………31系统总体设计………………………………………………………………………41.1设计要求…………………………………………………………………………………..........41.2系统组成方框图……………………………………………………………………………......41.3方案设计……………………………………………………………………………………......42系统硬件设计………………………………………………………………………42.1相关芯片介绍………………………………………………………………………………......42.1.1AT89C51芯片介绍…………………………………………………………………………...42.1.274C922芯片介绍……………………………………………………………………….........52.1.374LS04芯片介绍……………………………………………………………………….........62.2各单元电路设计与分析……………………………………………………………………......72.2.2由74C922够成的键盘电路………………………………………………………………....72.2.2复位电路…………………………………………………………………………………......82.2.3时钟电路…………………………………………………………………………………......82.2.4显示模块……………………………………………………………………………………..92.2.5控制投票有效部分…………………………………………………………………………102.3总原理图和元器件清单……………………………………………………………………….112.3.1总原理图…………………………………………………………………………………….112.3.2元件清单…………………………………………………………………………………….113系统软件设计………………………………………………………………………123.1主程序设计……………………………………………………………………………………123.2中断程序设计…………………………………………………………………………………133.3定时程序设计…………………………………………………………………………………144调试…………………………………………………………………………………165总结…………………………………………………………………………………166致谢语………………………………………………………………………………17参考文献………………………………………………………………………………17附录一PCB图………………………………………………………………………19附录二源程序………………………………………………………………………192引言在大学生活中,时常发生选举投票事件。目前班级职位选举采用纸条的方式进行投票。具体过程如下:首先,在黑板上列出要选举的职位及职位候选人的名字;接着班级成员在纸条上写上候选人的名字,折叠好放在指定的位置(如讲台桌上);再来全部投票完毕后,进行唱票,判断票的有效性(写上多于一个候选人的名字,或不写都视为废票),同时并统计票数。最后,票数统计完成后先判断本次选举是否有效(若发生选票多于选民数,视为无效)。确定本次选举有效后,宣布最高得票者为该职位的的当选者。这样的选举的缺点是比较费时,效率不高,同时也由于可能发生的选举无效问题,造成时间的延长,同时降低班级成员的积极性等。其优点就是选举十分的直观,可以在唱票时期直接观察到每个候选人的得票情况,并较直接判断出当选人。针对纸条选举费时,效率不高的问题,采用设计投票器来改善这一情况。本设计是基于单片机设计的适用于班级选举的投票器,由键盘专用芯片74C922完成投票,再经由单片机采集信息,统计票数。最后由四联数码管显示投票结果。并且利用发光二极管和一个按键来控制投票的有效性。选举投票期间可暂停投票,查看当前投票结果,后可继续投票,直至达到预设的最大班级人数就会自动关闭投票系统。本次设计的班级投票器可以有效地控制投票及选举的有效性,就节省了去判断选票及选举的有效性及选举无效延长的时间。同时投票器本身有统计票数的功能,就又节省了统计票数的时间。整体上提高了班级选举的效率,同时也使得选举更加地民主,公平。31、系统总体设计1.1设计要求假定班级成员45人,职位候选人10人(不超过10人)。选民(班级成员)分别编号为01,02,……44,45;候选人分别编号为01,02,……,09,10(由10个按键构成)。(1)一上电不允许投票,按下允许投票键,利用10个按键进行投票,有效投票后显示选民编号和所选候选人的编号。将投票结果储存起来并且再按其他按键无效。(2)按下允许投票键进行下一个选民的投票。(3)投票期间,可暂停投票来查看票数统计结果,后按下允许投票键又可继续投票。(4)全部成员投票完成后,最后显示候选人的编号及其得票数。(5)按下复位键,进行新一轮的职位选举。1.2系统组成方框图图1-2系统模块组成方框图1.3方案设计设计时班级成员不超过99,职位候选人10人。由键盘接口专用芯片74C922及12个按键(10个按键用于投票工作,2个按键用于查看投票结果)构成的电路来完成键盘扫描,编码,再通过AT89C51芯片来采集信息,进行票数的统计。由四联数码管完成显示工作,投票期间显示选民编号和所选候选人的编号,查看结果时显示候选人的编号及其得票数。设置一按键来控制有效投票,并让发光二极管配合指示。选举投票期间可暂停投票,查看投票结果,后可继续投票,直至达到预设的最大班级人数关闭投单片机(AT89C51)时钟电路复位电路由74C922构成的键盘投票允许投票键开启选民投票LED灯灭提示选民可以进行投票;当LED灯亮,无法进行投票。数码管显示4票系统。2、系统硬件设计2.1相关芯片介绍2.1.1AT89C51芯片简介AT89C51是一种低电压,高性能CMOS8位单片机,采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和FLASH存储单元,功能强大AT89C51单片机可为您提供许多高性能比的应用场合,可灵活应用在各种控制领域。[1]它具有以下特点:4K字节FLASH闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量级中断接口,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到出现下一个硬件复位。图2-1-1AT89C51引脚图2.1.274C922芯片简介74C922芯片有16键IC和20键IC,本设计采用的是16键的IC。图2-1-2(1)所示为4×4(16键)扫描式编码键盘原理图。这种键盘的按键排成矩阵形式,以减少按键联线。如图中有16个键,排列成4行4列,仅需8根引线。时钟发生器的输出送给4位计数器进行计数,计数器的低2位经译码后作为行扫描,高2位经译码后作为列扫描。若没有检出有键闭合,则计数器周而复始反复计数,即反复进行扫描,一旦检出有键闭合,就发出一个脉冲使时钟振荡器停振,计数器随即停止计数。单片机通过读取计数器的计数值来获取闭合键所在的行列位置,然后从真值表得到按键读数。如果有两个键同时按下,则扫描到第一个闭合键时就停止扫描,把该键当作有效按键进行处理。[2]4位计数器时钟发生器2—4译码器4×42︳4译32105图2-1-2(1)扫描式编码键盘74C922芯片(16键IC)的引脚排列如图2-1-2(2)所示:图2-1-2(2)74C922引脚图X1~X4:列线。Y1~Y4:行线。OSC:接振荡电容0.1μF,以便扫描矩阵键盘KM:键盘消除抖动电路,并发出两种信号。(1)内部计数器停止计数。(2)若有键按下,使DA脚由未按键时的低电平变为高电平,若按键未放开则一直保持高电平,当按键放开时,才转为低电平。此引脚外接一个电容是OSC所接电容的10倍。DA:数据有效信号。若无键按下,保持低电平。若有键按下,变为高电平,直到键放开,才转为低电平。/OE:输出使能。D~A:按键值输出,按BCD码输出,具体输出情况如表2-1-2所示。表2-1-2真值表数据输出0Y1,X11Y1,X22Y1,X33Y1,X44Y2,X15Y2,X26Y2,X37Y2,X48Y3,X19Y3,X210Y3,X311Y3,X412Y4,X113Y4,X214Y4,X315Y4,X4A0101010101010101B0011001100110011C0000111100001111D00000000111111112.1.374LS04芯片简介74ls04是一六反向器,其功能表如表2-1-3,其引脚分布如图2-1-3。表2-1-3功能表6Y=A输入输出AYLHHLH为高电平L为低电平图2-1-374LS04引脚图2.2各单元电路设计与分析2.2.1由74C922够成的键盘电路图2-2-174C922构成的键盘电路7在键盘部分采用74C922来完成工作。键盘电路图如图2-2-1所示。74922芯片是专用编码键盘接口芯片,当按下某一按键时,该芯片能自动给出相应的编码信息,并可自动消除抖动,从而可免除关于削抖的软件编程,提高了CPU的利用率。[2]因为按键扫描要对按键进行削抖处理,而削抖分为软件削抖和硬件削抖,一般情况下多采用软件削抖。74C922为CMOS工艺技术制造,工作电压为3—15V,“二键锁定”功能,编码输出为三态输出,可直接与微处理器数据线相连,内部振荡器完成4×4矩形键盘扫描,当有按键按下时,DA变高,通过非门接到AT89C51的外部中断0,并且设外部中断0为边沿触发方式,当DA变高时,经过非门变为低电平跳变产生外部中断,通知AT89C51从数据总线读键值,判断键值从而完成相应的散转程序功能。[3]根据图2-2-1及74C922芯片真值表2-1-2,按键S1—S10对应DCBA输出(0000—1001),上下翻查键S11,S12对应输出是(1010)和(1011)。同时ABCD输出连接到AT89C51的P2口的P2.0—P2.3。2.2.2复位电路图2-2-2复位电路单片机的复位都是靠外部电路来实现的。在时钟电路工作后,只要在单片机的复位(RST)脚上出现24个时钟振荡脉冲(也就是2个机器周期)以上的高电平,单片机便实现初始化状态复位。[4]传统的复位方法有阻容上电复位和按键电平复位如图2-2-2。本设计采用按键手动复位电路。它们实际上利用RC充放电原理实现的复位电路,从外部给RST脚2个机器周期以上的高电平。在实际应用系统中,为了保证复位电路可靠地工作,常常将RC电路接斯密特电路后再接入单片机的复位端和外围电路复位端。这样就特别适用于应用现场干扰大、电压波动大的工作环境,并且当系统有多个复位端时,也能够保证可靠的同步复位。当AT89C51的RST引脚到高电平时,单片机就会复位。按下按纽S13,将高电平接到RST端,从而复位。复位后,单片机就从0000H地址开始执行程序。P0~P3四个并行接口全为高电平,其他寄存器全部清零,只有SBUF寄存器状态不确定
本文标题:基于单片机的班级投票器
链接地址:https://www.777doc.com/doc-4986996 .html