单片机课程设计八路抢答器.docx
- 文档编号:7411316
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:22
- 大小:65.45KB
单片机课程设计八路抢答器.docx
《单片机课程设计八路抢答器.docx》由会员分享,可在线阅读,更多相关《单片机课程设计八路抢答器.docx(22页珍藏版)》请在冰豆网上搜索。
单片机课程设计八路抢答器
电气学科大类
2012级
单片机原理及应用技术》课程
课程设计
姓名
学
号
专业班号
同组者1
学
号
专业班号
同组者2
学
号
专业班号
日期2015年1月
单片机课程设计
1基本内容介绍3...
2设计任务及要求3..
3方案分析4...
4主要元件介绍6...
5设计特色8...
6程序流程图9...
7源程序介绍1..0.
8心得体会1..6.
9源程序附录1...
单片机课程设计
基本内容介绍
抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。
它能迅速、客观地分辨出最先获得发言权的选手。
抢答器可用机械原理或者电子器件来完成制作,如果用机械原理做,虽然原理简单技术含量不高,但是精确度和耐用性都远远不如电子元件做成的抢答器好,制作成本也会有较大差距,所以现在大多数抢答器均使用单片机和数字集成电路,并增加了许多新的功能,
本设计是以七路抢答为基本理念。
考虑到依需设定限时回答的功能,利用8051单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。
用开关做键盘输出,蜂鸣器发生提示。
同时系统能够实现:
在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为犯规;抢答限定时间可设定;可以显示是哪位选手有效抢答和无效抢答,成功抢答后有声音提示;抢答时间倒记时显示,满时后系统计时自动复位及主控强制复位,重新开始。
二、设计任务与要求
1、抢答器同时供7选手或7代表队比赛,分别用7按钮S1~S7示。
2、设置一个系统清除和抢答控制开关S8开关由主持人控制。
3、抢答器具有锁存与显示功能。
即选手按动按钮,锁存相应的编号,并在LED和码管上显示,同时蜂鸣器发出声响提示。
选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。
4、抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如10秒)。
当主持人启动"开始"键后,同时蜂鸣器发出短暂的声响,定时器进行减计时
单片机课程设计
5、参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。
6、如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,主持人将系统清零重新开始。
三、方案分析
抢答器同时供7名选手或7个代表队比赛,分别用7个按钮S1~S7表示。
设置一个系统清除和抢答控制按扭,该按扭由主持人控制。
抢答器具有锁存与显示功能。
即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时蜂鸣器发出报警声响提示。
选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。
系统设计主要包括硬件和软件两大部分,依据控制系统的工作原理和技术性能,将硬件和软件分开设计。
硬件设计部分包括电路原理图、合理选择元器件,然后对硬件进行调试、测试,以达到设计要求。
软件设计部分,首先在总体设计中完成系统总框图和各模块的功能设计,拟定详细的工作计划;然后进行具体设计,包括各模块的流程图,选择合适的编程语言和工具,进行代码设计等;最后是对软件进行调试、测试,达到所需功能要求。
硬件电路实验箱上已经满足要求,P2.7即为S8,由裁判控制,是抢答开始键。
P2.0-P2.6(即为S1-S7)是7组抢答的输入口,P0口为数据总线和地址总线,通过两个574和一个ULN2003驱动元件分别输出数码管的段选信号和位选信号。
实验箱核心板上P3.2口为蜂鸣器的引脚控制口。
软件设计的方法与开发环境的选取有着直接的关系,本系统由于是采用51系
单片机课程设计
列单片机,因此使用Keil语言进行开发。
此编程工具相比汇编语言具有结构化、适用范围大、可移植性好等特点。
本系统软件设计采用模块化系统设计方法,先编写各个功能模块子程序,然后进行组合与调整,经过调试后,达到设计功能要求。
本系统涉及到的功能子程序包括:
查询程序、非法抢答处理程序、倒计时程序、正常抢答处理程序、犯规抢答程序、显示程序、发声程序、T0溢出中断(计时程序)。
程序具体设计采用T0的溢出中断来实现倒计时定时,用一个两位数码管来显示倒计时,另外用一个一位数码管和一排LED灯来显示选手号。
其中,核心板上的倒计时显示为共阴极接法;并且通过动态显示法(即位选控制)来实现四个LED的同时显示。
下图1-1所示为电路框图。
其工作原理为:
接通电源后,主持人将开关拨到“清除”状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置“开始”状态,宣布“开始”抢答器工作。
定时器倒计时,蜂鸣器给出声响提示。
选手在定时时间内抢答时,抢答器完成:
优先判断、编号锁存、编号显示、蜂鸣器提示。
当一轮抢答之后,定时器停止、其他按键无效,禁止二次抢答,如果再次抢答必须由主持人再次操作"开始、停止"状态开关。
单片机课程设计
图1-1抢答器的原理框图
四、主要元件介绍
1.8051单片机简介
8051系列单片机是国际上流行多年的代表机型,是国内高校教学和初学者入门首选的主流机型,也是在各种技术期刊和专业书籍中出现频率最高的经典机型。
本文以标准80C51为模型,并适当兼顾8051系列的共性和常用型号的特性。
内容主要包括:
硬件架构、ROM、RAM、指令系统、汇编程序基础和汇编语言工具链、并行端口、定时器、中断逻辑、复位逻辑、时钟电路、电源电路等功能电路的结构和工作原理,以及片内程序存储器编程原理。
80C51内含8位CPU;广泛的布尔处理能力:
32根双向且分别可寻址的I/O线;128字节RAM;2个16位定时器/计数器;全双工异步串行口(UART);2个中断优先级;5个中断源;片内有时钟震荡器;4K字节片内ROM程序储存器;可寻址的64K字节外部程序储存空间;可寻址得64K字节外部数据储存空间。
MCS-51单片机特点如下:
<1>.可靠性好:
单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般的CPU,程序指令和数据都可以写在ROM里,许多信号通道都在同一芯片,因此可靠性高,易扩充。
<2>单片机有一般电脑所必须的器件,如三态双向总线,串并行的输入及输出引脚,可扩充为各种规模的微电脑系统。
<3>控制功能强:
单片机指令除了输入输出指令,逻辑判断指令外还有更丰富的条件分支跳跃指令。
<4>单片机具有优越的高集成电路性,使其工作速度更快、效率高。
另外80C51单片机采用12MHz的晶振,提高了信号的测量精度,并且使该系统可以通过软件改进来扩张功能。
单片机课程设计
(1)80C51的时序图时序图如图1-2所示:
图1-280C51的时序图
时序控制电路:
1主持人将控制开关拨到“开始”位置时,蜂鸣器发声,抢答电路和定时电路进入正常抢答工作状态。
2当参赛选手按动抢答键时,蜂鸣器发声,抢答电路和定时电路停止工作。
3当设定的抢答时间到,无人抢答时,蜂鸣器发声,同时抢答电路和定时电路停止工作。
(2)8051引角及其功能
电源端Vcc
接地端GND
脚
时钟信号输入端XTAL2
时钟电路引脚XTAL1复位信号输入端RST地址锁存允许信号端ALE
40脚
20脚
18脚
19脚
9脚,高电平有效
30脚
0C51的引
6分频振荡周期,PSEN29脚
程序存储器允许输出信号端
用于读取外部的程序存储器,每个机器周期中两次
有效。
EA31脚外部程序存储器地址允许输入,接高电平时,执行片内程序存储器
的内容,当PC超过0fffH时,自动变0。
接低电平时,访问外部程序存储器
单片机课程设计
P039~32脚8位准双向I/O,在做输入时,要先向口地址80H写1,此时由内部上拉提成高阻态。
P11~8脚8位准双向I/O
2.数码管
数码管有8个输入接口和一个共阴极端,8个输入端分别接A,B,C,D,E,F,G七个显示管和一个小数点端DP,数码管引脚图如图2-1。
数码管代替二极管,也就是用一位数字的显示来代替两位的二极管,共同完成同样的故障显示功能。
图2-1数码管引脚图
五、设计特色
抢答器是一种应用非常广泛的设备,在各种竞赛、抢答场合中,它能迅速、客观地分辨出最先获得发言权的选手。
早期的抢答器只由几个三极管、可控硅、发光管等组成,能通过发光管的指示辩认出选手号码。
现在大多数抢答器均使用单片机(如MCS-51型)和数字集成电路,并增加了许多新功能,如选手号码显示、抢按前或抢按后的计时、选手得分显示等功能。
本系统涉及到的功能子程序包括:
查询程序、非法抢答处理程序、倒计时程序、正常抢答处理程序、犯规抢答程序、显示程序、发声程序、T0溢出中断(计时程序)。
用开关做键盘输出,蜂鸣器发生提示。
系统达到要求:
在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为犯规;抢答限定时间显示10秒倒计时;可以显示是哪位选手有效抢答和无效抢答,正确按键后有发声提示;抢答时间倒记时显示时间完后系统复位;有选手抢答成功后按键锁定,此状态下其他按键无效。
单片机课程设计
六、程序流程图
9
单片机课程设计
七、源程序介绍
根据流程图中的介绍,本设计的源程序除主程序外,还包括查询程序、非法抢答处理程序、无人抢答程序、倒计时程序、正常抢答处理程序、犯规抢答程序、显示程序、发声程序、T0溢出中断程序。
下面将对下面将对其一一介绍。
完整的源程序参见附录
a)主程序开始之前:
对数据存储单元定义,中断入口,主程序入口
D_DAT0EQU
6AH
D_DAT1EQU
6BH
D_DAT2EQU
6CH
D_DAT3EQU
6DH
D_DAT4EQU
6EH
D_DAT5EQU
6FH
D_DAT6EQU
70H;定义显示数据单元
ORG
0000H
AJMP
START
ORG
000BH;定时器T0入口
AJMP
INTT0
b)主程序:
初始化数码管,等待主持人宣布抢答开始
START:
MOV
SP,#30H
MOV
D_DAT0,#10
MOV
D_DAT1,#10
MOV
D_DAT2,#10
10
单片机课程设计
MOVD_DAT3,#10;熄灭前四个灯
MOVD_DAT4,#1
MOVD_DAT5,#0;初始化显示数据10
MOVR3,#10;倒计时10秒的数暂存于R3
MOVP0,#0
CLRP1.1;初始化有关I/O口
CLRP1.2
MOVR0,#D_DAT0;初始化显示指针寄存器
;R0指向第一位显示数字
MOVR1,#01H;初始化需点亮数码管位置代码
NOP
JNBP2.7,$
c)非法抢答处理程序:
READY:
LCALLDISP
JNBP2.0,ERROR1
JNBP2.1,ERROR2
JNBP2.2,ERROR3
JNBP2.3,ERROR4
JNBP2.4,ERROR5
JNBP2.5,ERROR6
JNBP2.6,ERROR7;判断抢答犯规者,显示号码并响铃
JBP2.7,READY
11
单片机课程设计
LCALLSOUND
;主持人控制抢答是否开始,P2.7先置于1,开始抢答则置于0
AJMPNOERROR
随着查询程序,一开始主持人控制抢答,P2.7为1,抢答未开始,若在查询程序中发现有选手提前抢答,则程序转到非法抢答处理程序开始执行。
比如,检测到选手1犯规,则执行以下语句:
JNBP2.0,ERROR1;
同时,
ERROR1:
MOVD_DAT1,#1
LCALLSOUND
MOVR5,#1
JNBP2.7,ERROR1
AJMPSTART;P2.7置1,重新开始
;转犯规抢答程序
1号若抢答犯规,则会发出警报,同时数码管显示抢答选手的编号,主持人控制重新开始。
d)INT0处理程序(抢答时间程序)
NOERROR:
MOV
TMOD,#11H
MOVTH0,#3CH
MOVTL0,#0B0H;50ms
MOVR2,#20;循环20次
SETBEA
SETBET0
SETBTR0;定时器T0初始化
中断程序:
INTT0:
MOVTH0,#3CH
12
单片机课程设计
MOVTL0,#0B0H
DJNZR2,INTTO_1
MOVR2,#20;20次循环重赋初值
DECR3
MOVD_DAT5,R3
MOVD_DAT4,#0
INTTO_1:
RETI
定时器T0采用方式一,系统主频focs=12MHz,计数初值f12
X216focst2161250000155363CB0H。
中断程序一次循环50ms,进行1212
20次循环,刚好1秒。
e)正常抢答处理程序:
当确定没有选手犯规抢答时,则进入正常抢答环节,判断选手抢答成功与否
MAIN:
LCALLDISP;调用数码管循环点亮子程序
JNBP2.0,SOUND1
JNBP2.1,SOUND2
JNBP2.2,SOUND3
JNBP2.3,SOUND4
JNBP2.4,SOUND5
JNBP2.5,SOUND6
JNBP2.6,SOUND7;判断抢答成功者,停止计时并响铃
MOVR4,D_DAT4
CJNER4,#0,LOOP1
MOVR4,D_DAT5
CJNER4,#0,LOOP1
AJMPNOBODY;无人抢答,停止计时并响铃
13
单片机课程设计
LOOP1:
AJMPMAIN;循环执行主程序
由于程序运行速度很快,误差很小,故可以采用依次查询的方法,对结果几乎
没有影响。
若选手3抢答成功,则进入以下程序
SOUND3:
CLRTR0
MOVD_DAT1,#3
LCALLSOUND
SOUND3_1:
LCALLDISP
JNBP2.7,SOUND3_1
AJMPSTART;P2.7置1,重新开始
抢答成功后,停止计时,数码管显示选手号码。
需要进行下一次抢答时,则只
需要将P2.7置1,此操作将由主持人完成。
同理,可以得到其他选手的处理程序。
详细程序请参见附录源程序中正常抢答处理程序部分。
f)所有选手放弃抢答程序:
NOBODY:
CLRTR0
MOVD_DAT5,#0
LCALLSOUND
NOBODY1:
LCALLDISP
JNBP2.7,NOBODY1
AJMPSTART
放弃抢答的标志是D_DAT4=0,D_DAT5=0,查询到这种情况既跳转到无人抢答处理。
g)显示子程序:
DISP:
MOVA,R1;取位代码
MOVP0,A;位代码送P0口
14
单片机课程设计
SETB
P1.2
NOP
CLR
P1.2
;产生一个锁存脉冲,锁存位代码
MOV
A,@R0;取需显示的数字
MOV
DPTR,#DISPD;装载笔画编码表首地址
MOVC
A,@A+DPTR;取需显示数字笔画代码
MOV
P0,A
;笔画代码送到P0口
SETB
P1.1
NOP
CLR
P1.1
;产生一个锁存脉冲,锁存笔画代码
INC
R0
;R0增1指向下一个需显示数字
MOV
A,R1
CLR
C
RLC
A
MOV
R1,A
;R1中的值左移1位,指向下一位数码管
CJNE
R0,#70H,DISP1;R0中不为70H则继续
MOV
R0,#D_DAT0;R0中为70H,循环完一轮
;重新赋初值
MOV
R1,#1
;位置代码初值
DISP1:
NOP
RET
;数字笔画代码表
;0123456789熄
DISPD:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,0
这里的显示包括对时间和选手号的显示,显示器即为核心板上的数码管,显示
15
单片机课程设计
子程序也就是例子程序,不需要做多大的改动。
h)发声程序
一旦开始键或抢答键按下,或因非法抢答,都需要调用到发声子程序
SOUND:
MOV
R7,#228
MOV
R6,#0FFH
DELAY:
CPL
P3.2
DE1:
DJNZ
R7,DE1
DJNZ
R6,DELAY
利用核心板上的蜂鸣器,可以发出声音,P3.2控制蜂鸣器的发声。
P3.2连续高低电平变化时,可以发出不同频率的声音,由于这里对发声的频率没有什么要求,故随意设置了一个发声频率,发声时间也很短暂。
至此,所有子程序的编写已介绍完毕。
心得
这次课程设计老师给我们安排了两个星期的时间,可以说是比较充裕的。
虽然如此,我还是很用心的做设计,利用了周六周日两天的时间在宿舍思考本次的课程设计,拿到题目,感觉太繁杂了,不知怎么下手,虽然这些知识以前都有接触过,但也只是分部分来接触,而这次的设计是要对前面几次实验的一个综合,真的很难。
也翻阅了一些资料,并自己事先编写好了程序,到了周一去到实验室时候,把自己写的程序烧进去芯片里面,发现不行,那些数字闪动得非常厉害,自己检查了好久好久,但还是发现不了问题,之后问了同学,才知是我把段码搞错了,我用的是共阴位选,但数据表的段码我却用了共阳的段码,所以不能在数码管上正常显示。
通
16
单片机课程设计
过运用单片机设计七路抢答器程设计,发现自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。
在这个过程中,我也曾经因为实践经验的缺乏失落过,也曾经仿真成功而热情高涨。
特别是Proteus仿真软件的使用,不知是由于电脑的问题还是怎么,这个软件的安装就花了我很长的时间,好不容易安装好了,又对软件的使用一点都不熟悉,要从头开始学起,对着我们的芯片原理进行仿真画图,刚刚开始时候真的很难下手,因为是英文版的软件,很多东西都看不太明白,都是通过自己一个个来慢慢琢磨,才把仿真图画了出来,然后把写好的程序导入芯片,进行仿真,当看到程序正常运行的那一刻,心中真是有几分的喜悦。
生活就是这样,汗水预示着结果也见证着收获。
劳动是人类生存生活永恒不变的话题。
虽然这只是一次的较简单的课程制作(七路抢答器),可是平心而论,也耗费了我不少的心血。
通过这次课程设计,我想说:
为完成这次课程设计我们确实很辛苦,但苦中仍有乐,和同学们相互帮助,我感觉我和同学们之间的距离更加近了。
LED亮了起来,蜂鸣器响起的是我一生以来最好听的声音,我们的心中就不免兴奋,不免激动。
以前种种艰辛这时就变成了最甜美的回忆!
这次学习给我留下了深刻的印象,使我受益匪浅。
而且对于论文的总体构思也有了很多经验,相信自己经过这一次的训练与学习,对于今后会更加努力,做得最好。
对我而言,知识上的收获重要,精神上的丰收更加可喜。
让我知道了学无止境的道理。
我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。
挫折是一份财富,经历是一份拥有。
这次课程设计必将成为我人生旅途上一个非常美好的回忆!
17
单片机课程设计
附录
总程序清单
D_
DAT0EQU
6AH
D_
DAT1EQU
6BH
D_
DAT2EQU
6CH
D_
DAT3EQU
6DH
D_
DAT4EQU
6EH
D_
DAT5EQU
6FH
D_
DAT6EQU
70H
;定义显示数据单元
ORG0000H
AJMPSTART
ORG000BH;定时器T0入口
AJMPINTT0
ORG
0030H
START:
MOV
SP,#30H
MOV
D_DAT0,#10
MOV
D_DAT1,#10
MOV
D_DAT2,#10
MOV
D_DAT3,#10;熄灭前四个灯
MOV
D_DAT4,#1
MOV
D_DAT5,#0;初始化显示数据10
MOV
R3,#10;倒计时10秒的数暂存于R3
MOVP0,#0
CLRP1.1;初始化有关I/O口
CLRP1.2
MOVR0,#D_DAT0;初始化显示指针寄存器
18
单片机课程设计
;R0指向第一位显示数字
MOV
R1,#01H;初始化需点亮数码管位置代码
NOP
JNB
P2.7,$
READY:
LCALLDISP
JNB
P2.0,ERROR1
JNB
P2.1,ERROR2
JNB
P2.2,ERROR3
JNB
P2.3,ERROR4
JNB
P2.4,ERROR5
JNB
P2.5,ERROR6
JNB
P2.6,ERROR7;判断抢答犯规者,显示号码并响铃
JB
P2.7,READY
LCALL
开始抢答则置于0
SOUND;主持人控制抢答是否开始,P2.7先置于1,
AJMP
NOERROR
ERROR1:
MOVD_DAT1,#1LCALLSOUNDMOVR5,#1
JNBP2.7,ERROR1
AJMPSTART;P2.7置1,重新开始
ERROR2:
MOVD_DAT1,#2
LCALLSOUND
MOVR5,#2
19
单片机课程设计
JNBP2.7,ERROR2
AJMPSTART;P2.7置1,重新开始
ERROR3:
MOVD_DAT1,#3
LCALLSOUND
MOVR5,#3
JNBP2.7,ERROR3
AJMPSTART;P2.7置1,重新开始
ERROR4:
MOVD_DAT1,#4
LCALLSOUND
MOVR5,#4
JNBP2.7,ERROR4
AJMPSTART;P2.7置1,重新开始
ERROR5:
MOVD_DAT1,#5
LCALLSOUND
MOVR5,#5
JNBP2.7,ERROR5
AJMPSTART;P2.7置1,重新开始
ERROR6:
MOVD_DAT1,#6
LCALLSOUND
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 八路 抢答