
基于51单片机的8路抢答器.doc
23页摘 要抢答器作为一种工具,已广泛应用于多种智力和知识竞赛场合但抢答器的使用频率较低,且有的要么制作复杂,要么可靠性低作为一种单位,如果专门购一台抢答器虽然在经济上可以承受,但每年使用的次数很少,往往因长期寄存使(电子器件的)抢答器损坏,再购买的麻烦和及时性就会影响活动的开展,因此设计了本抢答器本设计是以八路抢答为基本理念考虑到依需设定限时回答的功能,运用AT89C51单片机及外围接口实现的抢答系统,运用单片机的定期器/计数器定期和记数的原理,将软、硬件有机地结合起来,使得系统可以对的地进行计时,同步使数码管可以对的地显示时间用开关做键盘输出,扬声器发生提示同步系统可以实现:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;抢答限定期间和回答问题的时间可在1-99s设定;可以显示是哪位选手有效抢答和无效抢答,对的按键后有音乐提示;抢答时间和回答问题时间倒记时显示,满时后系记录时自动复位及主控强制复位;按键锁定,在有效状态下,按键无效非法核心词:51单片机,抢答器,时间设定 目录1 抢答器设计功能分析 11.1 数字抢答器的概述 11.2 设计任务与规定 12 方案设计 23 硬件电路设计 33.1 总体设计 33.2 外部振荡电路 33.3 复位电路的设计 43.4 显示电路的设计 43.5 按钮输入电路的设计 43.6 发声 54 系统软件设计 64.1 程序系统构造图 64.2 程序流程图 64.3 程序代码: 94.3.1 查询程序: 104.3.2 非法抢答解决程序: 104.3.3 倒计时程序(涉及有效抢答程序): 114.3.4 正常抢答解决程序: 134.3.5 犯规抢答程序: 144.3.6 显示程序: 154.3.7 延时(显示和去抖动用到): 164.3.8 TO溢出中断(响铃程序): 174.3.9 T1溢出中断(计时程序): 17总结 18参照文献 191 抢答器设计功能分析1.1 数字抢答器的概述对于抢答器我们人们来说都不陌生,它是用于诸多竞赛场合,真正实现先抢先答,让最先抢到题的选手来回答问题。
抢答器不仅考验选手的反映速度同步也规定选手具有足够的知识面和一定的勇气选手们都站在同一种起跑线上,体现了公平公正的原则1.2 设计任务与规定基本规定:1. 给主持人设立一种开关,用来控制系统的清零(编号显示数码管灭灯)和抢答器的开始2. 抢答器具有数据锁存和显示的功能抢答开始后,若有选手按动抢答器按钮,编号立即锁存,并在LED数码上显示选手的编号,同步扬声器给出音响提示此外,要封锁输入电路,严禁其她选手抢答发挥部分:1. 抢答器具有定期抢答的功能,且一次抢答的时间可以由主持人设定(如30秒)当节目主持人启动“开始”键后,规定定期器立即减计时,并用显示屏显示,同步扬声器发出短暂的声响,声响持续时间0.5秒左右2. 参与选手在设定的时间内抢答,抢答有效,定期器停止工作,显示屏上显示选手的编号和抢答时刻的时间,并保持到主持人将系统清零为止3. 如果定期抢答的时间已到,却没有选手抢答时,本次抢答无效,系统短暂报警,并封锁输入电路,严禁选手超时后抢答,时间显示屏上显示004. 选手如果在主持人按开始键之前违规抢答,系统报警,LED显示违规选手号码和FF,直到主持人按下停止键2 方案设计 该系统采用51系列单片机AT89C51作为控制核心,该系统可以完毕运算控制、信号辨认以及显示功能的实现。
由于用了单片机,使其技术比较成熟,应用起来以便、简朴并且单片机周边的辅助电路也比较少,便于控制和实现整个系统具有极其灵活的可编程性,能以便地对系统进行功能的扩张和更改MCS-51单片机特点如下: <1>可靠性好:单片机按照工业控制规定设计,抵御工业噪声干扰优于一般的CPU,程序指令和数据都可以写在ROM里,许多信号通道都在同一芯片,因此可靠性高,易扩大 <2>单片机有一般电脑所必须的器件,如三态双向总线,串并行的输入及输出引脚,可扩大为多种规模的微电脑系统 <3> 控制功能强:单片机指令除了输入输出指令,逻辑判断指令外尚有更丰富的条件分支跳跃指令抢答按扭优先编码电路锁存器译码电路译码显示主持人控制开关控制电路报警电路秒脉冲产生电路定期电路译码电路显示电路原理框图如下: 图2-1 原理框图3 硬件电路设计3.1 总体设计根据抢答器的基本功能,可以设计出如下的单片机外围电路:图3-1 总体设计如图3-1,P3.0为开始抢答,P3.2为停止,P1.0-P1.7为八路抢答输入,数码管段选P0口,位选P2口低3位,蜂鸣器(用绿灯替代)输出为P3.6口P3.2为时间加1调节,P3.3为时间减1调节。
3.2 外部振荡电路图3-2 外部振荡电路一般选用石英晶体振荡器此电路在加电大概延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率重要由石英晶振的频率拟定电路中两个电容 C1,C2的作用有两个:一是协助振荡器起振;二是对振荡器的频率进行微调C1,C2的典型值为30PF3.3 复位电路的设计单片机的第9脚RST为硬件复位端,只要将该端持续4个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态,其电路图如图所示:图3-3 复位电路在方案中使用到了硬件复位和软件复位两种功能,由上面的硬件复位可使寄存器及存储器的值都恢复到初始值,而前面的功能提到了倒计时间需要有记忆功能,该功能实现的前提条件就是不能对单片机进行硬件复位,因此设定了软复位功能软复位事实上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到程序执行的起始地址3.4 显示电路的设计显示电路使用了七段数码管7SEG-MPX4-CC,它是共阴极的,由高电平点亮图3-4 阴极七段数码管按钮输入电路的设计抢答器的输入按钮使用常开开关,图3-5 抢答按键这些常开开关构成了抢答按键,硬件电路简朴,在程序设计上也不复杂,只要在程序中消除在按键过程中产生的“毛刺” 现象就可以了。
这里采用最常用的措施即延时法,其的原理为:由于“毛刺”脉冲一般持续时间短,约为几ms,而按键的时间一般远远不小于这个时间,因此当单片机检测到有按键动静后再延时一段时间(这里取10ms)后再判断此电平与否保持原状态,如果是则为有效按键,否则无效3.6 发声这里能运用程序来控制单片机P3.6口线反复输出高电平或低电平,即在该口线上产生一定频率的矩形波,接上扬声器就能发出一定频率的声音,再运用延时程序控制“高”“低”电平的持续时间,就能变化输出频率,从而变化音调,使扬声器发出不同的声音4 系统软件设计4.1 程序系统构造图硬件电路拟定后,软件的编程要与硬件相匹配,软硬件才干结合完毕所要实现的功能由功能分析得到如下的软件构造图:系统初始化模块按键模块对的抢答模块非法抢答模块调节时间模块显示模块图4-1 软件系统构造图4.2 程序流程图整个程序重要由定期器T0、定期器T1、外部中断0和主程序构成P3.7取反定期器重新赋值返回主函数响铃标志为1?NY定期器T0用于使扬声器发声,当需要响铃时,把响铃标志位置一,每次中断都对P3.7取反,扬声器发声,变化定期器初值,可变化扬声器频率定期器程流程图如下:图4-2 响铃程序流程图定期器T1用于倒计时,每次中断为50ms,当计数标志为20时即为一秒,显示数字减一。
其流程图如下:返回主函数计时标志加一计数器重新赋值图4-3 倒计时中断流程图外部中断0用于调节倒计时时间,流程图如下:显示时间R1R1减1返回主函数R1置0R1增1R1置99加1键按下?减1键按下?R1到0?R1到99?返回键按下?YNYYYNNNNY 图4-4 调节抢答时间流程图主程序协调三个中断一起工作,实现抢答功能,其流程图如下:按键发声显示抢答号,剩余时间停止键按下?抢答键按下?停止键按下?开始键按下?程序初始化倒计时显示倒计时开始按键发声准备状态,显示FFF倒计时不小于5s?显示法规号码按键发声非法抢答?停止键按下?提示发声倒计时结束?YNNYNNNNNYYYYY图4-5 主程序流程图4.3 程序代码:P3.0为开始抢答,P3.1为停止,P1.0-P1.7为八路抢答输入,数码管段选P0口,位选P2的低三位口,蜂鸣器输出为P3.6口 ORG 0000H AJMP MAIN ORG 0003H AJMP INT0SUB ORG 000BH AJMP T0INT ORG 001BH AJMP T1INTOK EQU 20H ; 抢答开始标志位RING EQU 22H ; 响铃标志位 ORG 0040HMAIN: MOV R1,#0FH; 初设抢答时间为15s MOV R2,#0AH; 初设答题时间为10s MOV TMOD,#11H; 设立未定期器/模式1 MOV TH0,#0F0H MOV TL0,#0FFH; 越高发声频率越高,越尖 MOV TH1,#3CH MOV TL1,#0B0H; 50ms为一次溢出中断 SETB EA SETB ET0 SETB ET1 SETB EX0 SETB EX1; 容许四个中断,T0/T1/INT0/INT1 CLR OK CLR RING SETB TR1 SETB TR0; 一开始就运营定期器,以开始显示FFF.如果想重新计数,重置TH1/TL1就可以了4.3.1查询程序:START: MOV R5,#0BH MOV R4,#0BH MOV R3,#0BH ACALL DISPLAY; 未开始抢答时候显示FFF JB P3.0,NEXT ACALL DELAY。
