用51单片机汇编语言编写八位抢答器程序

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档