摘 要
抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。但抢答器的使用频率较低,且有的要么制作复杂,要么可靠性低。作为一个单位,如果专门购一台抢答器虽然在经济上可以承受,但每年使用的次数极少,往往因长期存放使(电子器件的)抢答器损坏,再购置的麻烦和及时性就会影响活动的开展,因此设计了本抢答器。
本设计是以四路抢答为基本理念。考虑到依需设定限时回答的功能,利用AT49C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。
用开关做键盘输出,扬声器发生提示。同时系统能够实现:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;抢答限定时间和回答问题的时间可在1-99s设定;可以显示是哪位选手有效抢答和无效抢答,正确按键后有音乐提示;抢答时间和回答问题时间倒记时显示,满时后系统计时自动复位及主控强制复位;按键锁定,在有效状态下,按键无效非法。
一,设计任务与要求
1、抢答器同时供4名选手或4个代表队比赛,分别用4个按钮S0 ~ S3表示。
2、设置一个系统清除和抢答控制开关S,该开关由主持人控制。
3、 抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时扬声器发出报警声响提示。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。
4、参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号并保持到主持人将系统清除为止。
二,方案设计与论证
方案:该系统采用51系列单片机AT49C51作为控制核心,该系统可以完成运算控制、信号识别以及显示功能的实现。由于用了单片机,使其技术比较成熟,应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。整个系统具有极其灵活的可编程性,能方便地对系统进行功能的扩张和更改。MCS-51单片机特点如下:
《1》可靠性好:单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般的CPU,程序指令和数据都可以写在ROM里,许多信号通道都在同一芯片,因此可靠性高,易扩充。
《《 span=“”》2》单片机有一般电脑所必须的器件,如三态双向总线,串并行的输入及输出引脚,可扩充为各种规模的微电脑系统。
《《 span=“”》3》 控制功能强:单片机指令除了输入输出指令,逻辑判断指令外还有更丰富的条件分支跳跃指令。
其原理框图如下:
三,硬件电路设计
1、 抢答器的电路框图
如图11、1所示为电路框图。其工作原理为:接通电源后,主持人将开关拨到“清除”状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置,“开始”状态,宣布“开始”抢答器工作。定时器倒计时,扬声器给出声响提示。选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次抢答必须由主持人再次操作“开始、停止”状态开关。
抢答器框图
其工作原理为:接通电源后,主持人将开关拨到“清除”状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置,“开始”状态,宣布“开始”抢答器工作。扬声器给出声响提示。抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答。如果再次抢答必须由主持人再次操作“开始、停止”状态开关。
2、单元电路设计
(1)抢答器电路
参考电路如图11.2所示。该电路完成两个功能:一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;二是禁止其他选手按键操作无效。如有再次抢答需由主持人将S开关重新置,“清除”然后再进行下一
次抢答。
(2)时序控制电路设计
时序控制电路是抢答器设计的关键,它要完成以下功能:
a.主持人将控制开关拨到“开始”位置时,扬声器发声,抢答电路进人正常抢答工作状态。
b.当参赛选手按动抢答键时,扬声器发声,抢答电路停止工作。
(3)复位电路的设计
外部中断和内部中断并存,单片机硬件复位端,只要持续4个机器周期的高电平即可实现复位,硬件复位后的各状态可知寄存器以及存储器的值都恢复到了初始值,因为本设计中功能中有倒计时时间的记忆功能,所以不能对单片机进行硬件复位,只能用软件复位,软件复位实际上就是当程序执行完之后,将程序通过一条跳转指令让它完成复位。复位电路如下图示:
2.3.3外部震荡电路
外部震荡电路单片机必须在AT49C51的驱动下才能工作,在单片机内部有一个时钟震荡电路,只需要外接一个振荡器就能产生一定的时钟信号送到单片机内部的各个单元,外部震荡电路如下图。
2.3.4报警电路设计
报警电路用于报警,当遇到报警信号时,发出警报。一般喇叭是一种电感性
图11.4报警电路图。4951驱动喇叭的信号为各种频率的脉冲。因此,最简单的喇叭驱动方式就是利用达林顿晶体管,或者以两个常用的小晶体管连接成达林顿架势。在右图中电阻R为限流电阻,在此利用晶体管的高电流增益,以达到电路快速饱和的目的。不过,如果要由P0输出到此电路,还需要连接一个10K的上拉电阻。
选手在设定的时间内抢答时,实现:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答。如果再次抢答必须由主持人再次*作“清除”和“开始”状态开关。图面是数字抢答器的报警电路图。
其中555构成多谐振荡器,振荡频率fo=1.43/[(RI+2R2)C],其输出信号经三极管推动扬声器。PR为控制信号,当PR为高电平时,多谐振荡器工作,反之,电路停振。
四,软件设计
1、系统主程序设计
为了能够达到抢答的公平、公正、合理,应该在主持人发布抢答命令之前必须先设定抢答的时间,因而在编开始抢答前的程序得先编写设定时间的程序,当时间设好了之后,主持人发布抢答命令按下P1.7按键,程序开始打开定时中断开始倒计时,然后调用键盘扫描子程序,编写键盘扫描程序。当在扫描到有人按下了答题键,马上关闭T0、调用显示程序、封锁键盘。
(1)主程序流程图
?
2、主程序清单
ORG 0000H
LJMP STARTUP1
ORG 000BH
LJMP dingshi
ORG 001BH
LJMP fengmingqi
ORG 0400H
main:
LCALL init
SETB TR0
MOV TH0,#0x3C
MOV TL0,#P3
MOV 0x0E,#0x00
MOV 0x0F,#0x01
MOV 0x10,#0x00
MOV 0x11,#0x01
MOV R3,#0x01
MOV R2,#0x00
a12:
JB P0.0,a1
MOV 0x0E,#0x00
MOV 0x0F,#0x01
MOV 0x10,#0x00
MOV 0x11,#0x01
MOV R2,#0x00
MOV R3,#0x01
CLR 0x20.0
CLR A
MOV 0x09,A
SETB TR0
MOV TH0,#0x3C
MOV TL0,#P3
CLR TR1
MOV 0x0A,A
MOV 0x0C,A
MOV 0x0D,A
MOV DPTR,#0x0B4C
MOVC A,@A+DPTR
MOV P3,A
MOV DPTR,#shuma
CLR A
MOVC A,@A+DPTR
MOV 0xA0,A
a1:
MOV A,0x0F
ORL A,0x0E
JNZ a2
LJMP a3
a2:
MOV A,R3
ORL A,R2
JNZ a4
LJMP a3
a4:
MOV A,0x11
ORL A,0x10
JNZ a5
LJMP a3
a5:
MOV A,0x09
MOV B,#0x0A
LCALL a6
MOV R7,B
MOV A,R7
RLC A
SUBB A,ACC
MOV R6,A
MOV A,#0x45
ADD A,R7
MOV DPL,A
MOV A,#0x0B
ADDC A,R6
MOV DPH,A
CLR A
MOVC A,@A+DPTR
MOV 0xA0,A
;a4:
MOV A,0x09
MOV B,#0x0A
LCALL a6
MOV R7,B
CLR C
MOV A,R7
XRL A,#P0
SUBB A,#SP
JC a7
MOV A,0x09
MOV B,#0x0A
LCALL a6
MOV R7,A
RLC A
SUBB A,ACC
MOV R6,A
MOV A,R7
ADD A,#0x04
MOV R7,A
CLR A
ADDC A,R6
MOV R6,A
MOV A,R7
XRL A,#0x0A
ORL A,R6
JZ a4
MOV A,0x09
MOV B,#0x0A
LCALL a6
MOV R7,A
RLC A
SUBB A,ACC
MOV R6,A
MOV A,#0x4D
ADD A,R7
MOV DPL,A
MOV A,#0x0B
ADDC A,R6
MOV DPH,A
CLR A
MOVC A,@A+DPTR
MOV P3,A
a4:
MOV A,0x09
MOV B,#0x0A
LCALL a6
MOV R7,A
RLC A
SUBB A,ACC
MOV R6,A
MOV A,R7
ADD A,#0x04
MOV R7,A
CLR A
ADDC A,R6
MOV R6,A
MOV A,R7
XRL A,#0x0A
ORL A,R6
JNZ a9
MOV DPTR,#shuma
SJMP a10
a7:
MOV A,0x09
MOV B,#0x0A
LCALL a6
MOV R7,A
RLC A
SUBB A,ACC
MOV R6,A
MOV A,#0x4C
ADD A,R7
MOV DPL,A
MOV A,#0x0B
ADDC A,R6
MOV DPH,A
CLR A
a10:
MOVC A,@A+DPTR
MOV P3,A
a9:
JNB 0x20.0,a3
CLR A
MOV R2,A
MOV R3,A
CLR 0x20.0
MOV DPTR,#0x0B4C
MOVC A,@A+DPTR
MOV P3,A
MOV DPTR,#shuma
CLR A
MOVC A,@A+DPTR
MOV 0xA0,A
CLR TR0
a3:
MOV A,0x11
ORL A,0x10
JNZ a11
LJMP a12
a11:
MOV A,0x0F
ORL A,0x0E
JNZ a13
LJMP a12
a13:
MOV A,P1
ANL A,#0x0F
MOV R1,A
CLR A
MOV R4,A
MOV R5,A
a17:
CLR C
MOV A,R5
SUBB A,#0x04
MOV A,R4
XRL A,#P0
SUBB A,#P0
JC a14
LJMP a12
a14:
MOV A,#0x4F
ADD A,R5
MOV DPL,A
MOV A,#0x0B
ADDC A,R4
MOV DPH,A
CLR A
MOVC A,@A+DPTR
XRL A,R1
JNZ a15
LCALL delay
MOV A,#0x4F
ADD A,R5
MOV DPL,A
MOV A,#0x0B
ADDC A,R4
MOV DPH,A
CLR A
MOVC A,@A+DPTR
XRL A,R1
JNZ a15
MOV A,R3
ORL A,R2
JNZ a16
CLR C
MOV A,#0x09
SUBB A,R5
MOV R7,A
CLR A
SUBB A,R4
MOV R6,A
MOV A,#0x45
ADD A,R7
MOV DPL,A
MOV A,#0x0B
ADDC A,R6
MOV DPH,A
CLR A
MOVC A,@A+DPTR
MOV 0xA0,A
MOV P3,#0xFF
CLR A
MOV 0x10,A
MOV 0x11,A
ORL P1,#B
SJMP a15
a16:
SETB TR1
MOV TH1,#0xFF
MOV TL1,#0xFF
CLR TR0
CLR A
MOV 0x0E,A
MOV 0x0F,A
CLR C
MOV A,#0x09
SUBB A,R5
MOV R7,A
CLR A
SUBB A,R4
MOV R6,A
MOV A,#0x45
ADD A,R7
MOV DPL,A
MOV A,#0x0B
ADDC A,R6
MOV DPH,A
CLR A
MOVC A,@A+DPTR
MOV 0xA0,A
CLR C
MOV A,#0x09
SUBB A,R5
MOV 0x0A,A
MOV P3,#0xFF
LJMP a12
a15:
INC R5
CJNE R5,#0x00,a14
INC R4
a14:
LJMP a17
a6:
CLR F0
JNB 0xF0.7,a19
CPL F0
XRL B,#0xFF
INC B
a19:
JNB 0xE0.7,a20
CPL F0
CPL A
INC A
DIV AB
XRL B,#0xFF
INC B
SJMP a21
a20:
DIV AB
a21:
JNB F0,a22
CPL A
INC A
a22:
RET
a40:
CLR F0
MOV A,R4
JNB 0xE0.7,a23
CPL F0
CLR A
CLR C
SUBB A,R5
MOV R5,A
CLR A
SUBB A,R4
MOV R4,A
a23:
MOV A,R6
JNB 0xE0.7,a24
CPL F0
CLR A
CLR C
SUBB A,R7
MOV R7,A
CLR A
SUBB A,R6
MOV R6,A
LCALL a25
CLR C
CLR A
SUBB A,R5
MOV R5,A
CLR A
SUBB A,R4
MOV R4,A
SJMP a26
a24:
LCALL a25
a26:
JNB F0,a27
CLR C
CLR A
SUBB A,R7
MOV R7,A
CLR A
SUBB A,R6
MOV R6,A
a27:
RET
a25:
CJNE R4,#0x00,a24
CJNE R6,#0x00,a29
MOV A,R7
MOV B,R5
DIV AB
MOV R7,A
MOV R5,B
RET
a24:
CLR A
XCH A,R4
MOV R0,A
MOV B,#0x04
a31:
MOV A,R7
ADD A,R7
MOV R7,A
MOV A,R6
RLC A
MOV R6,A
MOV A,R4
RLC A
MOV R4,A
MOV A,R6
SUBB A,R5
MOV A,R4
SUBB A,R0
JC a30
MOV R4,A
MOV A,R6
SUBB A,R5
MOV R6,A
INC R7
a30:
DJNZ B,a31
CLR A
XCH A,R6
MOV R5,A
RET
a29:
MOV A,R5
MOV R0,A
MOV B,A
MOV A,R6
DIV AB
JB OV,a32
MOV R6,A
MOV R5,B
MOV B,#0x04
a35:
MOV A,R7
ADD A,R7
MOV R7,A
MOV A,R5
RLC A
MOV R5,A
JC a33
SUBB A,R0
JNC a34
DJNZ B,a35
RET
a33:
CLR C
SUBB A,R0
a34:
MOV R5,A
INC R7
DJNZ B,a35
a32:
RET
fengmingqi:
PUSH ACC
PUSH B
PUSH DPH
PUSH DPL
PUSH PSW
MOV PSW,#0x00
PUSH 0x00
PUSH 0x04
PUSH 0x05
PUSH 0x06
PUSH 0x07
MOV TH1,#0x3C
MOV TL1,#P3
INC 0x0D
MOV A,0x0D
JNZ a36
INC 0x0C
a36:
CPL A
ORL A,0x0C
JNZ a37
MOV 0x0C,A
MOV 0x0D,#0x0B
a37:
SETB C
MOV A,0x0D
SUBB A,#0x0A
MOV A,0x0C
XRL A,#P0
SUBB A,#P0
JNC a34
CPL 0xB0.7
SJMP a39
a34:
SETB 0xB0.7
a39:
MOV R6,0x0C
MOV R7,0x0D
MOV R4,#0x00
MOV R5,#0x0A
LCALL a40
MOV A,R5
ORL A,R4
JNZ a41
MOV A,0x04
JNZ a42
MOV 0x04,#0x01
MOV 0xA0,#0xFF
SJMP a41
a42:
MOV 0x04,#0x00
MOV R7,0x0A
MOV A,R7
RLC A
SUBB A,ACC
MOV R6,A
MOV A,#0x45
ADD A,R7
MOV DPL,A
MOV A,#0x0B
ADDC A,R6
MOV DPH,A
CLR A
MOVC A,@A+DPTR
MOV 0xA0,A
a41:
POP 0x07
POP 0x06
POP 0x05
POP 0x04
POP 0x00
POP PSW
POP DPL
POP DPH
POP B
POP ACC
RETI
dingshi:
PUSH ACC
PUSH PSW
MOV TH0,#0x3C
MOV TL0,#P3
INC 0x0B
MOV A,0x0B
CJNE A,#0x14,a43
INC 0x09
MOV 0x0B,#0x00
a43:
MOV A,0x09
CJNE A,#0x1E,a44
MOV 0x09,#0x00
SETB 0x20.0
CLR TR0
a44:
POP PSW
POP ACC
RETI
init:
MOV TMOD,#0x11
SETB ET0
SETB ET1
CLR TR0
CLR TR1
SETB EA
ANL P1,#0x0F
RET
delay:
CLR A
MOV R7,A
MOV R6,A
a46:
INC R7
CJNE R7,#0x00,a45
INC R6
a45:
MOV A,R7
XRL A,#0x0C
a47:
ORL A,R6
JNZ a46
RET
shuma:
PUSH P1
SJMP a47
ANL C,0x90.2
SUBB A,R1
ANL C,/0xA0.4
MOV R1,A
KeyBoard:
INC R6
INC R5
INC R3
INC @R1
STARTUP1:
MOV R0,#0x7F
CLR A
IDATALOOP:
MOV @R0,A
DJNZ R0,IDATALOOP
MOV SP,#0x20
LJMP main
END
五,器件选型方案
表1 器件选型方案的详细清单
器件名称规格型号数量
微处理器AT49C511
极性电容10uF1
电阻3WTT10K9
电容20PF3
晶振12MHZ1
按钮
15
共阴4位7段数码管SMG SM410561K1
扬声器
1
六,调试:
(1) 开机
按电源开关,显示屏左边的“抢答”指示灯亮,数码管显示。
(2) 测试各组抢答按键
试按一下各组的抢答按钮,应立即显示该组的组别数字,同时机内喇叭发出“叮咚”的提示音,按“取消”键,返回“0”闪烁状态。。
(3) 违规抢答
当主持人读题过程中,而未宣布抢答开始时按下抢答按钮。主显示屏将显示该违规组号,及发出提示音。及该组的红灯亮起。
编辑:jq
全部0条评论
快来发表一下你的评论吧 !