用51单片机汇编语言编写八位抢答器程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课题用51单片机汇编简易的8键数码蜂鸣
抢答器
日期:2013 年7 月10日
随着科学技术的不断发展,促使人们学科学、学技术、学知识的手段多种多样。抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。但抢答器的使用频率较低,且有的要么制作复杂,要么可靠性低,减少兴致。做为一个单位若专购一台抢答器虽然在经济上可以承受,但每年使用的次数极少,往往因长期存放使(电子器件的)抢答器损坏,再购置的麻烦和及时性就会影响活动的开展,因此设计了本抢答器。
本设计是以8路抢答为基本理念。考虑到依需设定限时回答的功能,利用AT89C51单片机及外围接口实现的抢答系统,只需要人为的编写汇编语言到单片机里,就能实现和满足不同的控制方案,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使LED数码管能够正确地显示倒计时间和抢答情况。具体功能为:1,按下复位键代表主持人宣布抢答开始,同时数码管开始进行抢答倒计时,倒计时开始计时后方能开始抢答,抢答用按键形式;
2,开抢答限定时间为30秒,超过30秒后倒计时停止,之后选手将抢答无效;
3,先按下键的选手即为抢答成功,蜂鸣器将持续几秒将提示抢答成功,数码管将显示该选手的号码,同时相应的选手灯会亮;
4,抢答成功的选手即先按下键盘,其他按键将锁定,无效;
5,5,按下复位键进行下一次抢答。本系统是借用单片机采用模块化设计的简易版抢答器,主控与参赛者设为终端分系统。参赛者分系统
设有:抢答按纽、计时显示、提示功能;主控分系统有:复位开始,
计时显示。
其主要模块为:1.主控制器模块:采用AT89S51单片机控制;
2.抢答器显示模块:数码管和灯显示;
3.抢答成工提示模块:蜂鸣器提示;
4.抢答器键盘:S1到S8八个按钮分别代表1-8号选手
下图为系统主要功能模块图
工作流程图为
程序流程图
程序源代码为org 0
ajmp main
org 0bh
ajmp top main:
setb et0
setb ea
mov tmod,#1 mov th0,#3ch mov tl0,#0b0h setb tr0
mov dptr,#tab
mov 31h,#30h
mov r2,#20
display:
lcall l5ms
mov a,31h
anl a,#0fh
movc a,@a+dptr
mov p0,a
mov p2,#0fbh
acall l5ms
mov a,31h
swap a
anl a,#0fh
movc a,@a+dptr
mov p0,a
mov p2,#0f7h
acall l5ms
ljmp display
l5ms:mov r3,#0
djnz r3,$
ret
TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H top:
L: MOV P3,#1FH
MOV A,P3
CJNE A,#1FH,L1
SJMP ai
L1: MOV 20H,A
MOV P3,#0E3H
MOV A,P3
ai:mov tl0,#0b0h mov th0,#3ch
djnz r2,lend
mov r2,#20
mov a,31h
anl a,#0fh
cjne a,#0,yi
mov a,31h
subb a,#7
cjne a,#0h,c1
sjmp er
yi:mov a,31h
dec a
cjne a,#0,c1
sjmp er
c2:mov 31h,a
sjmp lend
c1:mov 31h,a lend:
reti
er:mov r5,#1
cjne r5,#0,er
L2: ORL 20H,A
MOV A,20H
MOV P2,#0FEH
MOV P0,#0F9H
mov p1,#7fh
acall beep
SJMP L
L3: CJNE A,#0BBH,L4 MOV P0,#0A4H
mov p1,#0bfh
acall beep
L4: CJNE A,#07BH,L5
MOV P0,#0B0H
mov p1,#0dfh
acall beep
L5: CJNE A,#0D7H,L6
MOV P0,#99H
mov p1,#0efh
acall beep
L6: CJNE A,#0B7H,L7
MOV P0,#92H
mov p1,#0f7h
acall beep
L7: CJNE A,#77H,L8
MOV P0,#82H
mov p1,#0fbh
acall beep
L8: CJNE A,#0CFH,L9 MOV P0,#0F8H
mov p1,#0fdh
acall beep
MOV P0,#80H
mov p1,#0feh
acall beep
L10: aJMP L
beep:
clr ea
clr et0
clr tr0
LCALL DLY
CPL P2.4
DJNZ R4,beep
sjmp $
DLY: MOV R6, #20 D1: MOV R7, #248
DJNZ R7, $
DJNZ R6, D1
ret
END