1、八位抢答器八位抢答器一、绪论 抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。但抢答器的使用频率较低,且有的要么制作复杂,要么可靠性低。作为一个单位,如果专门购一台抢答器虽然在经济上可以承受,但每年使用的次数极少,往往因长期存放使(电子器件的)抢答器损坏,再购置的麻烦和及时性就会影响活动的开展,因此设计了本抢答器。本设计是以八路抢答为基本理念。考虑到依需设定限时回答的功能,利用89C52,单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和计数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。用开关做键盘输出,扬声器发生提示。同时
2、系统能够实现:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;抢答限定时间和回答问题的时间可在1-99s设定;可以显示是哪位选手有效抢答和无效抢答,正确按键后有音乐提示;抢答时间和回答问题时间倒记时显示,满时后系统计时自动复位及主控强制复位;按键锁定,在有效状态下,按键无效非法。二、任务与要求1、抢答器同时供8名选手或8个代表队比赛,分别用8个按钮S0 S7表示。2、设置一个系统清除和抢答控制开关S,该开关由主持人控制。3、 抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时扬声器发出报警声响提示。选手抢答实行优先锁存,优先抢答选手的编号一直保持
3、到主持人将系统清除为止。4、抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。当主持人启动开始键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间0.5秒左右。5、参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。6、如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00 。三、硬件电路设计3.1设计电路图3.2需要的原件原件名称需要个数数码显示管1SW-PB10电容22pF1电阻1K9电阻10K1电容1F 4 电解电容1 LED灯8电阻10k1锁存器MC74HC5
4、732蜂鸣器1MAX232189C5213.3 电子实物图四、使用说明本实验电路由抢答电路、译码显示电路、主持人控制电路、定时电路、报警电路组成。通过复位按键FW,电路进入准备就绪状态。将抢答时间设定在30S,然后按下开始键开始抢答。,在电路中“S0-S7”为8路抢答器的8个按键,当有键按下,程序锁定信号,从P2口输出抢答者号码的七段码值,送到码管显示,并封锁按键,保持刚才按键按下时刻的时间,禁止其他人按键的输入,从而实现了抢答的功能。当设定的抢答时间结束,仍然没有抢答键被按下,则产生已经超时的报警信号,结束抢答。当要进行下一次的抢答时,首先先按一下复位按键,电路复位。该设计是以MCS51为基
5、础,结合单片机汇编语言知识,设计而成的8位竞赛抢答器。在伟福试验箱上实现仿真。主持人按下“抢答开始”既单脉冲键后,喇叭响0.5秒给出提示信号,并立刻进入抢答倒计时(预设30秒抢答时间)此时,数码显示管上显示倒计时时间:有选手抢答,停止计时,八段数码显示抢答时间和选手号;无选手抢答,倒计时30秒后,显示00。然后选手等待主持人按下按钮开始新一轮抢答。注意: (1)由于设计的局限性,如果在无人抢答期间,30秒还未到,主持人不能按下重新下一轮抢答按钮。(2)由于试验箱上按钮数量有限,故选用开关代替按钮,供8位选手抢答使用。鉴于开关与按钮动作过程的差异,所以每次当选手抢答,拨下开关时必须将开关复位。(
6、3)当系统出现错误的时候,停止操作,重新编译开始。五、流程图设计主程序 (开始) T0中断服务程序 (中断入口)重装初值系统清除关显示计时满1S N初始化开中断T0,T1,INT0 Y50H减1 N主持人按下调用倒计时 Y计时满30S N启动T0启动T1 Y停止计时中断返回 (结束)时间送AT1定时器 (中断入口) 倒计时取十位启动蜂鸣器取个位计时满0.5S N Y分别转换为段码停止计时显示时间退出中断有键按下 N返回 Y得到键号i=0键盘扫描:第i行置0行号置1第一行按下 Y N行号置3第二行按下 Y N行号置5第三行按下 Y N第四行按下行号置7 Y N列号+行号=键号列号加1停止定时器显
7、示键号子程序返回六、程序如下:org 0000hajmp mainorg 000bhajmp itq0org 001bhajmp itq1org 0030h main:setb p3.2 st1:mov 51h,#0 ;系统清除 mov 52h,#0 mov 53h,#0 mov 50h,#30 mov a,#00h setb p2.1 mov p1,a clr p2.1 mov tmod,#21h;T0定时工作方式1,T2定时工作方式2 mov tl0,#00h mov th0,#83h mov th1,#06h mov tl1,#06h setb it0 ;边沿触发 setb et0 ;开
8、中断 setb et1 setb ex0 setb ea ;开放CPU中断 mov r4,#250 mov r1,#250 ;蜂鸣时间长度 mov r5,#8 lp0:jb p3.2,lp0 setb p3.2 setb tr0 setb tr1 sjmp $ itq0: mov tl0,#00h ;初值重装 mov th0,#83h djnz r4,out1 ;计时1秒 dec 50h ;倒计时时间减一 mov r4,#250 call dao mov a,50h jnz out1 clr tr0 ;;关计时器 out1: reti itq1: cpl p0.7 ;开蜂鸣器 djnz r1,
9、out1 mov r1,#250 djnz r5,out1 clr tr1 ;关蜂鸣 reti dao: mov a,50h ;剩余时间的显示 mov b,#10 div ab mov 51h,a mov 52h,b mov r6,#2 ;两位数字显示 mov r0,#51h ft1: mov a,r0 mov dptr,#tab movc a,a+dptr mov r0,a inc r0 djnz r6,ft1 ;分别转换为段码 lllp1: mov a,51h setb p2.0 mov p1,a clr p2.0 mov a,#0feh ;输出时间的十位 选择某位输出 setb p2.1
10、 mov p1,a clr p2.1 mov r7,#10 djnz r7,$ mov a,52h setb p2.0 mov p1,a clr p2.0 mov a ,#0fdH setb p2.1 mov p1,a clr p2.1 mov r7,#10 djnz r7,$ sao:mov a,#0f3h;是否有键按下 mov p3,a mov a,p3 anl a,#0f0h cjne a,#0f0h ,getkey retgetkey:mov r2,#0fbh;扫描键号 mov r3,#00h ks1:mov a,r2 mov p3,a mov a,p3 jb acc.4,ks2 mo
11、v a,#01h ajmp jieguo ks2:jb acc.5,ks3 mov a,#03h ajmp jieguo ks3:jb acc.6,ks4 mov a,#05h ajmp jieguo ks4:jb acc.7,next mov a,#07h ajmp jieguo next:cjne r3,#00h,kfh inc r3 mov a,r2 rl a mov r2,a ajmp ks1 kfh:setb 11h jieguo:clr tr0;得到并显示键号 clr p2.1 add a,r3 mov dptr,#tab movc a,a+dptr setb p2.0 mov p
12、1,a clr p2.0 setb p2.1 mov p1,#0f7h clr p2.1 clr tr0 sjmp $ tab:db 3fh,06h,5bh,4fh db 66h,6dh,7dh,07h db 7fh,6fhend七、设计总结:通过这次课程设计,我深刻的认识到自己在许多方面的不足。通过编程,我学会了如何独立的写出程序,提高了自己的分析解决问题的能力,并且使自己所学的知识与实践相结合,应用到实践当中。在刚开始的时候无从下手,感觉有些茫然,但同学和老师给予我很大的帮助,每当设计过程中遇到困难时,老师都会细心的教导我,耐心的为我讲解,同学也热心帮助我,为我排忧解难,让我深深的体会到了团队的力量和重要性。通过设计,我也学到了很多书本上没有的知识。在设计当中遇到了很多问题,但通过查找资料,克服了这些问题,提高了自己在实际当中解决问题的能力。在此我感谢学校给了我们的这次实践机会。在这里为奔波劳累在这次设计中老师便是感谢,老师们不辞劳苦,不在乎身体的不适认真为我们讲解并为我们知道实际操作过程中的问题。让我们一步一步有序完成此次课程设计。在这里对我们的马老师、焦老师、高老师说声谢谢,谢谢你们,你们辛苦了!也祝你们身体健康工作顺利。八、参考文献1 高峰.单片微型计算机原理与接口技术.科学出版社,20072 周慈航.单片机应用程序设计技术.北京航空航天大学出版社
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1