单片机课程八路抢答器设计_第1页
单片机课程八路抢答器设计_第2页
单片机课程八路抢答器设计_第3页
单片机课程八路抢答器设计_第4页
单片机课程八路抢答器设计_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、物理与机电学院课程设计报告课程名称:单片机八路抢答器设计系 部:物理与机电工程专业班级:07电了信息工程(二)班 学生姓名:肖乐强指导教师:翁国云老师完成时间:2010525扌艮告成绩:评阅意见:评阅教师 h期单片机八路抢答器设计摘 要抢答器作为一种工具,己广泛应用于各种智力和知识竞赛场合。但抢答器的 使用频率较低,且有的耍么制作复杂,要么可靠性低。作为一个单位,如果专门 购一台抢答器虽然在经济上可以承受,但每年使用的次数极少,往往因长期存放 使(电子器件的)抢答器损坏,再购置的麻烦和及时性就会影响活动的开展,因 此设计了本抢答器。本设计是以八路抢答为基本理念。考虑到依需设定限时冋答的功能,利

2、用 at89c51单片机及外围接口实现的抢答系统,利用单片机的定吋器/计数器定吋 和记数的原理,将软、硬件有机地结合起來,使得系统能够止确地进行计时,同 时使数码管能够止确地显示时间。用开关做键盘输出,扬声器发生提示。同时系 统能够实现:在抢答屮,只有开始后抢答才有效,如果在开始抢答前抢答为无效; 抢答限定时间和冋答问题的时间叮在l-99s设定;叮以显示是哪位选手有效抢答 和无效抢答,正确按键后有音乐提示;抢答时间和回答问题时间倒记时显示,满 时后系统计时口动复位及主控强制复位;按键锁定,在有效状态下,按键无效非 法。一、设计任务与要求1、抢答器同时供8名选手或8个代表队比赛,分别用8个按钮s

3、0、s8表示。2、设置一个系统清除和抢答控制开关s,该开关由主持人控制。3、抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在 led数码管上显示,同时扬声器发岀报警声响提示。选手抢答实行优先锁存,优 先抢答选手的编号一直保持到主持人将系统清除为止。4、抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。 当主持人启动开始键后,定吋器进行减计吋,同时扬声器发出短暂的声响,声 响持续的时间0.5秒左右。5、参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器 上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。6、如果定时时间已到,无人抢答,本次抢答

4、无效,系统报警并禁止抢答,定 时显示器上显示00。二、方案设计与论证方案一:系统各部分采用屮小规模集成数字电路,用机械开关按钮作为控制 开关,完成抢答输入信号的触发。该方案的特点是屮小规模集成电路应用技术成 熟,性能可靠,能方便地完成选手抢答的基本功能,但是由于系统功能要求较高, 所以电路连接集成电路相对较多,而月过于复杂,并月制作过程工序比较烦琐, 使用不太方便。方案二:该系统采用51系列单片机at89c51作为控制核心,该系统可以完成 运算控制、信号识别以及显示功能的实现。由于用了单片机,使其技术比较成熟, 应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。整 个系统具冇

5、极其灵活的可编程性,能方便地对系统进行功能的扩张和更改。 mcs-51单片机特点如下:1可靠性好:单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般 的cpu,程序指令和数据都可以写在rom里,许多信号通道都在同一芯片,因此 可靠性高,易扩充。2单片机冇一般电脑所必须的器件,如三态双向总线,串并行的输入及输 出引脚,可扩充为各种规模的微电脑系统。3控制功能强:单片机指令除了输入输出指令,逻辑判断指令外还冇更丰 富的条件分支跳跃指令。方案比较及其选用依据,显然方案二比方案一简单的多,不但从性能上优于 方案一,而且在使用上及其功能的实现上都较方案一简洁,并且由于单片机具冇 优越的高集成电路性,使

6、其工作速度更快、效率更高。另外80c51单片机采用 12mhz的品振,捉高了信号的测量精度,并且使该系统可以通过软件改进来扩张 功能。而方案一采用了中小规模集成电路,冇其复朵的电路性能,从而可能会使 信号的输入输出产生延时及不必要的误差。依此依据选择方案二比较适合。 其原理框图如下:三、硬件电路设计1、抢答器的电路框图如图11、1所示为电路框图。其工作原理为:接通电源后,主持人将开关 拨到“清除”状态,抢答器处于禁止状态,编号显示器灭灯,定吋器显示设定吋 间;主持人将开关置,“开始”状态,宣布“开始”抢答器工作。定吋器倒计吋, 扬声器给出声响提示。选手在定吋时间内抢答时,抢答器完成:优先判断、

7、编号 锁存、编号显示、扬声器提示。当一轮抢答之后,定吋器停止、禁止二次抢答、 定吋器显示剩余吋间。如果再次抢答必须由主持人再次操作开始、停止状态开 关。图11.1抢答器框图hbcdefg dp1 £34 wc-:a hrh|nn|»|«p|r| =v»gr-hd end eehs e£rs axmtezd nnwzd 咚 <*zd =<end 2 內nd i.c sas r-awod wqyge 5260* few eaxmd sosut a*rabc5ijzzl.r91oj"tc t:'xi:c31ojjchyb

8、tal tekt> .vtqh,c1c2speakeri-d2m«te>rr>图11.2抢答电路的接口电路如图11、1所示为电路框图。其工作原理为:接通电源后,主持人将开关拨到“清 除”状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持 人将开关置,“开始”状态,宣布“开始”抢答器工作。定时器倒计时,扬声器 给出声响提示。选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、 编号显示、扬声器提示。当一轮抢答之后,定时器停1上、禁止二次抢答、定时器 显示剩余时间。如果再次抢答必须由主持人再次操作“开始、停止”状态开关。2、单元电路设计(1) 抢答器

9、电路参考电路如图11.2所示。该电路完成两个功能:一是分辨出选手按键的先后, 并锁存优先抢答者的编号,同时译码显示电路显示编号;二是禁止其他选手按键 操作无效。如冇再次抢答需由主持人将s开关重新置,“清除”然后再进行下一 次抢答。(2) 时序控制电路设计时序控制电路是抢答器设计的关键,它要完成以下功能:乩主持人将控制开关拨到”开始”位置时,扬声器发声,抢答电路和定时电路进 人正常抢答工作状态。b当参赛选手按动抢答键时,扬声器发声,抢答电路和定时电路停止工作。(3) 复位电路的设计外部中断和内部中断并存,单片机硬件复位端,只要持续4个机器周期的高 电平即可实现复位,硬件复位后的各状态可知寄存器以

10、及存储器的值都恢复到了 初始值,因为本设计中功能中有倒计时时间的记忆功能,所以不能对单片机进行 硬件复位,只能用软件复位,软件复位实际上就是当程序执行完z后,将程序通 过一条跳转指令让它完成复位。复位电路如卜图示:03-os-1our2200 <te>r15002. 3. 3外部震荡电路外部震荡电路单片机必须在at89c51的駅动下才能工作,在单片机内部有一 个时钟震荡电路,只需要外接一个振荡器就能产生一定的时钟信号送到单片机内 部的各个单元,外部震荡电路如下图。c1-hfr-30pf i.<text> c2tl-.30pf .21匸对>xicrystz vtex

11、trl5co2. 3. 4报警电路设计报警电路用于报警,当遇到报警信号时,发出警报。一般喇叭是一种电感性 图11. 4报警电路图。8951驱动喇叭的信号为各种频率的脉冲。因此,最简单的 喇叭驱动方式就是利用达林顿晶体管,或者以两个常用的小晶体管连接成达林顿 架势。在右图屮电阻r为限流电阻,在此利用晶体管的高电流增益,以达到电路 快速饱和的口的。不过,如果要由p0输出到此电路,还需要连接一个10k的上 拉电阻。选手在设定的吋间内抢答吋,实现:优先判断、编号锁存、编号显示、扬声器提 示。当一-轮抢答之后,定吋器停止、禁止二次抢答、定吋器显示剩余吋间。如果 再次抢答必须由主持人再次*作清除和开始状态

12、开关。图面是数字抢答器的 报警电路图。其屮555构成多谐振荡器,振荡频率fo=l. 43/ (ri+2r2) c,其输出信 号经三极管推动扬声器。pr为控制信号,当pr为高电平吋,多谐振荡器工作,四、软件设计1、系统主程序设计为了能够达到抢答的公平、公正、合理,应该在主持人发布抢答命令之前 必须先设定抢答的时间,因而在编开始抢答前的程序得先编写设定时间的程序, 当时间设好了之后,主持人发布抢答命令按下p1.7按键,程序开始打开定时中断开始倒计时,然后调用键盘扫描子程序,编写键盘扫描程序。当在扫描到冇人 按下了答题键,马上关闭to、调用显示程序、封锁键盘。(1)主程序流程图2、主程序清单ok e

13、qu 20h;抢答开始标志位ring equ 22h;响铃标志位org 0000hajmp mainorg 0003hajmp intosuborg 000bhajmptointorg 0013hajmpint1suborg 001bhajmpt1intorg 0040hmain: mov r1,#30;初设抢答时间为30smov r2,#60;初设答题时间为60smov tmod,#11h;设置未定时器/模式1mov th0,#0f0hmov tl0,#0ffh;越高发声频率越高,越尖mov th1,#3chmovtl1,#0b0h;50ms为一次溢出中断setb easetb et0set

14、b et1setb exosetb ex1;允许四个中断,t0/t1/int0/int1clr okclr ringsetb tr1setb tro;开始就运行定时器,以开始显示fff.如果想重新计数,重置th1/tl1就可以了;=查询程序=start: mov r5,#0bhmov r4,#0bhmov r3,#0bhacall display沬开始抢答时候显示fffjb p3.0,next;dddddddacalldelayjb p3.0,next;去抖动,如果”开始键”按下就向下执行,否者跳到非法抢答查询acall bark;按键发声mova,r1mov r6,a;送r1->r6,

15、因为r1中保存了抢答时间setb ok;抢答标志位,用于count只程序中判断是否查询抢答mov r7,#01h ;读抢答键数据信号标志,这里表示只读一次有用信号mov r3,#0ah;抢答只显示计时,灭号数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

16、 r3,#01hajmp errorfalse2: mov r3,#02hajmp errorfalse3: mov r3,#03hajmp errorfalse4: mov r3,#04hajmp errorfalse5: mov r3,#05hajmp errorfalse6: mov r3,#06hajmp errorfalse7: mov r3,#07hajmp errorfalse8: mov r3,#08hajmp error;h=k|nt0(抢答时间r1调整程序)=intosub:mova,r1mov b,#0ahdiv abmov r5,amov r4,bmov r3,#0ah

17、acall display洗在两个时间led上显示r1jnb p3.4jnc0;p3.4为+1s 键,如按卜跳到 incojnb p3.5,dec0;p3.5为1s键,如按下跳到decojnb p3.1,back0;p3.1为确定键,如按卜跳到backoajmp intosubinco: mova,r1cjnea,#63h,add0;如果不是99,r2加1,如果加到99,r1就置0,重新加起。movr1,#oohacall delay1ajmp intosubaddo: inc r1acall delay1ajmp intosubdeco: mova,r1jz setr1;如果 r1 为0,

18、r1 就置99,dec r1acall delay1ajmp intosubsetr1: mov r1,#63hacall delay1ajmp intosubbacko: reti;=int1 (回答时间r2调整程jt)=int1sub:m0va,r2mov b,#0ahdiv abmov r5,amov r4,bmov r3,#0ahacall displayjnb p3.4jnc1jnb p3.5,dec1jnb p3.1.back1ajmp int1 subinc1: mova,r2cjnea, #63h,add1mov r2,#00hacall delay1ajmp int1 sub

19、add1: inc r2acall delay1ajmp int1subdec1: mova,r2jz setr2dec r2acall delay1ajmp int1 subsetr2: mov r2,#63hacall delay1ajmp int1subback1: reti;=倒计时程序(抢答倒计时和四答倒计时都跳到改程序)=repeat:mova,r2 ;使用锦囊时重新计时mov r6,aclr ringcount: mov r0,#00h;重置处时器中断次数mov th1,#3chmov tl1 ,#0b0h;重置定时器recount:mova,r6;r6保存了倒计时的时间,之两先

20、将抢答时间或凹答时间给r6mov b,#0ahdiv ab;除十分出个位/十位mov 30h,a汁位存于(30h)mov31h,b;个位存于(31h)mov r5,30h;取十位mov r4,31h;収个位mova,r6subba,#07hjnc larger;大于5s跳到larger,小于等于5s会提醒mov a,rocjnea,#0ah,full;1s 中0.5s 向下运行clr ringajmpcheckfull: cjnea,#14h,check;下面是1s的情况,响并显示号数并淸ro,重新计setb ringmova,r6jz quit;计时完毕mov r0,#00hdec r6;秒

21、标志减1ajmpchecklarger: mov a,rocjnea,#14h,check;如果1s向下运行,否者跳到杳”停/显示“dec r6;计时一秒r6自动减1mov r0,#00hcheck: jnb p3.1,quit;如按下停止键退出jnb ok,checkk ;只在回答倒计时才有效ajmp nexttcheckk:jnb p3.0,repeat ;判断是否使用锦囊nextt: acall displayjb ok,accout;如果是抢答倒计时,如是则杳询抢答,否者跳过査询继续倒数(这里起到锁抢 答作用)ajmp recountaccout:mov a,36hjnbacc.0,t

22、rue1jnbacc.1,true2jnbacc.2,true3jnbacc.3,true4jnbacc.4,true5jnbacc.5,true6jnbacc.6,tz1jnbacc.7,tz2ajmp recounttz1:jmptrue7tz2:jmptrue8quit: clr ok;如果按下了”停止键”执行的程序clr ringajmp start;=止常抢答处理程序=true1:acall barkmova,r2mov r6,a;抢答时间r2送r6mov r3,#01 hclr ok;因为答题的计时不再杳询抢答,所以就锁了抢答ajmp counttrue2:acall barkmo

23、va,r2mov r6,amov r3,#02hclr okajmp counttrue3:acall barkmova,r2mov r6,amov r3,#03hclr okajmp counttrue4:acall barkmova,r2mov r6,amov r3,#04hclr okajmp counttrue5:acall barkmova,r2mov r6,amov r3,#05hclr okajmp counttrue6:acall barkm0va,r2mov r6,amov r3,#06hclr okajmp counttrue7:acall barkmova,r2mov r

24、6,amov r3,#07hclr okajmp counttrue8:acall barkmova,r2mov r6,amov r3,#08hclr okajmp count;=犯规抢答程序=error: mov r0,#00hmov th1,#3chmov tl1 ,#0b0hmov 34h,r3;犯规号数暂存与(34h)here: mov a,rocjne a,#06h,flash;0.3s向下运行灭并停响clr ringmov r3,#0ahmov r4,#0ahmov r5,#0ah;三灯全灭ajmpcheck1flash: cjnea,#0ch,check1;卜面是0.8s的情况,

25、响并显示号数并淸ro,重新计setb ringmov r0,#00hmov r3,34h;収回号数mov r5,#0bhmov r4,#0bh;显示ff和号数ajmpcheck1check1: jnb p3.1,quit1acall displayajmp herequit1: clr ringclr okajmp start; = = = =显示程序= = = = =display:mov dptr,#dat1;查表显示程序,利用pou做段选码口输出/p2低三位做位选码 输出,mova,r3movca,a+dptrmov p2,#0fehmov p0,aacall delay2mov dpt

26、r,#dat2mova,r5movca,a+dptrmov p2,#0fdhmov p0,aacall delay2mova,r4movca,a+dptrmov p2,#0fbhmov p0,aacall delay2retdat1:db 00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00h,71h;”灭 丁1”,”2”,“3”,”4”,”5丁6罗7',”8丁9丁 灭”,”fdat2:db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00h,71 h;第一个为零,其他与上相同,因为十位如果为零显示熄灭;=加减时间延时

27、健到不会按下就加n个数)=delay1: mov 35h,#08hloopo: acall displaydjnz 35h丄ooporet;=延时4236个机器周期(去抖动用jij)=delay: mov 32h,#12hloop: mov 33h,#0afhloop1: djnz 33h丄oop1djnz 32h丄oopret;=延时4236个机器周期(显示用jij)=delay2: mov 32h,#43hloop3: mov 33h,#1ehmov a,r7 ;每隔6070个机器周期读一次p1 口,全为1时为无效数据,继续读,有一个不为1时, 转到止常抢答处理jnzaaaa1 ;没读到有

28、效数据时继续转到aaaa1loop2: djnz 33h丄00p2djnz 32h丄oop3ret;=读抢答按键数据口程序=;山于在读抢答数据口的时候,单片机首先进入倒计时程序,再调用显示程序,最后才检测 按键口;然而在检测按键口时动态扫描要调用三次(4ms)延时程序这样就会导致读数据口出现滞后, 造成1号优先最高.8号最低.;故采用在延时子程序中加了读数据口程序保证了灵敏度和可靠性aaaa1: m0va,p1cjne a,#0ffh,aa1 ;当不全为1时的数据为冇效数据aao: mov 36h,a ;将有效数据送到36h暂存ajmp loop2aa1: dec r7ajmpaa0;”=发声

29、程序=bark: setb ringacall delay1acall delay1clr ring;按键发声ret;=t0溢出中断(响铃程)?)=to i nt: mov th0,#0echmov tl0,#0ffhjnb ring,out;cpl p3.6;ring标志位为1时候p3.6口不短取反使喇叭发出一眾频率的声音out: reti;=t1溢出中断(计时程)=t1int: mov th1,#3chmov tl1,#0b0hinc roretiend五、仿真过程与仿真结果1、用到了 ke订软件仿真,界面如下:2、proteus 仿真做好的proteus仿真图如下:e彳nd z§

30、;za. 二 gzd ch舌zd gvmndu1.a1h9c51:.f bi-卜:1br 艮hr9eskhsnd erid 匚beha. glgnnd ouand ox£mhzwdd mkaod ss few nakmd mdd r§储 eri-10- xralxi<text> c11ufm <text>:text*gd抢答30秒倒计时显示:at8bc6$xkx*t: 总qn ernd es l?>nd 匚by qlbem awnd 0xkan& 5gr-zd 二盍nd nk5zd zw>rmd =<c-nd cn<丙

31、 nd 叟aza £<=<! 90*8 口 d dwfad hss fddr 10r«c2tl-speakerjcrybtal小 ext> ctqttxwftext>o»d选手按答题键号在答题时候60秒倒计时:u1.a7®c6t«tgxt jmmna. w9rnd end 匚eeh qleeh oklnd 0x<ah-kaz_ n$n_ zw>z 二肾z_ ch 焉 n_ 段二n£<=£ sakmg mknad nssc21.1uc -«te4t> -t*1ojq r

32、 n nfi-wj<m3吧e z1v1x <kx.memcercrystalc3c1f平叶岬卡祥杵m即.b0r1<te*?d*omp od用dxp连接原理图如下:r-ezi -ezj -e=3-e=i-ed1b0se_a10ssssssss10宦i8£88£s8soi m -r 59 r*- i i f< r1 i i r1 r-4 ddddddddscrey13rey1*xialkey1ju m89«lc3a ol?9goda/yhaagwd用dxp连接pcb图如下:ee严 通过仿真可知,仿真结果完全符合设计要求。六、安装与调试制作pcb

33、电路板流程:打印pcb裁剪覆铜板预处理覆铜板(打磨) 香)焊接电子元件。转印pcb腐蚀电路板电路板钻孔电路板预处理(打磨、清洗、涂松表1器件选型方案的详细清单器件名称规格型号数量微处理器at89c511极性电容10uf1电阻3wtt10k9电容20pf3晶振12mhz1按钮15共阴4位7段数码管smg sm410561k1扬声器1调试:(1)开机按电源开关,显示屏左边的抢答指示灯亮,数码管显示。(2)设定抢答倒计时时间设定答题倒计时时间(4) 测试各组抢答按键试按一下各组的抢答按钮,应立即显示该组的组别数字,同时机内喇叭发出 叮咚的提示音,按取消键,返冋0闪烁状态。(5) 启动抢答倒计时,开始

34、抢答fff状态下,当主持人宣布抢答开始吋,马上按一下抢答键,屏幕显示 所设定的抢答倒计时时间并开始倒计时,提示倒计时时间马上临近结束。倒计时 到0以后,仪器发出叮咚的结束提示音,同时显示屏返冋fff待命状态。在抢答倒计时中,如果有参赛组抢答,仪器屏幕立即显示该组的组别号,同时 发出叮咚的抢答成功提示音。需要返冋fff待命状态,按取消键即可。(6) 启动答题倒计时fff状态下,或冇参赛组抢答成功后,需要开始答题的计时时,按答题计时 键,屏幕显示所设定的答题倒计时时间并开始倒计时,提示倒计时时间马上临 近结束。倒计时到0以后,仪器发岀丁冬的结束捉示音,同时显示屏返回fff 待命状态。(7) 捉前取

35、消倒计时无论是抢答述是答题的倒计时时间,需要捉前退出,只要按一下取消 键,即可返回到fff待命状态。(8) 如果想调节抢答时间或答题时间,按“加一”键或“减一”键进入调节 状态,此时会显示现在设定的抢答时间或回答时间值,如想加一秒按一下”加is” 键,如果想减-秒按一下“减is”键,吋间led±会显示改变后的吋间,调整 范围为099s, os时再减is会跳到99, 99s时再加is会变到os。(9) 违规抢答当主持人读题过程中,而未宣布抢答开始时按下抢答按钮。主显示屏将显示 该违规组号,及发出提示音。及该组的红灯亮起。通过调试,结果完全符合抢答器设计要求。七、结论与心得这次课程设计老师给我们安排了一个星期的时间,可以说是比较充裕的。 虽然如此,我还是很用心的做设计,利用了周六周h两天的时间在宿舍思考本次 的课程设计,拿到题冃,感觉太繁杂了,不知怎么下手,虽然这些知识以前都有 接触过,但也只是分部分来接触,而这次的设计是耍对前面几次实验

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论