单片机电子抢答器课程设计
- 格式:doc
- 大小:5.01 MB
- 文档页数:36
第1章课题概述1.1 课题设计要求本课题要求用单片机设计一个多功能抢答器,有三人进行抢答和一个主持人进行控制,并且具有抢答倒计时和答题倒计时,倒计时均可修改时间。
具体要求如下:主持人的操作面板上有复位键﹑开始键﹑设置抢答时间键﹑设置答题时间键;另外,还有三个人抢答的三个按键及三人抢答状态的信号灯,复位﹑开始的状态灯,显示器及蜂鸣器。
本系统的设计包括硬件设计及程序设计。
当系统刚启动或者按下系统的总复位键时,甲乙丙三人的6个状态灯全亮,复位灯及开始灯全暗。
此时系统只响应支持人操作面板上的复位按钮,当复位按钮被按下,复位指示灯亮,其余灯全暗。
此时甲乙丙若有人抢答,则记为犯规,对应的犯规指示灯亮并由蜂鸣器报警,本轮抢答不再响应此人。
支持人再按下开始按钮允许抢答,开始指示灯亮,复位指示灯暗,抢答倒计时开始由显示器显示,系统响应甲乙丙中不犯规的第一个按下按钮的人,抢答成功后,对应的成功指示灯亮,开始答题,并显示答题倒计时;若没有人抢答,则倒计时结束后等待复位信号。
1.2 课题设计的目的及意义在很多的知识竞答的比赛中常常用到抢答器,为了准确﹑公正﹑直观地判断第一个抢答者,需用可靠的电子产品来进行设计,单片机就能胜任该任务。
本次的设计让我们能对单片机在现实生活中的密切关系有更深刻的认识,及感受到单片机的强大可扩展性及可塑性。
第2章总体设计方案2.1 总体思路要设计一个比一般数字抢答器更加实用,更加先进的抢答器才能满足现今的市场要求。
可以采用单片机的I/O进行分配,分别进行信号的采集和处理信号的输出,利用单片的时钟进行倒计时的设计。
将要实现的功能分成很多小部分,各个击破。
2. 2 抢答器课题概述和主要功能针对本次课题抢答器,只是单片机具体应用的冰山一角。
但通过本次课题的锻炼依然能让我们被单片机的灵活性深深震撼。
本次设计的抢答器的主要功能如下:(1)抢答功能:可以精确无误地分辨哪位选手首先按下按钮。
只要主持人按下开始键,即可开始抢答。
(2)报警功能:到主持人还未按下开始按钮,选手就开始抢答,则该选手犯规,蜂鸣器响。
(3)倒计时功能:在选手答题有时间限制,在规定的时间里选手没有回答完毕,则选手答题失败。
(4)修改倒计时功能:可以对倒计时进行修改。
(5)最多可以有三个人进行抢答。
2.3 总体设计框图2.3.1软件总体设计框图2.3.2 硬件总体设计框图图2-2硬件总体设计框图2.4 系统工作原理2.4.1 硬件实现原理用P1口作为状态显示,即连接8个状态灯。
8个状态灯分别为:开始指示灯﹑复位指示灯﹑甲抢答成功指示灯﹑甲抢答犯规指示灯﹑乙抢答成功指示灯﹑乙抢答犯规指示灯﹑丙抢答成功指示灯﹑丙抢答犯规指示灯。
用P3口与矩阵式按钮相连做为控制信号的输入。
共有九个按钮,分别为:复位按钮﹑开始按钮﹑设置抢答时间按钮﹑设置答题时间按钮﹑设置时间加按钮﹑设置时间减按钮﹑甲抢答按钮﹑乙抢答按钮﹑丙抢答按钮。
P0口用来作为显示器的现实代码。
用P2口的高四位输出显示器的选通信号。
蜂鸣器接至P3.7,用P3.7的低电平驱动蜂鸣器,使其发出警报。
2.4.2 软件实现原理该系统以单片机为中心,通过外部的信号的采集,经过内部CPU信号处理,再送至控制端实现抢答器的抢答-响应过程。
可将整个系统分为开始﹑复位功能模块﹑键盘扫描模块﹑抢答功能模块﹑倒计时显示模块、抢答犯规报警模块、设置倒计时模块。
当系统启动,首先进行一些数据的初始化。
然后进入键盘扫描模块,扫描到某个按钮被按下,则转移到对应的子程序里去执行相应的命令。
在没有按钮被按下的情况下,系统就一直在键盘扫描模块循环。
在未进入开始模块时,有选手抢答,则进入抢答犯规报警模块,报警完毕后接着扫描按钮。
扫面到开始按钮被按下,则进入开始模块,抢答模块。
此后,甲乙丙有人先按下按钮则抢答成功,进入倒计时显示模块,同时对键盘进行扫描。
此间,设置按钮被按下,则进入设置功能模块,一轮抢答结束,进入下一轮的强大。
若设置按钮没有被按下,则当倒计时显示时间为零时,进入键盘扫描模块,等待设置键被按下。
4039383736353433323130292122232425262728STC89C52第3章 系统硬件设计3.1 单片机的选择根据初步的设计方案的分析,设置一个这样简单的应用系统,可以选择带有EPROM 的单片机,应用程序直接储存在片内,不用再外部扩展程序存储器,电路可以简化。
INTEL 公司的和8751芯片均可选用。
其他一些MCS-51相兼容的芯片,如ATMEL 公司生产的××系列单片机。
采用MCS-51相比有两大优势:(1) 使程序的写入更加方便。
(2) 受青睐。
本设计我们采用了MCS-51 8051他具有程序加密功能且物美价廉,经济实用。
图3-1 8051的管脚配置3.2 单片机的端口分配3.3 时钟电路和复位电路的设计MCS-51单片机内部有一个用于构成震荡器的高增益发相放大器,管脚XTAL1和XTAL2分别是反相器的输入端和输出端。
接一个晶振和两个电容就构成了单片机的时钟电路。
电路中的两个电容具有微调频率的作用,通常取(30±10)pF。
石英晶振可选6MHZ和12MHZ。
单片机的RST管脚为主机提供了一个外部复位信号输入端口。
复位信号高电平有效,高电平有效的持续时间为2个机器周期以上。
3.4 LED显示电路的设计显示器已普遍用于直观地显示数字系统的运行状态和工作数据。
显示器件按显示形式有:分段式﹑点阵式﹑光柱式显示器。
由于本课题只需显示倒计时,比较简单,因此应选用LED发光二极管4位七段数码显示器。
显示器显示接口按驱动方式可分成静态显示和动态显示。
其中静态显示的特点是显示稳定不闪烁,程序编写简单,但占用端口资源多;动态显示的特点是显示稳定性没静态好,程序编写复杂,但是相对静态显示而言占用端口资源少。
在本设计中根据实际情况采用的是动态显示方法。
4位七段数码管显示电路如图3-3所示。
3.5 LED指示灯电路设计表(2)指示灯作用分配表根据作用分配,使用了8个LED指示灯,在每个LED的前面加了一个电阻,形成电流保护。
根据要求设计了指示灯电路图:3.6 按钮电路的设计系统共有9个按键,分别定义为:(1) 开始键(允许抢答开始键):为B11,功能是当按下时,允许抢答。
(2) 复位键(恢复系统状态):为B12,功能是当按下时,系统恢复到初始状态,等待下一次开始。
(3) 设置抢答倒计时键:为B13,功能是按下时,抢答倒计时时间设置允许。
(4) 设置答题倒计时键:为B21,功能是按下时,答题倒计时时间设置允许。
(5) 时间加一键:为B22,功能是短按下时,时间加一秒;长按下时,时间连续加直到键释放。
(6) 时间减一键:为B23,功能是短按下时,时间减一秒;长按下时,时间连续减直到键释放。
(7) 甲抢答键:为B31,功能是当按下时产生甲方的抢答信号。
(8) 乙抢答键:为B32,功能是当按下时产生乙方的抢答信号。
(9) 丙抢答键:为B33,功能是当按下时产生丙方的抢答信号。
P3.63.7 蜂鸣器电路的设计当选手抢答犯规时,系统要求产生警报信号,可以选择一个蜂鸣器来实现这一功能。
压电式蜂鸣器(H)工作时需要10mA的驱动电流,并设计一个相应的驱动及控制电路。
蜂鸣器电路与单片机的接口:VT的基极到P3口的P3.7管脚,P3.7作为输出口实用。
具体的蜂鸣器电路的设计电路如图3-5:P3.7第4章系统软件设计4.1 系统软件设计方案的确定可以把系统软件按照其功能分为7个模块,每个模块间通过一定的联系程序形成一个完整的系统程序。
图4-1 模块方案图软件任务分析时,应将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义(输入输出定义)。
在各执行模块进行定义时,将要牵扯到的数据结构和数据类型问题也一并规划好。
使用模块的设计方法可以时编程时思路更加清楚,阅读程序时更加有条理,也更易于调试修改。
4.2 软件系统内存空间分配表(3)内存空间分配表4.3 系统应用程序设计4.3.1 主程序的设计由于MCS-51单片机复位以后,(PC)=0000H,而0003H~002BH分别是个中断源的入口地址。
所以0000H处加上跳转指令。
系统一启动就,就显示甲乙丙的指示灯全部都亮,这就是系统的初始状态。
初始命令执行后,则查询键盘B11(即复位键)是否被按下。
当复位键被按下复位灯亮,其他灯全暗。
接下来查询是否有键再次按下,若有键被按下,先判断是哪个键被按下。
在还没有按下开始键之前,甲乙丙任何一方抢答则犯规,响应的犯规灯的输出信号置零。
当开始键被按下时,抢答允许,输出低电平给开始指示灯,并转到键盘扫描模块,在键盘扫描模块里再调用显示子程序。
4.3.2 键盘扫描子程序的设计在单片机应用系统中常常是键盘和显示器同时存在,因此可以把键盘扫描程序和显示程序配合起来使用,既把显示程序作为键盘扫描的延时子程序,实现软件去抖动。
这样做既省去了一个专门的延时子程序,又能保图4-3 键盘扫描子程序流程图4.3.3 字型码的定义由于系统LED显示器使用的是共阳极的现实器,而显示器不能直接识别十进制,所以要事先将与十进制相对应的字型码建表保存。
有了十进制对应的字型码,就能实现十进制通过编译然后再LED显示器上显示,准确无误。
字形码程序清单如下:DIRTAB: DB 0C0H,0F9H,0A4H,0B0HDB 99H,92H,82H,0F8HDB 80H,98H第5章系统调试和运行系统的调试和运行,先将编好的程序经过编译生成目标HEX文件,然后下载到单片机中进行调试。
(1)系统启动后,甲乙丙六个状态灯全亮。
复位﹑开始指示灯不亮。
如图5-1图5-1 系统启动调试图(2)按下复位按钮,甲乙丙六个状态全暗,复位灯亮。
如图5-2:图5-2 按下复位按钮的效果(3)按下甲乙丙三个按钮中的一个,相应选手的犯规指示灯亮,并且系统蜂鸣器报警。
如图5-3:图5-3 甲犯规调试图(4)按下开始键,开始按钮亮,抢答倒计时开始计时。
如图5-4图5-4 开始抢答调试图(5)倒计时未到零之前,按下甲乙丙中没有犯规的一个,响应的抢答成功指示灯亮,答题倒计时开始计时。
如图5-5:图5-5 甲抢答成功调试图(6)复位后,按下设置倒计时时间键,LED显示倒计时总时间并闪烁,短按加一键,时间加一显示,长按加一键,时间连续加一显示;短按减一键,时间减一显示,长按减一键,时间连续减一显示。
再按下设置倒计时时间键,返回。
如图5-6:图5-6 设置倒计时时间调试图(7)任何时候,按下复位键,LED显示“8888”,只有复位指示灯亮其他全暗。
如图5-7:图5-7 设置按下整体效果图经过认真调试与修改,所要求达到的功能已经全部实现。