东北大学秦皇岛分校东北大学秦皇岛分校自动化工程系自动控制系统课程设计基于单片机的多路抢答器设计专业名称自动化班级学号xxx学生姓名xxx指导教师xxx设计时间2011.6.27~2010.7.8东北大学秦皇岛分校2东北大学秦皇岛分校自动化工程系《自动控制系统》课程设计任务书专业xxx班级xxx姓名xxx设计题目:基于单片机的多路抢答器设计一、设计实验条件地点:自动化系实验室实验设备:PC机二、设计任务1、设计一款6路或以上的抢答器;2、设计一个抢答器控制开关(开始抢答后才允许答题者抢答,供主持人使用);3、设定抢答时间限制,超时该体作废;4、设定抢答时间;5、数字LED显示当前答题者号数;6、其他功能:有犯规时显示其号码。三、设计说明书的内容1、设计题目与设计任务(设计任务书)2、前言(绪论)(设计的目的、意义等)3、主体设计部分4、参考文献5、结束语四、设计时间与设计时间安排1、设计时间:6月27日~7月8日2、设计时间安排:熟悉课题、收集资料:3天(6月27日~6月29日)具体设计(含上机实验):6天(6月30日~7月5日)编写课程设计说明书:2天(7月6日~7月7日)答辩:1天(7月8日)东北大学秦皇岛分校3前言随着我国经济和文化事业的发展,在很多公开竞争场合要求有公正的竞争裁决,诸如证券,股票交易及各种智力竞赛等,因此出现了抢答器。抢答器一般是由很多电路组成的,线路复杂,可靠性不高,功能也比较简单,特别是当抢答器路数有很多时,实现起来就更困难。因此我们设计了以单片机为核心的新型智能的抢答器,在保留了原始抢答器的基本功能的同时又增加一系列的实用功能并简化其电路结构抢答器又称第一信号鉴别器,其主要应用于各种知识竞赛,文娱活动等场合。传统普通的抢答器主要存在以下缺陷:(1)在一次抢答过程中,当出现超前违规抢答时,只能处理违规抢答信号,而对没有违规的抢答信号不能进行处理,因而使该次抢答过程变为无效。(2)当有多个违规抢答时,普通抢答器或采用优先编码电路选择其中一个,或利用抢答电路电子元件的竞争选择其中一个。对于后者由于抢答电路制作完毕后电子元件被固定。各路抢答信号的竞争能力被固定,因而本质上也有优先权。普通抢答器存在不公平性。(3)当有多个违规抢答时,普通抢答器只能“抓住”其中一个而出现“漏洞”。本文介绍一种以AT89C51单片机为核心的八路抢答器系统,它充分利用了单片机系统的优点,具有结构简单、功能强大、可靠性好、实用性强的特点。1.系统硬件电路设计1.1抢答器电路原理图下图1.1为系统总体方框图。其工作原理为:接通电源后,单片机上电自动复位,主持人没有按“开始”键时,抢答器处于禁止状态,号码显示数码管灭,时间显示数码管灭。主持人按下“开始”键后,宣布开始抢答器工作。定时器倒计时,扬声器给出声响提示。选手在定时时间内抢答时,抢答器完成:优先判断,编码显示,扬声器提示。当有选手抢答成功时,数码管显示其号码,并开始答题计时,显示剩余时间。当一轮抢答之后,定时器停止、禁止二次抢答。如果再次抢答,必须由主持人再次按“复位”和“开始”键。单片机AT89C51复位电路晶振电路抢答键盘主持人开始键数据锁存74LS373时间显示按键号码显示报警电路东北大学秦皇岛分校41.2单片机系统及各部分电路1.2.1单片机系统AT89C51单片机是51系列单片机的一个成员,是8051单片机的简化版。内部自带2K字节课编程FLASH存储器的低电压、高性能COMS八位微处理器,与IntelMCS-51系列单片机的指令和输出管脚相兼容。由于将多功能八位CPU和闪速存储器结合在单个芯片中,因此,AT89C51构成的单片机系统具有结构简单、造价最低廉、效率最高的微控制系统,省去了外部的RAM、ROM和接口器件,减少了硬件开销,节省了成本,提高了系统的性价比。1.2.2复位电路MCS-51的复位输入引脚RST为MCS-51提供了初始化的手段,可以使程序从指定处开始执行,在MCS-51的时钟电路工作后,只要RST引脚出现超过两个及其周期以上的高电平时,即可产生复位的操作,只要RST保持高电平,则MCS-51循环复位,只有当RST由高电平变低电平以后,MCS-51才从0000H地址开始执行程序。本系统采用按键复位方式的复位电路。1.2.3时钟电路设计MCS-51的时钟可以由两种方式产生。一种是内部方式,利用芯片内部的振荡电路;另外一种为外部方式。本论文根据实际需要和简便,采用内部振荡方式。MCS-51内部有一个用于构成振荡器的高增益反相放大器,引脚XTAI_1和XTAI_2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体或陶瓷谐振器一起构成一个自激振荡器。MCS-51虽然有内部振荡电路,但要形成时钟,必须外接元件。所以实际构成的振荡时钟电路:外接晶体以及电容C1和C2构成并联谐振电路接在放大器的反馈回路中。对接电容的值虽然没有严格的要求,但电容的大小会影响振荡器频率的高低、振荡器的稳定性、起振的快速性和温度的稳定性。晶体频率可在1.2MHz~12MHz之间任选。考虑到本系统对外接晶体的频率稳定性要求不高,所以采取比较廉价的12MHz陶瓷谐振器。1.2.4输入模块抢答器输入信号由八个按键控制,从P1口输入。当有按键按下时,就产生了有效的输入信号,本文使用了上了电阻把输入信号先嵌位在高电平。当有按键XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51XTAL2XTAL1C11nFC21nFX1CRYSTALR14k7C330p12U4:A74LS04东北大学秦皇岛分校5按下时便使与这个按键项链的引脚变为低电平,产生一个低电平的输入信号。本模块由八个按键和八个10K的电阻构成。XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51R210kR310kR410kR510kR610kR710kR810kR910k1.2.5数据锁存及显示电路选用74LS373作为数据锁存器,将P0口输出的时间和P2口输出的号码的值进行锁存,以用于数码管的显示。数码管采用共阴数码管,其位选通信号由P3.0~P3.2控制,当输出为0时选通。XTAL1XTAL2P0_0P0_1P0_2P0_3P0_4P0_5P0_6P0_7abcdefghcom2com3com1abcdefhgcom1com2com3jugewarnwarnledD0D1D2D3D4D5D6P2_0P2_1P2_2P2_3P2_4P2_5P2_6P2_7abcdefghP0_0P0_1P0_2P0_3P0_4P0_5P0_6P0_7D0D1P2_0P2_1P2_2P2_3P2_4P2_5P2_6P2_7D2D3D4D5D6D7XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51234567891RP1RESPACK-8D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE11U274LS373D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE11U374LS3731.2.6抢答提示及报警电路抢答提示音由P3.6控制,当有人抢答时,P3.6输出一个低电平,喇叭发出响声。报警电路由P3.7控制,当抢答时间到或是答题时间到时,P3.7输出一个低电平,发光二极管亮,时间到报警。WarnLedWarnD1LED-REDQ12N2905LS1SPEAKERR304k7vcc东北大学秦皇岛分校62.系统软件设计总体设计思想:当主持人按下开始键时,用Start=1标志可以开始抢答,并用喇叭提示音提示。Start=1启动定时器T0进行抢答倒计时,并用数码管2和数码管3显示出来。此时读取P1口的按键值,判断抢答者的号,并将其用数码管1显示。有人在规定时间内抢答时,则Start=0,封锁抢答器,不能再抢答,用Flag=1,来启动定时器T1,进行答题时间倒计时,用数码管2和数码管3显示时间。当时间到时,P3.7输出一个低电平,二极管发光。如果主持人没有按键,用Stop=1标志犯规,如果此时有人按键则犯规,显示其号码。将单片机的复位电路作为主持人的“复位”按键电路,按下后即可复位,进行下一轮抢答。开始主持人开始键是否按下?是否有人抢答?铃声提示显示其号码抢答时间T0开始计时铃声提示,可以抢答是否有人按键抢答时间未到否是是是显示其号码,铃声提示定时器T0停止计时定时器T1开始计时,显示答题倒计时答题时间到,二极管亮是否停止计时,提示音响,不显示号码否封锁抢答器,不能再抢答东北大学秦皇岛分校7结束语总结这次的课设,感受颇多。当看到题目的时候,想着用以前学过的汇编语言编写应该不难。于是便想挑战一下,用C语言编程。于是开始了C语言编程的学习。学习了一段时间后,便参考一些书编写了课设的程序。可是仿真结果却是出乎意料。仿真不出程序中所要实现的功能,很是郁闷。在几位同学的帮助下,程序的功能有些能实现了,但不是很理想。在纠结了几天后,决定重新编写。重新编写的程序,经过几次的调试,基本实现了抢答器的功能。这也让我基本掌握了单片机的C语言编程。我这次做的抢答器是各种竞赛中的抢答环节所需要解决的问题来研究并实现的。使用单片机AT89C51为主处理芯片,输入的8个按键由P1口输入。抢答器可以实现以下功能:1)抢答功能:通过八路按键配合程序实现抢答功能,当主持人按下抢答键开始抢答后,此时任一路按下按钮均闭锁其他各路,由程序对按键译码并显示最先按下抢答键的路数及其当前时间。2)抢答限时:主持人按下抢答键后,抢答时间开始计时,若此时间内无人抢答,倒计时为0时发出报警,说明该抢答题作废。此时封锁所有抢答按键,只有当主持人再次按下抢答键开始下一次抢答。3)答题时限:当有人成功抢答时,启动倒计时,倒计时为0时发出报警,说明答题时间到,显示00,主持人按复位键才能进行下一次抢答。当然这个抢答器还有很多可以改