电子科协竞赛项目报告书参赛作品:单片机的参赛作品:基于51单片机的四路电子抢答器作品小组成员:THXZ专业班级:电信1005班报告提交日期:2011报告提交日期:2011年3月16日日期目录1设计要求与功能...........................................................................................................41.1设计基本要求…………………………………………………………………...42硬件设计......................................................................................................................42.1控制系统及所需元件………………………………………………………….42.2抢答器显示模块………………………………………………………………...52.3电源方案的选择...............................................................................................62.4抢答器键盘的选择...........................................................................................62.5蜂鸣器模块........................................................................................................72.6外部振荡电路....................................................................................................73程序设计......................................................................................................................73.1程序流程图........................................................................................................73.2系统的调试………………………………………..…………………………93.3焊接的问题及解决…………………………………………………………104总结.............................................................................................................................10附录C程序...................................................................................................................11II一设计要求与功能1.1设计基本要求(1)抢答器同时供4名选手或4个代表队比赛使用,分别用4个按钮K1~K4表示。(2)设置裁判开关k5和清零开关k6,该开关由主持人控制,当主持人按下k6,系统复位,预备抢答,当主持人按下总控制控制开关k5,开始抢答;(3)抢答器具有定时抢答功能,抢答时间为倒计时15秒。当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的提示声响,声响持续的时间0.5秒左右,当计时小于5秒后,每减少一秒,便报警一次以提示选手。(4)抢答器具有锁存功能,参赛选手在设定的时间内进行抢答,抢答有效,蜂鸣器发声,计时停止,数码管上显示选手的编号和时间,选手相应的信号灯被点亮,其他选手再抢答时无效。(5)如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答。等待下一轮抢答。。二硬件设计2.1控制系统及所需元件控制系统主要由单片机应用电路、存储器接口电路、显示接口电路组成。其中单片机STC89C52是系统工作的核心,它主要负责控制各个部分协调工作。所需元件:该系统的核心器件是STC89C52。各口功能:P0.0-P0.3是数码管的位选口;P2.0-P2.7是数码管的段选口,为其传送段选信号;P1.0-P1.3是4组抢答信号的输入口;P1.4、P1.5由裁判控制,分别是抢答开始\复位功能键;P1.6为蜂鸣器的控制口;P3.4-P3.7为选手信号灯输出口;在其外围接上电复位电路、数码管电路、LED发光二极管、按键电路及扬声器电路。电子抢答器用单片机来设计制作完成的,由于其功能的实现主要是通过软件3编程来完成的,所以采用单片机STC89C52,它是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和512bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的STC89C52单片机可为您提供许多较复杂系统控制应用场合。下图为其I/O口引脚图:STC89C52管脚图2.2.抢答器显示模块显示模块分为数码管模块和LED信号灯模块分别采用四位一体共阴极数码管和四个发光二极管,体积小,功耗低,故障率低,程序编译容易,资源占用较少。(见图1,图2)图14图22.3电源方案的选择系统需要5V电源来驱动单片机STC89C52。利用电脑的USB接口可以提供5V电压来驱动单片机。2.4抢答器键盘的选择键盘是单片机不可缺少的输入设备,是实现人机对话的纽带。键盘按结构形式可以分为非编码键盘和编码键盘,前者用软件方法产生键码,而后者则用硬件方法来产生键码。在单片机中使用的都是非编码键盘,因为非编码键盘结构简单,成本低廉,非编码键盘的类型很多,常用的有独立式键盘,行列式键盘等。本设计采用独立式键盘。键盘接口中使用多少根I/O线,键盘中就有几个按键,键盘接口使用了6根I/O口线,该键盘就有6个按键,这种类型的键盘,其按键比较少,且键盘中各按键的工作互不干扰。因此可以根据实际需要对键盘中的按键灵活的编码。如图所示。最简单的编码方式就是根据I/O输入口所直接反映的相应按键,按下的状态进行编码,称按键直接状态码,对于这样编码的独立式键盘,CPU可以通过直接读取I/O口的状态来获取按键的直接状态编码值,根据这个值直接进行按键识别,这样形式的键盘结构简单,按键识别容易。5独立式键盘的缺点是需要占用比较多的I/O口线,当单片机应用系统键盘中需要的按键比较少或I/O口线比较富余时,可以采用这样类型的键盘。其模块电路图如图4所示。采用六个BUTTON按钮作为抢答的选择按钮,与STC89C52的P1.0-P1.5相连。图4键盘模块2.5蜂鸣器模块蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件,其图形如图所示.62.6外部振荡电路外部振荡电路单片机必须在AT89C52的驱动下才能工作.在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,外部振荡电路见图所示。三程序设计3.1程序流程图:程序流程图:开始初始化部分NK5==0Y启动中断,数码管开始倒计时N若有选手抢答Y中断停止,数码管显示选手的标号并点亮信号灯结束抢答器主程序流程图7定时器0中断N1秒时间到?Y秒加1数码管显示秒值中断返回抢答器定时器中断流程图扫描键盘YK0键按下NYK1键按下NYK2键按下NK3键按下N与K2键对应的发光二极管亮及数码管显示与K1键对应的发光二极管亮及数码管显示与K0键对应的发光二极管亮及数码管显示Y与K3键对应的发光二极管亮及数码管显示扫描停止键盘扫描流程图主程序我们组所设计的抢答器的程序采用的是C程序设计,C语言的显著特点是用二进制来编写程序,程序的各个部分除了必要的信息交流外彼此之间相互独立。8这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。本次设计的主程序中包括时钟设计程序,定时器中断子程序,LED显示程序以及按键控制子程序,具体程序见附件。3.2系统的调试系统调试包括硬件调试和软件调试,而且两者是密不可分的。我们设计好的硬件电路和软件程序,只有经过联合调试,才能验证其正确性;软硬件的配人情况以及是否达到设计任务的要求,也只有经过调试,才能发现问题并加以解决、完善,最终开发成实用产品。硬件调试分单元电路调试和联机调试,单元电路试验在硬件电路设计时已经进行,这里的调试只是将其制成印刷电路板后试验电路是否正确,并排除一些加工工艺性错误(如错线、开路、短路等)。这种调试可单独模拟进行,也可通过开发装置由软件配合进行。硬件联机调试则必须在系统软件的配合下进行。软件调试一般包括分块调试和联机调试两个阶段。程序的分块调试一般在单片机开发装置上进行,可根据所调程序功能块的入口参量初值编制一个特殊的程序段,并连同被调程序功能块一起在开发装置上运行;也可配合对应硬件电路单独运行某程序功能块,然后检查是否正确,如果执行结果与预想的不一致,可以通过单步运行或设置断点的方法,查出原因并加以改正,直到运行结果正确为止。这时该程序功能块已调试完毕,可去掉附加程序段。其它程序功能块可按此法进行调试。程序联机调试就是将已调试好的各程序功能块按总体结构联成一个完整程序,在所研制的硬件电路上运行。从而试验程序整体运行的完整性、正确性和与硬件电路的配合情况。在联调中可能会有某些支路上的程序、功能块因受条件制约而得不到相应的输入参数,这时,调试人员应创造条件进行模拟调试。在联调中如发现硬件问题也应及时修正,直到单片机系统的软件、硬件全部调试成功为止。系统调试完成后,还要进行一段时间的试运行,从而检验系统的稳定性和抗干扰能力,验证系统功能是否达到设计要求,是否达到预期的效果。93.3焊接的问题及解决一般来说,造成硬件问题的首要问题就是焊接了,也就是说焊接的好与坏直接响产品的正常运行。造成焊接质量不高的常见原因是:①焊锡用量过多,形成焊点的锡堆积;焊锡过少,不足以包裹焊点。②冷焊。焊接时烙铁温度过低或加热时间不足,焊锡未完全熔化、浸润、焊锡表面不光亮(不光滑),有细小裂纹(如同豆腐渣一样!)。③夹松香焊接,焊锡与元器件或印刷板之间夹杂着一层松香,造成电连接不良。若夹杂加热不足的松香,则焊点下有一层黄褐色松香膜;若加热温度太高,则焊点下有一层碳化松香的黑色膜。对于有加热不足的松香膜的情况,可以用烙铁进行补焊。对于已形成黑膜的,则要"吃"净焊锡,清洁被焊元器件或印刷板表面,重新进行焊接才行。④焊锡连桥。指焊锡量过多,造成元器件的焊点之间短路。这在对超小元器件及细小印刷电路板进行焊接时要尤为注意。⑤焊剂过量,焊点明围松香残渣很多。当少量松香残留时,可以用电烙铁再轻轻加热一下,让松香挥发掉,也可以用蘸有无水酒精的棉球,擦去多余的松香或焊剂。⑥焊点表面的焊锡形成尖锐的突尖。这多是由于加热温度不足或焊剂过少,以及烙铁离开焊点时角度不当浩成的内。。总结经过近半个月的努力,在我们合作下,我们较好的完成了这次设计项目,通过此次电子制作比赛,我们重新认识到了自学的重要性,以及学以致用的道理。我们在图书馆和网上查阅了大量的资料,同时也认识到了图书馆的重要作用。通过此次的抢答器的设计,让我们更加重视到专业知识的重要性及动手能力的必要性,在整个制作过程中,我们出现很多问题,但我们并没有因此而放弃,在不断调试和失败中,我们不仅学到了专业知识,更是磨炼了我们的心智,让我们受益匪浅。任何事情只要去做,多多去尝试,努力的要以自己去做为前提的心态,那么任何事情即使做的不好,也会受益很多,不是有句话叫做:心态决定的成败的话吗,实在是有理。无论做什么事情都不可能一帆风顺,碰到阻碍不要舍弃,不要踟蹰不前,不经历风雨,怎么见彩虹!在今后的学习过程中,应该多到图书馆看一些专业方面的书籍,比如protel画图,proteus仿真软件,以丰富自己的知识,掌握更多的硬件与软件设计技巧,使我们在今后的制作中提高效率。这次设计任务也使我们加深了对单片机及接口10技术的理解和应用,由于知识水平的局限,设计中可能会存在着一些不足,我们真诚的接受老师和同学的批评和指正.。附录(程序)附录(C程序)#include
51单片机四路抢答器毕业论文只要四路
第一章绪论设计的四路数字抢答器,每路设计一抢答按钮供选手使用,并设置一个系统清除和抢答控制总开关S,该开关由主持人控制。抢答器具有限时抢答功能,每一轮的限时抢答时间设定为30秒。主持人启动"开始"键后,在设定的时间内,参赛选手进行抢答有效,否则无效。抢答器具有锁存与显示功能。选手抢答成功则显示相应的编号,此时其他选手无法抢答。优先抢答选手的编号一直保持到主持人将系统清除为止。用计时器数码管显示当前剩余的答题时间,当答题剩余时间为5秒时,小灯闪烁提示;当答题时间结束时,蜂鸣器发出响声,提示答题者答题时间到。本课题我们主要采用单片机电路来实现的,主要设计思路是:在主持人下达命令之后,若选手在30s内没有闭合开关,就进入下一环节;若有选手闭合开关,主机就能够准确判断出第一抢答信号并将其锁存,同时将其余输入信号封锁,使其它抢答无效,此时主持人根据屏幕上显示的号码判断是哪位选手可以做答,此时最先闭合开关的选手开始进入答题倒计时,若在60s内答题则视为有效;否则无效。程序流程图如图1-1.1-2所示:选手发送图:开始初始化:P0.P2口清零定时器T1方式选择;串行口发送方式选择;启动定时器1并装入初值判断抢答是否成功向主机发送选手号显示答题倒计时图1-1主持人接受图:开始初始化:P0.P1.P2.口清零,串行口接受方式选择,T1接收方式选择,启动计数器T1,并装入初值,开总中断和串行口中断总开关是否按下允许接收,并显示抢答时间倒计时是否接受到抢答信号显示优先按下键的选手号码,并屏蔽其他选手号码图1-2系统方案论证第二章系统方案论证方案一:如图2-1,采用一个单片机,一个计时器,一个数码管,选手通过按下开关作为输入信号,完成抢答输入信号的触发。主持人根据选手的输入信号准确判断出最先按下开关的选手,并屏蔽其他抢答信号,让优先按键的选手开始作答,同时计时器开始计时倒计时。电路主要运用了定时器和计数器,该电路的优点是电路图比较简单,缺点是抗干扰能力差,缺乏实际利用价值。图2-1方案二:采用五个单片机,五个计时器,一个数码管,电路主要运用串行口中断和定时器计数器的工作原理。接通电源后,主持人将开关拨到"清零"状态,抢答器处于禁止状态,编号显示器灭灯,主持人将开关置开始"状态,宣布"开始"抢答器工作,开始抢答时间倒计时,如果在抢答时间倒计时内无人抢答,则直接进入下一环节,若有人在这时间内优先抢答,则其开始作答,与此同时抢答倒计时,改换成作答倒计时,当倒计时到5s时,信号灯闪烁提醒作答选手,当计时结束时,蜂鸣器发出报警声响提示选手。选手抢答实行优先锁存,优先抢答,选手的编号一直保持到裁判将系统清零为止。该电路的缺点是电路复杂,优点是便于每位选手观看倒计时,实用性较好,在实际生活中应用较多。通过以上两个方案的比较,我们不难发现第二个电路增加了一些控制电路,控制起来比较容易一些,效果和实用性比第一个好,故本实验采用第二个原理图。系统图各位选手通过按键发送请求信号告知主持人,主持人通过数码管上号码告诉哪位选手可以答题,如图2-21号4号主持人2号3号图2-2第三章理论分析本课题的电路采用单片机AT89C51作为控制芯片,分别是主持人和每位参赛选手都有自己的控制器。每位选手的控制芯片P0和P2口上都接一个共阴极的数码管作为答题倒计时的显示。P1^4口接一按键,按键的另一端接地,供选手抢答使用。P1^6接音频放大电路,并在其输出端接一个喇叭,作为答题剩余时间提醒。当选手按下按键抢答成功时,它就会通过控制芯片上的串行口发送自己的选手号,同时也启动了答题倒计时,当答题时间只剩下5秒时,喇叭就会发出“叮咚”提醒选手抓紧时间答题。主持人的控制芯片的P0.P1和P2口都接一共阴极的数码管,其中P1口的数码管用来显示抢答成功选手的号码。P1和P2口的数码管开始时用来显示允许抢答的时间限制,当有选手抢答成功时,就转为显示抢答时间倒计时。P3^7接开关和指示灯,当开关按下指示灯亮时才允许选手们进行抢答。当有一号选手抢答成功,则通过软件关闭串行口中断屏蔽其他的选手。选手向主持人发送自己的选手号码是采用串行口单工通讯的原理。每个控制芯片内部都有一个功能强大的全双工的异步通信串行口,其内部有两个物理上独立的接收.发送缓冲期SBUF,可同时发送.接收数据。每次串行口的使用,串行口需初始化后,才能完成数据的输入、输出。其初始化过程如下:(1)按选定串行口的操作模式设定SCON的SM0、SM1两位二进制编码。(2)对于操作模式2或3,应根据需要在TB8中写入待发送的第9位数据。(3)若选定的操作模式不是模式0,还需设定接收/发送的波特率。设定SMOD的状态,以控制波特率是否加倍。若选定操作模式1或3,则应对定时器T1进行初始化以设定其溢出率。这些初始化须通过软件编程来实现。本设计采用的是模式2--9位数据异步通讯方式。其工作原理为:(1).一帧为11位:9位数据位,1个起始位(0),1个停止位(1)。第9位数据位在TB8/RB8中,常用作校验位和多机通讯标识位(2).RXD:接收数据端,TXD:发送数据端。(3).波特率:方式2:B=(2SMOD/64)×fosc,本设计用定时器1来产生。(4).发送:先装入TB8,写入SBUF并启动发送,发送结束,TI=1。接收:REN=1,允许接收。接收完一帧,若RI=0且第9位为1(或SM2=0),将接收数据装入接收SBUF,第9位装入RB8,使RI=1;否则丢弃接收数据,不置位RI。原理图如下:图3试验及数据分析第四章试验及数据分析1.实验环境在实验室里用proteus仿真,用keil编程,最后得到仿真结果。2.数据(1)主机工作)主持人闭和开关后,数码管显示零,计时器显示抢答倒计时,从30s开始倒计时。如图4-2-1:图4-2-1(2)选手一抢答)在抢答倒计时时间内,选手一闭合开关,主机数码管上显示”1”,选手一旁边的发光二极管亮,与此同时,主持人和选手一的计时器开始显示答题倒计时,时间在60s内,如图4-2-2:图4-2-2(3)选手二抢答)在抢答倒计时时间内,选手二闭合开关,主机数码管上显示”2”,选手二旁边的发光二极管亮,与此同时,主持人和选手二的计时器开始显示答题倒计时,时间在60s内,如图4-2-3:图4-2-3(4)选手三抢答)在抢答倒计时时间内,选手三闭合开关,主机数码管上显示”3”,选手三旁边的发光二极管亮,与此同时,主持人和选手三的计时器开始显示答题倒计时,时间在60s内,如图4-2-4:图4-2-4(5)选手四抢答)在抢答倒计时时间内,选手四闭合开关,主机数码管上显示”4”,选手四旁边的发光二极管亮,与此同时,主持人和选手四的计时器开始显示答题倒计时,时间在60s内,如图4-2-5:图4-2-53.分析抢答器由单片机以及外围电路组成,由于采用单片机,使得外围电路非常简单,有如下功能抢答限时、选手答题计时抢答自锁,灯光指示、暂停复位、电子音乐报声;抢答规定时限0-30秒可调;面板上设有组号与计时窗口,显示清晰,同步显示,互不干扰集抢答器、数显倒计时器于一机;可设定抢答、答题两种倒计时时间;抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在LED数码管上显示;抢答器具有定时抢答功能,且一次抢答的时间由主持人设定,本次时间设定为30秒,当主持人启动"开始"键后,定时器进行减计时等等,总之抢答器很有实用价值。第五章心得体会今年参加了全国大学生电子设计大赛培训,培训过程中的艰辛只有亲身经历过才知道里面的酸甜苦辣,我相信这段时间会给我们留下美好的回忆。在经历了艰苦的培训之后,我们组只有一个信念,就是无论如何也要尽我们最大的努力,让老师选上我们,只有选上了,我们的梦想才真的开始了,否则前面的付出就付诸东流了。我们做的是抢答器。我们本来很快就有思路了,但给老师一看的时候,他说太没难度了,会影响我们的选拔分,没办法,我们只好把难度往上提了,这一提难度我们可就连续整了3天,在这3天我们除下吃饭和睡觉的时间不在外,其余时间通通泡在实验室内,最终通过我们的集体努力,我们的实验也算有所成果吧。通过参加这次培训,发现有了很多的体会和收获:首先是学习能力的加强。这种学习能力包括获取资料的能力、理解前人思路的能力、系统设计能力、动手能力、分析排除故障能力、表达能力等多方面,电子设计竞赛的赛制就决定了上述能力缺一不可。其次是团队精神的培养。电子设计竞赛要求三人组队参赛,集体计算成绩,这就使得三个人必须互相信任、互相配合、分工合作。在顺境时要相互提醒保持冷静,逆境时要相互鼓励共度难关,不能相互埋怨。我们组永远忘不了这次经历,永远忘不了和我们一起奋斗的老师和学哥,我们永远坚信我们组是最棒的!参考文献[1]余发山,单片机原理及应用技术,中国矿业大学出版社,2003;[2]王卫东,基于单片机的最简连线抢答器的设计与制作,1999;[3]李朝青.2001.单片机原理与接口技术.北京:北京航空航天大学出版社.94-103,339-348;[4]沈庆阳、郭庭吉版社;[5]李朝青主编,《单片机原理与接口技术》,北京航天航空大学出版社,1994;[6]何立民主编,《单片机应用与设计》,北京航天航空大学出版社,1990;8051单片机实践与应用清华大学出
电子科协竞赛项目报告书参赛作品:单片机的参赛作品:基于51单片机的四路电子抢答器作品小组成员:THXZ专业班级:电信1005班报告提交日期:2011报告提交日期:2011年3月16日日期目录1设计要求与功能...........................................................................................................41.1设计基本要求…………………………………………………………………...42硬件设计......................................................................................................................42.1控制系统及所需元件………………………………………………………….42.2抢答器显示模块………………………………………………………………...52.3电源方案的选择...............................................................................................62.4抢答器键盘的选择...........................................................................................62.5蜂鸣器模块........................................................................................................72.6外部振荡电路....................................................................................................73程序设计......................................................................................................................73.1程序流程图........................................................................................................73.2系统的调试………………………………………..…………………………93.3焊接的问题及解决…………………………………………………………104总结.............................................................................................................................10附录C程序...................................................................................................................11II一设计要求与功能1.1设计基本要求(1)抢答器同时供4名选手或4个代表队比赛使用,分别用4个按钮K1~K4表示。(2)设置裁判开关k5和清零开关k6,该开关由主持人控制,当主持人按下k6,系统复位,预备抢答,当主持人按下总控制控制开关k5,开始抢答;(3)抢答器具有定时抢答功能,抢答时间为倒计时15秒。当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的提示声响,声响持续的时间0.5秒左右,当计时小于5秒后,每减少一秒,便报警一次以提示选手。(4)抢答器具有锁存功能,参赛选手在设定的时间内进行抢答,抢答有效,蜂鸣器发声,计时停止,数码管上显示选手的编号和时间,选手相应的信号灯被点亮,其他选手再抢答时无效。(5)如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答。等待下一轮抢答。。二硬件设计2.1控制系统及所需元件控制系统主要由单片机应用电路、存储器接口电路、显示接口电路组成。其中单片机STC89C52是系统工作的核心,它主要负责控制各个部分协调工作。所需元件:该系统的核心器件是STC89C52。各口功能:P0.0-P0.3是数码管的位选口;P2.0-P2.7是数码管的段选口,为其传送段选信号;P1.0-P1.3是4组抢答信号的输入口;P1.4、P1.5由裁判控制,分别是抢答开始\复位功能键;P1.6为蜂鸣器的控制口;P3.4-P3.7为选手信号灯输出口;在其外围接上电复位电路、数码管电路、LED发光二极管、按键电路及扬声器电路。电子抢答器用单片机来设计制作完成的,由于其功能的实现主要是通过软件3编程来完成的,所以采用单片机STC89C52,它是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和512bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的STC89C52单片机可为您提供许多较复杂系统控制应用场合。下图为其I/O口引脚图:STC89C52管脚图2.2.抢答器显示模块显示模块分为数码管模块和LED信号灯模块分别采用四位一体共阴极数码管和四个发光二极管,体积小,功耗低,故障率低,程序编译容易,资源占用较少。(见图1,图2)图14图22.3电源方案的选择系统需要5V电源来驱动单片机STC89C52。利用电脑的USB接口可以提供5V电压来驱动单片机。2.4抢答器键盘的选择键盘是单片机不可缺少的输入设备,是实现人机对话的纽带。键盘按结构形式可以分为非编码键盘和编码键盘,前者用软件方法产生键码,而后者则用硬件方法来产生键码。在单片机中使用的都是非编码键盘,因为非编码键盘结构简单,成本低廉,非编码键盘的类型很多,常用的有独立式键盘,行列式键盘等。本设计采用独立式键盘。键盘接口中使用多少根I/O线,键盘中就有几个按键,键盘接口使用了6根I/O口线,该键盘就有6个按键,这种类型的键盘,其按键比较少,且键盘中各按键的工作互不干扰。因此可以根据实际需要对键盘中的按键灵活的编码。如图所示。最简单的编码方式就是根据I/O输入口所直接反映的相应按键,按下的状态进行编码,称按键直接状态码,对于这样编码的独立式键盘,CPU可以通过直接读取I/O口的状态来获取按键的直接状态编码值,根据这个值直接进行按键识别,这样形式的键盘结构简单,按键识别容易。5独立式键盘的缺点是需要占用比较多的I/O口线,当单片机应用系统键盘中需要的按键比较少或I/O口线比较富余时,可以采用这样类型的键盘。其模块电路图如图4所示。采用六个BUTTON按钮作为抢答的选择按钮,与STC89C52的P1.0-P1.5相连。图4键盘模块2.5蜂鸣器模块蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件,其图形如图所示.62.6外部振荡电路外部振荡电路单片机必须在AT89C52的驱动下才能工作.在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,外部振荡电路见图所示。三程序设计3.1程序流程图:程序流程图:开始初始化部分NK5==0Y启动中断,数码管开始倒计时N若有选手抢答Y中断停止,数码管显示选手的标号并点亮信号灯结束抢答器主程序流程图7定时器0中断N1秒时间到?Y秒加1数码管显示秒值中断返回抢答器定时器中断流程图扫描键盘YK0键按下NYK1键按下NYK2键按下NK3键按下N与K2键对应的发光二极管亮及数码管显示与K1键对应的发光二极管亮及数码管显示与K0键对应的发光二极管亮及数码管显示Y与K3键对应的发光二极管亮及数码管显示扫描停止键盘扫描流程图主程序我们组所设计的抢答器的程序采用的是C程序设计,C语言的显著特点是用二进制来编写程序,程序的各个部分除了必要的信息交流外彼此之间相互独立。8这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。本次设计的主程序中包括时钟设计程序,定时器中断子程序,LED显示程序以及按键控制子程序,具体程序见附件。3.2系统的调试系统调试包括硬件调试和软件调试,而且两者是密不可分的。我们设计好的硬件电路和软件程序,只有经过联合调试,才能验证其正确性;软硬件的配人情况以及是否达到设计任务的要求,也只有经过调试,才能发现问题并加以解决、完善,最终开发成实用产品。硬件调试分单元电路调试和联机调试,单元电路试验在硬件电路设计时已经进行,这里的调试只是将其制成印刷电路板后试验电路是否正确,并排除一些加工工艺性错误(如错线、开路、短路等)。这种调试可单独模拟进行,也可通过开发装置由软件配合进行。硬件联机调试则必须在系统软件的配合下进行。软件调试一般包括分块调试和联机调试两个阶段。程序的分块调试一般在单片机开发装置上进行,可根据所调程序功能块的入口参量初值编制一个特殊的程序段,并连同被调程序功能块一起在开发装置上运行;也可配合对应硬件电路单独运行某程序功能块,然后检查是否正确,如果执行结果与预想的不一致,可以通过单步运行或设置断点的方法,查出原因并加以改正,直到运行结果正确为止。这时该程序功能块已调试完毕,可去掉附加程序段。其它程序功能块可按此法进行调试。程序联机调试就是将已调试好的各程序功能块按总体结构联成一个完整程序,在所研制的硬件电路上运行。从而试验程序整体运行的完整性、正确性和与硬件电路的配合情况。在联调中可能会有某些支路上的程序、功能块因受条件制约而得不到相应的输入参数,这时,调试人员应创造条件进行模拟调试。在联调中如发现硬件问题也应及时修正,直到单片机系统的软件、硬件全部调试成功为止。系统调试完成后,还要进行一段时间的试运行,从而检验系统的稳定性和抗干扰能力,验证系统功能是否达到设计要求,是否达到预期的效果。93.3焊接的问题及解决一般来说,造成硬件问题的首要问题就是焊接了,也就是说焊接的好与坏直接响产品的正常运行。造成焊接质量不高的常见原因是:①焊锡用量过多,形成焊点的锡堆积;焊锡过少,不足以包裹焊点。②冷焊。焊接时烙铁温度过低或加热时间不足,焊锡未完全熔化、浸润、焊锡表面不光亮(不光滑),有细小裂纹(如同豆腐渣一样!)。③夹松香焊接,焊锡与元器件或印刷板之间夹杂着一层松香,造成电连接不良。若夹杂加热不足的松香,则焊点下有一层黄褐色松香膜;若加热温度太高,则焊点下有一层碳化松香的黑色膜。对于有加热不足的松香膜的情况,可以用烙铁进行补焊。对于已形成黑膜的,则要"吃"净焊锡,清洁被焊元器件或印刷板表面,重新进行焊接才行。④焊锡连桥。指焊锡量过多,造成元器件的焊点之间短路。这在对超小元器件及细小印刷电路板进行焊接时要尤为注意。⑤焊剂过量,焊点明围松香残渣很多。当少量松香残留时,可以用电烙铁再轻轻加热一下,让松香挥发掉,也可以用蘸有无水酒精的棉球,擦去多余的松香或焊剂。⑥焊点表面的焊锡形成尖锐的突尖。这多是由于加热温度不足或焊剂过少,以及烙铁离开焊点时角度不当浩成的内。。总结经过近半个月的努力,在我们合作下,我们较好的完成了这次设计项目,通过此次电子制作比赛,我们重新认识到了自学的重要性,以及学以致用的道理。我们在图书馆和网上查阅了大量的资料,同时也认识到了图书馆的重要作用。通过此次的抢答器的设计,让我们更加重视到专业知识的重要性及动手能力的必要性,在整个制作过程中,我们出现很多问题,但我们并没有因此而放弃,在不断调试和失败中,我们不仅学到了专业知识,更是磨炼了我们的心智,让我们受益匪浅。任何事情只要去做,多多去尝试,努力的要以自己去做为前提的心态,那么任何事情即使做的不好,也会受益很多,不是有句话叫做:心态决定的成败的话吗,实在是有理。无论做什么事情都不可能一帆风顺,碰到阻碍不要舍弃,不要踟蹰不前,不经历风雨,怎么见彩虹!在今后的学习过程中,应该多到图书馆看一些专业方面的书籍,比如protel画图,proteus仿真软件,以丰富自己的知识,掌握更多的硬件与软件设计技巧,使我们在今后的制作中提高效率。这次设计任务也使我们加深了对单片机及接口10技术的理解和应用,由于知识水平的局限,设计中可能会存在着一些不足,我们真诚的接受老师和同学的批评和指正.。附录(程序)附录(C程序)#include#defineucharunsignedchar#defineuintunsignedintUcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴数码管0~9编码uinti,j,time,num;ucharge,shi;bitflag,flag1;sbitk1=P1^0;sbitk2=P1^1;sbitk3=P1^2;sbitk4=P1^3;sbitk5=P1^4;sbitk6=P1^5;//k1~k4为选手按键,k5为主持人开关,k6为复位键sbitbeep=P1^6;//定义蜂鸣器的端口sbitwei1=P0^0;sbitwei2=P0^1;sbitwei3=P0^2;sbitwei4=P0^3;//定义数码管的位选端口sbitled1=P3^4;sbitled2=P3^5;sbitled3=P3^6;sbitled4=P3^7;//定义LED灯的端口voiddelay(uinta)//延时函数{uinti,j;for(i=a;i>0;i--)for(j=110;j>0;j--);}11voiddisplay()//显示函数{shi=time/10;ge=time%10;P2=table[num];//显示选手编号wei1=0;delay(1);wei1=1;P2=table[shi];wei3=0;delay(1);wei3=1;P2=table[ge];wei4=0;delay(1);wei4=1;}voidkeyscan(){if(k1==0)//按键按下{delay(10);//延时去抖动if(k1==0){num=1;led1=0;flag=1;TR0=~TR0;TR1=0;//开定时器0,关定时器1beep=1;delay(500);beep=0;//蜂鸣器响500毫秒while(!k1);//等待按键释放}}if(k2==0){delay(10);if(k2==0)//显示时间12{num=2;led2=0;flag=1;TR0=~TR0;TR1=0;beep=1;delay(500);beep=0;while(!k2);}}if(k3==0){delay(10);if(k3==0){num=3;led3=0;flag=1;TR0=~TR0;TR1=0;beep=1;delay(500);beep=0;while(!k3);}}if(k4==0){delay(10);if(k4==0){num=4;led4=0;flag=1;TR0=~TR0;TR1=0;beep=1;delay(500);beep=0;while(!k4);}}display();//显示选手编号和时间if(time==0){TR0=0;TR1=0;flag=1;//关计时器0和113}if(time==6)TR1=1;}voidinit(){TMOD=0x11;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TH1=(65536-50000)/256;TL1=(65536-50000)%256;EA=1;ET0=1;ET1=1;beep=0;//作品上蜂鸣器是赋高电平响,开始置低关闭}voidmain(){init();//初始化while(1){display();if(k6==0){delay(10);if(k6==0){P3=0xff;//关闭所有LED灯flag1=k6;time=15;wei1=0;num=0;P2=table[num];14while(!flag1){if(k5==0){delay(10);if(k5==0){flag1=1;flag=k5;TR0=1;beep=1;delay(500);beep=0;while(!k5);while(!flag)keyscan();//扫描键盘}}}}}}}voidtime0()interrupt1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;i++;if(i==20){i=0;time--;}}15voidtime1()interrupt3{TH1=(65536-50000)/256;TL1=(65536-50000)%256;j++;if(j==10){j=0;beep=~beep;}}16
电子科协竞赛项目报告书参赛作品:单片机的参赛作品:基于51单片机的四路电子抢答器作品小组成员:THXZ专业班级:电信1005班报告提交日期:2011报告提交日期:2011年3月16日日期目录1设计要求与功能...........................................................................................................41.1设计基本要求…………………………………………………………………...42硬件设计......................................................................................................................42.1控制系统及所需元件………………………………………………………….42.2抢答器显示模块………………………………………………………………...52.3电源方案的选择...............................................................................................62.4抢答器键盘的选择...........................................................................................62.5蜂鸣器模块........................................................................................................72.6外部振荡电路....................................................................................................73程序设计......................................................................................................................73.1程序流程图........................................................................................................73.2系统的调试………………………………………..…………………………93.3焊接的问题及解决…………………………………………………………104总结.............................................................................................................................10附录C程序...................................................................................................................11II一设计要求与功能1.1设计基本要求(1)抢答器同时供4名选手或4个代表队比赛使用,分别用4个按钮K1~K4表示。(2)设置裁判开关k5和清零开关k6,该开关由主持人控制,当主持人按下k6,系统复位,预备抢答,当主持人按下总控制控制开关k5,开始抢答;(3)抢答器具有定时抢答功能,抢答时间为倒计时15秒。当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的提示声响,声响持续的时间0.5秒左右,当计时小于5秒后,每减少一秒,便报警一次以提示选手。(4)抢答器具有锁存功能,参赛选手在设定的时间内进行抢答,抢答有效,蜂鸣器发声,计时停止,数码管上显示选手的编号和时间,选手相应的信号灯被点亮,其他选手再抢答时无效。(5)如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答。等待下一轮抢答。。二硬件设计2.1控制系统及所需元件控制系统主要由单片机应用电路、存储器接口电路、显示接口电路组成。其中单片机STC89C52是系统工作的核心,它主要负责控制各个部分协调工作。所需元件:该系统的核心器件是STC89C52。各口功能:P0.0-P0.3是数码管的位选口;P2.0-P2.7是数码管的段选口,为其传送段选信号;P1.0-P1.3是4组抢答信号的输入口;P1.4、P1.5由裁判控制,分别是抢答开始\复位功能键;P1.6为蜂鸣器的控制口;P3.4-P3.7为选手信号灯输出口;在其外围接上电复位电路、数码管电路、LED发光二极管、按键电路及扬声器电路。电子抢答器用单片机来设计制作完成的,由于其功能的实现主要是通过软件3编程来完成的,所以采用单片机STC89C52,它是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和512bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的STC89C52单片机可为您提供许多较复杂系统控制应用场合。下图为其I/O口引脚图:STC89C52管脚图2.2.抢答器显示模块显示模块分为数码管模块和LED信号灯模块分别采用四位一体共阴极数码管和四个发光二极管,体积小,功耗低,故障率低,程序编译容易,资源占用较少。(见图1,图2)图14图22.3电源方案的选择系统需要5V电源来驱动单片机STC89C52。利用电脑的USB接口可以提供5V电压来驱动单片机。2.4抢答器键盘的选择键盘是单片机不可缺少的输入设备,是实现人机对话的纽带。键盘按结构形式可以分为非编码键盘和编码键盘,前者用软件方法产生键码,而后者则用硬件方法来产生键码。在单片机中使用的都是非编码键盘,因为非编码键盘结构简单,成本低廉,非编码键盘的类型很多,常用的有独立式键盘,行列式键盘等。本设计采用独立式键盘。键盘接口中使用多少根I/O线,键盘中就有几个按键,键盘接口使用了6根I/O口线,该键盘就有6个按键,这种类型的键盘,其按键比较少,且键盘中各按键的工作互不干扰。因此可以根据实际需要对键盘中的按键灵活的编码。如图所示。最简单的编码方式就是根据I/O输入口所直接反映的相应按键,按下的状态进行编码,称按键直接状态码,对于这样编码的独立式键盘,CPU可以通过直接读取I/O口的状态来获取按键的直接状态编码值,根据这个值直接进行按键识别,这样形式的键盘结构简单,按键识别容易。5独立式键盘的缺点是需要占用比较多的I/O口线,当单片机应用系统键盘中需要的按键比较少或I/O口线比较富余时,可以采用这样类型的键盘。其模块电路图如图4所示。采用六个BUTTON按钮作为抢答的选择按钮,与STC89C52的P1.0-P1.5相连。图4键盘模块2.5蜂鸣器模块蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件,其图形如图所示.62.6外部振荡电路外部振荡电路单片机必须在AT89C52的驱动下才能工作.在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,外部振荡电路见图所示。三程序设计3.1程序流程图:程序流程图:开始初始化部分NK5==0Y启动中断,数码管开始倒计时N若有选手抢答Y中断停止,数码管显示选手的标号并点亮信号灯结束抢答器主程序流程图7定时器0中断N1秒时间到?Y秒加1数码管显示秒值中断返回抢答器定时器中断流程图扫描键盘YK0键按下NYK1键按下NYK2键按下NK3键按下N与K2键对应的发光二极管亮及数码管显示与K1键对应的发光二极管亮及数码管显示与K0键对应的发光二极管亮及数码管显示Y与K3键对应的发光二极管亮及数码管显示扫描停止键盘扫描流程图主程序我们组所设计的抢答器的程序采用的是C程序设计,C语言的显著特点是用二进制来编写程序,程序的各个部分除了必要的信息交流外彼此之间相互独立。8这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。本次设计的主程序中包括时钟设计程序,定时器中断子程序,LED显示程序以及按键控制子程序,具体程序见附件。3.2系统的调试系统调试包括硬件调试和软件调试,而且两者是密不可分的。我们设计好的硬件电路和软件程序,只有经过联合调试,才能验证其正确性;软硬件的配人情况以及是否达到设计任务的要求,也只有经过调试,才能发现问题并加以解决、完善,最终开发成实用产品。硬件调试分单元电路调试和联机调试,单元电路试验在硬件电路设计时已经进行,这里的调试只是将其制成印刷电路板后试验电路是否正确,并排除一些加工工艺性错误(如错线、开路、短路等)。这种调试可单独模拟进行,也可通过开发装置由软件配合进行。硬件联机调试则必须在系统软件的配合下进行。软件调试一般包括分块调试和联机调试两个阶段。程序的分块调试一般在单片机开发装置上进行,可根据所调程序功能块的入口参量初值编制一个特殊的程序段,并连同被调程序功能块一起在开发装置上运行;也可配合对应硬件电路单独运行某程序功能块,然后检查是否正确,如果执行结果与预想的不一致,可以通过单步运行或设置断点的方法,查出原因并加以改正,直到运行结果正确为止。这时该程序功能块已调试完毕,可去掉附加程序段。其它程序功能块可按此法进行调试。程序联机调试就是将已调试好的各程序功能块按总体结构联成一个完整程序,在所研制的硬件电路上运行。从而试验程序整体运行的完整性、正确性和与硬件电路的配合情况。在联调中可能会有某些支路上的程序、功能块因受条件制约而得不到相应的输入参数,这时,调试人员应创造条件进行模拟调试。在联调中如发现硬件问题也应及时修正,直到单片机系统的软件、硬件全部调试成功为止。系统调试完成后,还要进行一段时间的试运行,从而检验系统的稳定性和抗干扰能力,验证系统功能是否达到设计要求,是否达到预期的效果。93.3焊接的问题及解决一般来说,造成硬件问题的首要问题就是焊接了,也就是说焊接的好与坏直接响产品的正常运行。造成焊接质量不高的常见原因是:①焊锡用量过多,形成焊点的锡堆积;焊锡过少,不足以包裹焊点。②冷焊。焊接时烙铁温度过低或加热时间不足,焊锡未完全熔化、浸润、焊锡表面不光亮(不光滑),有细小裂纹(如同豆腐渣一样!)。③夹松香焊接,焊锡与元器件或印刷板之间夹杂着一层松香,造成电连接不良。若夹杂加热不足的松香,则焊点下有一层黄褐色松香膜;若加热温度太高,则焊点下有一层碳化松香的黑色膜。对于有加热不足的松香膜的情况,可以用烙铁进行补焊。对于已形成黑膜的,则要"吃"净焊锡,清洁被焊元器件或印刷板表面,重新进行焊接才行。④焊锡连桥。指焊锡量过多,造成元器件的焊点之间短路。这在对超小元器件及细小印刷电路板进行焊接时要尤为注意。⑤焊剂过量,焊点明围松香残渣很多。当少量松香残留时,可以用电烙铁再轻轻加热一下,让松香挥发掉,也可以用蘸有无水酒精的棉球,擦去多余的松香或焊剂。⑥焊点表面的焊锡形成尖锐的突尖。这多是由于加热温度不足或焊剂过少,以及烙铁离开焊点时角度不当浩成的内。。总结经过近半个月的努力,在我们合作下,我们较好的完成了这次设计项目,通过此次电子制作比赛,我们重新认识到了自学的重要性,以及学以致用的道理。我们在图书馆和网上查阅了大量的资料,同时也认识到了图书馆的重要作用。通过此次的抢答器的设计,让我们更加重视到专业知识的重要性及动手能力的必要性,在整个制作过程中,我们出现很多问题,但我们并没有因此而放弃,在不断调试和失败中,我们不仅学到了专业知识,更是磨炼了我们的心智,让我们受益匪浅。任何事情只要去做,多多去尝试,努力的要以自己去做为前提的心态,那么任何事情即使做的不好,也会受益很多,不是有句话叫做:心态决定的成败的话吗,实在是有理。无论做什么事情都不可能一帆风顺,碰到阻碍不要舍弃,不要踟蹰不前,不经历风雨,怎么见彩虹!在今后的学习过程中,应该多到图书馆看一些专业方面的书籍,比如protel画图,proteus仿真软件,以丰富自己的知识,掌握更多的硬件与软件设计技巧,使我们在今后的制作中提高效率。这次设计任务也使我们加深了对单片机及接口10技术的理解和应用,由于知识水平的局限,设计中可能会存在着一些不足,我们真诚的接受老师和同学的批评和指正.。附录(程序)附录(C程序)#include