首页 单片机八路抢答器课程设计

单片机八路抢答器课程设计

举报
开通vip

单片机八路抢答器课程设计河 南 工 业 职 业 技 术 学 院 Henan Polytechnic Institute 单片机课程设计 课 程 名 称: 八路抢答器设计 系 部: 电气工程系 专业班级: 电气1005班 学生姓名: 学 号: 04011005** 指导教师: 目录 一 设计任务及要求...............................4 二 方案设计.....................................4 三 硬件电路设计............................

单片机八路抢答器课程设计
河 南 工 业 职 业 技 术 学 院 Henan Polytechnic Institute 单片机课程设计 课 程 名 称: 八路抢答器设计 系 部: 电气工程系 专业班级: 电气1005班 学生姓名: 学 号: 04011005** 指导教师: 目录 一 设计任务及 要求 对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗 ...............................4 二 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 设计.....................................4 三 硬件电路设计.................................5 四 软件设计.....................................8 五 总结 初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf .........................................18 六 参考文献.....................................19 2 摘 要 抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。但抢答器的使用频率较低,且有的要么制作复杂,要么可靠性低。作为一个单位,如果专门购一台抢答器虽然在经济上可以承受,但每年使用的次数极少,往往因长期存放使(电子器件的)抢答器损坏,再购置的麻烦和及时性就会影响活动的开展,因此设计了本抢答器。 本设计是以八路抢答为基本理念。考虑到依需设定限时回答的功能,利用AT89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。用开关做键盘输出,扬声器发生提示。同时系统能够实现:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;抢答限定时间和回答问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 的时间可在1-99s设定;可以显示是哪位选手有效抢答和无效抢答,正确按键后有音乐提示;抢答时间和回答问题时间倒记时显示,满时后系统计时自动复位及主控强制复位;按键锁定,在有效状态下,按键无效非法。 3 一、设计任务与要求 一、题目: 8路比赛抢答器 二、基本要求: 利用8051单片机中断系统,制作一个有8个按键的比赛抢答器。在有人按键时进行对应选手显示。 三、设计任务: 1(设计硬件电路,画出电路原理图; 2(画出程序 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 图; 3(编制程序,写出源程序代码; 4(写出5000字的详细说明书,要求字迹工整,原理叙述正确,会计算主要元器件的一些参数,并选择元器件; 5(个人总结。 四、参考资料: 1. 教材; (《单片机实验指导书》, 河南工业职业技术学院内部; 2 二、方案设计 方案:该系统采用51系列单片机AT89C51作为控制核心,该系统可以完成运算控制、信号识别以及显示功能的实现。由于用了单片机,使其技术比较成熟,应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。整个系统具有极其灵活的可编程性,能方便地对系统进行功能的扩张和更改。MCS-51单片机特点如下: <1>可靠性好:单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般的CPU,程序指令和数据都可以写在ROM里,许多信号通道都在同一芯片,因此可靠性高,易扩充。 <2>单片机有一般电脑所必须的器件,如三态双向总线,串并行的输入及输出引脚,可扩充为各种规模的微电脑系统。 <3> 控制功能强:单片机指令除了输入输出指令,逻辑判断指令外还有更丰富的条件分支跳跃指令。其原理框图如下: 优先编 抢答按扭 锁存器 译码电路 译码显示 码电路 主持人控控制电路 报警电路 制开关 秒脉冲产生电定时电路 译码电路 显示电路 路 4 三、硬件电路设计 1、 抢答器的电路框图 如图1所示为电路框图。其工作原理为:接通电源后,主持人将开关拨到“清除”状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置,“开始”状态,宣布“开始”抢答器工作。定时器倒计时,扬声器给出声响提示。选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次抢答必须由主持人再次操作"开始、停止"状态开关。 优先编 锁存器 译码电路 译码显示 抢答按扭 图1 码电路 抢答器框图 主持人控如图1所示为 电路框图。 控制电路 报警电路 制开关 其工作原理为:接通电源 后,主持人将开关拨到“清除”状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间; 主持人秒脉冲产生电路定时电路 译码电路 显示电路 将开关置,“开始”状态,宣布“开始”抢答器工作。定时器倒计时,扬声器给出声响提示。选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次抢答必须由主持人再次操作“开始、停止”状态开关。 5 图2抢答电路的接口电路 2、单元电路设计 (1)抢答器电路 参考电路如图2所示。该电路完成两个功能:一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;二是禁止其他选手按键操作无效。如有再次抢答需由主持人将S开关重新置,“清除”然后再进行下一次抢答。 (2)时序控制电路设计 时序控制电路是抢答器设计的关键,它要完成以下功能: a.主持人将控制开关拨到"开始"位置时,扬声器发声,抢答电路和定时电路进人正常抢答工作状态。 b.当参赛选手按动抢答键时,扬声器发声,抢答电路和定时电路停止工作。 (3)复位电路的设计 6 外部中断和内部中断并存,单片机硬件复位端,只要持续4个机器周期的高电平即可实现复位,硬件复位后的各状态可知寄存器以及存储器的值都恢复到了初始值,因为本设计中功能中有倒计时时间的记忆功能,所以不能对单片机进行硬件复位,只能用软件复位,软件复位实际上就是当程序执行完之后,将程序通 过一条跳转指令让它完成复位。复位电路如图3所示: 图3复位电路图 图4时钟震荡电路 3、时钟震荡电路 时钟震荡电路单片机必须在AT89C51的驱动下才能工作,在单片机内部有一个时钟震荡电路,只需要外接一个振荡器就能产生一定的时钟信号送到单片机内部的各个单元,时钟震荡电路如图4所示。 7 4、报警电路设计 报警电路用于报警,当遇到报警信号时,发出警报。一般喇叭是一种电感性图5报警电路图。8951驱动喇叭的信号为各种频率的脉冲。因此,最简单的喇叭驱动方式就是利用达林顿晶体管,或者以两个常用的小晶体管连接成达林顿架势。在右图中电阻R为限流电阻,在此利用晶体管的高电流增益,以达到电路快速饱和的目的。不过,如果要由P0输出到此电路,还需要连接一个10K的上拉电阻。 选手在设定的时间内抢答时,实现:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次抢答必须由主持人再次作"清除"和"开始"状态开关。 图5报警电路图 四、软件设计 1、系统主程序设计 为了能够达到抢答的公平、公正、合理,应该在主持人发布抢答命令之前必须先设定抢答的时间,因而在编开始抢答前的程序得先编写设定时间的程序,当时间设好了之后,主持人发布抢答命令按下P1.7按键,程序开始打开定时中断开始倒计时,然后调用键盘扫描子程序,编写键盘扫描程序。当在扫描到有人按下了答题键,马上关闭T0、调用显示程序、封锁键盘。 8 主程序 设置抢答时间和回答问题时间 定时器及并行口初始化 将时间计数器及启动标志值1 开中断 Y 采并行口数据为0吗, Y N启动标志=1吗, 判断抢答组号 判断哪一组为抢答组 将抢答组发光二极管点亮 将抢答组号送显示 N 抢答时间到了吗, Y 输出响铃信号提示超时 Y 继续抢答比赛吗, N 系统返回 主程序流程图 2、主程序清单 OK EQU 20H;抢答开始标志位 RING EQU 22H;响铃标志位 ORG 0000H AJMP MAIN ORG 0003H AJMP INT0SUB 9 ORG 000BH AJMP T0INT ORG 0013H AJMP INT1SUB ORG 001BH AJMP T1INT ORG 0040H MAIN: MOV R1,#30;初设抢答时间为30s MOV R2,#60;初设答题时间为60s MOV TMOD,#11H;设置未定时器/模式1 MOV TH0,#0F0H MOV TL0,#0FFH;越高发声频率越高,越尖 MOV TH1,#3CH MOV TL1,#0B0H;50ms为一次溢出中断 SETB EA SETB ET0 SETB ET1 SETB EX0 SETB EX1;允许四个中断,T0/T1/INT0/INT1 CLR OK CLR RING SETB TR1 SETB TR0;一开始就运行定时器,以开始显示FFF.如果想重新计数,重置TH1/TL1就可以了 ;=====查询程序===== START: MOV R5,#0BH MOV R4,#0BH MOV R3,#0BH ACALL DISPLAY;未开始抢答时候显示FFF JB P3.0,NEXT;ddddddd ACALL DELAY JB P3.0,NEXT;去抖动,如果"开始键"按下就向下执行,否者跳到非法抢答查询 10 ACALL BARK;按键发声 MOV A,R1 MOV R6,A;送R1->R6,因为R1中保存了抢答时间 SETB OK;抢答标志位,用于COUNT只程序中判断是否查询抢答 MOV R7,#01H ;读抢答键数据信号标志,这里表示只读一次有用信号 MOV R3,#0AH;抢答只显示计时,灭号数 AJMP COUNT;进入倒计时程序,"查询有效抢答的程序"在COUNT里面 NEXT: JNB P1.0,FALSE1 JNB P1.1,FALSE2 JNB P1.2,FALSE3 JNB P1.3,FALSE4 JNB P1.4,FALSE5 JNB P1.5,FALSE6 JNB P1.6,FALSE7 JNB P1.7,FALSE8 AJMP START ;=====非法抢答处理程序===== FALSE1: MOV R3,#01H AJMP ERROR FALSE2: MOV R3,#02H AJMP ERROR FALSE3: MOV R3,#03H AJMP ERROR FALSE4: MOV R3,#04H AJMP ERROR FALSE5: MOV R3,#05H AJMP ERROR FALSE6: MOV R3,#06H AJMP ERROR FALSE7: MOV R3,#07H AJMP ERROR 11 FALSE8: MOV R3,#08H AJMP ERROR ;=====INT0(抢答时间R1调整程序)===== INT0SUB:MOV A,R1 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY;先在两个时间LED上显示R1 JNB P3.4,INC0;P3.4为+1s键,如按下跳到INCO JNB P3.5,DEC0;P3.5为-1s键,如按下跳到DECO JNB P3.1,BACK0;P3.1为确定键,如按下跳到BACKO AJMP INT0SUB INC0: MOV A,R1 CJNE A,#63H,ADD0;如果不是99,R2加1,如果加到99,R1就置0,重新加起。 MOV R1,#00H ACALL DELAY1 AJMP INT0SUB ADD0: INC R1 ACALL DELAY1 AJMP INT0SUB DEC0: MOV A,R1 JZ SETR1;如果R1为0, R1就置99, DEC R1 ACALL DELAY1 AJMP INT0SUB SETR1: MOV R1,#63H ACALL DELAY1 AJMP INT0SUB BACK0: RETI ;=====INT1(回答时间R2调整程序)===== INT1SUB:MOV A,R2 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY JNB P3.4,INC1 12 JNB P3.5,DEC1 JNB P3.1,BACK1 AJMP INT1SUB INC1: MOV A,R2 CJNE A,#63H,ADD1 MOV R2,#00H ACALL DELAY1 AJMP INT1SUB ADD1: INC R2 ACALL DELAY1 AJMP INT1SUB DEC1: MOV A,R2 JZ SETR2 DEC R2 ACALL DELAY1 AJMP INT1SUB SETR2: MOV R2,#63H ACALL DELAY1 AJMP INT1SUB BACK1: RETI ;=====倒计时程序(抢答倒计时和回答倒计时都跳到改程序)===== REPEAT:MOV A,R2 ;使用锦囊时重新计时 MOV R6,A CLR RING COUNT: MOV R0,#00H;重置定时器中断次数 MOV TH1,#3CH MOV TL1,#0B0H;重置定时器 RECOUNT:MOV A,R6;R6保存了倒计时的时间,之前先将抢答时间或回答时间给R6 MOV B,#0AH DIV AB;除十分出个位/十位 MOV 30H,A;十位存于(30H) MOV 31H,B;个位存于(31H) MOV R5,30H;取十位 MOV R4,31H;取个位 MOV A,R6 SUBB A,#07H JNC LARGER;大于5s跳到LARGER,小于等于5s会提醒 MOV A,R0 CJNE A,#0AH,FULL;1s中0.5s向下运行 CLR RING AJMP CHECK FULL: CJNE A,#14H,CHECK;下面是1s的情况,响并显示号数并清R0,重新计 13 SETB RING MOV A,R6 JZ QUIT;计时完毕 MOV R0,#00H DEC R6;一秒标志减1 AJMP CHECK LARGER: MOV A,R0 CJNE A,#14H,CHECK;如果1s向下运行,否者跳到查"停/显示" DEC R6;计时一秒R6自动减1 MOV R0,#00H CHECK: JNB P3.1,QUIT;如按下停止键退出 JNB OK,CHECKK ;只在回答倒计时才有效 AJMP NEXTT CHECKK:JNB P3.0,REPEAT ;判断是否使用锦囊 NEXTT: ACALL DISPLAY JB OK,ACCOUT;如果是抢答倒计时,如是则查询抢答,否者跳过查询继续倒数(这里起到锁抢 答作用) AJMP RECOUNT ACCOUT: MOV A,36H JNB ACC.0,TRUE1 JNB ACC.1,TRUE2 JNB ACC.2,TRUE3 JNB ACC.3,TRUE4 JNB ACC.4,TRUE5 JNB ACC.5,TRUE6 JNB ACC.6,TZ1 JNB ACC.7,TZ2 AJMP RECOUNT TZ1:JMP TRUE7 TZ2:JMP TRUE8 QUIT: CLR OK;如果按下了"停止键"执行的程序 CLR RING AJMP START ;=====正常抢答处理程序===== TRUE1: ACALL BARK MOV A,R2 MOV R6,A;抢答时间R2送R6 MOV R3,#01H CLR OK;因为答题的计时不再查询抢答,所以就锁了抢答 AJMP COUNT TRUE2:ACALL BARK 14 MOV A,R2 MOV R6,A MOV R3,#02H CLR OK AJMP COUNT TRUE3:ACALL BARK MOV A,R2 MOV R6,A MOV R3,#03H CLR OK AJMP COUNT TRUE4:ACALL BARK MOV A,R2 MOV R6,A MOV R3,#04H CLR OK AJMP COUNT TRUE5:ACALL BARK MOV A,R2 MOV R6,A MOV R3,#05H CLR OK AJMP COUNT TRUE6: ACALL BARK MOV A,R2 MOV R6,A MOV R3,#06H CLR OK AJMP COUNT TRUE7:ACALL BARK MOV A,R2 MOV R6,A MOV R3,#07H CLR OK AJMP COUNT TRUE8:ACALL BARK MOV A,R2 MOV R6,A MOV R3,#08H CLR OK AJMP COUNT ;=====犯规抢答程序===== 15 ERROR: MOV R0,#00H MOV TH1,#3CH MOV TL1,#0B0H MOV 34H,R3;犯规号数暂存与(34H) HERE: MOV A,R0 CJNE A,#06H,FLASH;0.3s向下运行->灭并停响 CLR RING MOV R3,#0AH MOV R4,#0AH MOV R5,#0AH;三灯全灭 AJMP CHECK1 FLASH: CJNE A,#0CH,CHECK1;下面是0.8s的情况,响并显示号数并清R0,重新计 SETB RING MOV R0,#00H MOV R3,34H;取回号数 MOV R5,#0BH MOV R4,#0BH;显示FF和号数 AJMP CHECK1 CHECK1: JNB P3.1,QUIT1 ACALL DISPLAY AJMP HERE QUIT1: CLR RING CLR OK AJMP START ;=====显示程序===== DISPLAY:MOV DPTR,#DAT1;查表显示程序,利用P0口做段选码口输出/P2低三位做位选码 输出, MOV A,R3 MOVC A,@A+DPTR MOV P2,#0feH MOV P0,A ACALL DELAY2 MOV DPTR,#DAT2 MOV A,R5 MOVC A,@A+DPTR MOV P2,#0fdH MOV P0,A ACALL DELAY2 MOV A,R4 MOVC A,@A+DPTR MOV P2,#0fbH MOV P0,A 16 ACALL DELAY2 RET DAT1:DB 00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H ;"灭","1","2","3","4","5","6","7","8","9","灭","F" DAT2:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H ;第一个为零,其他与上相同,因为十位如果为零显示熄灭 ;====加减时间延时(起到不会按下就加N个数)====== DELAY1: MOV 35H,#08H LOOP0: ACALL DISPLAY DJNZ 35H,LOOP0 RET ;=====延时4236个机器周期(去抖动用到)===== DELAY: MOV 32H,#12H LOOP: MOV 33H,#0AFH LOOP1: DJNZ 33H,LOOP1 DJNZ 32H,LOOP RET ;=====延时4236个机器周期(显示用到)===== DELAY2: MOV 32H,#43H LOOP3: MOV 33H,#1EH MOV A,R7 ;每隔60~70个机器周期读一次P1口,全为1时为无效数据,继续读,有一个不为1时, 转到正常抢答处理 JNZ AAAA1 ;没读到有效数据时继续转到AAAA1 LOOP2: DJNZ 33H,LOOP2 DJNZ 32H,LOOP3 RET ;=====读抢答按键数据口程序===== ;由于在读抢答数据口的时候,单片机首先进入倒计时程序,再调用显示程序,最后才检测 按键口 ;然而在检测按键口时动态扫描要调用三次(4ms)延时程序.这样就会导致读数据口出现滞后, 造成1号优先最高.8号最低. ;故采用在延时子程序中加了读数据口程序.保证了灵敏度和可靠性 AAAA1: MOV A,P1 CJNE A,#0FFH,AA1 ;当不全为1时的数据为有效数据 AA0: MOV 36H,A ;将有效数据送到36H暂存 AJMP LOOP2 AA1: DEC R7 AJMP AA0 ;=====发声程序===== BARK: SETB RING ACALL DELAY1 17 ACALL DELAY1 CLR RING;按键发声 RET ;=====TO溢出中断(响铃程序)===== T0INT: MOV TH0,#0ECH MOV TL0,#0FFH JNB RING,OUT; CPL P3.6;RING标志位为1时候P3.6口不短取反使喇叭发出一定频率的声音 OUT: RETI ;=====T1溢出中断(计时程序)===== T1INT: MOV TH1,#3CH MOV TL1,#0B0H INC R0 RETI END 器件名称 规格型号 数量 微处理器 AT89C51 1 极性电容 10uF 1 电阻 3WTT10K 9 电容 20PF 3 晶振 12MHZ 1 按钮 15 共阴4位7段数码管 SMG SM410561K 1 扬声器 1 表1 器件选型方案的详细清单 18 六、 总结 这次课程设计给我带来了很大的收获,让我学到了很多,不仅掌握了简单的电子电路的设计与制作,也掌握了一些芯片的原理与作用。在制作电路时,我深深体会到连接电路时一定要认真仔细,而且要确保每条导线接触良好。在接电路之前,一定要把电路的原理搞清楚,通过查资料把电路中的每个元件的作用弄明白和把每个芯片的管脚的功能弄清楚,明白每个元件的各个管脚与它哪里相对应,其实最主要的是要搞清楚元件与元件之间的连接关系,它们接在一起可以实现哪些功能,明白后,就可以去接电路了。接线时不仅要仔细并且还要有耐心,不能急于求成,只要做到了这些才能保证电路成功率比较高。在电路设计中,我觉得电路检查是非常重要的一步,从中我们可以学到很多东西,可以提高自己发现问题解决问题的能力,使自己的动手能力有一定的提高。 七、参考资料: 1. 教材; 2(《单片机实验指导书》, 河南工业职业技术学院内部; 3.《单片机基础》[M],北京:北航出版社,李广弟,2001( 4.《单片机原理及接口技术》[M],北京:北京航空航天大学出版社,李朝青,1999( 5.《多功能数字显示抢答器》[J ] . 黄石高等专科学院学报,齐向东,1996( 19 20
本文档为【单片机八路抢答器课程设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_482581
暂无简介~
格式:doc
大小:110KB
软件:Word
页数:0
分类:企业经营
上传时间:2017-09-05
浏览量:25