ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:69.82KB ,
资源ID:21628207      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21628207.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机课程设计 八路抢答器Word格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、4、抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如10秒)。当主持人启动开始键后,同时蜂鸣器发出短暂的声响,定时器进行减计时。5、参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。6、如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,主持人将系统清零重新开始。三、方案分析 抢答器同时供7名选手或7个代表队比赛,分别用7个按钮S1S7表示。设置一个系统清除和抢答控制按扭,该按扭由主持人控制。抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时蜂鸣器发出报警声响提示。系

2、统设计主要包括硬件和软件两大部分,依据控制系统的工作原理和技术性能,将硬件和软件分开设计。硬件设计部分包括电路原理图、合理选择元器件,然后对硬件进行调试、测试,以达到设计要求。软件设计部分,首先在总体设计中完成系统总框图和各模块的功能设计,拟定详细的工作计划;然后进行具体设计,包括各模块的流程图,选择合适的编程语言和工具,进行代码设计等;最后是对软件进行调试、测试,达到所需功能要求。硬件电路实验箱上已经满足要求, P2.7即为S8,由裁判控制,是抢答开始键。P2.0-P2.6(即为S1-S7)是7组抢答的输入口,P0口为数据总线和地址总线,通过两个574和一个ULN2003驱动元件分别输出数码

3、管的段选信号和位选信号。实验箱核心板上P3.2口为蜂鸣器的引脚控制口。软件设计的方法与开发环境的选取有着直接的关系,本系统由于是采用51系列单片机,因此使用Keil 语言进行开发。此编程工具相比汇编语言具有结构化、适用范围大、可移植性好等特点。本系统软件设计采用模块化系统设计方法,先编写各个功能模块子程序,然后进行组合与调整,经过调试后,达到设计功能要求。本系统涉及到的功能子程序包括:查询程序、非法抢答处理程序、倒计时程序、正常抢答处理程序、犯规抢答程序、显示程序、发声程序、T0溢出中断(计时程序)。程序具体设计采用T0的溢出中断来实现倒计时定时,用一个两位数码管来显示倒计时,另外用一个一位数

4、码管和一排LED灯来显示选手号。其中,核心板上的倒计时显示为共阴极接法;并且通过动态显示法(即位选控制)来实现四个LED的同时显示。下图1-1所示为电路框图。其工作原理为:接通电源后,主持人将开关拨到“清除”状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置“开始”状态,宣布“开始”抢答器工作。定时器倒计时,蜂鸣器给出声响提示。选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、蜂鸣器提示。当一轮抢答之后,定时器停止、其他按键无效,禁止二次抢答,如果再次抢答必须由主持人再次操作开始、停止状态开关。图1-1 抢答器的原理框图四、主要元件介绍1.8051单片

5、机简介8051系列单片机是国际上流行多年的代表机型,是国内高校教学和初学者入门首选的主流机型,也是在各种技术期刊和专业书籍中出现频率最高的经典机型。本文以标准80C51为模型,并适当兼顾8051系列的共性和常用型号的特性。内容主要包括:硬件架构、ROM、RAM、指令系统、汇编程序基础和汇编语言工具链、并行端口、定时器、中断逻辑、复位逻辑、时钟电路、电源电路等功能电路的结构和工作原理,以及片内程序存储器编程原理。80C51内含8位CPU;广泛的布尔处理能力:32根双向且分别可寻址的I/O线;128字节RAM;2个16位定时器/计数器;全双工异步串行口(UART);2个中断优先级;5个中断源;片内

6、有时钟震荡器;4K字节片内ROM程序储存器;可寻址的64K字节外部程序储存空间;可寻址得64K字节外部数据储存空间。MCS-51单片机特点如下: .可靠性好:单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般的CPU,程序指令和数据都可以写在ROM里,许多信号通道都在同一芯片,因此可靠性高,易扩充。单片机有一般电脑所必须的器件,如三态双向总线,串并行的输入及输出引脚,可扩充为各种规模的微电脑系统。3 控制功能强:单片机指令除了输入输出指令,逻辑判断指令外还有更丰富的条件分支跳跃指令。4单片机具有优越的高集成电路性,使其工作速度更快、效率高。另外80C51单片机采用12MHz的晶振,提高了信号

7、的测量精度,并且使该系统可以通过软件改进来扩张功能。(1)80C51的时序图 时序图如图1-2所示:图1-2 80C51的时序图时序控制电路:主持人将控制开关拨到“开始”位置时,蜂鸣器发声,抢答电路和定时电路进入正常抢答工作状态。当参赛选手按动抢答键时,蜂鸣器发声,抢答电路和定时电路停止工作。当设定的抢答时间到,无人抢答时,蜂鸣器发声,同时抢答电路和定时电路停止工作。(2)8051引角及其功能电源端Vcc 40脚 接地端GND 20脚 图1-4 80C51的引脚时钟信号输入端 XTAL2 18脚时钟电路引脚 XTAL1 19脚 复位信号输入端RST 9脚 ,高电平有效 地址锁存允许信号端ALE

8、 30脚 ,6分频振荡周期, PSEN 29脚 程序存储器允许输出信号端 用于读取外部的程序存储器,每个机器周期中两次有效。EA 31脚 外部程序存储器地址允许输入,接高电平时,执行片内程序存储器的内容,当PC超过0fffH时,自动变0。接低电平时,访问外部程序存储器。P0 3932脚 8位准双向I/O,在做输入时,要先向口地址80H写1,此时由内部上拉提成高阻态。P1 18脚 8位准双向I/O2.数码管数码管有8个输入接口和一个共阴极端,8个输入端分别接A,B,C,D,E,F,G七个显示管和一个小数点端DP,数码管引脚图如图2-1。数码管代替二极管,也就是用一位数字的显示来代替两位的二极管,

9、共同完成同样的故障显示功能。图2-1 数码管引脚图五、 设计特色抢答器是一种应用非常广泛的设备,在各种竞赛、抢答场合中,它能迅速、客观地分辨出最先获得发言权的选手。早期的抢答器只由几个三极管、可控硅、发光管等组成,能通过发光管的指示辩认出选手号码。现在大多数抢答器均使用单片机(如MCS-51型)和数字集成电路,并增加了许多新功能,如选手号码显示、抢按前或抢按后的计时、选手得分显示等功能。系统达到要求:抢答限定时间显示10秒倒计时;可以显示是哪位选手有效抢答和无效抢答,正确按键后有发声提示;抢答时间倒记时显示时间完后系统复位;有选手抢答成功后按键锁定,此状态下其他按键无效。六、 程序流程图七、源

10、程序介绍根据流程图中的介绍,本设计的源程序除主程序外,还包括查询程序、非法抢答处理程序、无人抢答程序、倒计时程序、正常抢答处理程序、犯规抢答程序、显示程序、发声程序、T0溢出中断程序。下面将对下面将对其一一介绍。完整的源程序参见附录a)主程序开始之前:对数据存储单元定义,中断入口,主程序入口D_DAT0 EQU 6AHD_DAT1 EQU 6BHD_DAT2 EQU 6CHD_DAT3 EQU 6DHD_DAT4 EQU 6EHD_DAT5 EQU 6FH D_DAT6 EQU 70H ;定义显示数据单元 ORG 0000H AJMP START ORG 000BH ;定时器T0入口 AJMP

11、 INTT0 b)主程序:初始化数码管,等待主持人宣布抢答开始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 MOV P0,#0 CLR P1.1 ;初始化有关I/O口 CLR P1.2 MOV R0,#D_DAT0 ;初始化显示指针寄存器 ;R0指向第一位显示数字 MOV R1,#01H ;初始化需点亮数码管位置代码 NOP JNB P2

12、.7,$c) 非法抢答处理程序:READY: LCALL DISP 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 SOUND ;主持人控制抢答是否开始,P2.7先置于1,开始抢答则置于0 AJMP NOERROR 随着查询程序,一开始主持人控制抢答,P2.7为1,抢答未开始,若在查询程序中发现有选手提前抢答,则程序转到非法抢答处理程序开始执行。比

13、如,检测到选手1犯规,则执行以下语句:JNB P2.0,ERROR1;同时,ERROR1: MOV D_DAT1,#1 LCALL SOUND MOV R5,#1 JNB P2.7,ERROR1 AJMP START ;P2.7置1,重新开始 ;转犯规抢答程序1号若抢答犯规,则会发出警报,同时数码管显示抢答选手的编号,主持人控制重新开始 。d) INT0处理程序(抢答时间程序)NOERROR: MOV TMOD,#11H MOV TH0,#3CH MOV TL0,#0B0H ;50ms MOV R2,#20 ;循环20次 SETB EA SETB ET0 SETB TR0 ;定时器T0初始化中

14、断程序:INTT0: MOV TL0,#0B0H DJNZ R2,INTTO_1 MOV R2,#20 ;20次循环重赋初值 DEC R3 MOV D_DAT5,R3 MOV D_DAT4,#0INTTO_1: RETI定时器T0采用方式一,系统主频,计数初值。中断程序一次循环50ms,进行20次循环,刚好1秒。e)正常抢答处理程序:当确定没有选手犯规抢答时,则进入正常抢答环节,判断选手抢答成功与否MAIN: LCALL DISP ;调用数码管循环点亮子程序 JNB P2.0,SOUND1 JNB P2.1,SOUND2 JNB P2.2,SOUND3 JNB P2.3,SOUND4 JNB

15、P2.4,SOUND5 JNB P2.5,SOUND6 JNB P2.6,SOUND7 ;判断抢答成功者,停止计时并响铃 MOV R4,D_DAT4 CJNE R4,#0,LOOP1 MOV R4,D_DAT5 CJNE R4,#0,LOOP1 AJMP NOBODY ;无人抢答,停止计时并响铃LOOP1: AJMP MAIN ;循环执行主程序由于程序运行速度很快,误差很小,故可以采用依次查询的方法,对结果几乎没有影响。若选手3抢答成功,则进入以下程序SOUND3: CLR TR0 MOV D_DAT1,#3SOUND3_1: JNB P2.7,SOUND3_1 抢答成功后,停止计时,数码管显

16、示选手号码。需要进行下一次抢答时,则只需要将P2.7置1,此操作将由主持人完成。同理,可以得到其他选手的处理程序。详细程序请参见附录源程序中正常抢答处理程序部分。f) 所有选手放弃抢答程序:NOBODY: MOV D_DAT5,#0NOBODY1: JNB P2.7 ,NOBODY1 AJMP START放弃抢答的标志是D_DAT4=0,D_DAT5=0,查询到这种情况既跳转到无人抢答处理。g) 显示子程序:DISP: MOV A,R1 ;取位代码 MOV P0,A ;位代码送P0口 SETB P1.2 CLR P1.2 ;产生一个锁存脉冲,锁存位代码 MOV A,R0 ;取需显示的数字 MO

17、V DPTR,#DISPD ;装载笔画编码表首地址 MOVC A,A+DPTR ;取需显示数字笔画代码笔画代码送到P0口 SETB 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;数字笔画代码表 0 1 2 3 4 5 6 7 8 9 熄DISPD: DB 3FH

18、,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH, 0这里的显示包括对时间和选手号的显示,显示器即为核心板上的数码管,显示子程序也就是例子程序,不需要做多大的改动。h) 发声程序 一旦开始键或抢答键按下,或因非法抢答,都需要调用到发声子程序SOUND: MOV R7,#228 MOV R6,#0FFHDELAY: CPL P3.2DE1: DJNZ R7,DE1 DJNZ R6,DELAY利用核心板上的蜂鸣器,可以发出声音,P3.2控制蜂鸣器的发声。P3.2连续高低电平变化时,可以发出不同频率的声音,由于这里对发声的频率没有什么要求,故随意设置了一个发声频率,发声时间也

19、很短暂。至此,所有子程序的编写已介绍完毕。心得这次课程设计老师给我们安排了两个星期的时间,可以说是比较充裕的。虽然如此,我还是很用心的做设计,利用了周六周日两天的时间在宿舍思考本次的课程设计,拿到题目,感觉太繁杂了,不知怎么下手,虽然这些知识以前都有接触过,但也只是分部分来接触,而这次的设计是要对前面几次实验的一个综合,真的很难。也翻阅了一些资料,并自己事先编写好了程序,到了周一去到实验室时候,把自己写的程序烧进去芯片里面,发现不行,那些数字闪动得非常厉害,自己检查了好久好久,但还是发现不了问题,之后问了同学,才知是我把段码搞错了,我用的是共阴位选,但数据表的段码我却用了共阳的段码,所以不能在

20、数码管上正常显示。通过运用单片机设计七路抢答器程设计,发现自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。在这个过程中,我也曾经因为实践经验的缺乏失落过,也曾经仿真成功而热情高涨。特别是Proteus仿真软件的使用,不知是由于电脑的问题还是怎么,这个软件的安装就花了我很长的时间,好不容易安装好了,又对软件的使用一点都不熟悉,要从头开始学起,对着我们的芯片原理进行仿真画图,刚刚开始时候真的很难下手,因为是英文版的软件,很多东西都看不太明白,都是通过自己一个个来慢慢琢磨,才把仿真图画了出来,然后把写好的程序导入芯片,进行仿真,当看到程序正常运行的

21、那一刻,心中真是有几分的喜悦。生活就是这样,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变的话题。虽然这只是一次的较简单的课程制作(七路抢答器),可是平心而论,也耗费了我不少的心血。通过这次课程设计,我想说:为完成这次课程设计我们确实很辛苦,但苦中仍有乐,和同学们相互帮助,我感觉我和同学们之间的距离更加近了。LED亮了起来,蜂鸣器响起的是我一生以来最好听的声音,我们的心中就不免兴奋,不免激动。以前种种艰辛这时就变成了最甜美的回忆!这次学习给我留下了深刻的印象,使我受益匪浅。而且对于论文的总体构思也有了很多经验,相信自己经过这一次的训练与学习,对于今后会更加努力,做得最好。对我而言,知识上的收获重要,精神上的丰收更加可喜。让我知道了学无止境的道理。我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。挫折是一份财富,经历是一份拥有。这次课程设计必将成为我人生旅途上一个非常美好的回忆!附录总程序清单 ORG 0030H MOV R5,#1 ERROR2: MOV D_DAT1,#2 MOV R5,#2 JNB P2.7,ERROR2 ERROR3: MOV R5,#3 JNB P2.7,ERROR3 ERROR4: MOV D_DAT1,#4

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

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