路八抢答器单片机本科毕业设计Word格式文档下载.docx
《路八抢答器单片机本科毕业设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《路八抢答器单片机本科毕业设计Word格式文档下载.docx(37页珍藏版)》请在冰豆网上搜索。
在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;
抢答限定时间和回答问题的时间可在1-99s设定;
可以显示是哪位选手有效抢答和无效抢答,正确按键后有音乐提示;
抢答时间和回答问题时间倒记时显示,满时后系统计时自动复位及主控强制复位;
按键锁定,在有效状态下,按键无效非法。
关键字:
单片机、数字管、蜂鸣器
第1章绪论
设计研究的背景及意义:
我国进行单片机项目开发已经有二十多年历史,在此期间所进行的单片机开发项目已由简单到复杂,由小型系统到大型综合系统。
单片机应用也越来越广泛,从开始的工控控制,到现在的航空航天、消防安全、工作数据采集、石油地质勘探、铁路交通运输以及楼宇自动化等,甚至目前的许多家电中都有单片机的应用。
随着计算机技术的发展,单片机技术已经成为计算机技术中的一个独特的分支,单片机的应用领域也越来越广泛,特别是在工业控制和仪表仪器智能化中扮演着举足轻重的角色。
在单片机家族的众多成员中,52系列单片机以其优越的性能、成熟的技术、高可靠性和高性价比,成为国内单片机应用领域内的主流。
各种知识竞赛、文娱活动的广泛开展,使抢答器成了必不可少的电子设备,它为参赛选手提供了公正、客观、快速的裁决,已逐渐发展成为一种成型的电子产品,但市面上所售抢答器价格一般较贵且多为小规模集成电路构成,其性能单一,工作起来不够理想。
本文介绍了一种以STC89C52单片机为核心的智能抢答器,它充分利用了单片机系统的优点,具有结构简单、功能强大、可靠性好、成本较低,实用性强的特点。
第2章系统总体方案设计
2.1设计要求
2.1.1设计任务
具有时间,声,光,提示的数字抢答器的设计
2.1.2基本要求
(1)具有声音提示,LED闪烁提示,或者LED及显示时间。
(2)最小同时提供8名选手比赛,分别有8个按钮。
(3)设置一个抢答开关,该开关由主持人控制。
(4)抢答选手在设定时间抢答功能,且一次抢答时间由主持人设定。
(5)抢答选手在设定时间抢答,抢答定时器停止工作,显示选手的编号和时间并保持到主持人清楚为止。
(6)如设定时间已到无人抢答,本次抢答无效系统报警,禁止抢答。
显示器显示“00”
2.1.3结题形式
(1)撰写并上交一份6000字左右的毕业设计报告(纸质);
(2)上交毕业设计报告、电路原理图和PCB图、程序等电子文件;
(3)制作并上交相应的控制系统作品(硬件);
(4)口试答辩。
2.2系统设计方案与选择
2.2.1方案一设计思路
系统各部分采用中小规模集成数字电路,用机械开关按钮作为控制开关,完成抢答输入信号的触发。
该方案的特点是中小规模集成电路应用技术成熟,性能可靠,能方便地完成选手抢答的基本功能,但是由于系统功能要求较高,所以电路连接集成电路相对较多,而且过于复杂,并且制作过程工序比较烦琐,使用不太方便。
2.2.2方案二的设计思路
采用52系列单片机STC89C52作为控制核心,该系统可以完成运算控制、信号识别以及显示功能的实现。
由于使用单片机作为控制核心,其技术比较成熟,应用起来方便、简单,并且周围的辅助电路也比较少,便于控制和实现。
整个系统具有极其灵活的可编程性,能方便地对系统进行功能的扩展和更改。
2.2.3方案比较
所以通过比较以上两种方案,方案二比方案一简单的多,不但从性能上优于方案一,而且在使用上及其功能的实现上都较方案一简洁,并且由于单片机具有优越的高集成电路性,使其工作速度更快、效率更高。
另外STC89C52单片机可以采用11.0592MHz的晶振,提高了信号的测量精度,并且使该系统可以通过软件改进来扩展功能。
而方案一采用了中小规模集成电路,由于其复杂的电路性能,可能会使信号的输入输出产生延时及不必要的误差。
因此选择方案二比较适合。
2.3系统总体结构图
抢答器电路总体设计方框图如图1所示:
图1抢答器总体设计方框图
2.4系统的工作原理
抢答器的工作原理是利用单片机的定时器T0、T1中断完成,其余状态循环调用显示子程序,用4个共阴极LED数码管来显示,用P0口作为数码管的八个段选,用P2口中的P2.4、P2.5、P2.6、P2.7作为4个数码管的位选,P1口接8个按键,提供选手抢答,P3.0、P3.2、P3.3、P3.4、3.5分别为开始、停止、答题时间调整、抢答时间调整,复位。
抢答功能:
通过八路按键配合程序来实现抢答功能。
当主持人按下抢答键开始抢答后,此时任一路按下按钮均闭锁其它各路,由程序对键盘译码并显示最先按下抢答键的路数及其当前时间。
抢答限时:
主持人按下抢答键后,设置30秒为抢答时间(此时间可在1-99秒之间修改)。
若30秒内无人抢答,倒计时为5时发出报警,说明该抢答题目作废。
此时闭锁所有抢答按键,只有当主持人再次按下抢答键开始下一次抢答方可抢答。
答题限时:
当选手按下按钮时,启动倒计时(此倒计时时间可在1~99秒之间修改),倒计时为5时发出报警,说明答题时间到。
第三章电路的功能单元设计
电路的功能单元设计包括:
单片机最小系统、按键电路、报警电路、显示电路
3.1单片机最小系统
3.1.1系统结构
总线型单片机非总线应用的最小系统示意图如图2所示,只有单片机和时钟电路、复位电路构成的最简单电路,并行总线不用于外围扩展,可作为应用系统的I/O口使用。
图2总线型单片机非总线应用的最小系统
3.1.2系统特点
(1)有大量可使用的I/O口;
(2)没有并行扩展,应用系统结构简单;
(3)外围器件只能通过UART口的串行移位方式或虚拟串行扩展总线进行扩展。
3.1.3STC89C52单片机
STC89C52单片机具有片内E2PROM,是真正的单片机,由于不需要外接EPROM,所以应用非常普遍。
STC89C52的主要工作特性如下:
(1)片内程序存储器内含8KB的Flash程序存储器,可擦写寿命为10000次;
(2)片内数据存储器内含256字节的RAM;
(3)具有32根可编程I/O口线;
(4)具有3个可编程定时器;
(5)中断系统是具有8个中断源、6个中断矢量、2个级优先权的中断结构;
(6)串行口是具有一个全双工的可编程串行通信口;
(7)具有一个数据指针DPTR;
(8)低功耗工作模式有空闲模式和掉电模式;
(9)具有可编程的3级程序锁定位;
(10)单片机STC89C52工作电源电压为5(1+0.2)V,且典型值为5V;
(11)单片机STC89C52最高工作频率为24MHz,单片机正常工作时,都需要有一个时钟电路和一个复位电路。
STC89C52的内部结构图如图3所示:
图3STC89C52内部结构图
52单片机有4个8位并行输入/输出接口:
P0、P1、P2和P3口这四个口既可以并行输入或输出8位数据,又可按位使用,即每一位均能独立做输入或输出用。
图4为各接口的电气结构示意图:
图4P0、P1、P2、P3口的电气结构图
I/O端口的结构
(1)锁存器加引脚的典型结构
52的I/O端口都由内部总线实现操作控制。
P0-P3四个I/O端口都可以用作普通I/O口,因此,要求有输出锁存功能。
内部总线又是分时操作,故每个I/O端口都有相应的锁存器。
然而,I/O端口又是外部的输入/输出通道,必须有相应的引脚,故形成了I/O端口的锁存器加引脚的典型结构。
(2)I/O的复用结构
I/O端口的总线复用。
在使用并行扩展总线时,P0口可做数据总线口和低8位地址总线口,P0口为三态双向口。
P0口输出并行总线的地址/数据信号;
P2口输出高8位地址信号。
I/O端口的功能复用。
P3口为复用的I/O端口,口内有复用输出功能的控制端;
引脚也有复用输入功能的控制端。
P3口的第二功能输入引脚功能表如表1所示:
表1P3口的第二功能输入引脚
端口引脚
第二功能
说明
P3.0
RXD
串行数据接受
P3.1
TXD
串行数据发送
P3.2
外部中断0申请
P3.3
外部中断1申请
P3.4
T0
定时/计数器0输入
P3.5
T1
定时/计数器1输入
P3.6
外部数据存储器写选通
P3.7
外部数据存储器读选通
(3)准双向口结构
P0、P1、P2、P3口作为普通I/O口使用时,都是准双向口结构,准双向口的典型结构如图(5)-b所示,准双向口的输入操作和输出操作本质不同,输入操作是读引脚状态;
输出操作是对口锁存器的写入操作。
由口锁存器和引脚电路可知:
当由内部总线给口锁存器置0或1时,锁存器中的“1”或“0”状态立即反映到引脚上。
但是在输入操作(读引脚)时,如果口锁存器状态为“0”,引脚被钳位在“0”状态,导致无法读出引脚的高电平输入。
I/O端口的应用特性
(1)端口的自动识别。
无论是P0、P2口的总线复用,还是P3口的功能复用,内部资源会自动选择,不需要通过指令的状态选择。
(2)口锁存器的读、改、写操作。
许多涉及到I/O端口的操作,实际上只是设计口锁存器的读出、修改、写入的操作。
这些指令都是一些逻辑运算指令、置位/清除指令、条件转移指令以及将I/O口作为目的地址的操作指令。
(3)P0口作为普通I/O口使用。
当不使用并行扩展总线时,P0、P2口都可以做普通I/O口。
但是P0口为开漏结构,作I/O口时必须外加上拉电阻。
(5)I/O口的驱动特性。
P0口每一个I/O口可输出驱动8个TTL负载。
而P1-P3口只能驱动4个。
3.1.4时钟电路
时钟电路用于产生单片机工作所需要的时钟信号。
设计中采用了比较典型的内部时钟方式,如图5所示:
其工作原理是:
片内高增益反向放大器XTAL1、XTAL2外接作为反馈元件的晶体(呈感性)与电容组成的并联谐振回路构成一个自激振荡器向内部时钟电路提供振荡时钟。
振荡器的频率主要取决于晶体的振荡频率,一般晶体可以在1.2-12MHz之间任选。
电容的大小影响振荡器电路的稳定性和快速性,其值有微调作用,通常取30pF左右。
在设计电路板时,晶振和电容应尽可能的靠近芯片,以减小分布电容,保证振荡器振荡的稳定性。
图5单片机外接晶体的接法
3.1.5复位电路
复位是单片机的初始化操作,其主要功能是将程序计数器PC初始化为0000H,使单片机从0000H单元开始执行程序。
复位操作不影响片内RAM的内容,但是对SFR中的一些寄存器有影响。
图6各种复位电路
单片机的复位是靠外部电路复位的。
其复位方式有上电复位和按键手动复位两种。
复位电路中的电阻、电容数值的设置,是为了保证在RST管脚处至少保持两个机器周期(24个振荡周期)的高电平而完成复位过程的,也就是在斯密特触发器的输入端维持在最低阀值电压以上足够长时间,使斯密特触发器产生一个正脉冲。
电阻值通常为1K,电容值通常为22uF。
图6为几种常见的复位电路接法。
3.2按键电路
3.2.1键盘接口和键输入软件中应解决的几个问题
(1)消除抖动
按键的合断过程存在一个抖动的暂态过程,这种抖动的暂态过程大约经过5-10ms的时间,人的肉眼是察觉不到的,但对于高速的CPU是有反应的,可能产生误处理。
为了保证键动作一次,仅作一次处理,必须采取措施以消除抖动。
本设计中采用了软件消抖的方法。
软件消抖是用延时来躲过暂态抖动过程,执行一段大于10ms的延时程序后,再读取稳定的键状态。
(2)键盘的监测方法
对于计算机应用系统,键盘扫描只是CPU工作的一部分,键盘处理只是在有键按下时才有意义。
对于是否有键按下的信息输入方式有中断方式和查询方式两种。
3.2.2电路接法如图7所示:
图7选手按键电路
3.3报警电路
考虑到实验室现有的元器件,设计中采用了蜂鸣器报警电路,如果有条件还可以采用更高级的语音报警电路,那样更加直观方便。
电路的接法如图8所示:
3
图8蜂鸣器报警电路
工作工程:
蜂鸣器经过PNP三极管接在P3.6口,当P3.6输出为低电平“0”时,PNP三极管端输出为“1”,晶体管导通,蜂鸣器两端获得约+5V的电压而鸣叫;
当P3.6输出为高电平“1”时,三极管截止,蜂鸣器停止鸣叫。
电路中三极管不仅起到了反向作用,还有增大负载能力的作用。
3.4显示电路
显示电路为六位共阳极LED动态显示接口电路如图9所示:
图9数码管显示电路
单个共阳极7段数码的段选码如表3所示:
表27段共阳数码管段选码表
显示字符
1
2
4
5
6
7
8
9
共阳极段选码
c0H
f9H
A4H
B0H
99H
92H
82H
F8H
80H
90H
共阳极LED数码管将发光二极管的阳极(正极)短接后作为公共阴极,当驱动信号为低电平、“+”端接高电平时才能发光。
这样的多位显示,将所有位的选线并联在一起,由一个8位I/O口控制,实现各部分的分时选通。
由于所有位选皆由一个I/O口控制,在每一瞬间6位LED会显示相同的字符。
想要每一位显示不同的字符,就必须采用扫描方法轮流点亮各位LED,即在每一瞬间只使某一位显示字符。
在此瞬间,段选控制I/O口输出相应字型码,而位选则控制I/O口在该显示位送出低电平,以保证该位显示相应字符。
如此轮流,使每一位分时显示该位应显示字符。
其管脚配置及动态显示接口电路如图10所示:
图10共阳极数码管管脚配置及动态显示接口电路
第四章系统软件的设计
众多软件的联合使用对应用系统的设计起到了很重要的作用,在实物制作之前对设计进行仿真,可以检验程序的执行结果是否与设计的功能相同,这样可以对程序进行改进。
在这里用到了KeilC和Proteus,同时在电路制板时用到了ProtelDXP绘制PCB板。
4.1编译软件——KeilC
(1)KeilC的使用
KeilC是众多单片机应用开发软件中优秀的软件之一,它集编辑,编译,仿真等于一体,同时支持汇编和C语言的程序设计,本设计使用它作为C编译器,使用方法如下:
首先建立一个工程,然后将C程序文件添加到工程下链接编译,接着设置生成并输出HEX文件,如果程序编译后有错误就进行调试[11]。
(2)程序设计
完整的程序参见附录。
主流程
主流程图如图11所示:
图11主流程图 图12按键扫描流程
按键扫描流程
每一个按键都对应一个处理子程序,通过对按键扫描进行按键识别。
按键识别的方法包含了行扫描法和反转法。
按键扫描流程图如图12所示,包括了对矩阵键盘和调整时间按键的扫描。
中断流程图
设计采用了外部中断,中断程序流程图如图13所示:
图13中断流程图
4.2仿真软件——Proteus
Proteus是一款常用的仿真软件,和Keil联合使用,对设计的完善起到很大的作用,也对硬件的搭建提供了连线依据。
Proteus的使用相对比较简单,在元件库中找到相应电路所要用到的元件后放置在原理图纸上,然后用导线连接起来就可以了。
在选用元件后,可以在原理图纸上双击某元件,更改它的属性,如电阻的名称、阻值等。
本设计中使用了单片机,需要加载程序文件。
之前已经使用KeilC生成了所需要的HEX文件,直接加载进来就可以了。
这时就可以运行仿真了。
在仿真之前最好再检查一下电路的连接,确认正确之后再运行,以免粗心造成运行结果与设计的不相符合。
设计的仿真原理图如图14所示:
图14电路仿真原理图
4.3制板软件——Protel99SE
PCB电路板的设计流程:
(1)设计原理图
创建一个新项目;
创建一张新的原理图图纸;
查找元件;
在原理图中放置元件;
设置元件属性;
放置电源和接地符号;
绘制原理图。
(2)定义元件封装
原理图设计完成后,元件的封装有可能被遗漏或有错误。
对于用户自己设计的元件或者是某些特殊元件,必须由用户自己定义或修改元件的封装。
(3)设置PCB图纸
可以设定PCB电路板的结构及尺寸,板层数目,通孔的类型,网格的大小等,既可以用系统提供的PCB设计模板进行设计,也可以手动设计PCB板。
(4)生成网表和加载网表
网表是电路原理图和印刷电路板设计的接口,只有将网表引入PCB系统后,才能进行电路板的自动布线。
(5)布线
设置布线规则后,先自动布线,然后手工调整。
在元件很少且布线简单的情况下,也可以直接进行手动布线。
第五章调试及故障分析
5.1程序调试
程序调试:
分步骤进行调试,对每一个子程序进行编译链接后,将整个程序全部编译,生成HEX文件加载到单片机上,进行仿真。
出现错误和警告时要进行分析,解决问题。
仿真分析:
启动(上电)后,显示00—00。
当主持人按键,显示30秒的抢答时间,如有选手抢答,会显示选手号码以及60秒的回答时间,回答时间剩余5秒时,会响提示音。
如果第一位选手不能回答,那么主持人再次按下START键允许其他选手继续抢答,允许其他选手抢答的时间为上一次抢答的剩余时间,答题时间仍是60秒。
如果没有人抢答,抢答倒计时还有5秒的时候会响提示音,抢答时间过后抢答器会自动进入复位状态,可以进行下一轮的抢答。
如果主持人未按START键,有选手按了抢答按键,犯规抢答,显示犯规选手号并闪烁FF,直到主持人复位。
这与预期的效果是一致的。
5.2硬件焊接及故障分析
电子电路是由许多元器件和导线连接而成,每一个元件和导线的好坏,连接的正确可靠与否,都可能产生故障,情况很复杂。
有的是一种原因引起的简单故障,也有的是多种原因引起的复杂故障。
以下是一些常见的故障:
(1)电路组装有错误或连接不牢,致使电路与原理电路不一致。
(2)电路元器件本身特性不良或损坏,特别是芯片的损坏最为常见,其次是电容的击穿、短路以及电阻的阻值与标称值不符。
因此在组装电路前应进行检查和筛选,以防组装完电路后,再查找原因所带来的种种麻烦。
(3)各仪器连线是否正确,是否与电路共地;
仪表使用是否得当。
(4)以上检查无错误时,应考虑电路设计,这也是实验中尤其是在数字电路中常遇到的。
硬件搭建:
按照设计的原理图一步一步完成电路的搭建。
这过程中一定要耐心、细心,否则很容易跳错线。
实物电路搭好以后,仔细对照原理图检查一遍,然后就可以上电检测了。
制作硬件过程中,出现了以下问题经过检查得到了解决:
(1)接上电源后发觉数码管无显示。
经检查后现单片机的29脚悬空未接,应该接在高电平上,这是单片机正常工作的前提。
(2)选手键盘的其中一个不正常工作。
经检查后发现是虚焊。
总结
通过此次的毕业设计,让我更进一步的巩固了单片机的各种知识。
但在设计的过程中,遇到了很多的问题,有一些知识已经不太清楚了,但是通过一些资料又重新的翻阅并且认真的复习了相关教科书中的内容。
此次的毕业设计树立了对自己工作能力的信心,相信会对今后的学习工作生活都有非常重要的影响,而且大大的提高了动手能力,使我充分的体会到了创造过程中的探索的艰难和成功的喜悦。
虽然这次做出的作品还存在很多需要改进的地方,但是在整个设计过程中期间所得到的最大收获,使我终身受益。
不过在此设计期间,还是要感谢我的同班许多同学给予我的帮助,还有感谢学院各位教育过我的老师,你们在这三年期间对我的培养上和教育,使我受益匪浅,我对他们报以崇高的敬意红外感谢。
在论文结束之际,我要感谢指导老师,他的专业知识丰富,治学严谨,而且认真负责,耐心讲解问题,对喔的毕业设计提供了很大的指导和帮助。
在这次毕业设计过程中,在指导老师的严格要求及一些合理性建议。
在此向我的指导老师及主任、祝敏老师这三年对我的培养衷心的感谢!
!
参考文献
[1]模拟电子技术