湖南省娄底职业技术学院 抢答器毕业设计 - 图文

更新时间:2024-04-26 11:44:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

湖南省娄底职业技术学院

毕业设计(论文)

课题 抢答器

系 部: 机 电 工 程 系 专 业: 机 电 一 体 化 班 级: 09 机 大一班 指导老师: 曹 胜 男 姓 名: 郭建 同 组 人: 吴哲 学 号: 200904030110

日期:2011 年 11 月 15 日

- 1 -

摘 要

随着科学技术的不断发展,促使人们学科学、学技术、学知识的

手段多种多样。抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。但抢答器的使用频率较低,且有的要么制作复杂,要么可靠性低,减少兴致。做为一个单位若专购一台抢答器虽然在经济上可以承受,但每年使用的次数极少,往往因长期存放使(电子器件的)抢答器损坏,再购置的麻烦和及时性就会影响活动的开展,因此设计了本抢答器。

本设计是以六路抢答为基本理念。考虑到依需设定限时回答的功能,利用AT89C51单片机及外围接口实现的抢答系统,只需要人为的编写程序(汇编语言)到单片机里,就能实现和满足不同的控制方案,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使LED数码管能够正确地显示时间。用开关做键盘输出,扬声器发生提示。同时系统能够实现:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;抢答限定时间和回答问题的时间可在1-99s设定;可以显示是哪位选手有效抢答和无效抢答,正确按键后有音乐提示;抢答时间和回答问题时间倒记时显示,满时后系统计时自动复位及主控强制复位;按键锁定,在有效状态下,按键无效非法。

关键词: AT89C51单片机;LED数码管; 抢答器; 计时;

汇编语言;定时器/计数器;

- 2 -

目录

摘要 .............................................. 错误!未定义书签。 目录 ............................................................... 3 第一章 概述 ....................................................... 4

1.1 单片机简介 ...................................................................................................................... 4

1.2 课题研究的相关背景 ...................................................................................................... 5 1.3 国内外研究现状 .............................................................................................................. 6 1.4 抢答器设计的主要内容 .................................................................................................. 6

第二章 系统设计原理及硬件设计 ..................................... 7

2.1 系统的主要功能 .............................................................................................................. 7

2.2 抢答器的工作流程 .......................................................................................................... 8

2.2.1 总体原理图 ........................................................................................................... 9 2.2.2 复位电路的设计 ..................................................................................................... 9 2.2.3 显示电路的设计 ................................................................................................. 10 2.2.4 键盘电路的设计 ................................................................................................. 10 2.2.5 系统复位 ............................................................................................................. 11

第三章 系统软件设计 .............................................. 11

3.1 程序流程图及程序设计 ................................................................................................ 12

第四章 总结 ...................................................... 18

4.1 课程设计的意义 ............................................................................................................ 18 4.2 本设计的特点 ................................................................................................................ 18 4.3 进一步工作建议 ............................................................................................................ 19

参考文献 .......................................................... 19 致 谢 ............................................................. 20 附录一:原理图 .................................................... 21 附录二:实物图 .................................................... 22 附录三:系统程序 .................................................. 23

- 3 -

第一章 概述

1.1 单片机简介

单片机,亦称单片微电脑或单片微型计算机。它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/0)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。

由于单片机的集成度高、功能强、通用性好,特别是它具有体积小、重量轻、能耗低、价格低廉、可靠性高、抗干扰能力强和使用方便等独特的优点,使单片机迅速得到了推广应用,目前已经成为测量控制应用系统中的优选机种和新电子产品的关键部位。世界各大电气厂家、测控技术企业、机电行业,竞相把单片机应用于产品更新,作为实现数字化、智能化的核心部件。智能风扇就是以单片机为核心的系统。

计算机的产生加快了人类改造世界的步伐,但是它毕竟体积大,微计算机(单片机)在这种情况下诞生了,它为我们改变了什么?纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。以前没有单片机时,这些东西也能做,但是只能使用复杂的模拟电路,然而这样做出来的产品不仅体积大,

- 4 -

而且成本高,并且由于长期使用,元器件不断老化,控制的精度自然也会达不到标准。在单片机产生后,我们就将控制这些东西变为智能化了,我们只需要在单片机外围接一点简单的接口电路,核心部分只是由人为的写入程序来完成。这样产品的体积变小了,成本也降低了,长期使用也不会担心精度达不到了。所以,它的魔力不仅是在现在,在将来将会有更多的人来接受它、使用它。

自世界上第一单片机诞生以来,单片机不断陈出新,目前已有几十个系列、上百种型号。目前应用比较广、影响比较大的有如下几种:

<1>美国Intel公司MCS-51系列、 MCS-96系列单片机 <2>美国Atmel公司的AT89系列单片机 <3>中国宏晶STC8051系列 <4>日本NEC公司的ūPD7800系列

上面这些产品有很多相同的内容,但各有其特点,用户可以根据需要选择。如此庞大的单片机家族,其实只要熟练掌握一种单片机的使用方法,便可以举一反三,对其它型号的单片机也能够很快上手。

1.2 课题研究的相关背景

抢答器是一种应用非常广泛的设备,在各种竞赛、抢答场合中,它能迅速、客观地分辨出最先获得发言权的选手。早期的抢答器只由几个三极管、可控硅、发光管等组成,能通过发光管的指示辩认出选手号码。现在大多数抢答器均使用单片机(如MCS-51型)和数字集成电路,并增加了许多新功能,如选手号码显示、抢按前或抢按后的计时、选手得分显示等功能。

本课题利用AT89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管

- 5 -

能够正确地显示时间和选手号码。用开关做键盘输出,扬声器发生提示。系统达到要求:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;抢答限定时间和回答问题的时间可是在1-99s设定;可以显示是哪位选手有效抢答和无效抢答,正确按键后有音乐提示;抢答时间和回答问题时间倒记时显示,时间完后系统自动复位;按键锁定,在有效状态下,按键无效非法。

1.3 国内外研究现状

抢答器作为一种电子产品,早已广泛应用于各种智力和知识竞赛场合,但目前所使用的抢答器有的电路较复杂不便于制作,可靠性低,实现起来很困难;有的则用一些专用的集成块 ,而专用集成块的购买又很困难。为适应高校等多代表队单位活动的需要而设计一个多功能抢答器,这种抢答器具有电路简单,元件普通 ,易于购买等优点,很好地解决了制作者制作困难和难于购买的问题。在国内外已经开始了普遍的应用。

1.4 抢答器设计的主要内容

主持人有开始和结束、复位键。在后台主持人可以修改,抢答时间和选手回答问题的时间设置,原始状态下抢答时间为10s,回答问题的时间为30s,通过加键和减键修改上述时间,改完后结束键确定。新时间开始有效,主持人按键开始后,选手开始抢答有效,数码显示屏抢答时间倒计时和选手号,在最后5S扬声器发生提示。如果主持人没有按下开始键而选手就抢答视为犯规,数码显示屏显示犯规者的代号,扬声器持续发生。主持人可按键结束,新一轮开始。

主控制器模块:采用AT89S51单片机控制 抢答器显示模块:数码管显示 电源方案的选择:采用单相稳压电路

抢答器键盘:独立式键盘

- 6 -

第二章 系统硬件设计

2.1系统的主要功能

本系统是借用单片机采用模块化设计的智能抢答器,主控与参赛者设为终端分系统。参赛者分系统设有:抢答按纽、计时显示、提示功能等(根据需要可另设或多设相关功能);主控分系统有:开始与结束控制按钮、时限设定、各种相关显示调控功能等(根据需要也可另设或多设相关功能)。

参赛者系统,除享有抢答按纽的权利功能外[1],还有人性化的提示功能和时间提示功能,也可设定由主控控制在参赛者终端表现的趣味性功能等;主控系统的控制按钮做开始与结束控制,根据活动参赛者的层次,对提前抡答者的行为设定为非法或阻隔,若设有非法抢答控制功能时,在主控处带有公示性显示的非法抡答者的台位号,对抢答限时及回答问题限时设为倒计时式,并有公示性显示。

LED

键盘显示 时钟频率 复位电路 主控制器显示图2-1 系统主要功能模块

本系统采用模块化设计智能抢答器,在抢答比赛中广泛应用,各组分别有一个抢答按钮。主持人有开始和结束复位键。在后台主持人可以修改,抢答时间和选手回答问题的时间设置,原始状态下抢答时间为10s,回答问题时间为30s。通过加键和减键修改上述时间,改完后结束键确定。新时间开始有效,主持人按

声生器

- 7 -

键开始后,选手开始抢答为有效,数码显示屏显示抢答时间倒计时和选手号,在最后五秒扬声器发生提示。如果主持人没有按下开始键而选手就抢答视为犯规,数码显示屏显示犯规者的代号,扬声器持续发生。主持人可按键结束,新一轮抢答开始。系统的主要功能模块方框图如2-1所示。

2.2 抢答器的工作流程

抢答器的基本工作原理:在抢答竞赛或呼叫时[2],有多个信号同时或不同时送入主电路中,抢答器内部的寄存器工作,并识别、记录第一个号码,同时内部的定时器开始工作,记录有关时间并产生超时信号。在整个抢答器工作过程中,显示电路、语音电路等还要根据现场的实际情况向外电路输出相应信号。抢答器的

工作流程分为、系统

加载程序 复位、正常流程、违运 行 例流程等几部分,如

正常流程 违规流程 图2-2

开始 开始前有选手抢按

开始数码管显 显示违例选手号示FFF开始抢 码并伴有语音报 按时间倒计时 警

倒计时结 有选手 束,超时 抢按

显示FFF 显示选手号码,倒计 时时间,语音报警,答 题,答题时间倒计时

若超过答题 答题完毕

时间,则数 图2-2 抢答器工作流程

码管显示FFF 根据选手表现,规 - 8 -

则由主持人减分 2.2.1 总体原理图

图3-1系统原理图

2.2.2 复位电路的设计

单片机的第9脚RST为硬件复位端,只要将该端持续4个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态,其电路图如图4所示:

- 9 -

2.2.3显示电路的设计

显示功能与硬件关系极大,当硬件固定后,如何在不引起操作者误解的前提下提供尽可能丰富的信息,全靠软件来解决。将显示功能集中到一起,作为一个功能模块,就要求它的功能全面,能根据系统软件提供的信息自动完成显示内容的查找,变换和输出驱动。通过查表法,将其在数码管上显示出来,其中P0口为字型码输入端,P2口低3位为字选段输入端。在这里我们通过查表将字型码送给7段数码管显示的数字,数码管显示原理如下:

MOV A,R5

MOVC A,@A+DPTR ;查字型码

MOV P2,#01H ;送位选码 MOV P0,A ;送字型码

ACALL DELAY ;调延时,去闪烁

2.2.4 键盘电路的设计

键盘是人与微机系统打交道的主要设备,本次设计采用独立式键盘, 独立式键盘硬件电路简单,而且在程序设计上也不复杂,一般用在对硬件电路要求不高的简单电路中

- 10 -

2.2.5 系统复位

使CPU进入初始状态,从0000H地址开始执行程序的过程叫系统复位。

程序如下:

POWER DATA 67H ;上电标志存放单元 ERR: CLR EA ;关中断 MOV DPTR,#ERR1 ;准备返回地址

PUSH DPL PUSH DPH

RETI ;清除高级中断激活标志

ERR1: MOV POWER,#0AAH;重建上电标志 CLR A ;准备复位地址 PUSH ACC ;压入复位地址0000H

PUSH ACC

RETI ;清除低级中断激活标志,从程序0000H开始执行。

第三章 系统软件设计

3.1 程序流程图

在本设计中包括了以下主要的程序:主程序,查询程序,非法抢答程

序,抢答时间调整程序,回答时间调整程序,倒计时程序,正常抢答处理程序,犯规处理程序,显示及发声程序。主流程图如14所示:

- 11 -

初始显示开始键 Y 抢答 加一键 Y Y 非法正抢 常 减一键 调整抢 显显示抢示 答 回答 图14 程序设计流程图

3.2程序设计

主程序:

ORG 0040H

MAIN: MOV R1,#0FH MOV R2,#0AH MOV TMOD,#11H MOV TH0,#0F0H MOV TL0,#0FFH MOV TH1,#3CH

MOV TL1,#0B0H;50ms为一次溢出中断[10]

- 12 -

SETB EA SETB ET0 SETB ET1

SETB EX0 SETB EX1 CLR OK CLR RING SETB TR1 SETB TR0 非法抢答处理程序:

FALSE1: ACALL BARK MOV R3,#01H AJMP ERROR FALSE2: ACALL BARK MOV R3,#02H AJMP ERROR FALSE3: ACALL BARK MOV R3,#03H AJMP ERROR FALSE4: ACALL BARK MOV R3,#04H AJMP ERROR FALSE5: ACALL BARK MOV R3,#05H AJMP ERROR FALSE6: ACALL BARK MOV R3,#06H AJMP ERROR 抢答时间调整程序:

;=====INT0(抢答时间R1调整程序)===== INT0SUB:MOV A,R1

- 13 -

MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY

JNB P3.2,INC0;P3.2为+1s键,如按下跳到INCO JNB P3.3,DEC0;P3.3为-1s键,如按下跳到DECO JNB P1.7,BACK0;P1.7为确定键,如按下跳到BACKO AJMP INT0SUB INC0: MOV A,R1

CJNE A,#63H,ADD0;如果不是99,R2加1,如果加到99了,R1就置0,重新加起。

MOV R1,#00H ACALL DELAY1 AJMP INT0SUB ADD0: INC R1

ACALL DELAY1 AJMP INT0SUB DEC0: MOV A,R1

JZ SETR1;如果R1为0, R1就置99, DEC R1 ACALL DELAY1 AJMP INT0SUB

SETR1: MOV R1,#63H

ACALL DELAY1 AJMP INT0SUB

BACK0: RETI

正常抢答处理程序:

TRUE1: ACALL BARK;按键发声

MOV A,R2

- 14 -

MOV R6,A;抢答时间R2送R6 MOV R3,#01H

CLR OK;因为答题的计时不再查询抢答,所以就锁了抢答 AJMP COUNT TRUE2:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#02H CLR OK AJMP COUNT TRUE3:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#03H CLR OK AJMP COUNT TRUE4:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#04H CLR OK AJMP COUNT TRUE5: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#05H CLR OK AJMP COUNT TRUE6: ACALL BARK; MOV A,R2 MOV R6,A

- 15 -

MOV R3,#06H CLR OK AJMP COUNT 犯规抢答程序:

ERROR: MOV R0,#00H

MOV TH1,#3CH MOV TL1,#0B0H

MOV 34H,R3;犯规号数暂存与(34H)

HERE: MOV A,R0

CJNE A,#0AH,FLASH;0.5s向下运行->灭并停响 CLR RING MOV R3,#0AH MOV R4,#0AH

MOV R5,#0AH;三灯全灭 AJMP CHECK1

FLASH: CJNE A,#14H,CHECK1;下面系1s的情况,响并显示号数并

清R0,重新计

SETB RING MOV R0,#00H MOV R3,34H;取回号数 MOV R5,#0BH

MOV R4,#0BH;显示FF和号数 AJMP CHECK1 CHECK1: JNB P1.7,QUIT1 ACALL DISPLAY AJMP HERE QUIT1: CLR RING CLR OK AJMP START 显示程序:

DISPLAY:MOV DPTR,#DAT1;查表显示程序,利用P0口做段选码口输

- 16 -

/P2低三位做位选码输出, MOV A,R5

MOVC A,@A+DPTR MOV P2,#01H MOV P0,A ACALL DELAY MOV DPTR,#DAT2 MOV A,R4

MOVC A,@A+DPTR MOV P2,#02H MOV P0,A ACALL DELAY MOV A,R3

MOVC A,@A+DPTR MOV P2,#04H MOV P0,A ACALL DELAY RET

DAT1:DB 00H,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H ;\灭\灭\

DAT2:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H ;第一个为零,其他与上相同,因为十位如果为零显示熄灭 发声程序

BARK: SETB RING ACALL DELAY1 ACALL DELAY1 CLR RING;按键发声

RET

- 17 -

总结

4.1课程设计的意义

通过课程设计使我进一步熟悉和掌握单片机内部结构和

工作原理,了解单片机应用系统设计的基本方法和步骤通过利用ATC89C51单片机,理解单片机在自动化仪表中的作用以及掌握单片机的编程方法;通过本次设计,掌握单片机仿真软件kill的使用方法;理论联系实践,体现出大学生动手能力。通过查资料和搜集有关的文献,培养了自学能力和动手能力。并且由原先的被动的接受知识转换为主动的寻求知识,这可以说是学习方法上的一个很大的突破。在以往的传统的学习模式下,我们可能会记住很多的书本知识,但是通过毕业论文,我们学会了如何将学到的知识转化为自己的东西,学会了怎么更好的处理知识和实践相结合的问题;同时,还提高了自己的编程和开发小系统的能力;掌握撰写课程设计报告的方法

4.2 本设计的特点

本文研究与设计的八路多功能抢答器采用了通用的电子

元器件,利用AT89C51单片机及外围接口实现抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来

- 18 -

4.3 进一步的工作意义

通过这次设计我也发现自己的很多不足之处。在设计过程

中我发现自己考虑问题很不全面,自己的专业知识掌握的很不牢固,所掌握的计算机应用软件还不够多,我希望自己的这些不足之处能在今后的工作和学习中得到改善。而且,通过这次设计,我懂得了学习的重要性,学会了坚持和努力,这将为以后的学习做出了最好的榜样!

参考文献

[1] 程相波,卫安军.基于MCS-51单片机的八路抢答器设计方法研究[J].北京工业职业技术学院学报,2007,(2).

[2]林凌,李刚,丁茹,李小霞.新型单片机接口器件与技术[M].西安:西安电子科技大学出版社,2005年.

[3]李增生.对《抢答器》的改进[J].电子制作,2000,(12). [4]马轲瀛.八路数字抢答器系统[J].华商,2007,(23).

[5]高伟.AT89单片机原理及应用[M].北京:国防工业出版社,2008年. [6]蔡朝阳.单片机控制实习与专题制作[M].北京:北京航空航天大学出版社,2006年.

[7]杨凌霄.微型计算机原理及应用[M].江苏:中国矿业大学出版社,2004年. [8]丁建伟.抢答器电路设计[J].兰州工业高等专科学校学报,2008,(04). [9] 胡学海.单片机原理及应用系统设计[M].北京:北京电子工业出版社,2005年.

- 19 -

致谢

本设计是在我的讲师曹胜男老师悉心指导下完成的。我衷心感谢曹老师数月来在学业上的精心培养和帮助,使我顺利的完成了毕业设计。曹老师认真求实和严谨治学的作风,忘我的工作态度和崇高的敬业精神,使我受益匪浅,终生难忘。论文完成之际,首先要向曹老师致谢,感谢她对我的关心与培养。

本设计能够顺利的完成,也归功于各位任课老师的认真负责,使我能够很好的掌握和运用专业知识,并在设计中得以体现。正是有了他们的悉心帮助和支持,才使我的毕业论文工作顺利完成,在此向娄底职业技术学院机电工程系乃至全院老师表示由衷的谢意。感谢他们三年来的辛勤栽培。

时光荏苒,转眼间就要离开这个给我留下无限回忆和思念的地方,心中的不舍难以言词。

- 20 -

附录一:原理图

- 21 -

附录二:实物图

- 22 -

附录三:系统程序

如图所示:当接通电源是,数码管显示0如果主持人按下图中主持人的那个开关,数码管显示9,蜂鸣器叫一声。选手可以抢答。如果不抢答,数码管开始倒计时10S。当时间过了一半时蜂鸣器叫一声,提醒选手时间过了一半。当第倒数第2S时又叫一声,再就是10S过完又叫一声,中止抢答。如果选手抢答了,蜂鸣器叫一声,同时数码管显示选手的称号(1,2,3,4)。当第一次抢答完了,再进行第二次时。主持人先按,复位开关。然后按主持人开关,就可以开始了。如此循环下去。

程序如下:

ORG 0000H LJMP MAIN

ORG 0003H; 外部中断0入口 LJMP LOOP0

ORG 0013H; 外部中断1入口 LJMP LOOP1 ORG 0030H

MAIN:SETB IT0; 以下是中断初始化 SETB IT1 SETB EA SETB EX1 CLR EX0 SETB PX0 CLR PX1

MOV P1,#0C0H;让数码管显示0

MOV P2,#0FFH;让P2口做为输入,扩展外部中断,好查循 LP: SJMP LP; 等待主持人中断,及外部中断1 LOOP1:PUSH PSW;入栈 PUSH ACC

LCALL LOOP2; 蜂鸣器叫 NOP

MOV P1,#90H;以下是数码管倒计时 SETB EX0;开外部中断0 CLR EX1;关外部中断1

- 23 -

LCALL D1S MOV P1,#80H LCALL D1S MOV P1,#0F8H LCALL D1S MOV P1,#82H LCALL D1S MOV P1,#92H LCALL D1S LCALL LOOP2;蜂鸣器叫 NOP MOV P1,#99H;数码管倒计时 LCALL D1S MOV P1,#0B0H

LCALL D1S LCALL LOOP2;蜂鸣器叫 NOP

MOV P1,#0A4H;数码管倒计时 LCALL D1S MOV P1,#0F9H LCALL D1S LCALL LOOP2;蜂鸣器叫 NOP MOV P1,#0C0H;倒计时完,数码管显示0 CLR EX0;关外部中断0 LJMP LS

LOOP2:SETB P2.4;蜂鸣器叫的子程序 LCALL D001S CLR P2.4

LCALL D001S SETB P2.4 RET

D1S: MOV R5,#200;延时程序 JMP EL0 D001S:MOV R5,#2 EL0: MOV R7,#10 EL1: MOV R6,#250 EL2: DJNZ R6,EL2 DJNZ R7,EL1 DJNZ R5,EL0 RET LS:NOP POP ACC;出栈 POP PSW

- 24 -

RETI;中断反回 LOOP0:PUSH PSW;入栈 PUSH ACC JNB P2.0,L1;选手1的中断 JNB P2.1,L2;选手2的中断 JNB P2.2,L3;选手3的中断 JNB P2.3,L4;选手4的中断 L5: POP ACC;出栈 POP PSW LCALL D2S

L10:LJMP L10;循环等待复位,准备第2次抢答 RETI;中断反回

L1:LCALL LOOP4;选手1的中断子程序 NOP

MOV P1,#0F9H LJMP L5

L2:LCALL LOOP4;选手2的中断子程序 NOP

MOV P1,#0A4H LJMP L5

L3:LCALL LOOP4;选手3在中断子程序 NOP

MOV P1,#0B0H LJMP L5

L4:LCALL LOOP4;选手4的中断子程序 NOP

MOV P1,#99H LJMP L5 NOP

LOOP4:SETB P2.4;蜂鸣器叫了子程序 LCALL D002S CLR P2.4

LCALL D002S SETB P2.4 RET

D2S:MOV R4,#200;延时程序 JMP L9 D002S:MOV R4,#2 L9: MOV R2,#10 L7: MOV R3,#250 L8: DJNZ R3,L8 DJNZ R2,L7 DJNZ R4,L9 RET

- 25 -

NOP END

上述程序输入keilc51软件的后面的字不要,原因是有的软件只要后面有字就不能编译,编译就通过不了。这是本人多次实验的结果。原因是后面的那个分号有中英文之分,这一点值的注意。

程序流程图:

开始

初始化(包括外部中断0和1的初始化)

中断等待(等待主持人按键)

进入外部中断1

进入外部中断0

进入外部中断1

结束

外部中断1的中断服务程序流程图: 进入外部中断1

数码管倒计时,同时开起外部中断0,关闭外中断1 当数码管在第9,5,3,0的时候,蜂呜器响一下

当数码管倒计时完了的时候,关闭外部中断0 (也即本次抢答无效)

中断返回

- 26 -

外部中断0的中断服务程序流程图:

进入外部中断0

查询P2。0,P2。1,P2。2,P2。3=0?

然后进入相应的服务程序

(也即P2。0=0就让数码管显示1,其于类推)

循环等待(也即等待第二次抢答)

中断返回

注意:在这里,外部中断0的优先级比外部中断1要高。在初始化的时候,只开外部中断1不开外部中断0。

- 27 -

本文来源:https://www.bwwdw.com/article/fx3p.html

Top