抢答器-单片机课程设计说明书

上传人:lisu****2020 文档编号:121140723 上传时间:2022-07-18 格式:DOC 页数:18 大小:210KB
收藏 版权申诉 举报 下载
抢答器-单片机课程设计说明书_第1页
第1页 / 共18页
抢答器-单片机课程设计说明书_第2页
第2页 / 共18页
抢答器-单片机课程设计说明书_第3页
第3页 / 共18页
资源描述:

《抢答器-单片机课程设计说明书》由会员分享,可在线阅读,更多相关《抢答器-单片机课程设计说明书(18页珍藏版)》请在装配图网上搜索。

1、摘 要 抢答器是一种常见的电子产品,尤其是在各类智力竞猜中,为了实现选手的公平性,性能优良的抢答器往往更能得到各单位的青睐。这里选定了用单片机实现抢答器电路。由于单片机具有可编程定时器和中断设备,便于实现编程和时间的精确控制。所用方案电路结构简单,易于实现,它用1个七段数码管和8个LED指示灯来显示,且具有简单精准的报警电路。所选方案的一个很重要的特点在于具有灵活性,主持人可以随意开始进行抢答,这样进一步保证了公平性。由于它具有成本低廉,结构简单,且性能优良的诸多优点,必定会得到广泛的应用。关键词:抢答器 ,单片机 ,七段数码管,LED指示灯1 设计内容及要求 1.1 设计题目 抢答计分显示器

2、设计1.2 主要内容 1设计一个智力竞赛抢答器,可同时供8名选手或8个代表队参加比赛,他们的编号分别是1、2、3、4、5、6、7、8,各用一个抢答按钮,按钮的编号与选手的编号相对应,分别是K1、K2、K3、K4、K5、K6、K7、K8。2给节目主持人设置两个控制开关,用来控制系统的清零(编号显示数码管灭灯)和抢答的开始。3抢答器具有数据锁存和显示的功能。抢答开始后,若有选手按动抢答按钮,编号立即锁存,并在LED数码管上显示出选手的编号,同时蜂鸣器给出音响提示。此外,要封锁输入电路,禁止其他选手抢答。优先抢答选手的编号一直保持到主持人将系统清零为止。4用中小规模集成电路组成智力竞赛抢答器电路,画

3、出各单元电路图和总体逻辑框图,正确描述各单元功能,合理选用电路器件,画出完整的电路设计图以及写出设计总结报告。2 电路原理图的设计 2.1 抢答计分显示器的电路原理图硬件总体电路原理图如下所示,其中包括LED数码管显示模块,蜂鸣器报警模块,时间模块,键盘模块和存储模块等,包括晶振电路复位电路和电源电路。 图2.1电路原理图2.2 LED数码管显示模块七位数码管数码管是一类价格便宜 使用简单,通过对其不同的管脚输入相对的电流,使其发亮,从而显示出数字能够显示 时间、日期、温度等所有可用数字表示的参数的器件。每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码

4、器译码进行驱动。优点是编程简单,显示亮度高,缺点是占用I/O端口多。该模块的驱动电路原理图为: 图2.2 数码管原理图2.3 LED指示灯模块 LED发光二极管由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结附近数微米内分别与N区的电子和P区的空穴复合,产生自发辐射的荧光。发光二极管的特点是:工作电压很低(有的仅一点几伏);工作电流很小(有的仅零点几毫安即可发光);抗冲击和抗震性能好,可靠性高,寿命长;通过调制通过的电流强弱可以方便地调制发光的强弱。本实验中用上拉电阻的方式,当单片机的I/O端口处于低电平是LED灯发光,

5、电路原理图为: 图2.3 LED原理图2.4 键盘模块每个按键各接一根输入线,一根输入线上的按键工作状态不会影响其他输入线上的工作状态。软件设计采用查询方式和外部中断相结合的方法来设计,低电平有效。按键直接与AT98C51的I/O口线相连接,通过读I/O口的电平状态,即可识别出按下的按键。电路原理如图2.4。 图2.4 键盘驱动原理图2.5 单片机最小系统单片机最小系统由复位模块和晶振模块及组成,单片机复杂电路的实现方式都是在最小系统的基础上完成实现的。复位电路:由电容串联电阻构成,由图并结合电容电压不能突变的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电

6、路的RC值来决定。晶振电路:典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的uS级时歇,方便定时操作)。最小系统的电路原图: 图2.5 复位和晶振原理图3 软件系统设计3.1 软件系统的流程结构样类型的键盘,在本实验中正是采用这种方法的。 抢答计分显示器的软件主要包括LED灯显示,键盘的扫描,按键自锁,七段LED数码管的显示,蜂鸣器报警等模块组成。其流程结构框图如图3.1所示:单片机抢答模块(八路输入)控制模块(主持人操作)LED显示模块(选手号)语音提示模块 图3.1 设计框图通过主持人的相关操作(包括开始、

7、复位),以及选手的抢答,显示模块与语音模块应能迅速做出正确回应。如主持人按下开始,语音模块立刻给以语音提示,当有选手抢答,显示模块应马上显示最先抢答的选手号,都有赖于本设计的核心模块51单片机来控制。通过一系列的c语言程序来控制和实现相应的逻辑功能。3.2 键盘扫描和按键自锁程序模块开始 扫描检测是否有按键按下 选手按键按下后自锁,主持人按键控制答题 图3.2 按键框图按键采用最简单的编码方式就是根据I/O输入口所直接反映的相应按键,按下的状态进行编码,称按键直接状态码,对于这样编码的独立式键盘,CPU可以通过直接读取I/O口的状态来获取按键的直接状态编码值,根据这个值直接进行按键识别,这样形

8、式的键盘结构简单,按键识别容易。独立式键盘的缺点是需要占用比较多的I/O口线,当单片机应用系统键盘中需要的按键比较少或I/O口线比较富余时,可以采用这3.3 数码管显示和LED程序开始 选手号在数码管中显示出来他对应的LED灯点亮答题开始,复位数码管归零LED闪亮结束进入显示子程序先把选手的号码显示数码管,然后是选手开始答题,答题结束后由主持人安复位按键,回到初始状态,如果主持人没有按下开始按键就有选手按下抢答按键视为犯规,此时违规灯亮。选手必选在主持人说开始按下开始按键之后开能开始抢答,选手按下抢答健的时候数码管和他对应的LED灯亮,当有一名选手首先按下按键后其他选手在按抢答健无效。主持人按

9、下复位按键后,数码管归零LED灯闪亮。4 仿真及调试4.1 抢答器仿真原理图抢答器电路原理框图如图4.1所示,其中右上部分是1个七段数码管,作为显示输出部分,左下部分为LED灯,除了K1-K8是选手控制按钮,其余按钮式主持人控制系统。 图4.1 抢答器仿真原理图4.2 仿真软件介绍1) Proteus软件简介Proteus组合了高级原理布图、混合模式SPICE仿真,PCB设计以及自动布线来实现一个完整的电子设计系统。 ISIS是Proteus系统的中心,它远不仅是一个图表库。它是具有控制原理图画图的外观设计环境 。Proteus软件是一种低投资的电子设计自动化软件,提供可仿真数字和模拟、交流和

10、直流等数千种元器件和多达30多个元件库。Proteus软件提供多种现实存在的虚拟仪器仪表。此外,Proteus还提供图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗,尽可能减少仪器对测量结果的影响,Proteus软件提供丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。提供Schematic Drawing、SPICE仿真与PCB设计功能,同时可以仿真单片机和周边设备,可以仿真51系列、AVR、PIC等常用的MCU,并提供周边设备的仿真,例如373、led、示波器等。Proteus提供了大量

11、的元件库,有RAM、ROM、键盘、马达、LED、LCD、AD/DA、部分SPI器件、部分IIC器件,编译方面支持Keil和MPLAB等编译器。 一台计算机、一套电子仿真软件,在加上一本虚拟实验教程,就可相当于一个设备先进的实验室。以虚代实、以软代硬,就建立一个完善的虚拟实验室。在计算机上学习电工基础,模拟电路、数字电路、单片机应用系统等课程,并进行电路设计、仿真、调试等。2)基本操作步骤1打开PROTEUS 操作界面。2选择“P”,从元件库中提取需要的元器件(选中双击),选择完点OK。3在编辑区画电路图,修改元件参数。4进行电路仿真。5 保存文件。3)使用Proteus软件的便利。1培养学习者

12、实验设计能力,并降低科研投入,不担心烧坏设备和元器件。2支持创新性设计。3培养团队合作能力。4提高实验质量,扩展学习者的思路和提高学习者的学习兴趣。4.3 仿真测试效果图 当主持人没有按下开始按键而选手就开始抢答时,选手犯规,此时违规灯亮,仿真图如图4.3.1: 图4.3.1 违规仿真图主持人按下开始按键后,选手对应的LED灯开始闪烁,选手此时可以开始答题,当选手按下按键后数码管显示选手号,对应选手的LED灯亮,仿真效果如图4.3.2: 图4.3.2 抢答状态仿真图总 结这次课程设计老师给我们安排了两个星期的时间,可以说是比较充裕的。虽然如此,我还是很用心的做设计程序,刚拿到题目,感觉并不是太

13、难,而我们这组的题目在所有的同学当中是比较简单的,应该还是比较幸运吧。可是是真正做起来的时候还是遇到了很多难题,电路原理图的画法我在图书馆和网上查阅完相关资料后很快就画出来了,可是在编写程序的时候就遇到了不少的难题,我不断到图书馆翻阅了很多资料,可是还是有很多问题没有解决,于是也在网上参考一些个程序,然后自己事先编写好了程序,可是当把自己的程序在仿真软件中运行的时候发现不行,得不到我想要的效果。通过不断的检查才知是我把程序的有一个地方写的是无限循环,在执行过程中程序不断的重复运行,不能跳出循环。我在网上查找了很多相应的程序的解决方法,在通过自己不断调试,不断修改之后,才能够在仿真的过程中完成要

14、求,并且在老师的要求上做了一点小改动,也算比较完美吧。最后在程序仿真可以运行的时候,别提有多高兴了,通过自己的努力不断的失败过后,获得的成功真的让我很高兴。通过这次的课程设计这次课程设计对于提高我们的素质和科学实验能力非常有益,为以后从事电子电路方面的设计,研制电子产品打下基础。但在通过运用单片机设计八路抢答器程设计,发现自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。参 考 文 献1、黄惟公单片机原理与应用技术:西安电子科大出版社20072、张毅刚MC-51单片机应用设计(二版):哈工大出版社 20053、李广第单片机基础北京:北京航天航空

15、大学出版社 4、杨文龙单片微机原理及应用西安电子科技出版社 5、周航慈单片机程序设计基础北京:北京航天航空大学出版社 6、胡汉才单片机原理及其接口技术北京:清华大学出版社致 谢首先我要感谢我的指导老师张恕远教授,他为我们创造了良好舒适的实验室环境,形成了良好的学习氛围,指导我正确的学习方法,在此谨表达深深的谢意!在设计的进行过程中,还得到了机械工程与自动化学院张恕远教授、李老师、的热心指导和帮助,帮我排除了很多困难,在此表示衷心的感谢!还要非常感谢我的同学,我们同宿舍的罗海明、潘晓松、吴程程等许多好朋友,他们给了我很多帮助!附录A 巡检器主程序/*程序名称:巡检器主程序功能: 对信息钮、时间进

16、行读取;完成菜单的显示、信息的查询;说明: 用于Proteus仿真,经实验完成与实际实验板兼容,只是信息未存24c256作者: 李西华*/#include #define uint unsigned intsbit fan=P37;sbit fu=P31;sbit buzz=P33;uint button1; /对应P3口,按键uint button2;uint led = 0xff;/枚举类型:记录抢答器工作状态enum Stat Idle = 0, /空闲状态,比如正在读题 Ready = 1, /就绪状态,可以抢答 Respond = 2, /响应状态,有人抢到了stat;/延时void

17、 delay(unsigned char i)unsigned char m,n;for(m=i;m0;m-)for(n=125;n0;n-);void display(unsigned char n) if(n=0xff) P0=0x3f; else if(n=0xfe) P0=0x06; else if(n=0xfd) P0=0x5b; else if(n=0xfb)P0=0x4f; else if(n=0xf7)P0=0x66; else if(n=0xef)P0=0x6d; else if(n=0xdf)P0=0x7d; else if(n=0xbf)P0=0x07; else if(

18、n=0x7f)P0=0x7f;void main() /buzz=1; uint led = 0xff; /对应P1口,指示灯 uint button1; /对应P3口,按键uint button2; uint isFoul = 0; /是否犯规/buzz=1; while(1) /设置状态指示灯,用于调试,实际应用中可以去掉 if(stat = Idle) P3 = (16); else if(stat = Ready) P3= (32); else if(stat = Respond) P3 = (64); else stat = 0; /读按键 button1 = P2;button2

19、= P3; /P3.2复位键按下 if(button2 & 2) = 0) led = 0xff; stat = Idle; isFoul = 0; /P3.1开始键按下 if(button2 & 1) = 0) stat = Ready; /P3抢答键按下 if(button1 & 0xff) != 0xff) if(stat = Idle) isFoul = 1; /提前抢,犯规 if(stat != Respond) /正常抢答 led = (button1 & 0xff); stat = Respond;buzz=0;delay(500);buzz=1; else if(button1 & 0xff) = 0xff)if(stat=Ready)P1=0xfe;delay(2000);P1=0xfd;delay(2000);P1=0xfb;delay(2000);P1=0xf7;delay(2000);P1=0xef;delay(2000);P1=0xdf;delay(2000);P1=0xbf;delay(2000);P1=0x7f;delay(2000); if(isFoul) fan=0; /犯规则点亮 P1 = led;display(led); 附录B 抢答器原理图

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!