基于单片机的多功能抢答器设计
抢答器是各种智力竞赛中必不可少的一种硬件设备。实现抢答器的方式有多种多样,传统的抢答器普遍采用模拟电路、数字电路或者模数混合电路来设计。这类抢答器所需元器件比较多,随着功能增多,电路也越复杂,并且成本偏高,故障率高,操作不方便,不便于参数调节及功能的升级换代。 设计需求 按照设计需求,本系统具有以下几个主要功能:(1)抢答器可同时供4名选手或四支参赛队伍使用;(2)抢答或回答时间主持人可自行设置;(3)能够显示抢答或答题时间的倒计时;(4)在有人犯规时可以显示选手号、闪烁显示以及蜂鸣器报警;(5)答题时间还剩5s时,蜂鸣器报警提示。 抢答器的工作原理 利用单片机控制各个功能模块实现抢答功能,单片机收集选手的抢答信号,运用寄存器来识别并记录第一个选手号,传输信息给数码管显示,同时内部定时器工作,记录有关时间并产生超时信号,在抢答成功、倒计时结束都伴随有蜂鸣器警报提醒,从而实现单片机抢答的功能。 根据设计需求,结合单片机的工作原理,设计抢答器的工作流程图如图1所示。 图1 抢答器的工作流图 硬件设计 在硬件设计方面利用单片机AT89C51控制抢答模块、显示模块、计时及调整模块、蜂鸣提示模块和复位模块,从而实现单片机的抢答。系统硬件设计原理图如图2所示。 图2中U1为单片机AT89C51,K1~K4分别为4路抢答按钮,分别接到p1.0到p1.3中;开始键和结束键分别接到单片机的10、11脚,由于单片机的10、11脚既有串行接口RXD、TXD功能又有P3.0、P3.1的IO端口功能,此处按键用到单片机10、11脚的IO端口功能。抢答时间调整按键和回答时间调整按键分别接到单片机的13,14管脚,“加一”按键和“减一”按键分别接到单片机的15、16管脚。4位七段数码管段选接P0口,位选接P2口的低3位,蜂鸣器输出信号端接P3.7口。 图2 硬件设计原理图 显示模块 显示模块采用常见的4位七段共阳数码管,利用其动态显示的方法来实现。数码管的7个输入端A~G段分别接到AT89C51的P0.0~P0.6,位选码COM1、COM3、COM4分别接到单片机P2.0、P2.1、P2.2,由单片机来决定当前该显示的是哪一位。由于AT89C51单片机的P0口没有内置上拉电阻,本系统采用外接10kΩ上拉电阻(采用A103排阻),保证P0口没有数据输出的时候是处于高电平状态。 按键输入模块 抢答器的输入信号采用11个按键控制,其中4个为抢答按键、4个为倒计时调整按键、1个开始按键、1个结束按键和1个复位按键。各按键均有一根信号线与单片机电路相连,所有按键有一公共端,各按键相互独立互不影响。当有键按下时,相应的单片机引脚作出反应,产生有效的输入信号。 蜂鸣提示模块 本设计中利用AT89C51的16引脚经驱动器驱动蜂鸣器发声。压电式蜂鸣器约需10mA的驱动电流,可以采用三极管的电流放大作用驱动蜂鸣器实现发声提示。 复位模块 复位模块由复位键、电阻R1以及电解电容C3构成。由于单片机是高电平复位,所以当复位键按下时单片机9脚RESET管脚处于高电平,此时单片机处于复位状态,当上电后,由于电容的缓慢充电,单片机的9脚电压逐步由高向低转化,经过一段时间后,单片机的9脚处于稳定的低电平状态,此时单片机上电复位完毕,系统程序从0000H开始执行。 本设计中使用了硬件复位和软件复位两个功能。硬件复位后各个状态、寄存器以及存储器的值都恢复到了初始值。调整抢答和回答倒计时时间,需要记忆功能,故采用软复位,当程序执行完毕后,跳转指令将程序跳转到程序执行的起始地址。 软件设计 抢答器要求有计时记忆功能,一次时间设置完,复位后不需重新进行时间设定,选手通过键盘按键进行抢答,再通过单片机将其转换成能在七段数码管上显示的字型码。抢答完毕,数码管上显示抢答选手号码表示抢答成功并开始倒计时。 图3 软件设计流程图 根据此设计思路,系统软件设计流程图如图3所示。系统采用Keil软件参照软件流程图编写汇编语言。以显示模块为例,相应程序段如下: DISPLAY:MOV DPTR,#DAT1;查表显示程序,P0.0~P0.6段选,P2.0~P2.2位选; MOV A,R5 MOVC A,@A DPTR MOV P2,#01H MOV P0,A ACALL DELAY MOV DPTR,#DAT2 MOV A,R4 MOVC A,@A DPTR MOV P2,#02H MOV P0,A ACALL DELAY MOV A,R3 MOVC A,@A DPTR MOV P2,#04H MOV P0,A ACALL DELAY RET DAT1:DB 00H, 06H,5bH,4fH,66H,6dH,7dH,07H,7fH,6fH,00H,71H; DAT2:DB 3fH,06H,5bH,4fH,66H,6dH,7dH,07H,7fH,6fH,00H,71H 71H;
|