在电视节目中,常常看到抢答器涌如今知识竞赛、答题竞赛节目中,如江苏卫视的《一站到底》,抢答器可以准确、公道、直不雅观、公正的显示出抢答选手的编号,可以更好的促进各选手之间的竞争意识,营造紧张的抢答气氛,增加节目的意见意义性和不雅观赏性。
抢答器的设计框图抢答器要实现如下功能:抢答功能、显示功能、倒计时功能、自锁功能。节目后台须要控场,拥有抢答器的绝对掌握权。功能需求 如下:

在该设计中,按键采取机器式的四腿按键来实现,按键数量10个;显示采取三位数码管来实现,两位显示韶光,一位显示选手编号;声音提示用蜂鸣器来实现。核心器件采取51单片机来实现。其功能框图如下图所示。
1-抢答器功能框图
按键输入电路设计该抢答器设计中统共有10个按键,个中8个按键用于给用户抢答用,所代表的编号为1-8,其余两个按键分别为开始键和结束键,由主持人或者后台掌握。由于8路输入抢答按键具有互锁功能,以是只要有一个有效输入后,其他抢答都是无效的,这个功能可以在程序中实现,为了方便程序设计,这里采取8输入与非门来实现,所用型号为74LS30,该与非门有8路输入,1个输出,功能框图如下所示。
2-74LS30与非门框图
8个按键作为74LS30的输入,输出通过NPN三极管接入51单片机的外部中断0接口,以中断的办法实现按键功能的检测,单片机的中断资源为低电平有效,为了提高电路稳定性在三极管的集电极上加入上拉电阻,以防误动作。
3-按键输入电路设计
开始和结束两个按键采取独立式按键设计,占用掉单片机的两个IO口,程序中采取轮询来实现。
数码管显示电路设计显示部分采取数码管来实现,根据设计哀求,两位用于显示倒计时时间,最大可以显示99;一位用于显示选手编号,故须要3颗数码管,该设计中采取共阳数码管来实现,所谓共阳数码管是指公共端接高电平,段选管脚接低电平后相应的字段才会被点亮。共阴数码管恰好相反,公共端接低电平,段选管脚接高电平后相应的字段才会被点亮。数码管的实物图如下所示。
4-数码管实物图
数码管的引脚比较多,除了8个段选管脚外,还有公共端/位选引脚,如果用三颗独立的数码管可能须要较多单片机引脚资源,为理解决这个问题,本例设计采取74HC595作为数码管驱动。74HC595是串入并出的移位寄存器,只须要三个引脚就可以掌握8个引脚的输出,而且还可以实现级联。以是74HC595常日在数码管驱动和点阵屏中运用比较多。
这三颗数码管中,分为韶光显示和编号显示两组,用到三颗74HC595,个中两颗级联用于掌握韶光显示的数码管,统共用到6个单片机的IO口,驱动电路如下图所示。
5-数码管驱动电路
蜂鸣器发声电路设计需求中提到发声设计,当有效按键事宜发生时,蜂鸣器发声作为提示音,当倒计时进入5秒之内后还没有人按键抢答时,蜂鸣器每隔1秒发声,制造现场紧张的气氛,提高节目的不雅观赏性和娱乐性,增强节目效果。本例中选择了蜂鸣器,蜂鸣器驱动电路如下图所示。
6-蜂鸣器驱动电路
由于单片机的IO口驱动能力有限,以是采取三极管来驱动,这里选用了PNP三极管。三极管驱动蜂鸣器时事情于饱和状态,为了让三极管充分饱和,将蜂鸣器接在了三极管的集电极,这个地方初学者在设计电路时要把稳。图中当单片机的IO口输出低电平时蜂鸣器事情发声。
抢答器程序设计该设计利用keil5作为编程环境,涉及到数码管显示、按键检测/互锁、蜂鸣器发声、定时器等干系功能模块的程序编写。程序设计的流程图如下所示。
7-程序设计流程图
程序的功能逻辑先容如下,上电后数码管显示FFF字样,并首先检测“开始”按键是否按下,如果没有按下开始按键则表示抢答未开始。如果按下了开始按键,抢答器启动,秒显示开始倒计时,有人按下抢答键时蜂鸣器发声、倒计时停滞并显示抢答者编号,全体抢答事宜结束,直到主持人/后台按下结束按键后再显示FFF。如果倒计时进入5秒内,仍未有人抢答,则每个整秒蜂鸣器响一次,直至结束。
以上为程序逻辑设计和程序的流程图讲解,下面先容各功能模块的程序设计。
首先先容数码管的程序编写,再编写程序时,都会预先定义好数码管的字段表,根据共阳数码管和共阴数码管的不同,其字段表也是不一样的,但是两者是互补的,数码管可显示的字段表如下图所示。
8-数码管字段表
程序代码如下:
/共阳数码管的0-9数字字码表/
uchar code seg_code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x8e,0xff};
其次是按键部分,抢答按键采取中断来实现,开始/结束按键采取轮询实现,部分定义代码如下所示。
//定义抢答按键
sbit KEY_1=P0^0; //1
sbit KEY_2=P0^1; //2
sbit KEY_3=P0^2; //3
sbit KEY_4=P0^3; //4
sbit KEY_5=P0^4; //5
sbit KEY_6=P0^5; //6
sbit KEY_7=P0^6; //6
sbit KEY_8=P0^7; //6
//定义开始/结束按键
sbit START = P2^4;
sbit STOP = P2^5;
仿真电路的设计和验证在做板子之前,先用Proteus仿真软件做了仿真。Proteus仿真支持51单片机并可以实现运行程序的功能,当把程序写好后加载至Proteus即可实现程序的调试,Proteus还可以与Keil软件实现联调功能。所设计的仿真电路如下图所示。
9-仿真电路-初始显示FFF字样
在上电初期,显示“FFF”字样,前两个数码管代表倒计时时间,后一个数码管代表抢答者的编号。按下开始按键后,抢答器开始事情,如下图所示。
10-抢答成功界面
上图表示,在倒计时时间还有7秒的时候,5号选手完成了有效抢答,直至主持人/后台按下结束后再显示FFF,否则一贯显示该界面。
抢答器的焊接调试为了实现功能验证,选择用万用板手工焊接实现这个设计。终极的实物图如下所示:
11-终极实物图正面
电源供电为DC5V,可以利用电池盒供电,也可以选择5V输出的手机充电器供电,导线走在了电路板正面,虽然丑了点,但是方便一点。电路板的反面如下图所示。
12-终极实物图背面
反面是用焊锡连接实现的。由于功能不是很繁芜,程序写完后,调试了没几次就完成了功能,前文中所描述的功能都实现了。按键互锁的功能也实现了。下图是通电运行的界面,表示5号抢答者在倒计时28秒的时候抢答成功,这时候其他抢答者的按键无效。只有开始或者结束按键是其浸染的。
13-抢答成功界面
该抢答器的设计虽然是一个很大略的练手项目,但是却涉及到了单片机中最常用的外设电路,可以帮助初学者熟习数码管、按键、蜂鸣器的利用和掌握方法。初学者可以借助这个产品熟习单片机开拓过程中所用的各种软件和产品开拓的流程。
对这个电路进行PCB Layout,设计个外壳就成了一个不错的产品。还可以增加蓝牙模块或者WiFi模块,实现电子屏的掌握和显示,再把功能完善一下,就可以用在舞台上了。








