基于单片机的智能抢答器的设计Word文档下载推荐.docx
《基于单片机的智能抢答器的设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于单片机的智能抢答器的设计Word文档下载推荐.docx(11页珍藏版)》请在冰豆网上搜索。
32个外部双向输入/输出(I/O)口
5个中断优先级2层中断嵌套中断
2个16位可编程定时计数器
2个全双工串行通信口
看门狗(WDT)电路
片内时钟振荡器
8051系列单片机功能多,引脚数少,因而许多引脚都具有第二功能,单片机对外呈现3总线形式,由P2、P0口组成16位地址总线;
由P0口分时复用为数据总线;
由ALE、PSEN、RST、EA与P3口中的INT0、INT1、T0、T1、WR、RD共10个引脚组成控制总线,由于是16位地址线,因此,可使片外存储器的寻址范围达到64KB。
2.1.2抢答器显示模块
采用二位LED共阳数码管以动态扫描方式对抢答键号、违规抢答键号、倒计时时间等信息进行显示。
2.1.3控制器模块
采用8051作为系统控制器的CPU方案。
单片机算术运算功能强,软件编程灵活、自由度大,可以用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。
2.1.4抢答器键盘的选择
键盘是单片机不可缺少的输入的是设备,是实现人机对话的纽带。
键盘按结构形式可以分为非编码键盘和编码键盘。
前者用软件方式产生键码,而后者则用硬件方式产生键码。
在单片机中使用的是非编码键盘,因为非编码键盘结构简单,成本低廉,非编码键盘的类型很多,常用的有独立式键盘,行列式键盘等。
本设计采用的是独立式键盘,键盘接口中使用多少根I/O线,键盘中就有几个按键,键盘接口使用了8根I/O口线,该键盘就有8个按键,这种类型的键盘,其按键比较少,且键盘中各按键的工作互不干扰。
因此可以根据实际需要对键盘中的按键灵活的编码。
最简单的编码方式就是根据I/O输入口所直接反映的相应按键,按下的状态进行编码,称按键直接状态码,对于这样编码的独立式键盘,CPU可以通过直接读取I/O口的状态来获取按键的直接状态编码值,根据这个值直接进行按键识别,这样形式的键盘结构简单,按键识别容易。
2.2工作原理
基于本实验设计得的功能要求,本实验电路由抢答电路、译码显示电路、主持人控制电路、定时电路、报警电路组成。
通过复位按键FW,电路进入就绪准备状态。
根据具体情况,可以通过“JIASHI”和“JIANSHA”两个按键,将抢答时间设定在(0S-99S)之间,然后按下启动键(KS按键)开始抢答。
按下KS键同时发光二极管随即变亮,当看到二极管亮,进入倒计时状态和抢答状态。
在电路中“S1-S8”为8路抢答器的8个按键,当有键按下,程序锁定信号,从P2口输出抢答者号码的七段码值,经GAL16V8驱动,送到码管显示,并封锁键盘,保持刚才按键按下时刻的时间,禁止其他人按键的输入,从而实现了抢答的功能。
当设定的抢答时间结束,仍然没有抢答键被按下,则产生已经超时的报警信号,结束抢答。
当要进行下一次的抢答时,首先先按一下复位按键FW,电路复位,进入下一次抢答的就绪状态。
然后重复抢答操作。
2.3系统的硬件构成及功能
2.3.1抢答器的电路框图
电路框图
工作原理:
接通电源后,开关拨到“清除”状态,抢答器处于禁止状态,编号显示器灯灭,定时器显示设定时间;
开关置“开始”状态,抢答器工作开始。
定时器倒计时,扬声器给出声响提示。
选手在设定时间内抢答。
抢答器完成:
优先判断、编号锁存、编号显示、扬声器提示。
抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。
2.3.2抢答器的电路图
三、系统软件设计
3.1系统主程序设计
根据试验功能要求,根据比赛具体情况,试验设有时间设定功能。
首先应编写时间设定程序,在硬件电路中的JIANSHI和JIANSHI两个按键在软件中为进行对数据的加减设置。
然后设置复位程序热键为FW。
KS为抢答开始热键,同时为二极管变亮热键,程序开始打开定时中断开始倒计时,然后调用键盘扫描子程序,编写键盘扫描程序。
当在扫描到有人按下了键,马上关闭T0、调用显示程序、封锁键盘。
3.2总体流程图
总体流程图
3.3抢答器的源程序
见附件。
四、调试
4.1主要技术参数
电源电压:
交流220V±
10%
工作功耗:
交流5W
倒计时范围:
30S
4.2常见故障
单片机应用系统在实际工作过程中,难免会受到各种外部或内部的干扰,使系统发生异常情况。
比如,因干扰使程序指针发生错误时,可能会将非操作码执行,造成程序执行的混乱(跑飞)或进入死循环,甚至可能会损坏元器件。
干扰窜入应用系统的主要渠道有三条:
通过电磁波辐射窜入系统的空间干扰;
通过输入/输出通道窜入的通道干扰;
电源的干扰。
1.采用隔离技术:
对于供电系统的干扰,可以采用交流稳压器、不间断电源(UPS)、隔离变压器、底通虑波器等,以防止电源电压的波动和干扰噪声;
在直流电源的抗干扰措施中,对应用系统中的不同等级的直流电源采取集成稳压块单独供电,以避免模块间的互相影响,使直流开关电源、DC-DC变换器以加强隔离提高电源稳定性等。
在单片机应用系统的输入/输出通道中,普遍采用通道隔离技术来防止通道干扰。
其中应用较多的是光电耦合器。
光电耦合器的输入/输出之间没有接触,能有效地防止输入端的电磁干扰以电耦合的方式进入应用系统,而且光电耦合器的输入阻抗很小,干扰源的内阻很大,所以能输入到光电偶合器的干扰电压很小。
2.正确的接地措施:
在低频电路中,因寄生电抗的影响不大,常采用一点接地,以减少地线造成的地环路。
在单片机系统中,数字地和模拟地应分别接地,即使一个芯片上有两种地也要分别接地,然后再在一点处把两种分别连接起来。
在研制印刷电路板时,对地线的分布、形状、长度和宽度等也有一定的要求,比如地线要呈辐射状,避免环行,地线要宽,连接旁路电容的地线不要太长等。
单片机应用系统中的数字地、模拟地(低电平电路地)、大功率电气设备等强电设备的地(噪声地)、机壳或其他金属构件的屏蔽地应分开布置并在一点上和电源地相连。
每个单元宜采用一个接地点,地线应尽量加粗以减少地线的阻抗。
在采用屏蔽双绞线传递信号时,应将地与工作地连在一起。
要注意只能在一个点接地,以免形成回路,在屏蔽体上产生较大的噪声。
3.抢答器无法正常工作解决方法:
查看线路接口是否出现短路、断路状况。
五、总结体会
制作此次试验,开始无从下手。
后来和同组同学讨论,决定先借助于网络资料。
网络上的资源大多并不完善,甚至有些根本看不懂。
于是回想之前实验课上所学习的知识,结合网络资源和书籍。
零零散散下载摘录很多东西。
又结合抢答比赛的实际应用,开始起草最初的设计草案。
中间遇到很多问题,困难,了解到我们对知识的掌握还有许多的生疏和欠缺。
在这次试验设计中,我发现了自己知识上的不足,和理论时间上的差距。
通过完成试验,使我对本科知识有了更深入的了解,提高了实践的操作能力。
并让我了解到,认真、刻苦、遇到不放弃、不退缩便可以看到曙光。
六、参考文献
[1]张伟,《单片机原理及应用》,机械工业出版社,2005
[2]张鑫,《单片机原理及应用》,电子工业出版社,2005
[3]曹国清,《数学电路与逻辑设计》中国矿业大学出版社,2004
[4]任致程,《经典集成电路400例》机械工业出版社,2002
[5]李群芳,张士军,黄建,《单片机微型计算机》,电力工业出版社,2008
[6]吴金戎,沈庆阳等,《8051单片机实践与应用》,清华大学出版社,2001
附件:
源程序:
CS8255EQU0FFFFH;
8255命令控制口
OUTSEGEQU0FFFCH;
字形控制口
OUTBITEQU0FFFDH;
字位/键扫控制口
ORG0
START:
MOVSP,#40H
MOVDPTR,#CS8255
MOVA,#88H;
命令字:
A,B口输出
MOVX@DPTR,A;
8255初始化
CLRC
ST0:
SETBP1.4
SETBP1.5
SETBP1.6
SETBP1.7
JBP3.0,STY
STD:
SETBC
MOVR0,#0
CALLDISPLAYLED;
显示
AJMPST0
STY:
MOVR0,#30
CALLXUNHUAN4
ST1:
JBP1.0,ST2
MOVR0,#1
CLRP1.4
SETBP1.5
SETBP1.6
SETBP1.7
CALLDISPLAYLED;
AJMPSTOP
ST2:
JBP1.1,ST3
MOVR0,#2
CLRP1.5
SETBP1.4
SETBP1.6
CALLDIAPLAYLED;
ST3:
JBP1.2,ST4
CLRC
MOVR0,#3
CLRP1.6
SETBP1.5
ST4:
JBP1.3,st0
MOVR0,#4
CLRP1.7
STZ:
AJMPSTD
Delay:
;
延时子程序
MOVR7,#30h
MOVR6,#02h
DELAYLOOP:
JNBP1.0,ST1
JNBP1.1,ST2
JNBP1.2,ST3
JNBP1.3,ST4
DJNZR7,DELAYLOOP
DJNZR6,DELAYLOOP
RET
DELAY1:
MOVR7,#05H
DELAYLOOP1:
DJNZR7,DELAYLOOP1
RET
STX:
DISPLAYLED:
MOVR2,#10000000B;
从左边开始显示
LOOP:
MOVDPTR,#OUTBIT
CLRA
关所有八段管
MOVDPTR,#LEDMAP
MOVA,R0
MOVCA,@A+DPTR;
数字转换成显示码
MOVDPTR,#OUTSEG
MOVX@DPTR,A
MOVA,R2
显示一位八段管
CALLDELAY1
XUNHUAN4:
CALLDISPLAY1
DJNZR0,XUNHUAN4
SJMPSTZ
DISPLAY1:
MOVR1,#60H
DISPLAY2:
CLRA
MOVR2,#01000000B
MOVA,R0
MOVB,#10
DIVAB
MOVCA,@A+DPTR;
MOVDPTR,#OUTSEG
MOVDPTR,#OUTBIT
MOVA,R2
MOVX@DPTR,A;
CALLDELAY
MOVR2,#00100000B
MOVDPTR,#OUTBIT
MOVA,B
MOVCA,@A+DPTR;
MOVX@DPTR,A
CALLDELAY
DJNZR1,DISPLAY2
RET
STOP:
JBP3.1,STX
AJMPSTOP
LEDMAP:
八段管显示码
DB0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H
DB080H,090H,088H,083H,0C6H,0A1H,086H,08EH
END