八路抢答器的设计课程毕业设计Word文档下载推荐.docx
- 文档编号:16991880
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:24
- 大小:395.05KB
八路抢答器的设计课程毕业设计Word文档下载推荐.docx
《八路抢答器的设计课程毕业设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《八路抢答器的设计课程毕业设计Word文档下载推荐.docx(24页珍藏版)》请在冰豆网上搜索。
第8-9天:
进行调试。
第10-11天:
撰写课题设计报告书,并根据指导教师的意见进行修改。
第12天:
完成课程设计报告书。
第13天:
提交报告书。
第14天:
指导教师批阅课程设计报告书。
主要参考资料
1、韩志军,沈晋源,王振波.单片机应用系统设计[M]机械工业出版社,2005年
2、李全利.单片机原理与接口技术[M]高等教育出版社,2009年第二版
3、马淑兰.单片机技术及应用实例分析[M]西安电子科技大学出版社,2009年
4、自己查阅一些抢答器的设计实例以作参考。
指导教师签字
教研室主任签字
摘要
抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。
但抢答器的使用频率较低,且有的要么制作复杂,要么可靠性低。
作为一个单位,如果专门购一台抢答器虽然在经济上可以承受,但每年使用的次数极少,往往因长期存放使(电子器件的)抢答器损坏,再购置的麻烦和及时性就会影响活动的开展,因此设计了本抢答器。
本设计是以八路抢答为基本理念。
考虑到依需设定限时回答的功能,利用AT89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。
用开关做键盘输出,扬声器发生提示。
同时系统能够实现:
在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;
抢答限定时间和回答问题的时间可在1-99s设定;
可以显示是哪位选手有效抢答和无效抢答,正确按键后有音乐提示;
抢答时间和回答问题时间倒记时显示,满时后系统计时自动复位及主控强制复位;
按键锁定,在有效状态下,按键无效非法。
关键字:
抢答器;
竞赛;
单片机
1设计任务与要求
1.1设计目的
1.2设计要求
(1)以80C51系列单片机为核心器件,组成一个8路抢答器,能够供8个参赛队进行抢答。
(2)在现有的单片机实验系统上完成硬件电路接线。
(3)完成该课题的程序设计、提交程序设计框图及程序设计清单。
(4)完成硬件与软件的综合调试,实现预定功能。
(5)通过老师审核,提交课程设计报告。
2总体设计思路
接通电源后,主持人将开关拨到“清除”状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;
主持人将开关置,“开始”状态,宣布“开始”抢答器工作。
定时器倒计时,扬声器给出声响提示。
选手在定时时间内抢答时,抢答器完成:
优先判断、编号锁存、编号显示、扬声器提示。
当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。
如果再次抢答必须由主持人再次操作“开始、停止”状态开关。
3硬件电路设计
3.1原理图的确定
单片机实现抢答的原理图
同抢答电路的接口电路
如图3-1-1
图3-1-1单片机实现抢答的原理图
3.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系统主程序设计
主程序
设置抢答时间和回答问题时间
定时器及并行口初始化
将时间计数器及启动标志值1
开中断
采并行口数据为0吗?
启动标志=1吗?
判断抢答组号
报警电路发声
判断哪一组为抢答组
将抢答组号送显示
抢答时间到了吗?
输出响铃信号提示超时
继续抢答比赛吗?
系统返回
N
Y
图4-1-1系统主程序流程图
为了能够达到抢答的公平、公正、合理,应该在主持人发布抢答命令之前必须先设定抢答的时间,因而在编开始抢答前的程序得先编写设定时间的程序。
如图4-1-1所示当时间设好了之后,主持人发布抢答命令按下P1.7按键,程序开
始打开定时中断开始倒计时,然后调用键盘扫描子程序,编写键盘扫描程序。
当在扫描到有人按下了答题键,马上关闭T0、调用显示程序、封锁键盘。
4.2程序清单
定时器T1时间初值:
设50ms时间初值为Z,Z的计算方法为
(216-Z)×
12=12×
50×
103,结果Z=15536D=3CB0H
OKEQU20H;
抢答开始标志位
RINGEQU22H;
响铃标志位
DATA0EQU36H;
抢答按键口数据存放地址
ORG0000H
AJMPMAIN
ORG0003H
AJMPINT0SUB
ORG000BH
AJMPT0INT
ORG0013H
AJMPINT1SUB
ORG001BH
AJMPT1INT
ORG0040H
MAIN:
MOVR1,#30;
初设抢答时间为30s
MOVR2,#60;
初设答题时间为60s
MOVTMOD,#11H;
设置未定时器/模式1
MOVTH0,#0F0H
MOVTL0,#0FFH;
越高发声频率越高,越尖
MOVTH1,#3CH
MOVTL1,#0B0H;
50ms为一次溢出中断
SETBEA
SETBET0
SETBET1
SETBEX0
SETBEX1;
允许四个中断,T0/T1/INT0/INT1
CLROK
CLRRING
SETBTR1
SETBTR0;
一开始就运行定时器,以开始显示PPP.如果想重新计数,重置TH1/TL1就可以了
;
查询程序
START:
MOVDATA0,#0FFH;
初始化
MOVR5,#0BH
MOVR4,#0BH
MOVR3,#0BH
ACALLDISPLAY;
未开始抢答时候显示PPP
JNBP3.3,INT0SUB
JNBP3.4,TZ1;
倒计时调整
JBP3.0,NEXT;
ddddddd
ACALLDELAY
去抖动,如果"
开始键"
按下就向下执行,否者跳到非法抢答查询
SETBEX0;
开放INT0
ACALLBARK;
按键发声
MOVA,R1
MOVR6,A;
送R1->
R6,因为R1中保存了抢答时间
SETBOK;
抢答标志位,用于COUNT只程序中判断是
否查询抢答(在使用锦囊时用作判断是抢
答倒计时还是回答倒计时)
MOVR3,#0AH;
抢答只显示计时,灭号数
AJMPCOUNT;
进入倒计时程序,"
查询有效抢答的程序"
在COUNT里面
NEXT:
JNBP1.0,FALSE1
JNBP1.1,FALSE2
JNBP1.2,FALSE3
JNBP1.3,FALSE4
JNBP1.4,FALSE5
JNBP1.5,FALSE6
JNBP1.6,TZ1
JNBP1.7,TZ2
AJMPSTART
TZ1:
JMPFALSE7
TZ2:
JMPFALSE8
非法抢答处理程序
FALSE1:
MOVR3,#01H
AJMPERROR
FALSE2:
ACALLBARK
MOVR3,#02H
FALSE3:
MOVR3,#03H
FALSE4:
MOVR3,#04H
FALSE5:
MOVR3,#05H
FALSE6:
MOVR3,#06H
FALSE7:
MOVR3,#07H
FALSE8:
MOVR3,#08H
INT0(抢答时间R1调整程序)
INT0SUB:
MOVB,#0AH
DIVAB
MOVR5,A
MOVR4,B
MOVR3,#0AH
ACALLDISPLAY;
先在两个时间LED上显示R1
JNBP3.4,INC0;
P3.4为+1s键,如按下跳到INCO
JNBP3.5,DEC0;
P3.5为-1s键,如按下跳到DECO
JNBP3.1,BACK0;
P3.1为确定键,如按下跳到BACKO
INC0:
CJNEA,#63H,ADD0;
如果不是99,R2加1,如果加到
99,R1就置0,重新加起。
MOVR1,#00H
ACALLDELAY1
AJMPINT0SUB
ADD0:
INCR1
DEC0:
JZSETR1;
如果R1为0,R1就置99,
DECR1
SETR1:
MOVR1,#63H
BACK0:
RETI
INT1(回答时间R2调整程序)
INT1SUB:
MOVA,R2
MOVR5,A
ACALLDISPLAY
JNBP3.4,INC1
JNBP3.5,DEC1
JNBP3.1,BACK1
INC1:
CJNEA,#63H,ADD1
MOVR2,#00H
AJMPINT1SUB
ADD1:
INCR2
DEC1:
JZSETR2
DECR2
SETR2:
MOVR2,#63H
BACK1:
RETI;
倒计时程序(抢答倒计时和回答倒计时都
跳到改程序)
COUNT:
MOVR0,#00H;
重置定时器中断次数
重置定时器
RECOUNT:
MOVA,R6;
R6保存了倒计时的时间,之前先将抢答时
间或回答时间给R6
DIVAB;
除十分出个位/十位
MOV30H,A;
十位存于(30H)
MOV31H,B;
个位存于(31H)
MOVR5,30H;
取十位
MOVR4,31H;
取个位
MOVA,R6
SUBBA,#07H
JNCLARGER;
大于5s跳到LARGER,小于等于5s会提醒
MOVA,R0
CJNEA,#0AH,FULL;
1s中0.5s向下运行
CLRRING
AJMPCHECK
FULL:
CJNEA,#14H,CHECK;
下面是1s的情况,响并显示号数并清R0,
重新计
SETBRING
JZQUIT;
计时完毕
MOVR0,#00H
DECR6;
一秒标志减1
LARGER:
如果1s向下运行,否者跳到查"
停/显示"
计时一秒R6自动减1
CHECK:
JNBP3.1,QUIT;
如按下停止键退出
JBOK,ACCOUT;
如果是抢答倒计时,如是则查询抢答,否
者跳过查询继续倒数(这里起到锁抢答
作用)
AJMPRECOUNT
ACCOUT:
MOVA,DATA0
JNBP1.0,TRUE1
JNBP1.1,TRUE2
JNBP1.2,TRUE3
JNBP1.3,TRUE4
JNBP1.4,TRUE5
JNBP1.5,TRUE6
JNBP1.6,TZ3
JNBP1.7,TZ4
TZ3:
JMPTRUE7
TZ4:
JMPTRUE8
QUIT:
CLROK;
如果按下了"
停止键"
执行的程序
正常抢答处理程序
TRUE1:
抢答时间R2送R6
MOVR3,#01H
因为答题的计时不再查询抢答,所以就
锁了抢答
AJMPCOUNT
TRUE2:
ACALLBARK;
MOVR6,A
TRUE3:
TRUE4:
TRUE5:
ACALLBARK;
TRUE6:
TRUE7:
TRUE8:
CLROK
AJMPCOUNT
犯规抢答程序
ERROR:
MOVTL1,#0B0H
MOV34H,R3;
犯规号数暂存与(34H)
HERE:
CJNEA,#0AH,FLASH;
0.5s向下运行->
灭并停响
MOVR4,#0AH
MOVR5,#0AH;
三灯全灭
AJMPCHECK1
FLASH:
CJNEA,#14H,CHECK1;
下面是1s的情况,响并显示号数并清
R0,重新计
SETBRING
MOVR3,34H;
取回号数
MOVR5,#0BH
MOVR4,#0BH;
显示PP和号数
CHECK1:
JNBP3.1,QUIT1
AJMPHERE
QUIT1:
AJMPSTART
显示程序
DISPLAY:
MOVDPTR,#DAT1;
查表显示程序,利用P0口做段选码口输
出/P2低三位做位选码输出,
MOVA,R3
MOVCA,@A+DPTR
MOVP2,#0feH
MOVP0,A
MOVDPTR,#DAT2
MOVA,R5
MOVP2,#0fdH
MOVA,R4
MOVP2,#0fbH
RET
DAT1:
DB00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,73H
;
"
灭"
"
1"
2"
3"
4"
5"
6"
7"
8"
9"
P"
DAT2:
DB3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,73H
第一个为零,其他与上相同,因为十位如果为零显示熄灭
DELAY1:
MOV35H,#08H;
加减时间延时(起到不会按下就加N个数)
LOOP0:
DJNZ35H,LOOP0
RET;
延时(显示和去抖动用到)
DELAY:
MOV32H,#12H
LOOP:
MOV33H,#0AFH
LOOP1:
DJNZ33H,LOOP1
DJNZ32H,LOOP
RET
发声程序
BARK:
CLRRING;
TO溢出中断(响铃程序)
T0INT:
MOVTH0,#0ECH
MOVTL0,#0FFH
JNBRING,OUT;
CPLP3.6;
RING标志位为1时候P3.6口不断取反使喇叭发出一定频率的声音
OUT:
RETI
T1溢出中断(计时程序)
T1INT:
INCR0
RETI;
INTT0中断服务程序
INTT0:
MOVDATA0,P1
CLREX0
RETI
END
5仿真调试
试验的程序通过Keil软件编译,产生HEX文件如图5-1-1所示
图5-1-1程序在Keil软件上编译结果
通过Proteus进行仿真,如仿真结果所示,按下开始后,数码管开始倒计时,仿真结果如图5-1-2所示。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 八路 抢答 设计 课程 毕业设计
![提示](https://static.bdocx.com/images/bang_tan.gif)