基于单片机的四路抢答器设计.doc

上传人:可**** 文档编号:31531679 上传时间:2022-08-07 格式:DOC 页数:27 大小:294KB
返回 下载 相关 举报
基于单片机的四路抢答器设计.doc_第1页
第1页 / 共27页
基于单片机的四路抢答器设计.doc_第2页
第2页 / 共27页
点击查看更多>>
资源描述

《基于单片机的四路抢答器设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的四路抢答器设计.doc(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、- -课程设计(论文)题 目名称多路数字抢答器设计课 程 名 称单片机原理及其应用学生XX学号系 、专 业指导教师2013年6月24日摘要近年来随着科技的飞速开展单片机的应用正在不断深入同时带动传统控制检测日新月异。此次设计提出一种用AT89C51单片机作为核心控制元件与电阻、液晶显示屏、蜂鸣器等构成硬件操作再利用C语言编程来控制抢答器的功能实现。本论文对抢答器的背景与现状、硬件设计、软件设计及其仿真都做了详细的介绍使我们不仅对抢答器的原理及设计有了深入的了解也对单片机的设计研发过程有了更加深刻的体会。 本次设计的系统主要采用单片机控制、采用手动抢答的方式。有人抢答后,系统自动封锁其他选手的抢

2、答按钮,使其不再抢答,从而实现抢答功能。该系统还增加了抢答倒计时功能,可以调整。通过自主的设计、编程和调试出一个简单的四路抢答并在液晶屏显示抢答成功者;熟悉C语言编程;了解单片机仿真系统的使用方法,到达提高综合运用相关知识的能力;进一步熟悉和掌握Proteus7的使用方法;掌握单片机系统设计全部过程的目的。关键字: 抢答 单片机 液晶屏显示目 录第1章 前言1第2章 方案设计2第3章 硬件电路的工作原理33.1抢答器的电路图33.2 液晶屏显示电路33.3按键控制电路3第4章 软件设计54.1软件编程54.2系统调试和结果分析6总结10参考文献11附录1 源程序12- - word.zl- -

3、第1章前言电子技术和微型计算机的迅速开展,促进微型计算机测量和控制技术的迅速开展和广泛应用,单片机单片微型计算机的应用已经渗透到国民经济的各个部门和领域,它起到了越来越重要的作用。单片微型计算机就是将中央处理单元、存储器、定时/计数器和多种接口都集成到一块集成电路芯片上的微型计算机。因此一块芯片就构成了一台计算机。它已成为工业控制领域、智能仪器仪表、尖端武器、日常生活中最广泛使用的计算机。抢答器一般是由很多电路组成的,线路复杂,可靠性不高,功能也比拟简单,特别是当抢答路数很多时,实现起来就更为困难。因此我们设计了以单片机为核心的新型智能的抢答器,在保存了原始抢答器的根本功能的同时又增加一系列的

4、实用功能。并简化其电路构造。控制系统的三个模块为:显示模块、存储模块、抢答开关模块。该系统通过开关电路四个按键输入抢答信号,利用1602液晶屏来完成显示功能,用按键来让选手进展抢答,在液晶屏上显示抢答最快的及时间,从而实现整个抢答过程。本文主要介绍了单片机抢答器设计及工作原理,以及它的实际用途。系统工作原理本系统采用AT89C52单片机作为核心。工作时,用按键通过开关电路输入各路的抢答信号,经单片机的处理, 输出控制信号,单片机控制的智能抢答器设计。第2章方案设计抢答器的设计方案要实现以下功能:(1)抢答器同时供4名选手或4个代表队比赛,分别用4个按钮S0 S3表示。(2)设置一个系统去除S1

5、和抢答控制开关S2,该开关由主持人控制。(3)抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在1602液晶屏上显示,同时蜂鸣器发出报警声响提示。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统去除为止。(4)抢答器具有定时抢答功能,且一次抢答的时间由主持人设定如10秒。当主持人启动开场键后,定时器进展减计时 (5)如果定时时间已到,无人抢答,本次抢答无效,系统制止抢答,定时显示器上显示01s。该设计采用AT89C52单片机作为控制系统核心。该系统可以完成信号识别,运算控制以及显示功能。抢答器的工作原理是采用单片机最小系统,用查询式键盘进展抢答。通过抢答按键模块,连接

6、按键进展抢答。此电路完成的功能如图1所示,当主持人宣布抢答开场的时候,按下开场按钮,此时电路进入抢答状态,选手的输入采用了扫描式的输入,之后把相应的信息送往单片机,再由单片机输出到显示输出电路中。此时有人第一按下相应的抢答按钮,经过单片机的控制选择,在液晶屏上显示相应的,并锁存,同时制止其他按钮的输入。系统是采用模块化设计的智能抢答器,主控与参赛者设为终端分系统。主控分系统有:开场与完毕控制按钮、时限设定、各种相关显示调控功能等。参赛者分系统设有:抢答按纽、计时显示、提示功能等。图1 抢答器原理图第3章 硬件电路的工作原理3.1抢答器的电路图如图2所示为电路图,其工作原理为:接通电源后主持人将

7、开关拨到“清零状态,抢答器处于制止状态,定时器设定时间,主持人将开关置“开场,宣布抢答开场时,选手要在规定时间完成抢答;定时器倒计时优先判断,编号锁存,扬声器提示。图2 抢答器仿真电路图3.2 液晶屏显示电路使用液晶屏显示抢答成功者、时间。液晶显示屏LCD具有轻薄短小、低耗电量、无辐射危险,平面直角显示以及影像稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强的特点。3.3按键控制电路键盘是单片机不可缺少的输入设备,是实现人机对话的纽带。键盘按构造形式可以分为非编码键盘和编码键盘,前者用软件方法产生键码,而后者那么用硬件方法来产生键码。在单片机中使用的都是非编码键盘,因为非编码键

8、盘构造简单,本钱低廉,非编码键盘的类型很多,常用的有独立式键盘,行列式键盘等。独立式键盘,键盘接口中使用多少根I/O线,键盘中就有几个按键,键盘接口使用了8根I/O口线,该键盘就有8个按键,这种类型的键盘,其按键比拟少,且键盘中各按键的工作互不干扰。因此可以根据实际需要对键盘中的按键灵活的编码。如图3所示。图3 独立式键盘原理图最简单的编码方式就是根据I/O输入口所直接反映的相应按键,按下的状态进展编码,称按键直接状态码,对于这样编码的独立式键盘,CPU可以通过直接读取I/O口的状态来获取按键的直接状态编码值,根据这个值直接进展按键识别,这样形式的键盘构造简单,按键识别容易。独立式键盘的缺点是

9、需要占用比拟多的I/O口线,当单片机应用系统键盘中需要的按键比拟少或I/O口线比拟充裕时,可以采用这样类型的键盘。第4章软件设计4.1软件编程本设计的抢答器的程序采用的是C程序设计,C语言的显著特点是用二进制来编写程序,程序的各个局部除了必要的信息交流外彼此之间相互独立。这种构造化方式可使程序层次清晰, 便于使用、维护以及调试。C语言是以函数形式提供应用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全构造化。虽然C语言也是强类型语言,但它的语法比拟灵活,允许程序编写者有较大的自由度。本次设计的主程序中包括时钟设计程序,定时器中断子程序,数码管显示程序以及按键控制

10、子程序。抢答器主流程图如图4所示:图4抢答器主程序流程图抢答器定时中断流程图如图5:图5抢答器定时器中断流程图4.2系统调试和结果分析系统调试包括硬件调试和软件调试,而且两者是密不可分的。我们设计好的硬件电路和软件程序,只有经过联合调试,才能验证其正确性;软硬件的配人情况以及是否到达设计任务的要求,也只有经过调试,才能发现问题并加以解决、完善,最终开发成实用产品。硬件调试分单元电路调试和联机调试,单元电路试验在硬件电路设计时已经进展,这里的调试只是将其制成印刷电路板后试验电路是否正确,并排除一些加工工艺性错误如错线、开路、短路等。这种调试可单独模拟进展,也可通过开发装置由软件配合进展。硬件联机

11、调试那么必须在系统软件的配合下进展。软件调试一般包括分块调试和联机调试两个阶段。程序的分块调试一般在单片机开发装置上进展,可根据所调程序功能块的入口参量初值编制一个特殊的程序段,并连同被调程序功能块一起在开发装置上运行;也可配合对应硬件电路单独运行某程序功能块,然后检查是否正确,如果执行结果与预想的不一致,可以通过单步运行或设置断点的方法,查出原因并加以改正,直到运行结果正确为止。这时该 程序功能块已调试完毕,可去掉附加程序段。其它程序功能块可按此法进展调试。程序联机调试就是将已调试好的各程序功能块按总体构造联成一个完整程序,在所研制的硬件电路上运行。从而试验程序整体运行的完整性、正确性和与硬

12、件电路的配合情况。在联调中可能会有某些支路上的程序、功能块因受条件制约而得不到相应的输入参数,这时,调试人员应创造条件进展模拟调试。在联调中如发现硬件问题也应及时修正,直到单片机系统的软件、硬件全部调试成功为止。系统调试完成后,还要进展一段时间的试运行,从而检验系统的稳定性和抗干扰能力,验证系统功能是否到达设计要求,是否到达预期的效果。具有清零装置和抢答控制,可由主持人操纵。具有定时功能,在10S无人抢答表示所有参赛选手对此题弃权。10S时仍无人抢答其报警电路工作表示抢答时间耗尽并制止抢答。电路中的六个按键从上到下分别是清零键、开场键和四组选手的按键。仿真现象及调试结果如图6、图7、图8所示。

13、1图6为主持人按下清零键后的截图,此时液晶屏两项均显示0.1运行设计,等待主持人开场。如图6:图62主持人按下启动键后的截图,液晶屏显示从10秒开场倒计时。如图7:图73选手按下时的截图,显示对应的选手编号,例如3号选手,如图8所示:图8总结这次课程设计是基于单片机设计多路数字抢答器,让我对单片机学习也有了更深刻的认识,只有打下良好的根底才会学以致用,才会发挥出作用。在本次课程设计过程中遇到了许多困难,PROTEUS做出的仿真效果不符合要求,用C语言编写的程序也出现问题,令人头疼不已,后来在经过查找相关资料,在教师同学的帮助下,终于改正了错误。完成这次课程设计,让我深刻的认识是单片机对于我们专

14、业的重要性,我对单片机的学习还是不够精通,有了这次课程设计的体会,我一定会利用课余时间更深的了解单片机知识 。认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准,所以这个课程设计对我们的作用是非常大的。经过二个星期课程设计制作,过程曲折可谓一波三折,点点滴滴无不令我回味无穷。没有经过实践永远都不会知道结果是怎样的,当实践的结果证实了你要得到的结论时那种心情真是不知如何表达。我也非常的坚信只要付出了一定会有收获,并且这个过程是很美的享受!汗水预示着结果也见证着收获。通过本次课程设计,我真正感受到了那种快乐和喜悦!并且懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只

15、有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会效劳,从而提高自己的实际动手能力和独立思考的能力。在此我非常要感的是我的指导教师伟春教师,感教师的细心认真的辅导,教给我许多原来不知道的知识。这次课程设计能够顺利的完成,当然有我个人的努力,但同时也离不开指导教师的答疑解惑和同学的帮助。参考文献1泉溪. ?单片机原理与应用实例仿真?.航天航空大学 2009年2 江世明. ?基于Proteus的单片机应用技术?. 电子工业 2008年3 喻宗泉. ?单片机原理与应用技术?.电子科技大学 2005年4 万光毅. ?单片机实验与实践教程?.航天航空大学 2003年附录1 源程序#in

16、clude#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 = P21;sbit sp=P22;/定义蜂鸣器端口sbit clear=P10;/定义清零键sbit start=P11;/开场键sbit k

17、ey1=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;j0;j-);void WriteCmd_1602(unsigned char cmd)LCD1602_RS = 0;LCDPORT = cmd;delay(1);LCD1602_EN = 1;delay(1);LCD1602_EN = 0;void WriteByte_1602(unsigned char date)LCD1602_RS = 1;LCDP

18、ORT = date;delay(1);LCD1602_EN = 1;delay(1);LCD1602_EN = 0;void Init_1602()LCD1602_EN = 0;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_1602(*p+);void display_in

19、it()WriteCmd_1602(0x80);dis(Serial Number:);WriteCmd_1602(0x80 + 0x40);dis(Surplus Time:);WriteCmd_1602(0x80 + 0x40 + 13);dis(00s);void display_num(uchar a) /选手编号显示函数 WriteCmd_1602(0x80 + 15);WriteByte_1602(a);void clr()/清零函数(主持人按下清零键后数码管显示0) WriteCmd_1602(0x80 + 15);WriteByte_1602(0);void dis10s()/

20、十秒倒计时显示函数uchar shi,ge;shi=num1/10;ge=num1%10;WriteCmd_1602(0x80 + 0x40 + 13);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&flag4=0)display_num(1);TR0=0;flag1=flag2=0;flag4=1;beep();while(!key1);if(key

21、2=0&flag4=0)delay(10);if(key2=0&flag4=0)display_num(2);TR0=0;flag1=flag2=0;flag4=1;beep();while(!key2);if(key3=0&flag4=0)delay(10);if(key3=0&flag4=0)display_num(3);TR0=0;flag1=flag2=0;flag4=1;beep();while(!key3);if(key4=0&flag4=0)delay(10);if(key4=0&flag4=0)display_num(4);TR0=0;flag1=flag2=0;flag4=1

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

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

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁