当前位置:文档之家› 八路抢答器的设计课程毕业设计

八路抢答器的设计课程毕业设计

物理与电子工程学院《单片机原理与接口技术》课程设计报告书设计题目:八路抢答器的设计专业:自动化班级:二班学生姓名:马光学号:20103412108指导教师:尹世忠2013年12月16日物理与电子工程学院课程设计任务书专业:自动化班级: 2班摘要抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。

但抢答器的使用频率较低,且有的要么制作复杂,要么可靠性低。

作为一个单位,如果专门购一台抢答器虽然在经济上可以承受,但每年使用的次数极少,往往因长期存放使(电子器件的)抢答器损坏,再购置的麻烦和及时性就会影响活动的开展,因此设计了本抢答器。

本设计是以八路抢答为基本理念。

考虑到依需设定限时回答的功能,利用AT89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。

用开关做键盘输出,扬声器发生提示。

同时系统能够实现:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;抢答限定时间和回答问题的时间可在1-99s设定;可以显示是哪位选手有效抢答和无效抢答,正确按键后有音乐提示;抢答时间和回答问题时间倒记时显示,满时后系统计时自动复位及主控强制复位;按键锁定,在有效状态下,按键无效非法。

关键字:抢答器;竞赛;单片机目录1 设计任务与要求 (5)1.1设计目的 (5)1.2设计要求 (5)2 总体设计思路 (5)3 硬件电路设计 (5)3.1原理图的确定 (5)3.2抢答器接口电路 (6)3.3时序控制电路设计 (6)3.4复位电路的设计 (6)3.5晶振电路的设计 (7)3.6报警电路设计 (8)3.7 选手抢答键(矩阵式键盘) (8)3.8显示与显示驱动电路 (9)4 软件设计 (10)4.1系统主程序设计 (10)4.2 程序清单 (11)5 仿真调试 (19)6 总结 (20)参考文献 (20)1 设计任务与要求1.1设计目的巩固单片机原理与接口技术课程中所学的知识,提高学生的动手能力和创新能力,培养学生查阅资料和阅读文献的能力,培养学生初步的科研能力,为毕业设计奠定基础。

主要内容:本课程设计主要是利用单片机原理与接口技术课程中所学的知识,完成一个知识竞赛中用到的8路抢答器的设计。

设计内容包括硬件电路原理图、显示程序设计、硬件和软件的综合调试。

1.2设计要求(1)以80C51系列单片机为核心器件,组成一个8路抢答器,能够供8个参赛队进行抢答。

(2)在现有的单片机实验系统上完成硬件电路接线。

(3)完成该课题的程序设计、提交程序设计框图及程序设计清单。

(4)完成硬件与软件的综合调试,实现预定功能。

(5)通过老师审核,提交课程设计报告。

2 总体设计思路接通电源后,主持人将开关拨到“清除”状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置,“开始”状态,宣布“开始”抢答器工作。

定时器倒计时,扬声器给出声响提示。

选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。

当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。

如果再次抢答必须由主持人再次操作“开始、停止”状态开关。

3 硬件电路设计3.1原理图的确定单片机实现抢答的原理图同抢答电路的接口电路如图3-1-13.2抢答器接口电路参考电路如图3-1-1所示。

该电路完成两个功能:一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;二是禁止其他选手按键操作无效。

如有再次抢答需由主持人将S开关重新置,“清除”然后再进行下一次抢答。

3.3时序控制电路设计时序控制电路是抢答器设计的关键,它要完成以下功能:a.主持人将控制开关拨到"开始"位置时,扬声器发声,抢答电路和定时电路进人正常抢答工作状态。

b.当参赛选手按动抢答键时,扬声器发声,抢答电路和定时电路停止工作3.4复位电路的设计外部中断和内部中断并存,单片机硬件复位端,只要持续4个机器周期的高电平即可实现复位,硬件复位后的各状态可知寄存器以及存储器的值都恢复到了初始值,因为本设计中功能中有倒计时时间的记忆功能,所以不能对单片机进行硬件复位,只能用软件复位,软件复位实际上就是当程序执行完之后,将程序通过一条跳转指令让它完成复位。

复位电路如图3-4-1,3-4-2所示:复位电路原理图图3-4-2复位电路图3-4-1复位电路该复位电路采用上电自动复位和手动复位两种复位方式,图中网络标号所指9连接到单片机的复位引脚。

要实现复位只需在,51系列单片机的RESET引脚上加上5ms的高电平就可以了。

上电复位是利用电容的充电来实现的,即上电瞬间RESET端的电位与Vcc相同,随着电容上储能增加,电容电压也逐渐增大,充电电流减小,RESET端的电位。

这样就会建立一个脉冲电压,调节电容与电阻的大小可对脉冲的持续时间进行调节。

通常若采用12MHz的晶振时,复位元件参数为22μF的电解电容和10kΩ的电阻。

按钮复位电路是通过按下复位按钮时,电源对RESET端维持两个机器周期的高电平实现复位的。

3.5晶振电路的设计MSC-51单片机的定时控制功能是用时钟电路和振荡器完成的,而根据硬件电路的不同,连接方式分为内部时钟方式和外部时钟方式。

本设计中采用内部时钟方式。

如图3-5-1所示图3-5-1晶振电路原理图3.6报警电路设计报警电路用于报警,当遇到报警信号时,发出警报。

一般喇叭是一种电感性图5报警电路图。

8951驱动喇叭的信号为各种频率的脉冲。

因此,最简单的喇叭驱动方式就是利用达林顿晶体管,或者以两个常用的小晶体管连接成达林顿架势。

如图3-6-1中电阻R为限流电阻,在此利用晶体管的高电流增益,以达到电路快速饱和的目的。

不过,如果要由P0输出到此电路,还需要连接一个10K的上拉电阻。

选手在设定的时间内抢答时,实现:优先判断、编号锁存、编号显示、扬声器提示。

当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。

如果再次抢答必须由主持人再次作"清除"和"开始"状态开关。

图3-6-1报警电路图3.7 选手抢答键(矩阵式键盘)AT89C51的P1口做一个为选手抢答的输入按键引脚,如图3-7-1,P1.0至P1.7轮流输出低电位,给每一个选手编号1至8,当选手按下按钮时,P1口个端口的电平变化从P1口输入,经单片机处理后从P0输出由数码管显示抢答者编号。

图3-7-1选手抢答键电路3.8显示与显示驱动电路此电路包括显示和驱动,显示采用数码管,如图3-8-1驱动用P2口,违规者编号、抢答30秒倒计时、正常抢答者编号和回答问题时间60秒倒计时,数码管采用动态显示。

驱动电路P2口,查询显示程序利用P0口做段选码口输出P2低3位做位选码输出,当为低电平则能驱动数码管使其显示数字。

在+5V电压下接10k的电阻,保证正常压降。

图3-8-1显示与显示驱动电路4 软件设计4.1系统主程序设计为了能够达到抢答的公平、公正、合理,应该在主持人发布抢答命令之前必须先设定抢答的时间,因而在编开始抢答前的程序得先编写设定时间的程序。

如图4-1-1所示当时间设好了之后,主持人发布抢答命令按下P1.7按键,程序开图4-1-1系统主程序流程图始打开定时中断开始倒计时,然后调用键盘扫描子程序,编写键盘扫描程序。

当在扫描到有人按下了答题键,马上关闭T0、调用显示程序、封锁键盘。

4.2 程序清单定时器T1时间初值:设50ms时间初值为Z,Z的计算方法为(216- Z)×12=12×50×103,结果Z=15536D=3CB0HOK EQU 20H ;抢答开始标志位RING EQU 22H ;响铃标志位DATA0 EQU 36H ;抢答按键口数据存放地址ORG 0000HAJMP MAINORG 0003HAJMP INT0SUBORG 000BHAJMP T0INTORG 0013HAJMP INT1SUBORG 001BHAJMP T1INTORG 0040HMAIN: MOV R1,#30 ;初设抢答时间为30sMOV R2,#60 ;初设答题时间为60sMOV TMOD,#11H ;设置未定时器/模式1MOV TH0,#0F0HMOV TL0,#0FFH ;越高发声频率越高,越尖MOV TH1,#3CHMOV TL1,#0B0H ;50ms为一次溢出中断SETB EASETB ET0SETB ET1SETB EX0SETB EX1 ;允许四个中断,T0/T1/INT0/INT1CLR OKCLR RINGSETB TR1SETB TR0 ;一开始就运行定时器,以开始显示PPP.如果想重新计数,重置TH1/TL1就可以了;查询程序START: MOV DATA0,#0FFH ;初始化MOV R5,#0BHMOV R4,#0BHMOV R3,#0BHACALL DISPLAY ;未开始抢答时候显示PPPJNB P3.3 ,INT0SUBJNB P3.4,TZ1 ;倒计时调整JB P3.0,NEXT ;dddddddACALL DELAYJB P3.0,NEXT ;去抖动,如果"开始键"按下就向下执行,否者跳到非法抢答查询SETB EX0 ;开放INT0ACALL BARK ;按键发声MOV A,R1MOV R6,A ;送R1->R6,因为R1中保存了抢答时间SETB OK ;抢答标志位,用于COUNT只程序中判断是否查询抢答(在使用锦囊时用作判断是抢答倒计时还是回答倒计时)MOV R3,#0AH ;抢答只显示计时,灭号数AJMP COUNT ;进入倒计时程序,"查询有效抢答的程序"在COUNT里面NEXT: JNB P1.0,FALSE1JNB P1.1,FALSE2JNB P1.2,FALSE3JNB P1.3,FALSE4JNB P1.4,FALSE5JNB P1.5,FALSE6JNB P1.6,TZ1JNB P1.7,TZ2AJMP STARTTZ1: JMP FALSE7TZ2: JMP FALSE8;非法抢答处理程序FALSE1: ACALL BARK ;按键发声MOV R3,#01HAJMP ERRORFALSE2: ACALL BARKMOV R3,#02HAJMP ERRORFALSE3: ACALL BARKMOV R3,#03HAJMP ERRORFALSE4: ACALL BARKMOV R3,#04HAJMP ERRORFALSE5: ACALL BARKMOV R3,#05HAJMP ERRORFALSE6: ACALL BARKMOV R3,#06HAJMP ERRORFALSE7: ACALL BARKMOV R3,#07HAJMP ERRORFALSE8: ACALL BARKMOV R3,#08HAJMP ERROR;INT0(抢答时间R1调整程序)INT0SUB: MOV A,R1MOV B,#0AHDIV ABMOV R5,AMOV R4,BMOV R3,#0AHACALL DISPLAY ;先在两个时间LED上显示R1JNB P3.4,INC0 ;P3.4为+1s键,如按下跳到INCO JNB P3.5,DEC0 ;P3.5为-1s键,如按下跳到DECO JNB P3.1,BACK0 ;P3.1为确定键,如按下跳到BACKO AJMP INT0SUBINC0: MOV A,R1CJNE A,#63H,ADD0 ;如果不是99,R2加1,如果加到99,R1就置0,重新加起。

相关主题