最新多路智力竞赛抢答器Word下载.docx
《最新多路智力竞赛抢答器Word下载.docx》由会员分享,可在线阅读,更多相关《最新多路智力竞赛抢答器Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
2.3复位电路的设计……………………………………………………………………3
2.4晶振电路的设计……………………………………………………………………
4
2.5数码显示管的选择…………………………………………………………………5
3.软件详细设计……………………………………………………………………5
3.1主程序的设计………………………………………………………………………5
3.2显示子程序的设计………………………………………………………………5
3.3定时器T0、T1中断服务程序的设计……………………………………………6
3.4抢答处理程序的设计………………………………………………………………6
4.试验结果及结论………………………………………………………………6
结论………………………………………………………………………………………7
致谢………………………………………………………………………………………7
参考文献…………………………………………………………………………………8
附录………………………………………………………………………………………
引言
1、如果想调节抢答时间或答题时间,按"
抢答时间调节"
键或"
答题时间调节"
键进入调节状态,此时会显示现在设定的抢答时间或回答时间值,如想加一秒按一下"
加1s"
键,如果想减一秒按一下"
-1s"
键,时间LED上会显示改变后的时间,调整范围为0s~99s,0s时再减1s会跳到99,99s时再加1s会变到0s。
2、主持人按"
抢答开始"
键,会有提示音,并立刻进入抢答倒计时(预设30s抢答时间),如有选手抢答,会有提示音,并会显示其号数并立刻进入回答倒计时(预设60s抢答时间),不进行抢答查询,所以只有第一个按抢答的选手有效。
倒数时间到小于5s会每秒响一下提示音。
3、如倒计时期间,主持人想停止倒计时可以随时按"
停止"
按键,系统会自动进入准备状态,等待主持人按"
进入下次抢答计时。
4、如果主持人未按"
键,而有人按了抢答按键,犯规抢答,LED上不断闪烁FF和犯规号数并响个不停,直到按下"
键为止。
5、P3.0为开始抢答,P3.1为停止,p1.0-p1.7为八路抢答输入
数码管段选P0口,位选P2口低3位,蜂鸣器输出为P3.6口。
P3.2抢答时间调整结,P3.3回答时间调整,P3.4为时间加1调整,P3.5为时间减1调整。
1、数字抢答器的总体设计
1.1
原理图的确定
在设计开始,笔者查了不少关于抢答器的资料,其大体分为2种,一种是纯硬件实现,另一种是单片机实现。
由于当时觉得自己单片机学得不怎么好,用单片机实现会有难度,于是刚开始设计了两个原理图都是纯硬件实现
图1.1原理图
这是由锁存器373和一个二极管阵列驱动数码管显示组成的纯硬件抢答器,只能实现基本的抢答功能,并且元件繁多,学校实验室做的是单层板,做PCB板时布线难度比较大。
当时想到了做两块PCB板。
一块是前面的按键部分和锁存核心电路,一块是后面的二极管阵列连上数码管,中间用连接器连接。
经过多方查找资料最终确定抢答器原理图
图1.2抢答器原理图
1.2
抢答器的工作原理
抢答器的工作原理是利用单片机的定时器T0、T1中断完成,其余状态循环调用显示子程序,用4个共阴极LED数码管来显示,用P0口作为数码管的八个段选,用P2口中的P2.0、P2.1、P2.2、作为4个数码管其中3个位选,P1口接8个按键,提供选手抢答,P3.0-P3.5四个接四个按键,提供开始、结束、答题时间调整、枪答时间调整,加1、减1调整之用。
1.3
抢答器的总体设计
倒计时方案方面利用MCS-51的内部的定时/计时器进行中断计时,配合软件延时实现倒计时。
该方案节省硬件成本,并且能够在定时器/计数器的使用、中断及程序设计方案方面得到锻炼与提高,显示方面采用穿行传输实现动态显示,该方案的硬件连接简单,但动态扫描的显示方式需占用CPU较多的时间,适用于单片机没有太多实时测控的任务场合
1.4
抢答器实现功能
抢答功能:
通过八路按键配合程序来实现抢答功能。
当主持人按下抢答键开始抢答后,此时任一路按下按钮均闭锁其它各路,由程序对键盘译码并显示最先按下抢答键的路数及其当前时间。
抢答限时:
主持人按下抢答键后,设置5秒为抢答时间(此时间可在1-99秒之间修改)。
若5秒内无人抢答,倒计时为0时发出报警,说明该抢答题目作废。
此时闭锁所有抢答按键,只有当主持人再次按下抢答键开始下一次抢答方可抢答。
2、硬件电路详细设计
2.1
硬件的选择与电路设计
2.2
芯片的选择
抢答器电路的核心是89C51单片机,其内部带有4KB的FLASHROM,无需外扩程序存储器;
抢答器没有大量的运算和暂存数据现有的128B篇内RAM已经能满足容量需求,故不需外扩片外RAM,系统配有8位8段数码显示管,管采用共阴数码管,作为时钟的显示输出。
2.3
复位电路的设计
图2-1
复位电路原理图
该复位电路采用上电自动复位和手动复位两种复位方式,图中网络标号所指9连接到单片机的复位引脚。
要实现复位只需在,51系列单片机的RESET引脚上加上5ms的高电平就可以了。
上电复位是利用电容的充电来实现的,即上电瞬间RESET端的电位与Vcc相同,随着电容上储能增加,电容电压也逐渐增大,充电电流减小,RESET端的电位。
这样就会建立一个脉冲电压,调节电容与电阻的大小可对脉冲的持续时间进行调节。
通常若采用12MHz的晶振时,复位元件参数为22μF的电解电容和10kΩ的电阻。
按钮复位电路是通过按下复位按钮时,电源对RESET端维持两个机器周期的高电平实现复位的。
2.4晶振电路的设计
MSC-51单片机的定时控制功能是用时钟电路和振荡器完成的,而根据硬件电路的不同,连接方式分为内部时钟方式和外部时钟方式。
本设计中采用内部时钟方式。
单片机内部有一个反相放大器,XTAL1、XTAL2分别为反相放大器的输入端和输出端,外接定时反馈元件组成振荡器(内部时钟方式),产生时钟送至单片机内部各元件。
时钟频率越高,单片机控制器的控制节拍就越快,运算速度也就越快。
一般来说单片机内部有一个带反馈的线性反相放大器,外界晶振(或接陶瓷振荡器)和电容就可组成振荡器,如图2-2所示。
加电以后延时一段时间(约10ms)振荡器产生时钟,不受软件控制,图中Y1为晶振,震荡产生的时钟频率主要由Y1确定。
电容C1,C2的作用有两个:
一是帮助振荡器起振,二是对振荡器的频率起微调作用,典型值为30pF。
晶振电路的设计如图2-2所示:
图2-2
晶振电路设计
2.5数码显示管的选择
数码显示管用来作为时间的显示输出,一般用7段数码显示管。
本次设计中采用7段共阴数码显示管应用简单、可靠性高、成本低,作为显示输出。
连接时段选信号接在P0口的P0.0~P0.6七个I/O口上,P1口是准双向I/O接口在输出驱动部分具有驱动4个TTL负载的能力,即输出电流不大于400μA,所以在接电阻时选择接510Ω限流电阻。
而在位选方面采用单片机P2口的P2.0~P2.2三个I/O口作为位选信号的输出口
3、软件详细设计
3.1
主程序的设计
此程序的及时采用定时器T0和T1中断完成,其余状态循环调用显示子程序。
3.2
显示子程序的设计
由于采用软件动态扫描实现数据显示,显示用十进制BCD码的数据对应段码存放在ROM表中。
显示时,先取出70H~75H某一地址中的数据,然后查得对应的显示段码从P0口输出。
P2口将对应的数码管选中,就能显示该地址单元的数据值。
3.3
定时器T0、T1中断服务程序的设计
定时器T0用于响铃程序,定时器T1用于计时程序。
当答题剩余5秒种时P3.6口不断取反使喇叭发出一定频率的声音,提示选手
图3-2
中断程序流程图
3.4
抢答处理程序的设计
当有选手第一个按下抢答器按扭时数码管显示选手号码,开始倒计时,并锁定抢答。
当在此选手之后再有选手按下按扭时无效,数码管不变。
4、试验结果及结论
通过仿真结果证实,该方案可行。
该设计方案同过51系列单片机的P0口作为段选输出,用P2口作为位选输出,动态扫描LED显示管,显示时间。
并通过接在P3.0-P3.6口的按键开关控制开始、结束、喇叭提示等功能。
P1口接选手按键,控制抢答。
本设计实现简单,成本较低很适合我们大学生动手实践。
当有选手按下按扭时,数码管显示选手号码并开始倒计时,如图所示
图4-1仿真的结果
结论
课程设计很快结束了,其中酸甜苦辣都尝到了,在这过程,遇到问题及时通过网络查找资料,就连晚上睡觉都会时常梦到做设计。
很久很久没有这样的感觉了,虽然很累,但感觉很充实,很有收获。
这样的课程设计真的很有意义,第一次自己真真切切的动手设计制作产品,感觉自己学会了很多,成长了很多,让我找回了往日奋斗的激情,也许这样的机会在大学不会再有了,我会深深的记住这次,记住这次饱含我汗水的综合课程设计。
这次也发现了自身很多的不足,许多的基本电路都不是很熟悉,在画原理图的时候就不停的找以前的教材,以后还得多看看教材,牢记一些基本的电路,感谢各个指导老师的辛勤付出。
致谢
经过自己不断的搜索努力以及各位指导老师的耐心指导和热情帮助,本设计已经基本完成。
在此对指导老师和实验室的同学表示深深的感谢。
通过这次毕业设计,深刻地认识到学好专业知识的重要性,也理解了理论联系实际的含义,并且检验了大学几年的学习成果。
虽然在这次设计中对于知识的运用和衔接还不够熟练。
但是笔者将在以后的工作和学习中继续努力、不断完善。
由于自身水平有限,设计中一定存在很多不足之处,敬请各位老师批评指正。
参考文献
〔1〕张迎新单片机初级教程,航空航天大学出版社,2007
〔2〕周润景,张丽娜基与PROTEUS的电路及单片机仿真,航空航天大学出版社,2007
〔3〕刘迎春MCS-51单片机原理及应用教程,清华大学车版社,2005-05
附录
主程序部分和注解如下:
OK
EQU20H;
抢答开始标志位
RINGEQU22H;
响铃标志位
ORG0000H
AJMP
MAIN
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;
显示子程序,及部分注解如下:
DISPLAY:
MOVDPTR,#DAT1;
查表显示程序,利用P0口做段选码口输出/P2低三位做位选码输出,
MOVA,R3
MOVCA,@A+DPTR
MOVP2,#0feH
MOVP0,A
ACALLDELAY
MOVDPTR,#DAT2
MOVA,R5
MOVP2,#0fdH
MOVA,R4
MOVP2,#0fbH
RET
DAT1:
DB00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H
;
"
灭"
"
1"
2"
3"
4"
5"
6"
7"
8"
9"
F"
DAT2:
DB3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H
第一个为零,其他与上相同,因为十位如果为零显示熄灭
=====TO溢出中断(响铃程序)=====
T0INT:
MOVTH0,#0ECH
MOVTL0,#0FFH
JNBRING,OUT;
CPLP3.6;
RING标志位为1时候P3.6口不断取反使喇叭发出一定频率的声音
OUT:
RETI
T1溢出中断(计时程序):
T1INT:
MOVTL1,#0B0H
INCR0
END
抢答器处理程序:
TRUE1:
ACALLBARK;
按键发声
MOVA,R2
MOVR6,A;
抢答时间R2送R6
MOVR3,#01H
CLROK;
因为答题的计时不再查询抢答,所以就锁了抢答
AJMPCOUNT
TRUE2:
ACALLBARK;
MOVR6,A
MOVR3,#02H
TRUE3:
MOVR3,#03H
TRUE4:
MOVR3,#04H
TRUE5:
MOVR3,#05H
TRUE6:
MOVR3,#06H
TRUE7:
MOVR3,#07H
TRUE8:
MOVR3,#08H