单片机课程设计 八路抢答器Word格式.docx

上传人:b****6 文档编号:21628207 上传时间:2023-01-31 格式:DOCX 页数:20 大小:69.82KB
下载 相关 举报
单片机课程设计 八路抢答器Word格式.docx_第1页
第1页 / 共20页
单片机课程设计 八路抢答器Word格式.docx_第2页
第2页 / 共20页
单片机课程设计 八路抢答器Word格式.docx_第3页
第3页 / 共20页
单片机课程设计 八路抢答器Word格式.docx_第4页
第4页 / 共20页
单片机课程设计 八路抢答器Word格式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

单片机课程设计 八路抢答器Word格式.docx

《单片机课程设计 八路抢答器Word格式.docx》由会员分享,可在线阅读,更多相关《单片机课程设计 八路抢答器Word格式.docx(20页珍藏版)》请在冰豆网上搜索。

单片机课程设计 八路抢答器Word格式.docx

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的时序图

时序控制电路:

①主持人将控制开关拨到“开始”位置时,蜂鸣器发声,抢答电路和定时电路进入正常抢答工作状态。

②当参赛选手按动抢答键时,蜂鸣器发声,抢答电路和定时电路停止工作。

③当设定的抢答时间到,无人抢答时,蜂鸣器发声,同时抢答电路和定时电路停止工作。

(2)8051引角及其功能

电源端Vcc40脚

接地端GND20脚图1-480C51的引脚

时钟信号输入端XTAL218脚

时钟电路引脚XTAL119脚

复位信号输入端RST9脚,高电平有效

地址锁存允许信号端ALE30脚,

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型)和数字集成电路,并增加了许多新功能,如选手号码显示、抢按前或抢按后的计时、选手得分显示等功能。

系统达到要求:

抢答限定时间显示10秒倒计时;

可以显示是哪位选手有效抢答和无效抢答,正确按键后有发声提示;

抢答时间倒记时显示时间完后系统复位;

有选手抢答成功后按键锁定,此状态下其他按键无效。

六、程序流程图

七、源程序介绍

根据流程图中的介绍,本设计的源程序除主程序外,还包括查询程序、非法抢答处理程序、无人抢答程序、倒计时程序、正常抢答处理程序、犯规抢答程序、显示程序、发声程序、T0溢出中断程序。

下面将对下面将对其一一介绍。

完整的源程序参见附录

a)主程序开始之前:

对数据存储单元定义,中断入口,主程序入口

D_DAT0EQU6AH

D_DAT1EQU6BH

D_DAT2EQU6CH

D_DAT3EQU6DH

D_DAT4EQU6EH

D_DAT5EQU6FH

D_DAT6EQU70H;

定义显示数据单元

ORG0000H

AJMPSTART

ORG000BH;

定时器T0入口

AJMPINTT0

b)主程序:

初始化数码管,等待主持人宣布抢答开始

START:

MOVSP,#30H

MOVD_DAT0,#10

MOVD_DAT1,#10

MOVD_DAT2,#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

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:

MOVTMOD,#11H

MOVTH0,#3CH

MOVTL0,#0B0H;

50ms

MOVR2,#20;

循环20次

SETBEA

SETBET0

SETBTR0;

定时器T0初始化

中断程序:

INTT0:

MOVTL0,#0B0H

DJNZR2,INTTO_1

MOVR2,#20;

20次循环重赋初值

DECR3

MOVD_DAT5,R3

MOVD_DAT4,#0

INTTO_1:

RETI

定时器T0采用方式一,系统主频

,计数初值

中断程序一次循环50ms,进行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;

无人抢答,停止计时并响铃

LOOP1:

AJMPMAIN;

循环执行主程序

由于程序运行速度很快,误差很小,故可以采用依次查询的方法,对结果几乎没有影响。

若选手3抢答成功,则进入以下程序

SOUND3:

CLRTR0

MOVD_DAT1,#3

SOUND3_1:

JNBP2.7,SOUND3_1

抢答成功后,停止计时,数码管显示选手号码。

需要进行下一次抢答时,则只需要将P2.7置1,此操作将由主持人完成。

同理,可以得到其他选手的处理程序。

详细程序请参见附录源程序中正常抢答处理程序部分。

f)所有选手放弃抢答程序:

NOBODY:

MOVD_DAT5,#0

NOBODY1:

JNBP2.7,NOBODY1

AJMPSTART

放弃抢答的标志是D_DAT4=0,D_DAT5=0,查询到这种情况既跳转到无人抢答处理。

g)显示子程序:

DISP:

MOVA,R1;

取位代码

MOVP0,A;

位代码送P0口

SETBP1.2

CLRP1.2;

产生一个锁存脉冲,锁存位代码

MOVA,@R0;

取需显示的数字

MOVDPTR,#DISPD;

装载笔画编码表首地址

MOVCA,@A+DPTR;

取需显示数字笔画代码

笔画代码送到P0口

SETBP1.1

产生一个锁存脉冲,锁存笔画代码

INCR0;

R0增1指向下一个需显示数字

MOVA,R1

CLRC

RLCA

MOVR1,A;

R1中的值左移1位,指向下一位数码管

CJNER0,#70H,DISP1;

R0中不为70H则继续

MOVR0,#D_DAT0;

R0中为70H,循环完一轮

重新赋初值

MOVR1,#1;

位置代码初值

DISP1:

NOP

RET

;

数字笔画代码表

0123456789熄

DISPD:

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,0

这里的显示包括对时间和选手号的显示,显示器即为核心板上的数码管,显示子程序也就是例子程序,不需要做多大的改动。

h)发声程序

一旦开始键或抢答键按下,或因非法抢答,都需要调用到发声子程序

SOUND:

MOVR7,#228

MOVR6,#0FFH

DELAY:

CPLP3.2

DE1:

DJNZR7,DE1

DJNZR6,DELAY

利用核心板上的蜂鸣器,可以发出声音,P3.2控制蜂鸣器的发声。

P3.2连续高低电平变化时,可以发出不同频率的声音,由于这里对发声的频率没有什么要求,故随意设置了一个发声频率,发声时间也很短暂。

至此,所有子程序的编写已介绍完毕。

心得

这次课程设计老师给我们安排了两个星期的时间,可以说是比较充裕的。

虽然如此,我还是很用心的做设计,利用了周六周日两天的时间在宿舍思考本次的课程设计,拿到题目,感觉太繁杂了,不知怎么下手,虽然这些知识以前都有接触过,但也只是分部分来接触,而这次的设计是要对前面几次实验的一个综合,真的很难。

也翻阅了一些资料,并自己事先编写好了程序,到了周一去到实验室时候,把自己写的程序烧进去芯片里面,发现不行,那些数字闪动得非常厉害,自己检查了好久好久,但还是发现不了问题,之后问了同学,才知是我把段码搞错了,我用的是共阴位选,但数据表的段码我却用了共阳的段码,所以不能在数码管上正常显示。

通过运用单片机设计七路抢答器程设计,发现自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。

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

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

生活就是这样,汗水预示着结果也见证着收获。

劳动是人类生存生活永恒不变的话题。

虽然这只是一次的较简单的课程制作(七路抢答器),可是平心而论,也耗费了我不少的心血。

通过这次课程设计,我想说:

为完成这次课程设计我们确实很辛苦,但苦中仍有乐,和同学们相互帮助,我感觉我和同学们之间的距离更加近了。

LED亮了起来,蜂鸣器响起的是我一生以来最好听的声音,我们的心中就不免兴奋,不免激动。

以前种种艰辛这时就变成了最甜美的回忆!

这次学习给我留下了深刻的印象,使我受益匪浅。

而且对于论文的总体构思也有了很多经验,相信自己经过这一次的训练与学习,对于今后会更加努力,做得最好。

对我而言,知识上的收获重要,精神上的丰收更加可喜。

让我知道了学无止境的道理。

我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。

挫折是一份财富,经历是一份拥有。

这次课程设计必将成为我人生旅途上一个非常美好的回忆!

附录

总程序清单

ORG0030H

MOVR5,#1

ERROR2:

MOVD_DAT1,#2

MOVR5,#2

JNBP2.7,ERROR2

ERROR3:

MOVR5,#3

JNBP2.7,ERROR3

ERROR4:

MOVD_DAT1,#4

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 书信模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1