八位抢答器 设计.docx
- 文档编号:30611164
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:31
- 大小:274.76KB
八位抢答器 设计.docx
《八位抢答器 设计.docx》由会员分享,可在线阅读,更多相关《八位抢答器 设计.docx(31页珍藏版)》请在冰豆网上搜索。
八位抢答器设计
目录
引言-1-
1.设计任务与要求-1-
2.设计方案与论证-2-
3.硬件电路设计-2-
3.1抢答器的电路框图-2-
3.2单元电路设计-3-
3.2.1抢答器电路设计-3-
3.2.2时序控制电路设计-3-
3.2.3复位电路的设计-3-
3.2.4外部震荡电路设计-4-
3.2.5报警电路设计-4-
3.2.6选手抢答按钮设计-5-
3.2.7显示与显示驱动电路-5-
4.AT89C51单片机的结构-6-
4.1AT89C51单片机的基本组成功能方块图-6-
4.2AT89C51单片机管脚说明-7-
5.软件设计-8-
5.1系统主程序设计-8-
5.2程序代码-9-
6.软件仿真结果-10-
6.1Keil软件仿真:
-10-
6.2Proteus软件仿真-10-
6.2.1整体电路仿真图:
-10-
6.2.2抢答30秒倒计时显示仿真图:
-11-
6.2.3答题时60秒倒计时仿真图:
-11-
7.器件选型及调试-12-
7.1器件选型方案的详细清单-12-
7.2调试-12-
8.设计体会-13-
参考文献-14-
附录-14-
引言
抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。
但抢答器的使用频率较低,且有的要么制作复杂,要么可靠性低。
作为一个单位,如果专门购一台抢答器虽然在经济上可以承受,但每年使用的次数极少,往往因长期存放使(电子器件的)抢答器损坏,再购置的麻烦和及时性就会影响活动的开展,因此设计了本抢答器。
本设计是以八路抢答为基本理念。
考虑到依需设定限时回答的功能,利用AT89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。
用开关做键盘输出,扬声器发生提示。
同时系统能够实现:
在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;抢答限定时间和回答问题的时间可在1-99s设定;可以显示是哪位选手有效抢答和无效抢答,正确按键后有音乐提示;抢答时间和回答问题时间倒记时显示,满时后系统计时自动复位及主控强制复位;按键锁定,在有效状态下,按键无效非法。
1.设计任务与要求
1、抢答器同时供8名选手或8个代表队比赛,分别用8个按钮S0~S8表示。
2、设置一个系统确定和抢答控制开关S,该开关由主持人控制。
3、抢答器具有锁存与显示功能。
即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时扬声器发出报警声响提示。
选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。
4、抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。
当主持人启动"开始"键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间0.5秒左右。
5、参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。
6、如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。
2.设计方案与论证
方案一:
系统各部分采用中小规模集成数字电路,用机械开关按钮作为控制开关,完成抢答输入信号的触发。
该方案的特点是中小规模集成电路应用技术成熟,性能可靠,能方便地完成选手抢答的基本功能,但是由于系统功能要求较高,所以电路连接集成电路相对较多,而且过于复杂,并且制作过程工序比较烦琐,使用不太方便。
方案二:
该系统采用51系列单片机AT89C51作为控制核心,该系统可以完成运算控制、信号识别以及显示功能的实现。
由于用了单片机,使其技术比较成熟,应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。
整个系统具有极其灵活的可编程性,能方便地对系统进行功能的扩张和更改。
MCS-51单片机特点如下:
<1>可靠性好:
单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般的CPU,程序指令和数据都可以写在ROM里,许多信号通道都在同一芯片,因此可靠性高,易扩充。
<2>单片机有一般电脑所必须的器件,如三态双向总线,串并行的输入及输出引脚,可扩充为各种规模的微电脑系统。
<3>控制功能强:
单片机指令除了输入输出指令,逻辑判断指令外还有更丰富的条件分支跳跃指令。
方案比较及其选用依据,显然方案二比方案一简单的多,不但从性能上优于方案一,而且在使用上及其功能的实现上都较方案一简洁,并且由于单片机具有优越的高集成电路性,使其工作速度更快、效率更高。
另外80C51单片机采用12MHz的晶振,提高了信号的测量精度,并且使该系统可以通过软件改进来扩张功能。
而方案一采用了中小规模集成电路,有其复杂的电路性能,从而可能会使信号的输入输出产生延时及不必要的误差。
依此依据选择方案二比较适合。
3.硬件电路设计
3.1抢答器的电路框图
如图1所示为电路框图。
其工作原理为:
接通电源后,主持人将开关拨到“确定”状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置,“开始”状态,宣布“开始”抢答器工作。
定时器倒计时,扬声器给出声响提示。
选手在定时时间内抢答时,抢答器完成:
优先判断、编号锁存、编号显示、扬声器提示。
当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。
如果再次抢答必须由主持人再次操作"开始、确定"状态开关。
图1抢答器框图
3.2单元电路设计
3.2.1抢答器电路设计
该电路完成两个功能:
一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;二是禁止其他选手按键操作无效。
如有再次抢答需由主持人将确定键重新置,“开始”然后再进行下一次抢答。
3.2.2时序控制电路设计
时序控制电路是抢答器设计的关键,它要完成以下功能:
a.主持人将控制开关拨到"开始"位置时,扬声器发声,抢答电路和定时电路进人正常抢答工作状态。
b.当参赛选手按动抢答键时,扬声器发声,抢答电路和定时电路停止工作。
3.2.3复位电路的设计
外部中断和内部中断并存,单片机硬件复位端,只要持续4个机器周期的高电平即可实现复位,硬件复位后的各状态可知寄存器以及存储器的值都恢复到了初始值,因为本设计中功能中有倒计时时间的记忆功能,所以不能对单片机进行硬件复位,只能用软件复位,软件复位实际上就是当程序执行完之后,将程序通过一条跳转指令让它完成复位。
复位电路如下图示:
3.2.4外部震荡电路设计
外部震荡电路单片机必须在AT89C51的驱动下才能工作,在单片机内部有一个时钟震荡电路,只需要外接一个振荡器就能产生一定的时钟信号送到单片机内部的各个单元,外部震荡电路如下图:
3.2.5报警电路设计
报警电路用于报警,当遇到报警信号时,发出警报。
一般喇叭是一种电感性图11.4报警电路图。
8951驱动喇叭的信号为各种频率的脉冲。
因此,最简单的喇叭驱动方式就是利用达林顿晶体管,或者以两个常用的小晶体管连接成达林顿架势。
在右图中电阻R为限流电阻,在此利用晶体管的高电流增益,以达到电路快速饱和的目的。
不过,如果要由P0输出到此电路,还需要连接一个10K的上拉电阻。
选手在设定的时间内抢答时,实现:
优先判断、编号锁存、编号显示、扬声器提示。
当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。
如果再次抢答必须由主持人再次*作"确定"和"开始"状态开关。
图面是数字抢答器的报警电路图。
其中555构成多谐振荡器,振荡频率fo=1.43/[(RI+2R2)C],其输出信号经三极管推动扬声器。
PR为控制信号,当PR为高电平时,多谐振荡器工作,反之,电路停振。
3.2.6选手抢答按钮设计
89C51的P1口做一个为选手抢答的输入按键引脚,P1.0至P1.7轮流输出低电位,给每一个选手编号1至8,当选手按下按钮时,P1口个端口的电平变化从P1口输入,经单片机处理后从P0输出由数码管显示抢答者编号。
3.2.7显示与显示驱动电路
此电路包括显示和驱动,显示采用数码管,驱动用P2口,违规者编号、抢答30秒倒计时、正常抢答者编号和回答问题时间60秒倒计时,数码管采用动态显示。
驱动电路P2口,查询显示程序利用P0口做段选码口输出P2低3位做位选码输出,当为低电平则能驱动数码管使其显示数字。
在+5V电压下接10k的电阻,保证正常压降。
4.AT89C51单片机的结构
AT89C51单片机是美国Atmel公司生产低电压,高性能CMOS8位单片机,片内含4kbytes的可反复擦写的只读程序存储器(EPROM)和128bytes的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存取技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大。
AT89C51单片机可提供许多高性价比的应用场合,可灵活应用于各种控制领域。
4.1AT89C51单片机的基本组成功能方块图
图2为AT89C51单片机的基本组成功能方块图。
由图可见,在这一块芯片上,集成了一台微型计算机的主要组成部分,其中包括CPU、存储器、可编程I/O口、定时器/计数器、串行口等,各部分通过内部总线相连。
下面介绍几个主要部分。
图2单片机结构框图
4.2AT89C51单片机管脚说明
图3AT89C51单片机管脚图
ATMEL公司的AT89C51是一种高效微控制器。
采用40引脚双列直插封装形式。
AT89C51单片机是高性能单片机,因为受引脚数目的限制,所以有不少引脚具有第二功能。
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写1时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址1时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入1后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流。
P3口也可作为AT89C51的一些特殊功能口,P3口管脚备选功能:
P3.0RXD(串行输入口)P3.1TXD(串行输出口)
P3.2INT0(外部中断0)P3.3INT1(外部中断1)
P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)
P3.6
(外部数据存储器写选通)P3.7
(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
ALE/
:
当访问外部存储器时,地址锁存允许端的输出电平用于锁存地址的地址字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
PSEN:
外部程序存储器的选通信号端。
在由外部程序存储器取指期间,每个机器周期两次PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/VP:
当
保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管否有内部程序存储器。
注意加密方式1时,
将内部锁定为RESET;当
端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
反向振荡器的输出,如采用外部时钟源驱动器件,应不接。
5.软件设计
5.1系统主程序设计
为了能够达到抢答的公平、公正、合理,应该在主持人发布抢答命令之前必须先设定抢答的时间,因而在编开始抢答前的程序得先编写设定时间的程序,当时间设好了之后,主持人发布抢答命令按下P1.7按键,程序开始打开定时中断开始倒计时,然后调用键盘扫描子程序,编写键盘扫描程序。
当在扫描到有人按下了答题键,马上关闭T0、调用显示程序、封锁键盘。
(1)主程序流程图
图4主程序流程图
5.2程序代码
见附录
6.软件仿真结果
6.1Keil软件仿真:
6.2Proteus软件仿真
6.2.1整体电路仿真图:
6.2.2抢答30秒倒计时显示仿真图:
6.2.3答题时60秒倒计时仿真图:
7.器件选型及调试
7.1器件选型方案的详细清单
器件名称
规格型号
数量
微处理器
AT89C51
1
极性电容
10uF
1
电阻
3WTT10K
9
电容
20PF
3
晶振
12MHZ
1
按钮
15
共阴4位7段数码管
SMGSM410561K
1
扬声器
1
7.2调试
(1)开机,按电源开关,显示屏左边的"抢答"指示灯亮,数码管显示。
(2)设定"抢答"倒计时时间
(3)设定"答题"倒计时时间
(4)测试各组抢答按键
试按一下各组的抢答按钮,应立即显示该组的组别数字,同时机内喇叭发出"叮咚"的提示音,按"取消"键,返回"0"闪烁状态。
(5)启动抢答倒计时,开始抢答
"FFF"状态下,当主持人宣布抢答开始时,马上按一下"抢答"键,屏幕显示所设定的抢答倒计时时间并开始倒计时,提示倒计时时间马上临近结束。
倒计时到0以后,仪器发出"叮咚"的结束提示音,同时显示屏返回"FFF"待命状态。
在"抢答"倒计时中,如果有参赛组抢答,仪器屏幕立即显示该组的组别号,同时发出"叮咚"的抢答成功提示音。
需要返回"FFF"待命状态,按"确定"键即可。
(6)启动答题倒计时
"FFF"状态下,或有参赛组抢答成功后,需要开始答题的计时时,按"开始"键,屏幕显示所设定的答题倒计时时间并开始倒计时,提示倒计时时间马上临近结束。
倒计时到0以后,仪器发出"丁冬"的结束提示音,同时显示屏返回"FFF"待命状态。
(7)提前取消倒计时
无论是"抢答"还是"答题"的倒计时时间,需要提前退出,只要按一下"确定"键,即可返回到"FFF"待命状态。
(8)如果想调节抢答时间或答题时间,按“+1s”键或“-1s”键进入调节状态,此时会显示现在设定的抢答时间或回答时间值,如想加一秒按一下"+1s"键,如果想减一秒按一下“-1s”键,时间LED上会显示改变后的时间,调整范围为0~99s,0s时再减1s会跳到99,99s时再加1s会变到0s。
(9)违规抢答
当主持人读题过程中,而未宣布抢答开始时按下抢答按钮。
主显示屏将显示该违规组号,及发出提示音。
及该组的红灯亮起。
通过调试,结果完全符合抢答器设计要求。
8.设计体会
通过这次课程设计,我想说:
为完成这次课程设计我们确实很辛苦,但苦中仍有乐,和同学们相互帮助,大学里三年的相处还赶不上这几天来的实在,我感觉我和同学们之间的距离更加近了。
这个工程确实很累,LED亮了起来,喇叭响起的是我一生以来最好听的声音,我们的心中就不免兴奋,不免激动。
前面的种种艰辛这时就变成了最甜美的回忆!
这次学习给我留下了深刻的印象,使我受益匪浅。
而且对于论文的总体构思也有了很多经验,相信自己经过这一次的训练与学习,对于今后会更加努力,做得最好。
总之,通过这次课程设计的制作与写作让我懂得了很多,这次课程设计由我们的老师的指导然后我们自己去图书馆,上网查资料然后自己和我们这组的成员一起合作商讨完成的,原以为会很简单的,但无论在制作与写作过程中我们都遇到了理论课上所不曾遇到的问题,第一是综合性太强,这次制作不仅涉及到我们所学到的单片机,数字电子技术等课程的知识还涉及到很多我们的选修及课外的知识。
第二是理论联系实际性太强,把所学的搜集到得知识运用的实际中不是一件容易的事,不仅由元件从课本上的符号到实物的认识还是理论的测量结果与实际值的误差。
课程设计已结束,对我而言,知识上的收获重要,精神上的丰收更加可喜。
让我知道了学无止境的道理。
我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。
挫折是一份财富,经历是一份拥有。
这次课程设计必将成为我人生旅途上一个非常美好的回忆!
参考文献
[1]辛友顺,韩彦征编著,51单片机原理与实践/高卫东,.北京航空航天大学出版社,2008.
[2]刘红玲、邵晓根,《微机原理与接口技术》,中国电力出版社,2006年第一版
[3]冯博琴,《微型计算机原理及接口技术》,清华大学出版社
[4]艾德才,《微型计算机原理与接口技术》,高等教育出版社
[5]沈美明,《IBM-PC汇编语言程序设计》,清华大学出版社
[6]任致程,《经典集成电路400例》机械工业出版社,2002
[7]薛栋梁,《单片机原理及应用》,中国水利水电出版社,2001
[8]谢筑森,《单片机开发与典型应用设计》,中国科学技术大学出版社
附录
程序代码:
OKEQU20H;抢答开始标志位
RINGEQU22H;响铃标志位
ORG0000H
AJMPMAIN
ORG0003H
AJMPINT0SUB
ORG000BH
AJMPT0INT
ORG0013H
AJMPINT1SUB
ORG001BH
AJMPT1INT
ORG0040H
MAIN:
MOVR1,#30;初设抢答时间为30s
MOVR2,#60;初设答题时间为60s
MOVTMOD,#11H;设置未定时器/模式1
MOVTH0,#0F0H
MOVTL0,#0FFH;越高发声频率越高,越尖
MOVTH1,#3CH
MOVTL1,#0B0H;50ms为一次溢出中断
SETBEA
SETBET0
SETBET1
SETBEX0
SETBEX1;允许四个中断,T0/T1/INT0/INT1
CLROK
CLRRING
SETBTR1
SETBTR0;一开始就运行定时器,以开始显示FFF.如果想重新计数,重置TH1/TL1就可以了
;=====查询程序=====
START:
MOVR5,#0BH
MOVR4,#0BH
MOVR3,#0BH
ACALLDISPLAY;未开始抢答时候显示FFF
JBP3.0,NEXT;ddddddd
ACALLDELAY
JBP3.0,NEXT;去抖动,如果"开始键"按下就向下执行,否者跳到非法抢答查询
ACALLBARK;按键发声
MOVA,R1
MOVR6,A;送R1->R6,因为R1中保存了抢答时间
SETBOK;抢答标志位,用于COUNT只程序中判断是否查询抢答
MOVR7,#01H;读抢答键数据信号标志,这里表示只读一次有用信号
MOVR3,#0AH;抢答只显示计时,灭号数
AJMPCOUNT;进入倒计时程序,"查询有效抢答的程序"在COUNT里面
NEXT:
JNBP1.0,FALSE1
JNBP1.1,FALSE2
JNBP1.2,FALSE3
JNBP1.3,FALSE4
JNBP1.4,FALSE5
JNBP1.5,FALSE6
JNBP1.6,FALSE7
JNBP1.7,FALSE8
AJMPSTART
;=====非法抢答处理程序=====
FALSE1:
MOVR3,#01H
AJMPERROR
FALSE2:
MOVR3,#02H
AJMPERROR
FALSE3:
MOVR3,#03H
AJMPERROR
FALSE4:
MOVR3,#04H
AJMPERROR
FALSE5:
MOVR3,#05H
AJMPERROR
FALSE6:
MOVR3,#06H
AJMPERROR
FALSE7:
MOVR3,#07H
AJMPERROR
FALSE8:
MOVR3,#08H
AJMPERROR
;=====INT0(抢答时间R1调整程序)=====
INT0SUB:
MOVA,R1
MOVB,#0AH
DIVAB
MOVR5,A
MOVR4,B
MOVR3,#0AH
ACALLDISPLAY;先在两个时间LED上显示R1
JNBP3.4,INC0;P3.4为+1s键,如按下跳到INCO
JNBP3.5,DEC0;P3.5为-1s键,如按下跳到DECO
JNBP3.1,BACK0;P3.1为确定键,如按下跳到BACKO
AJMPINT0SUB
INC0:
MOVA,R1
CJNEA,#63H,ADD0;如果不是99,R2加1,如果加到99,R1就置0,重新加起。
MOVR1,#00H
ACALLDELAY1
AJMPINT0SUB
ADD0:
INCR1
ACALLDELAY1
AJMPINT0SUB
DEC0:
MOVA,R1
JZSETR1;如果R1为0,R1就置99,
DECR1
ACALLDELAY1
AJMPINT0SUB
SETR1:
MOVR1,#63H
ACALLDELAY1
AJMPINT0SUB
BACK0:
RETI
;=====INT1(回答时间R2调整程序)=====
INT1SUB:
MOVA,R2
MOVB,#0AH
DIVAB
MOVR5,A
MOVR4,B
MOVR3,#0AH
ACALLDISPLAY
JNBP3.4,INC1
JNBP3.5,DEC1
JNBP3.1,BACK1
AJMPINT1SUB
INC1:
MOVA,R2
CJNEA,#63H,ADD1
MOVR2,#00H
ACALLDELAY1
AJMPINT1SUB
ADD1:
INCR2
ACALLDELAY1
AJMPINT1SUB
DEC1:
MOVA,R2
JZSETR2
DECR2
ACALLDELAY1
AJMPINT1SUB
SETR2:
MOVR2,#63H
ACALLDELAY1
AJMPINT1SUB
BACK1:
RETI
;=====倒计时程序(抢答倒计时和回答倒计时都跳到改程序)==
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 八位抢答器 设计 八位 抢答