学号:2013-2014学年第2学期《单片机应用技术》课程设计报告题目:八位竞赛抢答器专业:班级:姓名:指导教师:成绩:电气工程学院2014年月日铜陵学院课程设计第2页课程设计任务书学生班级:学生姓名:学号:设计名称:八位竞赛抢答器起止日期:指导教师:设计要求:以单片机为核心,设计一个8位竞赛抢答器:同时供8名选手或8个代表队比赛,分别用8个按钮S0~S7表示。1.设置一个系统清除和抢答控制开关S,开关由主持人控制。2.抢答器具有锁存与显示功能。即选手按按钮,锁存相应的编号,并在优先抢答选手的编号一直保持到主持人将系统清除为止。3.抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间为0.5s左右。4.参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。5.如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。铜陵学院课程设计第3页八位竞赛抢答器摘要本设计是以八路抢答为基本理念。考虑到需设定限时回答的功能,利用AT89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。用开关做键盘输出,扬声器发生提示。先进行系统硬件设计,该电路由显示电路,抢答电路,晶振电路等部分组成,然后进行系统软件设计,进行软件的仿真,这次课程设计不仅能锻炼我们的动手能力,而且能够培养我们对问题的思考能力以及对知识的进一步了解。关键词:AT89C51;抢答器;计时;报警铜陵学院课程设计第4页目录第1章系统总体设计...............................................................................................51.1八位竞赛抢答器的工作原理.......................................................................51.2八位竞赛抢答器的总体框图.....................................................................5第2章系统硬件的设计...........................................................................................62.1工作原理.......................................................................................................62.2晶振电路.......................................................................................................62.3抢答电路.......................................................................................................72.4显示电路.......................................................................................................82.5控制电路的设计.............................................................................................9第3章系统软件设计.............................................................................................10第4章系统软件仿真.............................................................................................134.1KeiluVision2软件......................................................................................134.2Proteus软件仿真........................................................................................144.3仿真结果分析.............................................................................................15总结.....................................................................................................................16参考文献...............................................................................................................17附录.....................................................................................................................18铜陵学院课程设计第5页第1章系统总体设计1.1八位竞赛抢答器的工作原理抢答器的工作原理是采用单片机最小系统,用程序查询方式使动态显示倒计时时间并且同时使LED灯亮。主持人按下开始抢答键才可以抢答。主持人没有按下开始抢答按(P3.0),有人抢答则抢答违规,报警并该组LED灯亮,主持人按下开始抢答开关重新抢答。主持人按下开始抢答按纽(P3.0),扬声器响声提示,数码管30秒倒计时抢答,扬声器响声提示并该组LED灯亮,30秒内有人抢答则开始60秒倒计时(60秒内必须回答完问题),最后五秒倒计时警报。从而完成一次抢答或者一次知识竞赛的任务。1.2竞赛抢答器总体框图图1总体设计框图AT89C51晶振电路抢答电路复位电路显示电路铜陵学院课程设计第6页第2章系统硬件设计2.1工作原理通过键盘改变抢答的时间,原理与闹钟时间的设定相同,将定时时间的变量置为全局变量后,通过键盘扫描程序使每按下一次按键,时间加1(超过30时置0)。同时单片机不断进行按键扫描,当参赛选手的按键按下时,用于产生时钟信号的定时计数器停止计数,同时将选手编号(按键号)和抢答时间分别显示在LED上。2.2晶振电路该晶振电路使用的是内部时钟电路,晶振的频率为12MHZ,提供89C51的时钟脉冲使89C51工作。复位电路使用的是按键与上电复位,复位电路是单片机初始化,使单片机重新开始执行程序。当复位开关按下RST由低电平变为高电平,则程序从头开始执行,在此次课程设计电路中当一个问题结束主持人后按下复位开关后进行下一题的准备。晶振电路电路图如下页图2所示:图2晶振电路电路图铜陵学院课程设计第7页2.3抢答电路AT89C51的P1口做一个为选手抢答的输入按键引脚,P1.0至P1.7轮流输出低电位,给每一个选手编号1至8,当选手按下按钮时,P1口个端口的电平变化从P1口输入,经单片机处理后从P0输出由LED灯显示出来此组。抢答电路电路图如图3:图3抢答电路电路图铜陵学院课程设计第8页2.4显示电路此电路包括显示和驱动,显示采用数码管和LED灯,驱动用P2和P0口,违规者编号和正常抢答者编号将通过与P0口相连的LED灯显示出来,抢答30秒倒计时和回答问题时间60秒倒计时由P3口上的数码管采用动态显示。为了保证LED灯和数码管有合适的压降在连接电路为它们相应地串连上了电阻。显示电路电路图如图4:图4显示电路电路图铜陵学院课程设计第9页2.5控制电路的设计当赛事进行时,提示开始作答和复位时还需要主持人对抢答器进行控制,其提示是通过扬声器发出声音来实现的。这就需要我们进行控制电路的设计。其电路图如图5:图5控制电路铜陵学院课程设计第10页第3章系统软件设计智力竞赛抢答器要求有计时记忆功能,一次时间设置完,复位后不需重新进行时间设定,通过键盘扫描输出按键信息,当在扫描到有人按下了答题键,马上关调用显示程序、封锁键盘。再通过单片机将它转换成能在七段数码管上显示字型码。图6软件设计当抢答完毕时,会在数码管上显示抢答者数字号码提示以表示抢答成功.在显示时使用的是七段数码管显示,在本设计中根据实际情况采用的是动态显示方法.并通过查表法将其在数码管上显示出来,其中P1口为字型码输入端,P2口低6位为字选段输入端.通过查表将字型码送给7段数码管显示的数字。软件去抖动,如果开始键按下就向下执行,否者跳到开始。非法抢答模块正确抢答模块调整抢答时间调整回答时间数据显示模块系统初始化模块按键模块铜陵学院课程设计第11页采用倒计时程序,使其具有倒计时功能。回答倒计时30秒。抢答时间5秒。采用发声警报(由于没有驱动器,因此就用绿灯换了),起到报警作用。其程序的流程图如下页图7图7程序流程显示FFF开始键按下?加一键按下?减一键按下?去抖动回答时间非法抢答处理调整抢答时间显示犯规正常显示抢答号并倒计时YYY初始化铜陵学院课程设计第12页1、如果想调节抢答时间或答题时间,按抢答时间调节键或答题时间调节键进入调节状态,此时会显示现在设定的抢答时间或回答时间值,如想加一秒按一下加1s键,如果想减一秒按一下-1s键,时间LED上会显示改变后的时间,调整范围为0s~99s,0s时再减1s会跳到99,99s时再加1s会变到0s。2、主持人按抢答“开始键,会有提示音,并立刻进入抢答倒计时(预设30s抢答时间),如有选手抢答,会有提示音,并会显示其号数并立刻进入回答倒计时(预设60s抢答时间),不进行抢答查询,所以只有第一个按抢答的选手有效。倒数时间到小于5s会每秒响一下提示音。3、如倒计时期间,主持人想停止倒计时可以随时按停止按键,系统会自动进入准备状态,等待主持人按抢答开始进入下次抢答计时。4、如果主持人未按抢答“开始”键,而有人按了抢答按键,犯规抢答,LED上不断闪烁FFF和犯规号数并响个不停,直到按下停止键为止。铜陵学院课程设计第13页第4章系统软件仿真4.1KeiluVision2软件本课题用到了伟福软件,集成调试环境,集成了编辑器、编译器、调试器,支持软件模拟,支持项目管理功能强大的观察窗口,支持所有的数据类型。树状结构显示,一目了然,支持ASM(汇编)、C语言,多语言多模块源程序混合调试,在线直接修改、编译、调试源程序,错误指令定位。功能很强大。用于对程序的调试、编译和生成HEX文件。其界面如图4.1:图8KeiluVision2软件界面铜陵学院课程设计第14页4.2Proteus软件仿真系统仿真还用到了Proteus软件,可通过仿真可以完全显示出所设计系统的功能,对于程序的调试等有很大的帮助。系统仿真时首先要在使用伟福编译器,把所写的程序进行编译,同时在仿真器里设置生成hex文件,编译无错误时进行Proteus仿真,加载目标代码文件打开元器件单片机属性窗口,在“ProgramFile”栏中添加上面编译好的目标代码文件“hh.hex”;在“ClockFrequency”栏中输入晶振频率为1