1、单片机抢答计时器设计第一章 抢答器设计功能要求1.1 主要实现功能此次设计提出了用AT89C52单片机为核心控制元件,设计一个简易的抢答器, 本方案以AT89C52单片机作为主控核心,与发光二极管、数码管等构成二路抢答器,利用了单片机的延时电路、按键复位电路、时钟电路、定时/中断等电路,设计的抢答器具有实时显示抢答时间的特点,还有复位电路,使其再开始新的一轮的答题和比赛。此设计还利用C语言编程,使其实现一些基本的功能。本设计的系统实用性强、判断精确、操作简单、扩展功能强。它的功能实现是比赛开始,主持人读完题之后按下总开关,即计时开始,此时数码管开始进行1s的减计时,直到有一个选手抢答时,对应的
2、会在数码管上显示出该选手的编号和抢答所用的时间,同时该选手对应的发光二极管会发出相应的光,蜂鸣器也会发出声音,以提示有人抢答本题,如果在规定的30s时间内没有做出抢答,则此题作废,即开始重新一轮的抢答。1.2 设计要求主要的设计要求是设计一个可供2人进行抢答智力竞赛抢答计时器。抢答器具有定时抢答功能,且一次抢答的时间有程序设定,本抢答器的时间设定为30秒,当主持人启动“开始”开关后,定时器开始倒计时。(1)主持人在各位参赛选手都准备好以后按开始按钮,此时计时开始。(2)抢答器开始时数码管显示序号30,选手抢答实行优先锁存。抢答后显示抢答时间,相应的显示灯(LED)亮,此时若其他按钮按下均无效。
3、(3)设定的抢答时间内,选手可以抢答,这时定时器停止工作,显示器上显示抢答时间。并保持到主持人按复位键。(4)当设定的时间到,显示器上显示00,若仍无人抢答时,本次抢答无效,之后禁止抢答。定时器上显示00。(5)系统设置复位按钮,按动后,重新开始抢答。定时器从30倒计时。1.3 设计目的设计一个用于智力竞赛的抢答计时器。按下启动钮,2个八段码倒计时开始(从30秒倒计时),同时开始抢答,参赛双方分别按不同的抢答按钮参与抢答,一旦其中一位按下按钮,相应的显示灯(LED)亮,此时若其他按钮按下均无效。若一直到计数到零,无一人按下按钮,则抢答结束(以后再按抢答钮无效)。应用此程序扩展,可实现多人抢答计
4、时器设计。第二章 设计方案分析2.1 总体设计(1)首先进行89c52单片机内部组成的分析,根据各项功能,总结出整体实要求。其组成如图: (2)分析电路组成。本抢答器的电路主要有三部分组成:数字抢答电路、时序控制电路以及可预置时间的定时电路。其中数字抢答部分有一个译码器和LED数码管显示器组成,可以将两位抢答者的按钮通过译码驱动LED数码管显示器显示出他们最先抢答者时间。而时序控制电路的功能是当参赛选手按动抢答器时,抢答电路和定时电路停止工作。而且设定的时间30秒到达后若无人抢答,显示器停止计时,显示为00. 图2.1 89c52单片机引脚图 图2.2单片机的存储器配置(3)画出程序流程图。画
5、主程序流程图和中断程序流程图。2.2 具体设计的分析:(1)抢答器同时供2名选手或2个代表队比赛,分别用2个按钮表示。(2)设置一个系统清除和抢答控制按钮,该开关由主持人控制。抢答器具有锁存与显示功能。即选手按动按钮,在LED数码管上显示时间。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。(3)抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。当主持人启动开始键后,定时器进行倒计时。参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手抢答的时间,并保持到主持人将系统清除为止。如果定时时间已到,无人抢答,本次抢答无效,系统禁止抢答,
6、定时显示器上显示00。(4)2路抢答器可以利用硬件电子元器件实现,我们利用单片机可以用很少元件实现该功能,单片机性能稳定,可操作性强。可以只用P0口连接上拉电阻,完成驱动LED的功能,串接按键可以由选手自己控制抢答机会,如果有选手在规定的时间以前完成问题,主持人通过按键复位,开始新的问题作答,因为程序不是很大不需要扩展存储空间,选手按键跳入相应的子程序,回答倒记时,通过单片机实现功能可以更人性化,只需单电源供电更方便,容易实现。电路结构简单,外围扩展的电路不是很多,锻炼我们所学的知识应用到现实生活当中。为我们提供实践的机会。单片机是电子专业发展的方向,更好的使用单片机可以是我们的产品小型化,使
7、用更方便,性能更稳定,功能更齐全,所以我们选用单片机加一定的外围设备实现本次课程设计的要求。第三章 系统硬件设计3.1 硬件电路设计分析为使硬件电路设计尽可能合理,应注意以下几方面:(1) 尽可能采用功能强的芯片,以简化电路,功能强的芯片可以代替若干普通芯片,随着生产工艺的提高,新型芯片的的价格不断下降,并不一定比若干普通芯片价格的总和高。(2) 留有设计余地。在设计硬件电路时,要考虑到将来修改扩展的方便。因为很少有一锤定音的电路设计,如果现在不留余地,将来可能要为一点小小的修改或扩展而被迫进行全面返工。(3) 程序空间,选用片内程序空间足够大的单片机,本设计采用AT89C51单片机。(4)
8、I/O端口,在样机研制出来后进行现场试用时,往往会发现一些被忽视的问题,而这些问题不是靠单纯的软件措施来解决的。如有些新的信号需要采集,就必须增加输入检测端;有些物理量需要控制,就必须增加输出端。如果在硬件电路设计就预留出一些I/O端口,虽然当时空着没用,那么用的时候就派上用场了。3.2 单片机的系统硬件图说明(1)复位电路:由电容串联电阻构成,由图并结合“电容电压不能突变”的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定。典型的52单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位.一般教科
9、书推荐C 取10,R取8.2K。当然也有其他取法的,原则就要让RC组合可以在RST脚上产生不少于2个机周期的高电平;(2)复位输入高电平有效,当振荡器工作是,RST引脚出现两个机器周期以上的高电平,使单片机复位。此电路除具有上电复位功能外,若要复位只需按“RST”键,此电源Vcc经电阻分压,在RST端产生一个复位高电平; 图3.1 复位原理图(3)晶振电路:典型的晶振取10MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的方波便于12分频,方便定时操作);图3.2 晶振电路原理图(4)单片机:一片AT89C52单片机; 注意:对于31脚(
10、EA/Vpp),当接高电平时,单片机在复位后从内部ROM的0000H开始执行;当接低电平时,复位后直接从外部ROM的0000H开始执行;3.3 系统原理图如图,P3.0为开始抢答,P1.7为停止,P1.0、P1.1为二路抢答输入,P1.4、P1.5连接发光管。数码管段选P0口,位选P2口p2.4、p2.5。P3.2为时间加1调整,P3.3为复位按钮。图3.3系统原理图3.4 时钟频率电路的设计单片机必须在时钟的驱动下才能工作.在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度.图3.2 外部振荡源电路3.5 数码管显示电路L
11、ED显示器,实现八段数码管的显示数。方便进行倒计时,同时用来显示抢答的时间。 图3.3 数码管显示图示例其中数码管的显示可以分为两种:静态显示和动态显示。静态显示的段选位和位选位均单独连接,因此占用的I/O接口多,无法扩展多个数码管,在这种采用这种方式,必须要给LED恒定的电压,要求电压一直保持,所以一般在LED和单片机之间加锁存器,这种显示方式亮度高,编程较简单,结构清晰,管理也较简单,占用的CPU时间少。 动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共端C
12、OM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的
13、I/O端口,而且功耗更低。从电路上,按数码管的接法不同又分为共阴和共阳两种。3.6 按键控制电路图3.4按键控制电路在一些按键控制电路中,人机接口通常是LED显示器和小型按键。常见的工作方式有两种:一是直接使用系统中的CPU对显示器进行动态显示和键盘检测;二是专用的显示、键盘芯片。但这两种方式存在着不能及时响应、价格较高等缺点。介绍了一种性价比高的显示/键盘电路的结构及工作原理。以ATMEL89C52系列单片机为核心构成的显示/键盘电路,他具有功能强、价格低廉等特点。按键可直接连接到STC89C52的P1口,这样其电路结构最为简单,工作时可使用中断方式,但使用STC89C52在不用扫描方式时最
14、多只可以有8个按键,此次设计抢答器利用P1.0和P1.1作为输入,由两个按键来控制单片机中的发光二极管即P1.4和P1.5端口,当在P1.0的按键按下则对应的P1.4发光二极管亮,当在P1.1端口的按键按下则对应的P1.5的发光二极管亮。3.7 复位电路单片机的第9脚RST为硬件复位端,只要将该端持续4个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态。但是本设计用P3.3引脚连接一个按钮,并且写入相应的程序实现对复位电路的控制。 复位后,系统恢复到原状态。数码管显示30,主持人按开始键后可重新开始。第四章 系统软件设计4.1 主程序流程图 流程图是使用图形表示算法的思路是
15、一种极好的方法,不论采用何种程序设计方法,程序总体结构确定后,一般以程序流程图的形式对其进行描述。总体框图中的各个子模块或各个子任务也应该结合具体的教学模型和算法画出较详细的程序流程图,供后面编写具体程序和阅读程序使用。流程图是由一些图框和流程线组成的,其中图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。流程图的基本结构为顺序结构,分支结构(又称选择结构),循环结构。为便于识别,绘制流程图的习惯做法是:方框表示:要执行的处理(Process)平行四边型表示:代表资料输入(Input)不规则图形代表资料输出(Output)或报表输出(Print)菱形表示:判断
16、(例如:If.Then.Else) 开始初始化开始Kz= = 0启动中断,数码管开始计时结束中断停止,数码管显示当时时间N有选手抢答YYN复位NY图4.1 主程序流程图图4.2 抢答器定时器中断流程图外部中断0中断中断返回K0按下 K1按下与k0键对应的发光二极管亮与k1键对应的发光二极管亮NYYNN图4.3 外部中断程序图4.2 主程序代码我们组所设计的抢答器的程序采用的是C程序设计,使用WAVE6000集成调试软件实现。C语言的显著特点是用二进制来编写程序,程序的各个部分除了必要的信息交流外彼此之间相互独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C语言是以函数形式提供给
17、用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。本次设计的主程序中包括时钟设计程序,定时器中断子程序,LED显示程序以及按键控制子程序,程序设计如下:#includesbit k0=P10; /*第一位抢答者*/sbit k1=P11; /*第二位抢答者*/sbit d0=P14; /*第一位抢答者对应的发光二极管*/sbit d1=P15; /*第一位抢答者对应的发光二极管*/sbit l0=P23; sbit l1=P24;sbit kz=P30; /*连接开始按钮*/sb
18、it kx=P33; /*连接中断按钮*/unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;unsigned char ge=0,shi=0;unsigned int num=0,time=30;void display(); /*显示函数*/void delay(unsigned int);main()TMOD=0X01; /*采用方式一,即十六位计数器*/TH0=(65536-50000)/256; /*设置初始值*/TL0=(65536-50000)%256;IT0=0;EA=1;ET0=
19、1; /*开启总中断源*/EX0=1; /*启动外部中断0*/while(1)display(); /*调用延时函数*/ if(kz=0)TR0=1;EX0=1; /*开启定时器0中断*/if(kx=0)TR0=0;time=30;P1=0xff;num=0;EA=1;if(num=20) num=0;time-;if(time=0) /*30秒的计时*/TR0=0;EX0=0;void exter0() interrupt 0 /*外部中断程序*/EA=0;l0=0;if(k0=0) /*开关0按下*/d0=0; /* 1号选手抢答成功,第1个二极管亮*/if(k1=0) /*开关1按下*/
20、d1=0; /* 2号选手抢答成功,第2个二极管亮*/void time0() interrupt 1num+;TH0=(65536-50000)/256;TL0=(65536-50000)%256; /*1秒定时函数*/void delay(unsigned int z)unsigned int x,y;for(x=z;x0;x-)for(y=110;y0;y-); /*延迟函数*/void display(void)shi=time/10;ge=time%10;P2=0xef;P0=tablege;delay(5);P2=0xf7;P0=tableshi;delay(5);第五章 仿真模拟
21、实现采用proteus仿真软件模拟实现第六章 课程设计小结和展望5.1 心得体会基于单片机应用系统设计比较的难,我从未接触过任何的应用系统的设计,对老师要求我们做的应用系统的设计根本无从下手,于是从图书馆借了几本有关单片机的应用系统的实例书籍,并且在网上参考了较多本实例的应用知识,了解了系统设计报告的写法和结构。参考了网上较多的实例,通过图书馆借的书和网络让我对该设计了解的更全面。这一定程度上也提高了自己动手的能力。在借鉴了网上的信息,同时添加了自己借的书中的一些内容,整合成了这篇设计。通过几天的课程设计,使我对单片机有了进一步的了解,在设计抢答器、定时器的过程中,通过翻阅资料,上网搜索等,我
22、对各电路器件(如:定时器和LED显像管等)及原理有了更深一层次的认识,既增强了我的理解能力,也使我能更好的运用所学的知识。开始时我还不太明白电路是如何连接的,并且对其原理也不甚了解,但通过对所学知识更深入的了解和同学的讲解和帮助,最终使我克服了难关,并成功地作出了设计。这次设计,时间虽然很紧迫,但通过我的不懈努力,终于顺利完成,我也得到了许多新知识。 5.2 抢答器的应用领域和展望随着我国经济和文化事业的发展,在很多公开竞争场合要求有公正的竞争裁决,诸如证券、股票交易及各种智力竞赛等,因此出现了抢答器。抢答器一般是由很多电路组成的,线路复杂,可靠性不高,功能也比较简单,特别是当抢答路数很多时,
23、实现起来就更为困难。因此我们设计了以单片机为核心的新型智能的抢答器,在保留原始抢答器的基本功能的同时又增加了数码管显示电路实现了其它功能。抢答器又称为第一信号鉴别器,其主要应用于各种知识竞赛、文艺活动等场合。据调查,抢答器正在逐渐扩大市场,其在行业投资机会分析方面、行业投资风险分析方面和行业投资决策依据分析方面将得到越来越多的应用。参考文献:1单片机课程设计实例指导,李光飞,北京航天航空大学出版社,20042单片机原理与应用实例仿真,李泉溪,北京航空航天大学出版社,20093单片机C程序设计及应用实例,胡伟,人民邮电出版社,20034单片机系统设计与实例指导,冯育长,西安电子科技大学出版社,2007本文来自网络,版权归原作者所有,请下载后,尽快删除。11