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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

四路单片机抢答器Word文档下载推荐.docx

1、有人抢答后,系统自动封锁其他选手的抢答按钮,使其不再抢答,从而实现抢答功能。该系统还增加了抢答倒计时功能,可以调整。通过自主的设计、编程和调试出一个简单的四路抢答并在液晶屏显示抢答成功者号码;熟悉C语言编程以及模电的电路知识;了解单片机仿真系统的使用方法,达到提高综合运用相关知识的能力;进一步熟悉和掌握Proteus7的使用方法;掌握单片机系统设计全部过程的目的。指标及设计要求:1、能够运用所学的电路、模拟电子技术、数字电子技术、高频电子技术、单片机原理等课程知识设计基本电子应用系统。2、能应用电子设计的基本理论,根据所给技术指标,分析系统功能,完成系统的硬件电路设计,对并电路参数进行设计。3

2、、能够针对所设计的电路,在电脑中用Proteus软件对设计电路进行仿真,并根据仿真结果分析系统是否达到设计要求。4、能应用撰写设计报告,根据期刊论文要求,撰写系统设计文档。题目分析抢答器一般是由很多电路组成的,线路复杂,可靠性不高,功能也比较简单,特别是当抢答路数很多时,实现起来就更为困难。因此我们设计了以单片机为核心的新型智能的抢答器,在保留了原始抢答器的基本功能的同时又增加一系列的实用功能。并简化其电路结构。控制系统的三个模块为:显示模块、存储模块、抢答开关模块。该系统通过开关电路四个按键输入抢答信号,利用1602液晶屏来完成显示功能,用按键来让选手进行抢答,在液晶屏上显示抢答最快的号码及

3、时间,从而实现整个抢答过程。本文主要介绍了单片机抢答器设计及工作原理,以及它的实际用途。系统工作原理本系统采用AT89C52单片机作为核心。工作时,用按键通过开关电路输入各路的抢答信号,经单片机的处理, 输出控制信号,单片机控制的智能抢答器设计。第2章 整体构思 抢答器的设计方案要实现以下功能:(1)抢答器同时供4名选手或4个代表队比赛,分别用4个按钮Nnmber1 Number4表示。(2)设置一个系统清除Starting system和抢答控制开关Start,该开关由主持人控制。(3)抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在1602液晶屏上显示,同时蜂鸣器发出报警声响

4、提示。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。(4)抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如10秒)。当主持人启动开始键后,定时器进行减计时 (5)如果定时时间已到,无人抢答,本次抢答无效,系统禁止抢答,定时显示器上显示01s。该设计采用AT89C52单片机作为控制系统核心。该系统可以完成信号识别,运算控制以及显示功能。具体实现:硬件电路应能完成以下功能:参加竞赛者对主持人提出的问题要在最短的时间内作出判断,并按下抢答按键回答问题。当第一个人按下按键后,则在显示器上显示此竞赛者的号码并进行声音提示,同时电路将其他抢答按键封锁,使其不起作用。若有人

5、在可以抢答之前按键,应该有违规提示。电路应该具有倒计时功能,倒计时时间可以设置并显示,在规定时间内没有人抢答则本题作废。回答完或超时后,由主持人将所有按键恢复,重新开始下一轮。图1 抢答器原理图第3章 各部分定性说明3.1抢答器的电路图如图(2)所示为电路图,其工作原理为:接通电源后主持人将开关拨到“清零”状态,抢答器处于禁止状态,定时器设定时间,主持人将开关置“开始”,宣布抢答开始时,选手要在规定时间内完成抢答;定时器倒计时优先判断,编号锁存,扬声器提示。图2 抢答器仿真电路图3.2 液晶屏显示电路 使用液晶屏显示抢答成功者号码、时间。液晶显示屏(LCD)具有轻薄短小、低耗电量、无辐射危险,

6、平面直角显示以及影像稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强的特点。3.3按键控制电路键盘是单片机不可缺少的输入设备,是实现人机对话的纽带。键盘按结构形式可以分为非编码键盘和编码键盘,前者用软件方法产生键码,而后者则用硬件方法来产生键码。在单片机中使用的都是非编码键盘,因为非编码键盘结构简单,成本低廉,非编码键盘的类型很多,常用的有独立式键盘,行列式键盘等。独立式键盘,键盘接口中使用多少根I/O线,键盘中就有几个按键,键盘接口使用了8根I/O口线,该键盘就有8个按键,这种类型的键盘,其按键比较少,且键盘中各按键的工作互不干扰。因此可以根据实际需要对键盘中的按键灵活的编码

7、。如图3所示。图3 独立式键盘原理图最简单的编码方式就是根据I/O输入口所直接反映的相应按键,按下的状态进行编码,称按键直接状态码,对于这样编码的独立式键盘,CPU可以通过直接读取I/O口的状态来获取按键的直接状态编码值,根据这个值直接进行按键识别,这样形式的键盘结构简单,按键识别容易。独立式键盘的缺点是需要占用比较多的I/O口线,当单片机应用系统键盘中需要的按键比较少或I/O口线比较富余时,可以采用这样类型的键盘。第3章 仿真部分3.1仿真实现 本设计的抢答器的程序采用的是C程序设计,C语言的显著特点是用二进制来编写程序,程序的各个部分除了必要的信息交流外彼此之间相互独立。这种结构化方式可使

8、程序层次清晰, 便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。本次设计的主程序中包括时钟设计程序,定时器中断子程序,数码管显示程序以及按键控制子程序。抢答器主流程图如图4所示: 图4 抢答器主程序流程图抢答器定时中断流程图如图5:图5 抢答器定时器中断流程图4.2系统调试和结果分析具有清零装置和抢答控制,可由主持人操纵。具有定时功能,在10S内无人抢答表示所有参赛选手对本题弃权。10S时仍无人抢答其报警电路工作表示抢答时间耗尽并

9、禁止抢答。电路中的六个按键从上到下分别是清零键、开始键和四组选手的按键。仿真现象及调试结果如图6、图7、图8所示。1)图6为主持人按下清零键后的截图,此时液晶屏两项均显示0.1)运行设计,等待主持人开始。如图6:图62)主持人按下启动键后的截图,液晶屏显示从10秒开始倒计时。如图7:图73)选手按下时的截图,显示对应的选手编号,例如3号选手,如图8所示:图8 设计心得体会这次课程设计是基于单片机设计四路数字抢答器,让我对电子学习也有了更深刻的认识,只有打下良好的基础才会学以致用,才会发挥出作用。在本次课程设计过程中遇到了许多困难,PROTEUS做出的仿真效果不符合要求,用C语言编写的程序也出现

10、问题,令人头疼不已,后来在经过查找相关资料,在老师同学的帮助下,终于改正了错误。完成这次课程设计,让我深刻的认识是单片机对于我们专业的重要性,我对单片机的学习还是不够精通,有了这次课程设计的体会,我一定会利用课余时间更深的了解单片机知识 。认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准,所以这个课程设计对我们的作用是非常大的。经过二个星期课程设计制作,过程曲折可谓一波三折,点点滴滴无不令我回味无穷。没有经过实践永远都不会知道结果是怎样的,当实践的结果证实了你要得到的结论时那种心情真是不知如何表达。我也非常的坚信只要付出了一定会有收获,并且这个过程是很美的享受!汗水预示着结

11、果也见证着收获。通过本次课程设计,我真正感受到了那种快乐和喜悦!并且懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在此我非常要感谢的是我的指导老师,感谢老师的细心认真的辅导,教给我许多原来不知道的知识。这次课程设计能够顺利的完成,同时也离不开指导老师的答疑解惑和同学的帮助。 参考文献1 李泉溪. 单片机原理与应用实例仿真.北京航天航空大学出版社 2009年2 江世明. 基于Proteus的单片机应用技术. 电子工业出版社 2008年3 喻宗泉. 单片机原理与应用

12、技术.西安电子科技大学出版社 2005年4 万光毅. 单片机实验与实践教程. 北京航天航空大学出版社 2003年附录1 源程序#include#define uchar unsigned char#define uint unsigned intuchar num; /定义中断变量,num计满20表示1秒时间到uchar num1; /十秒倒计时显示初始值uchar flag1,flag2; /清零键及开始键按下标志位uchar flag3,flag4=0; /定义键盘按下标志位#define LCDPORT P0sbit LCD1602_RS = P20;sbit LCD1602_EN =

13、P21;sbit sp=P22; /定义蜂鸣器端口sbit clear=P10; /定义清零键sbit start=P11; /开始键sbit key1=P12; sbit key2=P13;sbit key3=P14;sbit key4=P15; /key1到key4为选手按键 void delay(uint z) /延时函数 uint i,j; for(i=z;i0;i-) for(j=110;jj-);void WriteCmd_1602(unsigned char cmd) LCD1602_RS = 0; LCDPORT = cmd; delay(1); LCD1602_EN = 1;

14、 LCD1602_EN = 0;void WriteByte_1602(unsigned char date) LCD1602_RS = 1; LCDPORT = date;void Init_1602() WriteCmd_1602(0x38); WriteCmd_1602(0x0c); /光标不显示地址 WriteCmd_1602(0x06); WriteCmd_1602(0x01);void beep() /定义蜂鸣器函数 sp=0; delay(500); sp=1;/ delay(500);void dis(uchar * p) while(*p != 0) WriteByte_16

15、02(*p+); void display_init() WriteCmd_1602(0x80); dis(Serial Number:); WriteCmd_1602(0x80 + 0x40);Surplus Time: WriteCmd_1602(0x80 + 0x40 + 13);00svoid display_num(uchar a) /选手编号显示函数 WriteCmd_1602(0x80 + 15); WriteByte_1602(a);void clr() /清零函数(主持人按下清零键后数码管显示0) WriteByte_1602(0void dis10s() /十秒倒计时显示函

16、数 uchar shi,ge; shi=num1/10; ge=num1%10; WriteByte_1602(shi + 0x30); WriteCmd_1602(0x80 + 0x40 + 14); WriteByte_1602(ge + 0x30); void player() /选手按键检测函数 if(key1=0&flag4=0) delay(10); if(key1=0& display_num(1 TR0=0; flag1=flag2=0; flag4=1; beep(); while(!key1); if(key2=0& if(key2=0&2key2); if(key3=0&

17、 if(key3=0&3key3); if(key4=0& if(key4=0& 4key4);void keyscan() /检测按键 if(clear=0&flag2!=1) /判断清零键,判断语句的作用是按下开始键清零键失效 if(clear=0&=1)clear); /等待按键释放 flag1=0; flag2=0; flag3=0; flag4=0; num=0; num1=10; clr(); /清零 flag1=1; /按下清零键标志位 if(flag1=1) /如果按下清零键 if(start=0&flag3=0) /判断开始键,判断语句的作用是按下开始键后开始键失效 dela

18、y(10); if(start=0&flag3=0) flag2=1; flag3=1; while(!start); if(flag2=1) /按下开始键 TR0=1; /启动定时器0 dis10s(); player();void main() TMOD=0x01; /设置定时器0工作方式1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; /开总中断 ET0=1; /开定时器0中断 Init_1602(); display_init(); while(1) /一直检测按键 keyscan();void T0_ser() interrupt 1 num+; if(num=20) num=0; num1-; if(num1=0) TR0=0; flag1=0; flag2=0; num1=10; clr(); beep();

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

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