单片机课程设计方案抢答器(路抢答器)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录
1引言1
2 功能概述1
2.1抢答器工作原理1
2.2设计目的与要求1
2.3设计任务1
2.4运行环境及工具2
3 系统硬件设计2
3.1芯片的选择2
3.2原理及电路总框图2
3.3晶振复位及开始抢答电路3
3.4选手抢答键3
3.5显示与显示驱动电路4
3.6蜂鸣器音频输出电路4
4系统软件设计5
4.1系统主程序设计5
4.2系统流程图6
4.3程序清单7
5系统仿真结果14
5.1开始抢答仿真14
5.2抢答犯规仿真15
5.3抢答成功仿真16
6课程设计的总结与体会17
参考文献资料17
1 引言
当今的社会竞争日益激烈,选拔人才,评选优胜,知识竞赛之类的活动愈加频繁,那么也就必然离不开抢答器。

而现在的抢答器有着数字化,智能化的方向发展,这就必然提高了抢答器的成本。

鉴于现在小规模的知识竞赛越来越多,操作简
单,经济实用的小型抢答器必将大有市场。

本抢答器与其他抢答器电路相比较有分辨时间极短、结构清晰,成本低、制作方便等优点,并且还有防作弊功能。

因此,我们制作了这款简易多路<十六路)数字抢答器摒弃了成本高、体积大、操作复杂。

我们采用了数字显示器直接指示,自动锁存显示结果,因而本抢答器具有显示直观,操作简单的特点。

而且在显示时抢答器会发出蜂鸣声使效果更为生动。

工厂、学校和电视台等单位常举办各种智力竞赛, 抢答记分器是必要设备。

2 功能概述
2.1抢答器工作原理
抢答器的工作原理是采用单片机最小系统,用查询式键盘进行抢答。

采用动态显示组号。

主持人按下开始抢答键才可以抢答。

主持人没有按下开始抢答按纽<P3.2),有人抢答则抢答违规,报警并显示组号,主持人按下开始抢答开关重新抢答。

主持人按下开始抢答按纽<P3.2),蜂鸣响声提示,且数码管10秒倒计时<10秒内抢答有效),有人在10秒抢答,蜂鸣器响声提示并显示他的组号,3秒开始20秒倒计时<20秒内必须回答完问题)。

20秒后主持人按下复位开关为下一题的抢答做准备。

单片机最小系统、抢答按键模块<四位并行数码显示、4*4矩阵式键盘)、显示模块、显示驱动模块、抢答开关模块、蜂鸣器音频输出模块。

2.2设计目的与要求
(1>熟悉电路,理解各个元件之间的控制流程。

(2>熟悉PROTEUS及WA V6000平台的运行环境。

(3>熟练掌握汇编语言,调用中断子程序和对端口进行读写数据的操作。

(4>理解掌握抢答器的原理及电路设计
2.3设计任务
(1>多路数字抢答器的硬件和软件设计
(2>分析电路图
(3>画出程序流程图
(4>编写代码
(5>程序分析与调试
2.4运行环境及工具
(1>WINDOWSXP系统
(2>PROTUES软件
(3>汇编编译环境、汇编语言
3系统硬件设计
3.1芯片的选择
本设计使用到的元器件包括:AT89C51芯片、数码LED显示器、七段LED数码管的译码。

其中AT89C51是系统的核心,它主要负责控制各个部分的协调工作。

在其外围接上复位电路,上拉电阻,数码管,按钮以及振荡器,p1.0-p1.7为抢答输入键接口,数码管段选P0口,位选P2口,蜂鸣器输出为P3.0口。

3.2原理及电路总框图
图4.5 抢答器总原理图
3.3 晶振复位及开始抢答电路
晶振的频率为12MHZ,提供89C51的时钟脉冲使89C51工作,复位电路是单片机初始化,使单片机重新开始执行程序。

当复位开关按下RST由低电平变为高电平,则程序从头开始执行,在此次课程设计电路中当一个问题结束主持人后按下复位开关后进行下一题的准备。

图3.3晶振复位及开始抢答电路
3.4选手抢答键<矩阵式键盘)
89C51的P1口做一个4*4的行列式键盘。

P1.0至P1.3轮流输出低电平在软件查询P1.4至P1.7的电平变化来输入组号。

给每一个选手编号1至16,当选手按下按钮时,电平变化从P1口输入,经单片机处理后从P0输出由数码管显示抢答者编号。

图3.4选手抢答电路
3.5显示与显示驱动电路
此电路包括显示和驱动,显示采用数码管,驱动用三极管PNP。

数码管要显示抢答违规者编号、抢答10秒倒计时、正常抢答者编号和回答问题时间20秒倒计时,数码管采用动态显示。

驱动电路PNP发射极接+5V电压,当基极为低电平是集
电极
为高电平则能驱动数码管使其显示数字。

因为PNP是模拟器件而数码管为数字器件,PNP的集电极如果不接一个较大的电阻显示就会出问题。

所以在PNP的集电极接了一个10千欧的电阻。

图4.3 显示与显示驱动电路
3.6蜂鸣器音频输出电路
蜂鸣器音频输出电路的功能是用来报警,当遇到报警信号时,发出蜂鸣声,以此来提醒操作者。

本电路通过控制不同频率的矩形脉冲来控制蜂鸣器发声。

此次课程设计中只需要一些简单的提示声音,如有抢答违规,开始抢答,抢答时间结束和回答问题时间到的提示声音。

本课程设计从P3.0口输出一个矩形脉冲来控制驱动器PNP集电极的高低电平时间来控制蜂鸣器的声音。

图3.6 蜂鸣器音频输出电路图
4系统软件设计
4.1系统主程序设计
为了能够达到抢答的公平、公正、合理,应该在主持人发布抢答命令之前必须先设定抢答的时间,因而在编开始抢答前的程序得先编写设定时间的程序,当时间设好了之后,主持人按开始键发布抢答命令,若在主持人未按开始键之前,有选手提前答题,则为违规抢答,蜂鸣器会发出警告声,并在显示器上显示犯规的选手编号。

当有选手抢答成功,则程序打开定时中断开始倒计时,然后调用键盘扫描子程序,编写键盘扫描程序,其他选手在此之后按键无效。

当在扫描到有人按下了抢答键,马上关闭T0、调用显示程序、封锁键盘。

4.2系统流程图
4.2.1硬件复位流程图
图4.2.1 硬件复位流程图4.2.2系统程序流程图
图4.2.2系统程序流程图
4.2.3显示抢答违规流程图
图4.2.3显示抢答违规流程图4.2.4抢答成功流程图图
图4.24抢答成功流程图
4.3 程序清单
ORG 0000H
LJMP MAIN
ORG 0013H
LJMP ESS1
ORG 0100H
MAIN:SETB EA
SETB EX1
SETB IT1 。

外部中断1初始化 L16:MOV P1,#0FFH
MOV R2,#00H
CLR P1.0
INC R2
JB P1.4,L0
LCALL DE0
L0:INC R2
JB P1.5,L1
LCALL DE0
L1:INC R2
JB P1.6,L2
LCALL DE0
L2:INC R2
JB P1.7,L3
LCALL DE0
L3:SETB P1.0
CLR P1.1
INC R2
JB P1.4,L4
LCALL DE0
L4:INC R2
JB P1.5,L5
LCALL DE0
L5:INC R2
JB P1.6,L6
LCALL DE0
L6:INC R2
JB P1.7,L7
LCALL DE0
L7:SETB P1.1
CLR P1.2
INC R2
JB P1.4,L8
LCALL DE0
L8:INC R2
JB P1.5,L9
LCALL DE0
L9:INC R2
JB P1.6,L10
LCALL DE0
L10:INC R2
JB P1.7,L11
LCALL DE0
L11:SETB P1.2
CLR P1.3
INC R2
JB P1.4,L12
LCALL DE0
L12:INC R2
JB P1.5,L13
LCALL DE0
L13:INC R2
JB P1.6,L14
LCALL DE0
L14:INC R2
JB P1.7,L15
LCALL DE0
L15:LJMP L16 。

读行列式键盘
ESS1:MOV 70H,#30D 。

外部中断1
MOV R7,#0CH
CLR P3.0
S2:LCALL DELAY
DJNZ 70H,S2
SETB P3.0 。

蜂鸣器提示开始抢答 MOV TMOD,#00010000B
MOV R3,#0AH
L20:MOV 55H,#14H
L19:MOV TH0,#3CH
MOV TL0,#0B0H 。

定时器1初始化 SETB TR1 。

启动定时器1
MOV A,R3
MOV B,#0AH
DIV AB
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV 53H,A
CLR P2.4
MOV P0,53H
LCALL DELAY1
SETB P2.4
MOV A,B
MOVC A,@A+DPTR
MOV 54H,A
CLR P2.5
MOV P0,54H
LCALL DELAY1
L18:JNB TF1,L18
CLR TF1
DJNZ 55H,L19
DEC R3
CJNE R7,#00H,D6
LJMP D5
D6:CJNE R3,#0FFH,L21
LJMP L22
L21:LJMP L20 。

抢答倒计时
L22:MOV 73H,#02D
S5:MOV 70H,#20D
MOV 71H,#20H
CLR P3.0
S4:LCALL DELAY
DJNZ 70H,S4
SETB P3.0
S6:LCALL DELAY
DJNZ 71H,S6
DJNZ 73H,S5 。

抢答倒计时时间到声音提示
D5:RETI
DE0:MOV DPTR,#TAB 。

抢答违规报警并显示抢答违规组号 MOV A,R2
MOV B,#0A
S10:MOV 72H,#20D
MOV 73H,#10D
CLR P3.0
S8:LCALL LCC
DJNZ 72H,S8
SETB P3.0
S9:LCALL LCC
DJNZ 73H,S9
DJNZ 71H,S10
L17:LCALL LCC
LJMP L17
LCC:CLR P2.4
MOV P0,50H
LCALL DELAY
DELAY1:MOV P1,#0FFH 。

正常抢答读键
MOV R4,#250D
W17:MOV R2,#00H
CLR P1.0
INC R2
LCALL DE1 W0:INC R2
JB P1.5,W1 LCALL DE1 W1:INC R2
JB P1.6,W2 LCALL DE1 W2:INC R2
JB P1.7,W3 LCALL DE1 W3:SETB P1.0 CLR P1.1
INC R2
JB P1.4,W4 LCALL DE1 W4:INC R2
JB P1.5,W5 LCALL DE1 W5:INC R2
JB P1.6,W6 LCALL DE1 W6:INC R2
JB P1.7,W7 LCALL DE1 W7:SETB P1.1 CLR P1.2
INC R2
JB P1.4,W8 LCALL DE1 W8:INC R2
JB P1.5,W9 LCALL DE1 W9:INC R2
JB P1.6,W10 LCALL DE1 W10:INC R2
JB P1.7,W11 LCALL DE1 W11:SETB P1.2 CLR P1.3
INC R2
JB P1.4,W12 LCALL DE1
W12:INC R2
JB P1.5,W13
LCALL DE1
W13:INC R2
JB P1.6,W14
LCALL DE1
W14:INC R2
JB P1.7,W15
LCALL DE1
W15:DJNZ R4,W16
LJMP W18
W16:LJMP W17
W18:RET
DE1:MOV P1,#0FFH 。

抢答成功声音提示及回答问题时间20秒倒计时 MOV 70H,#20D
CLR P3.0
S3:LCALL DELAY
DJNZ 70H,S3
SETB P3.0
SETB P2.0
SETB P2.1
MOV DPTR,#TAB
MOV A,R2
MOV B,#0AH
DIV AB
MOVC A,@A+DPTR
MOV 56H,A
MOV A,B
MOVC A,@A+DPTR
MOV 57H,A
MOV TMOD,#00000001B
MOV R5,#16H
L32:MOV R6,#14H
L31:MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
CLR P2.4
MOV P0,56H
LCALL DELAY
SETB P2.4
CLR P2.5
MOV P0,57H
LCALL DELAY
SETB P2.5
CJNE R5,#14H,L34
LJMP L35
L34: JC L35
LJMP L30
L35: MOV A,R5
MOV B,#0AH
DIV AB
MOVC A,@A+DPTR
MOV 58H,A
MOV A,B
MOVC A,@A+DPTR
MOV 59H,A
CLR P2.6
MOV P0,58H
LCALL DELAY
SETB P2.6
CLR P2.7
MOV P0,59H
LCALL DELAY
SETB P2.7
L30:JNB TF0,L30
CLR TF0
DJNZ R6,L31
DEC R5
CJNE R5,#0FFH,L32
MOV P1,#0FFH
MOV 70H,#50D
CLR P3.0
S7:LCALL DELAY
DJNZ 70H,S7
SETB P3.0
MOV P2,#0FFH
MOV R3,#00H
MOV R7,#00H
RET
DELAY:MOV 51H,#10D 。

延时子程序
D0:MOV 52H,#248D
D1:DJNZ 52H,D1
DJNZ 51H,D0
RET
TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END
5系统仿真结果
5.1开始抢答仿真
主持人按开始按钮后,进入抢答10秒倒计时。

图5.1.110秒抢答倒计时开始
图5.1.210秒抢答倒计时结束5.2抢答犯规仿真
若在主持人还未按开始按钮时,就抢答则为抢答犯规。

仿真为4号犯规。

图5.2.1 未开始状态
图5.2.2 4号选手犯规抢答
5.3抢答成功仿真
主持人按开始按钮后,10秒内抢答则为成功抢答。

仿真为15号选手成功抢答,抢答后进入20秒倒计时答题时间。

图5.3.1 10秒抢答倒计时开始
图5.3.2 15号选手成功抢答
6 课程设计的总结与体会
通过本次课程设计使我对proteus仿真软件的使用和汇编语言有了更进一步的了解和掌握。

在最初编写过程中,我也曾经因为实践经验的缺乏失落过,也曾经因仿真成功而热情高涨。

特别是Proteus仿真软件的使用,不知是由于电脑的问题还是怎么,这个软件的安装就花了我很长的时间,好不容易安装好了,又对软件的使用一点都不熟悉,要从头开始学起,对着老师发给我们的芯片原理进行仿真画图,刚刚开始时候真的很难下手,因为是英文版的软件,很多东西都看不太明白,都是通过自己一个个来慢慢琢磨,才把仿真图画了出来,然后把写好的程序导入芯片,进行仿真,当看到程序正常运行的那一刻,心中真是有几分的喜悦。

虽然这只是一次的较简单的课程设计,可是平心而论,也耗费了我不少的心血。

我想说:为完成这次课程设计我们确实很辛苦,但苦中仍有乐,和同学们相互帮助,当LED亮了起来,喇叭响了起来是对我这段日子以来最好的告慰。

而且对于论文的总体构思也有了很多经验,相信自己经过这一次的训练与学习,对于今后的毕业论文会有更多帮助。

这次课程设计让我充分理解了89C51芯片的工作原理,知道了抢答器的硬件和软件的实现过程,并且通过自己动手编写程序来控制抢答器的工作,我感到非常有成就感,也锻炼了我的编程能力。

在刚开始编程的时候,我感到很茫然,不知道怎么样下手,但是通过自己的仔细的分析和老师的细心的指导,在认真分析了原来已有的代码后,和应有的硬件后,经过多次调试和测试终于成功了。

在此我非常要感谢的是我的指导老师刘伟春老师,感谢老师的细心认真的辅导,教给我许多原来不知道的知识。

这次课程设计能够顺利的完成,当然有我个人的努力,但同时也离不开指导老师的答疑解惑和同学的帮助。

参考文献资料
[1]李泉溪. 《单片机原理与应用实例仿真》.北京航天航空大学出版社 2009年
[2] 江世明. 《基于Proteus的单片机应用技术》. 电子工业出版社 2008年
[3] 喻宗泉. 《单片机原理与应用技术》.西安电子科技大学出版社 2005年
[4] 万光毅. 《单片机实验与实践教程》. 北京航天航空大学出版社 2003年
[5] 张俊谟. 《单片机初级教程》.北京航天航空大学出版社 2000年。

相关文档
最新文档