ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:726.23KB ,
资源ID:16524170      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16524170.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(243单片机课程八路抢答器设计 1文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

243单片机课程八路抢答器设计 1文档格式.docx

1、1可靠性好:单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般的CPU,程序指令和数据都可以写在ROM里,许多信号通道都在同一芯片,因此可靠性高,易扩充。单片机有一般电脑所必须的器件,如三态双向总线,串并行的输入及输出引脚,可扩充为各种规模的微电脑系统。3 控制功能强:单片机指令除了输入输出指令,逻辑判断指令外还有更丰富的条件分支跳跃指令。方案比较及其选用依据,显然方案二比方案一简单的多,不但从性能上优于方案一,而且在使用上及其功能的实现上都较方案一简洁,并且由于单片机具有优越的高集成电路性,使其工作速度更快、效率更高。另外80C51单片机采用12MHz的晶振,提高了信号的测量精度,并且使该

2、系统可以通过软件改进来扩张功能。而方案一采用了中小规模集成电路,有其复杂的电路性能,从而可能会使信号的输入输出产生延时及不必要的误差。依此依据选择方案二比较适合。其原理框图如下:三、硬件电路设计1、 抢答器的电路框图 如图11、1所示为电路框图。其工作原理为:接通电源后,主持人将开关拨到“清除”状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置,“开始”状态,宣布“开始”抢答器工作。定时器倒计时,扬声器给出声响提示。选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次抢答必

3、须由主持人再次操作开始、停止状态开关。图11.1抢答器框图图11.2抢答电路的接口电路如图11、1所示为电路框图。如果再次抢答必须由主持人再次操作“开始、停止”状态开关。2、单元电路设计(1)抢答器电路参考电路如图11.2所示。该电路完成两个功能:一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;二是禁止其他选手按键操作无效。如有再次抢答需由主持人将S开关重新置,“清除”然后再进行下一次抢答。(2)时序控制电路设计时序控制电路是抢答器设计的关键,它要完成以下功能:a.主持人将控制开关拨到位置时,扬声器发声,抢答电路和定时电路进人正常抢答工作状态。 b.当参赛选手按动抢

4、答键时,扬声器发声,抢答电路和定时电路停止工作。(3)复位电路的设计外部中断和内部中断并存,单片机硬件复位端,只要持续4个机器周期的高电平即可实现复位,硬件复位后的各状态可知寄存器以及存储器的值都恢复到了初始值,因为本设计中功能中有倒计时时间的记忆功能,所以不能对单片机进行硬件复位,只能用软件复位,软件复位实际上就是当程序执行完之后,将程序通过一条跳转指令让它完成复位。复位电路如下图示:2.3.3外部震荡电路外部震荡电路单片机必须在AT89C51的驱动下才能工作,在单片机内部有一个时钟震荡电路,只需要外接一个振荡器就能产生一定的时钟信号送到单片机内部的各个单元,外部震荡电路如下图。2.3.4报

5、警电路设计报警电路用于报警,当遇到报警信号时,发出警报。一般喇叭是一种电感性图11.4报警电路图。8951驱动喇叭的信号为各种频率的脉冲。因此,最简单的喇叭驱动方式就是利用达林顿晶体管,或者以两个常用的小晶体管连接成达林顿架势。在右图中电阻R为限流电阻,在此利用晶体管的高电流增益,以达到电路快速饱和的目的。不过,如果要由P0输出到此电路,还需要连接一个10K的上拉电阻。选手在设定的时间内抢答时,实现:如果再次抢答必须由主持人再次*作清除和图面是数字抢答器的报警电路图。其中555构成多谐振荡器,振荡频率fo143(RI2R2)C,其输出信号经三极管推动扬声器。PR为控制信号,当PR为高电平时,多

6、谐振荡器工作,反之,电路停振。四、软件设计1、系统主程序设计为了能够达到抢答的公平、公正、合理,应该在主持人发布抢答命令之前必须先设定抢答的时间,因而在编开始抢答前的程序得先编写设定时间的程序,当时间设好了之后,主持人发布抢答命令按下P1.7按键,程序开始打开定时中断开始倒计时,然后调用键盘扫描子程序,编写键盘扫描程序。当在扫描到有人按下了答题键,马上关闭T0、调用显示程序、封锁键盘。(1)主程序流程图2、主程序清单OK EQU 20H;抢答开始标志位RING EQU 22H;响铃标志位ORG 0000HAJMP MAINORG 0003HAJMP INT0SUBORG 000BHAJMP T

7、0INTORG 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;一开始就运行定

8、时器,以开始显示FFF.如果想重新计数,重置TH1/TL1就可以了;=查询程序=START: MOV R5,#0BHMOV R4,#0BHMOV R3,#0BHACALL DISPLAY;未开始抢答时候显示FFFJB P3.0,NEXT;dddddddACALL DELAY去抖动,如果开始键按下就向下执行,否者跳到非法抢答查询ACALL BARK;按键发声MOV A,R1MOV R6,A;送R1-R6,因为R1中保存了抢答时间SETB OK;抢答标志位,用于COUNT只程序中判断是否查询抢答MOV R7,#01H ;读抢答键数据信号标志,这里表示只读一次有用信号MOV R3,#0AH;抢答只显

9、示计时,灭号数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,FALSE7JNB P1.7,FALSE8AJMP START=非法抢答处理程序=FALSE1: MOV R3,#01HAJMP ERRORFALSE2: MOV R3,#02HFALSE3: MOV R3,#03HFALSE4: MOV R3,#04HFALSE5: MOV R3,#05HFALSE6

10、: MOV R3,#06HFALSE7: MOV R3,#07HFALSE8: MOV R3,#08H=INT0(抢答时间R1调整程序)=INT0SUB:MOV B,#0AHDIV ABMOV R5,AMOV R4,BMOV R3,#0AH先在两个时间LED上显示R1JNB P3.4,INC0;P3.4为+1s键,如按下跳到INCOJNB P3.5,DEC0;P3.5为-1s键,如按下跳到DECOJNB P3.1,BACK0;P3.1为确定键,如按下跳到BACKOINC0: MOV A,R1CJNE A,#63H,ADD0;如果不是99,R2加1,如果加到99,R1就置0,重新加起。MOV R

11、1,#00HACALL DELAY1ADD0: INC R1DEC0:JZ SETR1;如果R1为0, R1就置99,DEC R1SETR1: MOV R1,#63HBACK0: RETI=INT1(回答时间R2调整程序)=INT1SUB:MOV A,R2ACALL DISPLAYJNB P3.4,INC1JNB P3.5,DEC1JNB P3.1,BACK1INC1: MOV A,R2CJNE A,#63H,ADD1MOV R2,#00HADD1: INC R2DEC1:JZ SETR2DEC R2SETR2: MOV R2,#63HBACK1:=倒计时程序(抢答倒计时和回答倒计时都跳到改程

12、序)=REPEAT:MOV A,R2 ;使用锦囊时重新计时MOV R6,ACOUNT: MOV R0,#00H;重置定时器中断次数重置定时器RECOUNT:MOV A,R6;R6保存了倒计时的时间,之前先将抢答时间或回答时间给R6DIV AB;除十分出个位/十位MOV 30H,A;十位存于(30H)MOV 31H,B;个位存于(31H)MOV R5,30H;取十位MOV R4,31H;取个位MOV A,R6SUBB A,#07HJNC LARGER;大于5s跳到LARGER,小于等于5s会提醒MOV A,R0CJNE A,#0AH,FULL;1s中0.5s向下运行AJMP CHECKFULL:

13、 CJNE A,#14H,CHECK;下面是1s的情况,响并显示号数并清R0,重新计SETB RINGJZ QUIT;计时完毕MOV R0,#00HDEC R6;一秒标志减1LARGER: MOV A,R0CJNE A,#14H,CHECK;如果1s向下运行,否者跳到查停/显示计时一秒R6自动减1CHECK: JNB P3.1,QUIT;如按下停止键退出JNB OK,CHECKK ;只在回答倒计时才有效AJMP NEXTTCHECKK:JNB P3.0,REPEAT ;判断是否使用锦囊NEXTT: ACALL DISPLAYJB OK,ACCOUT;如果是抢答倒计时,如是则查询抢答,否者跳过查

14、询继续倒数(这里起到锁抢答作用)AJMP RECOUNTACCOUT:MOV A,36HJNB ACC.0,TRUE1JNB ACC.1,TRUE2JNB ACC.2,TRUE3JNB ACC.3,TRUE4JNB ACC.4,TRUE5JNB ACC.5,TRUE6JNB ACC.6,TZ1JNB ACC.7,TZ2TZ1:JMP TRUE7TZ2:JMP TRUE8QUIT: CLR OK;如果按下了停止键执行的程序=正常抢答处理程序=TRUE1: ACALL BARK抢答时间R2送R6MOV R3,#01HCLR OK;因为答题的计时不再查询抢答,所以就锁了抢答AJMP COUNTTRU

15、E2:ACALL BARKMOV R3,#02HTRUE3:MOV R3,#03HTRUE4:MOV R3,#04HTRUE5:MOV R3,#05HTRUE6:MOV R3,#06HTRUE7:MOV R3,#07HTRUE8:MOV R3,#08H=犯规抢答程序=ERROR: MOV R0,#00HMOV TL1,#0B0HMOV 34H,R3;犯规号数暂存与(34H)HERE:CJNE A,#06H,FLASH;0.3s向下运行-灭并停响MOV R4,#0AHMOV R5,#0AH;三灯全灭AJMP CHECK1FLASH: CJNE A,#0CH,CHECK1;下面是0.8s的情况,响

16、并显示号数并清R0,重新计MOV R3,34H;取回号数MOV R5,#0BHMOV R4,#0BH;显示FF和号数CHECK1: JNB P3.1,QUIT1AJMP HEREQUIT1: CLR RING=显示程序=DISPLAY:MOV DPTR,#DAT1;查表显示程序,利用P0口做段选码口输出/P2低三位做位选码输出,MOV A,R3MOVC A,A+DPTRMOV P2,#0feHMOV P0,AACALL DELAY2MOV DPTR,#DAT2MOV A,R5MOV P2,#0fdHMOV A,R4MOV P2,#0fbHRETDAT1:DB 00h,06h,5bh,4fh,6

17、6h,6dh,7dh,07h,7fh,6fh,00H,71H灭,123456789FDAT2:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H第一个为零,其他与上相同,因为十位如果为零显示熄灭=加减时间延时(起到不会按下就加N个数)=DELAY1: MOV 35H,#08HLOOP0:DJNZ 35H,LOOP0=延时4236个机器周期(去抖动用到)=DELAY: MOV 32H,#12HLOOP: MOV 33H,#0AFHLOOP1: DJNZ 33H,LOOP1DJNZ 32H,LOOP=延时4236个机器周期(显示用到)=DELAY2

18、: MOV 32H,#43HLOOP3: MOV 33H,#1EHMOV A,R7 ;每隔6070个机器周期读一次P1口,全为1时为无效数据,继续读,有一个不为1时,转到正常抢答处理JNZ AAAA1 ;没读到有效数据时继续转到AAAA1LOOP2: DJNZ 33H,LOOP2DJNZ 32H,LOOP3=读抢答按键数据口程序=由于在读抢答数据口的时候,单片机首先进入倒计时程序,再调用显示程序,最后才检测按键口然而在检测按键口时动态扫描要调用三次(4ms)延时程序.这样就会导致读数据口出现滞后,造成1号优先最高.8号最低.故采用在延时子程序中加了读数据口程序.保证了灵敏度和可靠性AAAA1:

19、 MOV A,P1CJNE A,#0FFH,AA1 ;当不全为1时的数据为有效数据AA0: MOV 36H,A ;将有效数据送到36H暂存AJMP LOOP2AA1: DEC R7AJMP AA0=发声程序=BARK: SETB RINGCLR RING;=TO溢出中断(响铃程序)=T0INT: MOV TH0,#0ECHMOV TL0,#0FFHJNB RING,OUT;CPL P3.6;RING标志位为1时候P3.6口不短取反使喇叭发出一定频率的声音OUT:=T1溢出中断(计时程序)=T1INT: MOV TH1,#3CHINC R0RETIEND五、仿真过程与仿真结果1、用到了keil软

20、件仿真,界面如下:2、Proteus仿真做好的Proteus仿真图如下:抢答30秒倒计时显示:选手按答题键号在答题时候60秒倒计时:用DXP连接原理图如下:用DXP连接PCB图如下:通过仿真可知,仿真结果完全符合设计要求。六、安装与调试制作PCB电路板流程:打印PCB裁剪覆铜板预处理覆铜板(打磨)转印PCB腐蚀电路板电路板钻孔电路板预处理(打磨、清洗、涂松香)焊接电子元件。表1 器件选型方案的详细清单器件名称规格型号数量微处理器AT89C511极性电容10uF电阻3WTT10K9电容20PF3晶振12MHZ按钮15共阴4位7段数码管SMG SM410561K扬声器调试:(1) 开机按电源开关,显示屏左边的抢答指示灯亮,数码管显示。(2) 设定倒计时时间(3) 设定答题(4) 测试各组抢答按键试按一下各组的抢答按钮,应立即显示该组的组别数字,同时机内喇叭发出叮咚的提示音,按取消键,返回0闪烁状态。(5) 启动抢答倒计时,开始抢答FFF状态下,当主持人宣布抢答开始时,马上按一下键,屏幕显示所设定的抢答倒计时时间并开始倒计时,提示倒计时时间马上临近结束。倒计时到0以后,仪器发出的结束提示音,同时显示屏返回待命状态。在倒计时中,如果有参赛组抢答,仪器屏幕立即显示该组的组别号,同时发出

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1