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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

带时间限制及声光提示的抢答器设计报告.docx

1、带时间限制及声光提示的抢答器设计报告电子线路课程设计(2) 论文(设计)题目: 带时间及声光提示的抢答器的设计 系 别: 物理与电子工程系 专 业: 电子信息工程 年 级: 2007级 学生姓名: 梅人中 指导教师: 彭建盛 时 间: 2010年6月20日 目 录摘 要 2关键词 2一、设计任务与要求 2二、方案设计与论证 3 2.1 总体方案设计 32.1.1方案一32.1.2方案二4 2.2 各个模块方案设计 4 2.2.1 核心控制器4 2.2.2 按键模块 5 2.2.3数码显示模块 5 三、硬件单元电路设计与参数计算 5 3.1单片机控制电路5 3.2按键电路 63.3声光提示电路6

2、3.4数码显示电路 73.5 有关参数的算 7四、软件设计与流程图8五、总原电路及元器件清单9 5.1总原理图9 5.2.PCB制板图 11 5.3整体电路仿真图以及仿真结果分析12 5.4元件清单13六、安装与调试13七、性能测试与分析14八、结论与心得14九、参考文献14十、致谢15十一、程序清单15带时间及声光提示的抢答器的设计摘要:本系统是基于AT89S52单片机带时间和声光提示的抢答器,它由控制核心AT89S52单片机、选手按键、主持人按键、声光提示和LED数码显示等部分组成。选手按键和主持人按键均由独立按键构成,采用扫描方式工作;声光提示部分由无源蜂鸣器提供声音提示,光提示由发光二

3、极管提供。LED数码显示部分则是由普通发光二极管构成的数码管。关键词:AT89S52单片机 按键 无源蜂鸣器 发光二极管一、 设计任务与要求(1) 设计一个智力竞赛抢答器,可同时供8名选手或8个代表队参加比赛,编号为1、2、3、4、5、6、7、8,各用一个按钮。(2) 给节目主持人设置5个控制开关,用来控制系统的清零和抢答的开始及各种时间的调节控制。(3) 抢答器具有数据锁存功能、显示功能和声光提示功能。(4) 主持人可以通过两个时间调节键来调节抢答限制时间和答题时间限制时间。需在主持人按下抢答开始后方可开始,且各个环节有相应的时间限制。(5) 显示部分用LED组成的模拟数码管来显示数字。二、

4、 方案设计与论证 2.1 总体方案设计2.1.1方案一:基于逻辑数字电路抢答器的设计定时抢答器的总体框图如下图2.1所示,它由主体电路和扩展两部分组成。主体电路完成基本的抢答功能,即开始抢答后,当选手按动抢答键时,能显示选手的编号,同时能封锁输入电路,禁止其他选手抢答。扩展电路完成定时抢答的功能。图2.1.1 方案一结构图 系统各部分采用中小规模集成数字电路,用机械开关按钮作为控制开关,完成抢答输入信号的触发。该方案的特点是中小规模集成电路应用技术成熟,性能可靠,能方便的完成选手抢答的基本功能,但是由于系统功能要求较高,所以电路连接集成电路相对较多,而且过于复杂,并且制作过程比较繁琐,使用不方

5、便。2.1.2方案二:基于AT89S52单片机控制的抢答器的设计器 抢答器的控制核心是AT89S52单片机,用查询式键盘进行抢答。通过抢答按键模块,连接按键进行抢答。实现功能的框图如下所示,按下开始按钮,此时进入抢答状态,选手的输入采用扫描式的输入,之后由相关的信息由单片机处理,送到显示部分显示。此时如果有人第一个按下相应的按键,经过单片机的处理选择,显示相应的号码,并锁存,不再响应其它按键输入。主持人系统有开始按键,限时开始按键,抢答时间调节按键,限时时间调节按键。选手系统有抢答按钮,计时显示,声光提示等。 图2.1.2 方案二结构图由以上可知,方案一结构太复杂,成本过高,而方案二编程简单,

6、易于制作。所以选用方案二。2.2各个模块方案设计 2.2.1 核心控制器(1)方案一由CPLD、FPGA来作主控制器。其特点是具有用户可编程的特性,其可灵活的配置IO端口,方便的进行硬件功能设置。具有静态可重复编程或在线动态重构特性,使硬件的功能象软件一样通过编程来修改,不仅使设计修改和产品升级变得十分方便,而且极大地提高了电子系统的灵活性和通用能力。(2)方案二 由单片机AT89S52进行控制,实现相关功能。AT89S52 具有以下标准功能: 8K 字节 Flash ,256 字节 RAM,32 位 I/O 口线,还可扩展外部存储器。编程容易实现,外围电路较为简单。 大规模可编程逻辑器件一般

7、是使用状态机方式来实现,即所解决的问题都是规则的有限状态转换问题。本系统状态较多,难度较大。另外系统没有其它高标准的要求,基于成本及控制功能的考虑,最终选择了AT89S52这个比较普通单片机来实现系统设计。 2.2.2 按键模块(1)方案一 独立键盘,键盘接口中使用多少根IO线,键盘中就有几个按键,这种类型的键盘,在按键比较少和IO口资源不紧张时使用。在工作中键盘的各个按键互不干扰。因此可以根据实际需要对键盘中的按键灵活的编码。如图2.2.2.1 图2.2.2.1 (2)方案二 采用矩阵式键盘,矩阵式键盘的特点是把检测线分成两组,一组为行线,一组列线,按键放在行线和列线的交叉点上,编程实现较复

8、杂,但占用IO口较少。这种形式的键盘结构,能够有效的提高单片机IO口的利用率,适用于按键输入多的情况,如图2.2.2.2。图2.2.2.2 矩阵键盘2.2.3显示模块 (1)方案一 采用点阵组成的LED屏,亮度高而且组装也容易,但编程复杂,需要较多的驱动芯片,因而成本高,不适合一般的制作。 (2)方案二 采用普通发光二极管按一定顺序排列构成数码管,虽然构成的LED灯数目多,但结构还是较简单,制作也较容易而且单片机控制也方便,成本也不是很高,因而出于成本和控制的考虑,选用方案二。三、 硬件单元电路设计与参数计算3.1单片机控制电路 图3.1 单片机控制电路 单片机控制部分的电路图如上,晶振频率为

9、12M,P0口接上拉电阻。3.2按键电路 图3.2 按键电路 按键部分如上图所示,选手按键由P1口控制,共有8个按键;主持人按键有四个按键,由P3口控制。全部按键采用独立式键盘。3.3声光提示电路 图3.3 声光提示电路 声音提示部分由无源蜂鸣器和PNP三极管构成,给其1个脉冲,它就会发出声响;光提示部分由发光二极管和限流电阻构成。3.4数码显示电路 图3.4 数码显示电路 此部分如上图所示,由140个发光二极管和28个构成,每两列二极管由单片机的一个口控制。3.5 有关参数的计算在软件编程过用到了定时/计数器0和定时/计数1,定时器1控制有人按下抢答器时“嘟”的哪一声响,其他的则由定时器0处

10、理。定时器0和1的定时溢出时间都为20毫秒。定时/计数器0和1都工作在方式1,即16加1计数器,分为两个8位的寄存器,定时20毫秒的计算公式为TH0=(65536-2000)/256; TL0=(65536-2000)%256; TH1=(65536-2000)/256; TL1=(65536-2000)%256;TH0和TH1分别表示定时器0和1在工作方式1时的高8位寄存器,TL0和TL1则为低8位寄存器,因为定时器0和1是加1计数器,是一直加到65536溢出,变为0,所以给寄存器装入的是和65536相差2000的初值,晶振为12M,12分频后,频率为1M,也就是周期为1微秒,即为单片机每执

11、行1条指令所用的时间,执行2000次加1,则就是2000乘以1微秒等于20毫秒。四、 软件设计与流程图 上电复位后显示模块显示“F”,程序开始对系统进行初始化。开始抢答后,若没有选手按动抢答按钮则开始9秒的倒计时,直到抢答限制时间到,进入下一轮的抢答。若有选手按动抢答按钮,编号立即锁存,并在显示模块选手的编号,且伴随声音提示。在开始键没按下时,有人按了抢答器,则该人违规,数码管显示号码,与此同时LED亮,表示有人违规。其他人再按下时则不响应,优先响应第一个。有人违规及有人抢答时会发出“嘟”的一声。当抢答时间或答题时间快到时会响3下。程序流程图如下: 图四 程序流程图 五、 总电路原理图及元器件

12、清单5.1总原理图 总原理图如下: 图5.1 系统总原理图5.2 PCB图图5.2 系统整体PCB图5.3 整体电路仿真图以及仿真结果分析 仿真开始后,由发光二极管组成的显示电路显示“F”,当开始键按下后,便开始依次显示倒计时90,如果有选手键按下,则显示是几号按下。按下限时开始键后,便是倒计时9秒;在开始键没按下时,有人近按了抢答器,则也显示违规的号码。有人违规及有人抢答时蜂鸣器会发出“嘟”的一声。当抢答时间或答题时间快到时会响3下。如果不在三极管的基极加上一个电阻,则单片机的IO口无法输出电平,无法控制三极管的导通或截止;当三极管的C极和E极反过来时,LED灯的亮度很暗,这是因为三极管的反

13、向电流比较小的缘故。 图5.3 系统仿真图5.4 元件清单表5-4 带时间及声光提示的抢答器元器件清单元件名称型号数量/个用途元件名称型号数量/个用途单片机AT89S521控制核心按键8选手输入晶振12M1晶振电路按键5主持人输入,复位键电容30pF2晶振电路排阻10K1上拉电阻电阻10K1复位电路发光二极管143电源指示电路,显示电路电阻2001蜂鸣器控制电路电解电容10uF/16V1复位电路电阻4702光提示电路电解电容220uF/25V1滤波电路电阻4701电源指示电路六、 安装与调试电路使用覆铜板焊接和安装,由于元器件都安装在同一面,需要屏蔽掉电阻和三极管等器件;调试分软件调试和硬件调

14、试,软件调试使用Keil软件,使用该软件可单步调试,软件调试一般包括分块调试和联机调试两个阶段。程序的分块调试一般在单片机开发板上运行,也可配合相应的硬件模块单独运行某个程序块,然后检查是否正确,如果不是预期的结果,可以通过单步运行或设置断点的方法,查出原因并加以改正,直到结果正确为止。联机调试就是将已调好的完整的程序在全部的硬件电路上运行。看是否结果是否正确,如不正确,则检查软件是否能实现所需要的功能,重新修正,直到结果正确为止。硬件调试主要检查电路是否连接正确,在保证电路无错连,开路,断路的情况下和软件配合调试,看是否能实现预期的功能。七、 性能测试与分析1 上电复位后,显示部分显示字符“

15、F”,按下开始键后,有9秒的抢答时间,如果无人抢答,则恢复显示“F”。2 如果上电后没按开始键,这时如果有人按下抢答器,则是违规,也显示违规的号码,与此同时黄灯亮。3 抢答时间和限时时间由抢答时间调节键和限时时间调节键调节,可从09调节。4 第一个选手抢答后,单片机会锁存这个编号,不再响应其他选手的抢答。5 有人抢答成功后,在显示部分显示相应的号码,按下限时开始键,将会进行最大为9秒的倒计时。6 开始键、答题限时键按下,有人违规及有人抢答时会发出“嘟”的一声。7 当抢答时间或答题时间快到时会间断响3下。 实物如图所示。 图七 作品实物图八、 结论与心得 通过这次课程设计,无论是在硬件方面还是软

16、件方面我都得到了不少的收获。经过这一个月的努力,过程曲折可谓一语难尽。在此期间我也失落过,也曾一度热情高涨。从开始时满盛激情到最后汗水背后的复杂心情,点点滴滴无不令我回味无长。 多和同学讨论,在做课程设计的过程中要不停的讨论问题,这样,可以尽可能的获取更多的想法,这样就不会使自己在做的过程中不会迷失方向,并且这样也是为了方便最后程序和硬件结合在一起。讨论不仅是一些思想的问题,还可以深入的讨论一些技术上的问题,这样可以使处自己处理问题要快一些。在整整一个月的日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这

17、次课程设计使我懂得了理论与实际相结合是很重要的,有时软件仿真出来了,硬件也不一定可以实现,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。 对我而言,知识上的收获重要,结果不一定是最重要。九、 参考文献 1杨居义等 单片机课程设计指导 北京:清华大学出版社 2009.9:233-2452Proteus教程电子线路设计、制版与仿真/朱清慧,张凤蕊,翟天嵩 编著。-北京:清华大学出版社,2008.9一十、 致

18、谢特别感谢我的指导老师彭建盛,在本系统开发中给予我悉心指导,从系统开发到结束中过程遇到很多困难都是他给我鼓励与指引,使我能够克服重重困难,将系统做完成,在此谨向彭建盛老师致以诚挚的谢意和崇高的敬意。我还要感谢在班里同学和朋友,感谢你们在我遇到困难的时候帮助我,给我支持和鼓励,感谢你们,谢谢!一十一、 程序清单#include#define uchar unsigned char#define uint unsigned intchar s;uchar num=0;char time=9; /抢答时间char datitime=9; /答题限时时间uint tt,t1; /T0,T1定时器定一秒

19、bit flag,s_flag=1,b_flag,fall_flag; /标志位bit K_startcountflag,K_timecountflag; /时间调整标志位sbit K0=P30;sbit beep=P37; /蜂鸣器sbit rled=P31; /指示灯sbit K1=P10; sbit K2=P11;sbit K3=P12;sbit K4=P13;sbit K5=P14;sbit K6=P15;sbit K7=P16;sbit K8=P17;sbit K_Time=P32; /答题计时键sbit K_startcount=P33; /开始抢答时间调整键sbit K_time

20、count=P34; /答题计时时间调整键void delay(uchar ms) uchar y; for(;ms0;ms-) for(y=120;y0;y-);uchar code tabledu=0X80,/*0*/ 0Xf2,/*1*/ 0X48,/*2*/ 0X60,/*3*/ 0X32,/*4*/ 0X24,/*5*/ 0X04,/*6*/ 0Xf0,/*7*/ 0X00,/*8*/ 0X20,/*9*/ 0x1c,/*F*/;/共阳数码管编码void T0_Init(void) TMOD=0X01; /定时器的工作方式 TH0=(65536-2000)/256; /定时20毫秒

21、TL0=(65536-2000)%256; TH1=(65536-2000)/256; TL1=(65536-2000)%256; ET0=1; ET1=1; EA=1; P0=0;void Key_Scan(void) /开始键扫描 if(K0=0) delay(5); if(K0=0) while(!K0); TR0=1; s=time; tt=0; flag=1; s_flag=1; b_flag=1; num=0; beep=1; rled=1; fall_flag=0; /清除违规标志位 K_startcountflag=0; K_timecountflag=0; void Scan

22、(void) /八路热键扫描(哪个键先按下,哪个优先级最高) if(K1=0) delay(5); if(K1=0) while(!K1); num=1; /数码管显示1号1 TR0=0; /关闭定时器0,时间停止 TR1=1; /打开定时器1,使扬声器响一声 s_flag=0; /关闭开始键标志位,使再按其他七个键不会响应 if(K2=0) /下面七个键的处理同上 delay(5); if(K2=0) while(!K2); num=2; TR0=0; TR1=1; s_flag=0; /重要 if(K3=0) delay(5); if(K3=0) while(!K3); num=3; TR

23、0=0; TR1=1; s_flag=0; if(K4=0) delay(5); if(K4=0) while(!K4); num=4; TR0=0; TR1=1; s_flag=0; if(K5=0) delay(5); if(K5=0) while(!K5); num=5; TR0=0; TR1=1; s_flag=0; if(K6=0) delay(5); if(K6=0) while(!K6); num=6; TR0=0; TR1=1; s_flag=0; if(K7=0) delay(5); if(K7=0) while(!K7); num=7; TR0=0; TR1=1; s_fl

24、ag=0; if(K8=0) delay(5); if(K8=0) while(!K8); num=8; TR0=0; TR1=1; s_flag=0; void display(void) if(flag=1) /开始键按下,开始计时抢答 if(num!=0) /如果有人抢答,则显示相应的几号 P2=tabledunum; /显示几号抢到了 delay(250); if(K_Time=0) num=0; else /否则没人抢答,则前面不显示几号 delay(2); P2=tabledus; delay(250); else /如果开始键没有按下,则显示F (若有违规者,则显示违规号码)或时

25、间调整 if(fall_flag=1) /违规显示 if(num!=0) P2=tabledunum; /显示几号违规了 delay(250); else P0=0XFF; else /没有人违规才显示调整时间 if(K_startcountflag=1) P2=tabledutime; delay(250); else if(K_timecountflag=1) P2=tabledudatitime; delay(250); else /否则显示F P2=tabledu10; delay(250); void Time_Scan(void) /调整时间键扫描 if(K_startcount=0) /抢答时间调整 delay(5); if(K_startcount=0) while(!K_startcount); time+; if(time=10) time=0; K_startcountflag=1; /将抢答时间标志位置1 K_timecountflag=0; /同时关闭答题时间标志位 if(K_timecount=0) /答题时间调整 delay(5); if(K_timecount=0) while(!K_timecount); da

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

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