您好, 访客   登录/注册

基于51单片机智能抢答器的设计

来源:用户上传      作者:

  【摘 要】本文是以单片机为控制核心的16路抢答器,它能根据不同的抢答输入信号通过LED数码管显示,并具有自动锁存优先输入信号和自动复位功能。该电路具有结构简单,功能强大,智能化程度高,故障率低的特点。
  【关键字】AT89C51;动态显示;抢答器
  中图分类号: TP368.1 文献标识码: A 文章编号: 2095-2457(2019)05-0067-002
  抢答器作为一种电子产品,已被人们所熟知并广泛应用于各种智力知识竞赛。通过抢答器的指示灯显示、数码管显示和警示扬声器等手段,能准确、公正、直观地判断出优先抢答者。但是,目前使用的抢答器大多数为分立式元件设计,成本较高,随着科学技术的发展和普及,单片机也不断走向社会的各个角落,本文则采用单片机技术设计出全集成电路的多路抢答器。
  1 整体方案设计
  本智能抢答器以AT89C51单片机为控制核心,由复位电路、时钟电路、主持人按键电路、选手抢答按键电路、LED显示电路、报警电路等组成。抢答器可同时供16名选手或16个代表队比赛,分别用16个按键K1~K16进行抢答。当主持人启动“开始抢答键”,定时器进行减计时,当倒计时为0时禁止抢答。在抢答时间最后5S倒计时时,系统每1S报警一次。参赛选手在设定时间内抢答有效,则显示选手的编号同时进入回答问题的倒计时。在回答问题倒计时期间选手如回答正确,主持人通过“加分键”给选手加分。如果当主持人未启动“开始抢答键”时但有选手抢答,主持人则通过“减分键”给选手扣分。此外该电路还具有锁存和显示功能。即某位选手按下按键,锁存相应选手的参赛号码,并在LED数码管上显示,同时扬声器发出警鸣声提示。其他按键者将不能响应。在抢答倒计时期间,如果主持人想终止倒计时,可以按下“搶答停止键”,系统会进入准备状态,进入回答问题的倒计时。
  2 系统硬件电路设计
  系统的硬件电路由AT89C51单片机、8同相3态缓冲器/线驱动器74HC244、共阳极LED数码管、74HC14反相器、按键、扬声器等组成。单片机的P1口为16组抢答按键的输入口,P0口为数码管的段选口,P2口为数码管的位选口。P3口为主持人按键设置和连接扬声器。
  2.1 芯片的选择
  抢答器电路的核心是MCS-51系列AT89C51单片机,AT89C51是美国ATMEL公司生产的低电压、高性能CMOS?8位单片机,与MCS-51产品指令系统完全兼容,具有128×8字节内部RAM、32个可编程I/O口线?、2个16位定时/计数器和6个中断源,还具有低功耗空闲和掉电模式。AT89C51单片机功能强大,可灵活应用于各种控制领域。
  2.2 复位电路
  复位电路采用的是按键电平复位方式,复位按钮按下,产生高电平的复位信号送入9脚。电解电容充电放电使得复位高电平信号持续2个机器周期以上。当放起按键时,9脚缓慢达到低电平则退出复位。程序从头开始执行。
  2.3 时钟电路
  本设计中采用内部时钟方式。其输入端为XTAL1、XTAL2,通过这两个引脚外并接石英晶体振荡器和两个电容(内部时钟方式),石英晶体和电容构成振荡回路,产生时钟送至单片机内部各元件。
  2.4 主持人按键电路
  该智能抢答器共设置主持人按键有四个,其中S1和S2分别“抢答开始键”和“抢答停止键”,其对应的I/O口为P3.0和P3.1;S3和S4分别为“回答正确加分键”和“犯规减分键”,其对应的I/O口为P3.2和P3.3。
  该电路采用独立式键盘,独立式键盘是指各按键分别接通一条输入I\O口,例如当主持人要按下“抢答开始键”S1时,如果按键没有按下时,CPU对应的口P3.0由于有上拉电阻,其输入为高电平“1”;当按键按下后,对应的P3.0口变为低电平“0”,这样P3.0口就从高电平变为低电平。所以只要在程序中判断I\O口的状态即可知道哪个按键处于闭合状态。
  2.5 抢答键电路
  因该智能抢答器需要16个按键,而P1口只有8个I\O,所以该电路选择行列式按键,按键设置在行列式的交点上。行线接P1.0~P1.3,列行线P1.4~P1.7。
  将全部行线(P1.0、P1.1、P1.2和P1.3)置低电平“0”,全部列线置高电平“1”然后检测列线的状态。只有有一列的电平为低,则表示键盘中有键被按下。若检测到所以的列线均为高电平,则键盘中无键按下。当判别到有键被按下后,调用延时子程序去抖动,然后再次进行判别。当有键被按下时,转入逐行扫描来识别键号。如当按键K1按下,扫描第一行(P1.0口),即第输出低电平“0”(即P1.0=0),然后读列值,即P1.4、P1.5、P1.6和P1.7口的值,哪一列出现低电平“0”,则说明该列与第一行交叉的键被按下,当单片机扫描到P1.4引脚为低电平“0”,就可以判别是K1键被按下。
  2.6 显示电路
  本电路中采用六位共阳LED数码管,该电路为动态显示方式,动态显示器可以节省I\O口的资源,有利于降低成本。段控采用P0口,电路中P0口通过74HC244连接数码管段选信号口,74HC244是8同相3态缓冲器\线驱动器,是一款高速的CMOS器件,其引脚兼容低功耗的TTL系列;位控采用P2口,电路中P2.0~P2.5通过74HC14连接数码管的位选信号口,74HC14是一款兼容TTL器件引脚的高速CMOS器件,逻辑功能为6路斯密特触发器,其耗电量低、速度快,可将缓慢变化的输入信号转换成清晰、无抖动的输出信号。数码管左边两位(P2.0口、P2.1口)用来显示抢答选手的编号,中间两位(P2.2口、P2.3口)显示倒计时时间,最右边两位(P2.4口、P2.5口)显示参赛选手分数。
  2.7 报警电路   报警电路在该智能抢答器电路中的作用是引起人们的注意。例如当主持人没有按下“开始抢答键”时,有选手按的下“抢答键”,报警电路发生报警,提示主持人有参赛选手发生抢答;且每道题的抢答时间和回答时间的倒计时最后5秒时,每隔1秒报警一次,用以提示参赛选手倒计时时间即将耗尽。
  报警电路选用P3.6口和P3.7口。P3.7口先连接电阻再连接一个PNP型三极管的基极,三极管的集电极接地,发射极接扬声器的另一端。单片机的P3.7口负责发声电路,当P3.7口为低电平时候,即三极管的基极为低电平,三极管导通,扬声器工作,从而完成发声电路。P3.6口通过发光二极管接扬声器一端,扬声器和发光二极管之间接+5v电源。当P3.6口为低电平时,发光二极管导通,则二极管亮。
  3 系统程序设计
  3.1 主程序
  在主程序中首先要对控制系统进行初始化,然后进行对“开始抢答键”按键的扫描,判断主持人是否按下“开始抢答键”按键,如果按键按下,则触发定时器中断T0,每隔0.5ms对抢答按键进行扫描,若有抢答选手按下按键,则执行倒计时子程序和显示程序,并调用正常抢答子程序,显示剩余答题时间,并显示鎖存抢答选手号码,并且伴随提示音。此外同时要封锁电路,禁止其他选手抢答。若无选手抢答,则当倒计时剩余5s时,触发报警程序,即定时器中断1,每隔1s鸣叫一次。如果主持人未将“开始抢答键”按键按下,若有选手抢答时,则进行非法抢答查询子程序,确定非法抢答选手号码,同时调用非法抢答子程序,最后返回;若无选手抢答则返回。
  3.2 初始化程序
  控制系统开始正常工作时要进行初始化,该智能抢答器的初始化主要是两个定时器和两个外部中断初始化。两个定时中断分别是对抢答按键0.5ms的扫描和1s定时中断。定时器中断T0采用工作方式1定时0.5ms的编程,使其产生05ms的中断。CPU响应中断,执行中断程序,使键盘每隔0.5ms扫描一次,这样实现了对键盘的定时扫描。定时器中断T1采用工作方式2定时0.2ms,运行5000次定时1s。两个外部中断分别是接“抢答开始键”和“抢答停止键”。
  3.3 倒计时子程序
  该智能抢答器的“抢答时间倒计时”设置为15s, “回答时间倒计时”设置为30s。用定时器中断T1定时1s,如果1s定时时间到,倒计时自动减1,并在数码管显示,再判断到倒计时是否结束到0,没有到继续1s倒计时减1,直到倒计时计为止,然后退出。
  3.4 正常抢答子程序
  在主持人按下“开始抢答键”后,系统自动进行15s倒计时,数码管中间两位则显示倒计时时间,如果有选手在倒计时过程中抢答成功,数码管高两位显示抢答选手的编号,并且数码管的低两位则显示该选手的目前的得分。抢答成功后,主持人按下“抢答停止键”,数码管高两位自动进行回答时间30s倒计时的显示,如果回答正确,主持人则按下“加分键”,数码管低两位则显示抢答选手的最后的得分;如回答错误,不能加分。
  3.5 非法抢答子程序
  在主持人尚未按下“开始抢答键”时,六位数码管则显示“000000”。如果发生抢答,数码管高两位显示抢答选手的编号,低两位显示抢答选手的得分情况,中间两位显示“FF”,并不断处于闪烁状态,表明有犯规现象,这时主持人按下“减分键”,该犯规选手则被扣分,数码管的低两位显示犯规选手剩余分数。
  4 结束语
  基于51单片机的智能抢答器具有结构简单,功能强大,智能化程度高,故障率低的特点。经过系统调试运行,可广泛应用于各种知识竞赛抢答场合。
  【参考文献】
  [1]李海滨,片春媛,许瑞雪《单片机技术课程设计与项目实例》,中国电力出版社,2009.08.
  [2]王会良,王东锋,董冠强《单片机的C语言应用100例》,电子工业出版社,2017.04.
转载注明来源:https://www.xzbu.com/8/view-14725253.htm