基于AT89S52单片机控制的八路抢答器的设计与仿真
2019-04-26何勉
文/何勉
1 引言
抢答器可以采用数字电路来实现,但电路较为复杂,也可以采用单片机来实现,主要通过软件编写来完成,不但可以简化电路,而且可以降低成本。本文主要介绍一种以AT89S52单片机为核心的简易抢答器,它充分利用单片机控制系统的特点,结构简单、可靠性好、成本较低,实用性强。
2 抢答器工作原理
本系统以AT89S52单片机为核心,使用8个独立按键作为抢答输入信号,驱动一位数码管显示抢答成功者的编号。本系统所具备的功能如下:
2.1 抢答按键
设置8个按键同时供8名(或8组)选手进行抢答。
2.2 开始按键
当主持人按下开始键后,才可以抢答,用1位数码管显示出第一抢答者编号。若主持人还没有按下开始键,有人抢答,则属于犯规,数码管显示犯规者编号并点亮小数点。
2.3 复位按键
按下复位按键后,开始新一轮的抢答。
3 系统设计
3.1 硬件支持
使用的元器件有:核心芯片AT89S52,轻触开关,8输入与门/与非门集成电路CD4068以及一位共阳极数码管显示器。
3.2 软件设计
本系统软件主要包括主程序模块及按键模块。系统程序流程包括主程序流程及外部中断流程,如图1、图2所示。
3.2.1 主程序模块
主程序模块主要用于完成外部中断的初始化、查询开始抢答按键是否按下等。
3.2.2 按键模块
这是本系统的难点。用单片机来设计抢答器,无论使用独立式按键还是行列键盘,都无法对多个按键同时按下作出正确判断。本系统采用中断与查询相结合的方法,把所有的按键都作为外部设备连接到到单片机的P2口,当其中的一个按键被按下,单片机将进入中断服务程序,并将所有按键的状态保存起来,然后查询是哪个按键按下引起的中断,在此期间,CPU不再响应其他任何按键,从而确定谁是第一抢答者。按键中断服务程序如下:
图1:主程序流程图
图2:外部中断程序流程图
图3:八路抢答器仿真原理图
图4:CD4068引脚图
4 系统仿真
采用 Proteus软件进行仿真,仿真图如图3所示。
4.1 抢答按键
按键S1-S8为8个抢答按键,与8个抢答按键连接的是一组8输入与门/与非门集成电路CD4068,其 中2,3,4,5,9,10,11,12脚是输入引脚,1脚为与门输出引脚,13脚为与非门输出引脚,其引脚图如图4所示。
其工作过程为:按键S1 ~S8在没有按下时,输人到与门输人端为高电平,当某个按键被按下时,根据与非门逻辑关系CD4068输出为1,再经过非门CD40106取反输出为低电平0,单片机的INT1 (P3. 3)脚变为低电平,从而引发外部中断1的中断请求,同时,单片机通过对这8个按键状态的查询来确定哪个按键引脚引起的中断,确定第一抢答者。
4.2 功能键
功能键分为“开始”键和“复位”键,当主持人按下“开始”键,选手进人开始抢答状态当答题结束进人下一题抢答时或者当主持人还未按下“开始”键有选手抢答违规时主持人按下“复位”键,本设计中“复位”键采用复位电路中的按键来实现复位,既可以减少电路的复杂性,让初学者更容易掌握。
4.3 数码管显示电路
本设计采用一位共阳极8段数码管显示器,采用静态扫描方式,显示出第一抢答者编号,如果有人犯规,数码管除显示犯规者编号外同时点亮数码管小数点,以示区别。
5 结束
该系统利用AT89S52单片机及外围借口实现抢答系统,将软件和硬件有机地结合起来,实现8人同时参赛,并可清晰显示第一抢答选手编号,并能提示违规状态。今后,还可以扩展其他功能,如利用软件实现倒计时,在抢答赛中进行倒计时提醒,并增加报警电路。