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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于51单片机的8路抢答器之欧阳美创编.docx

1、基于51单片机的8路抢答器之欧阳美创编摘 要抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。但抢答器的使用频率较低,且有的要么制作复杂,要么可靠性低。作为一个单位,如果专门购一台抢答器虽然在经济上可以承受,但每年使用的次数极少,往往因长期存放使(电子器件的)抢答器损坏,再购置的麻烦和及时性就会影响活动的开展,因此设计了本抢答器。本设计是以八路抢答为基本理念。考虑到依需设定限时回答的功能,利用AT89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。用开关做键盘输出,扬声

2、器发生提示。同时系统能够实现:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;抢答限定时间和回答问题的时间可在1-99s设定;可以显示是哪位选手有效抢答和无效抢答,正确按键后有音乐提示;抢答时间和回答问题时间倒记时显示,满时后系统计时自动复位及主控强制复位;按键锁定,在有效状态下,按键无效非法。关键词:51单片机,抢答器,时间设定1 抢答器设计功能分析11.1 数字抢答器的概述11.2 设计任务与要求12 方案设计23 硬件电路设计33.1 总体设计33.2 外部振荡电路33.3 复位电路的设计43.4 显示电路的设计43.5按钮输入电路的设计43.6 发声54 系统软件设计64.

3、1 程序系统结构图64.2 程序流程图64.3 程序代码:94.3.1查询程序:104.3.2非法抢答处理程序:104.3.3倒计时程序(包括有效抢答程序):114.3.4正常抢答处理程序:134.3.5犯规抢答程序:144.3.6显示程序:154.3.7延时(显示和去抖动用到):164.3.8 TO溢出中断(响铃程序):174.3.9 T1溢出中断(计时程序):17总结18参考文献191 抢答器设计功能分析1.1 数字抢答器的概述对于抢答器我们大家来说都不陌生,它是用于很多竞赛场合,真正实现先抢先答,让最先抢到题的选手来回答问题。抢答器不仅考验选手的反应速度同时也要求选手具备足够的知识面和一

4、定的勇气。选手们都站在同一个起跑线上,体现了公平公正的原则。1.2 设计任务与要求基本要求:1.给主持人设置一个开关,用来控制系统的清零(编号显示数码管灭灯)和抢答器的开始。2.抢答器具有数据锁存和显示的功能。抢答开始后,若有选手按动抢答器按钮,编号立即锁存,并在LED数码上显示选手的编号,同时扬声器给出音响提示。此外,要封锁输入电路,禁止其他选手抢答。发挥部分:1.抢答器具有定时抢答的功能,且一次抢答的时间可以由主持人设定(如30秒)。当节目主持人启动“开始”键后,要求定时器立即减计时,并用显示器显示,同时扬声器发出短暂的声响,声响持续时间0.5秒左右。2.参加选手在设定的时间内抢答,抢答有

5、效,定时器停止工作,显示器上显示选手的编号和抢答时刻的时间,并保持到主持人将系统清零为止。3.如果定时抢答的时间已到,却没有选手抢答时,本次抢答无效,系统短暂报警,并封锁输入电路,禁止选手超时后抢答,时间显示器上显示00。4.选手如果在主持人按开始键之前违规抢答,系统报警,LED显示违规选手号码和FF,直到主持人按下停止键。2方案设计该系统采用51系列单片机AT89C51作为控制核心,该系统可以完成运算控制、信号识别以及显示功能的实现。由于用了单片机,使其技术比较成熟,应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。整个系统具有极其灵活的可编程性,能方便地对系统进行功能的扩

6、张和更改。MCS-51单片机特点如下:可靠性好:单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般的CPU,程序指令和数据都可以写在ROM里,许多信号通道都在同一芯片,因此可靠性高,易扩充。单片机有一般电脑所必须的器件,如三态双向总线,串并行的输入及输出引脚,可扩充为各种规模的微电脑系统。 控制功能强:单片机指令除了输入输出指令,逻辑判断指令外还有更丰富的条件分支跳跃指令。原理框图如下:图2-1 原理框图3 硬件电路设计3.1总体设计根据抢答器的基本功能,可以设计出如下的单片机外围电路:图3-1 总体设计如图3-1,P3.0为开始抢答,P3.2为停止,P1.0-P1.7为八路抢答输入,数码管

7、段选P0口,位选P2口低3位,蜂鸣器(用绿灯代替)输出为P3.6口。P3.2为时间加1调整,P3.3为时间减1调整。3.2 外部振荡电路图3-2 外部振荡电路一般选用石英晶体振荡器。此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路中两个电容 C1,C2的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。C1,C2的典型值为30PF。3.3 复位电路的设计单片机的第9脚RST为硬件复位端,只要将该端持续4个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态,其电路图如图所示:图3-3

8、 复位电路在方案中使用到了硬件复位和软件复位两种功能,由上面的硬件复位可使寄存器及存储器的值都恢复到初始值,而前面的功能提到了倒计时间需要有记忆功能,该功能实现的前提条件就是不能对单片机进行硬件复位,所以设定了软复位功能。软复位实际上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到程序执行的起始地址。3.4 显示电路的设计显示电路使用了七段数码管7SEG-MPX4-CC,它是共阴极的,由高电平点亮。图3-4 阴极七段数码管按钮输入电路的设计抢答器的输入按钮使用常开开关,图3-5抢答按键这些常开开关组成了抢答按键,硬件电路简单,在程序设计上也不复杂,只要在程序中消除在按键过程中产生的

9、“毛刺” 现象就可以了。这里采用最常用的方法即延时法,其的原理为:因为“毛刺”脉冲一般持续时间短,约为几ms,而按键的时间一般远远大于这个时间,所以当单片机检测到有按键动静后再延时一段时间(这里取10ms)后再判断此电平是否保持原状态,如果是则为有效按键,否则无效。3.6 发声这里能利用程序来控制单片机P3.6口线反复输出高电平或低电平,即在该口线上产生一定频率的矩形波,接上扬声器就能发出一定频率的声音,再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调,使扬声器发出不同的声音。4系统软件设计4.1 程序系统结构图硬件电路确定后,软件的编程要与硬件相匹配,软硬件才能结

10、合完成所要实现的功能。由功能分析得到以下的软件结构图:图4-1 软件系统结构图4.2 程序流程图整个程序主要由定时器T0、定时器T1、外部中断0和主程序构成。定时器T0用于使扬声器发声,当需要响铃时,把响铃标志位置一,每次中断都对P3.7取反,扬声器发声,改变定时器初值,可改变扬声器频率。定时器程流程图如下:图4-2 响铃程序流程图定时器T1用于倒计时,每次中断为50ms,当计数标志为20时即为一秒,显示数字减一。其流程图如下:图4-3 倒计时中断流程图外部中断0用于调整倒计时时间,流程图如下:图4-4 调整抢答时间流程图主程序协调三个中断一起工作,实现抢答功能,其流程图如下:图4-5主程序流

11、程图4.3 程序代码:P3.0为开始抢答,P3.1为停止,P1.0-P1.7为八路抢答输入,数码管段选P0口,位选P2的低三位口,蜂鸣器输出为P3.6口。ORG 0000HAJMP MAINORG 0003HAJMP INT0SUBORG 000BHAJMP T0INTORG 001BHAJMP T1INTOK EQU 20H;抢答开始标志位RING EQU 22H;响铃标志位ORG 0040HMAIN: MOV R1,#0FH; 初设抢答时间为15s MOV R2,#0AH; 初设答题时间为10s MOV TMOD,#11H; 设置未定时器/模式1 MOV TH0,#0F0H MOV TL0

12、,#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就可以了4.3.1查询程序:START: MOV R5,#0BH MOV R4,#0BH MOV R3,#0BHACALL DISPLAY; 未开始抢答时候显示FFF JB P3.0,NEXT ACALL

13、 DELAY JB P3.0,NEXT;去抖动,如果开始键按下就向下执行,否者跳到非法抢答查询 ACALL BARK;按键发声 MOV A,R1MOV R6,A;送R1-R6,因为R1中保存了抢答时间SETB OK;抢答标志位,用于COUNT只程序中判断是否查询抢答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,FAL

14、SE7JNB P1.7,FALSE8AJMP START4.3.2非法抢答处理程序:FALSE1: ACALL BARK; 按键发声 MOV R3,#01H AJMP ERRORFALSE2: ACALL BARK MOV R3,#02H AJMP ERRORFALSE3: ACALL BARK MOV R3,#03H AJMP ERRORFALSE4: ACALL BARK MOV R3,#04H AJMP ERRORFALSE5: ACALL BARK MOV R3,#05H AJMP ERRORFALSE6: ACALL BARK MOV R3,#06H AJMP ERRORFALSE7

15、: ACALL BARK MOV R3,#07H AJMP ERRORFALSE8: ACALL BARK MOV R3,#08H AJMP ERROR4.3.3倒计时程序(包括有效抢答程序): COUNT: MOV R0,#00H; 重置定时器中断次数MOV TH1,#3CHMOV TL1,#0B0H; 重置定时器RECOUNT:MOV A,R6;R6保存了倒计时的时间MOV B,#0AHDIV AB;除十分出个位/十位MOV 30H,A;十位存于(30H)MOV 31H,B;个位存于(31H)MOV R5,30H;取十位 MOV R4,31H;取个位 MOV A,R6 CLR C SUBB

16、 A,#07HJNC LARGER;大于5s跳到LARGER,小于等于5s会提醒MOV A,R0CJNE A,#0AH,FULL;1s中0.5s向下运行CLR RINGAJMP CHECKFULL: CJNE A,#14H,CHECK;1s时,响并显示号数并清R0,重新计时SETB RINGMOV A,R6JZ QUIT;计时完毕MOV R0,#00HDEC R6;一秒标志减1AJMP CHECKLARGER: MOV A,R0CJNE A,#14H,CHECK;如果1s向下运行,否者跳到查停/显示DEC R6;计时一秒R6自动减1MOV R0,#00HCHECK: JNB P3.1,QUIT

17、;如按下停止键退出ACALL DISPLAYJNB P1.0,TRUE1JNB P1.1,TRUE2JNB P1.2,TRUE3JNB P1.3,TRUE4JNB P1.4,TRUE5JNB P1.5,TRUE6JNB P1.6,TRUE7JNB P1.7,TRUE8AJMP RECOUNTQUIT: CLR OK;如果按下了停止键重新回到开始 CLR RINGACALL BARK AJMP START4.3.4正常抢答处理程序:TRUE1: ACALL BARK;按键发声 MOV A,R2 MOV R6,A;抢答时间R2送R6 MOV R3,#01H CLR OK; AJMP LOOP2TR

18、UE2:ACALL BARK;MOV A,R2MOV R6,AMOV R3,#02HCLR OKAJMPLOOP2TRUE3:ACALL BARK;MOV A,R2MOV R6,A MOV R3,#03HCLR OKAJMP LOOP2TRUE4:ACALL BARK; MOV A,R2MOV R6,AMOV R3,#04H CLR OKAJMPLOOP2TRUE5: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#05H CLR OK AJMPLOOP2TRUE6: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#06H CLR OK

19、AJMP LOOP2TRUE7: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#07H CLR OK AJMP LOOP2TRUE8: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#08H CLR OKLOOP2: AJMP DISPLAY ;抢答后停止计时,等待返回SETB RING JNB P3.1 QUIT AJMP LOOP24.3.5犯规抢答程序:ERROR: SETB RING ;犯规响铃 MOV R5,#0BH MOV R4,#0BH;显示FF和犯规号数LOOP3: ACALLDISPLAY JNB P3.1 QUIT1

20、; 等待“停止”键按下 AJMP LOOP3QUIT1: CLR RING CLR OK AJMP START4.3.6显示程序:DISPLAY:MOV DPTR,#DAT1;查表显示程序,利用P0口做段选码口输出/P2低三位做位选码输出MOV A,R5MOVC A,A+DPTR MOV P2,#01H MOV P0,A ACALL DELAY MOV DPTR,#DAT2 MOV A,R4 MOVC A,A+DPTR MOV P2,#02H MOV P0,A ACALL DELAY MOV A,R3 MOVC A,A+DPTR MOV P2,#04H MOV P0,A ACALL DELAY

21、 RETDAT1: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,71HDELAY1: MOV 35H,#08HLOOP0: ACALL DISPLAY DJNZ 35H,LOOP0 RET4.3.7延时(显示和去抖动用到):DELAY: MOV 32H,#12HLOOP: MOV 33H,#0AFHLOOP1: DJNZ 33H,LOOP1 DJNZ 32H,LOOP RET发声程序:BAR

22、K: SETB RING ACALL DELAY1 ACALL DELAY1 CLR RING;按键发声RETINT0(抢答时间R1调整程序): INT0SUB:MOV A,R1 MOV B,#0AHDIV ABMOV R5,A MOV R4,BMOV R3,#0AHACALL DISPLAY;先在两个时间LED上显示R1 JNB P3.2,INC0;P3.2为+1s键,如按下跳到INCOJNB P3.3,DEC0;P3.3为-1s键,如按下跳到DECOJNB P3.4,BACK0;P3.4为确定键,如按下跳到BACKOAJMP INT0SUBINC0: MOV A,R1 CJNE A,#63

23、H,ADD0;如果不是99,R2加1,如果加到99了,R1就置0,重新加起 MOV R1,#00H ACALL DELAY1 AJMP INT0SUBADD0: INC R1 ACALL DELAY1 AJMP INT0SUBDEC0: MOV A,R1 JZ SETR1;如果R1为0, R1就置99, DEC R1 ACALL DELAY1 AJMP INT0SUBSETR1: MOV R1,#63H ACALL DELAY1 AJMP INT0SUBBACK0: RETI4.3.8TO溢出中断(响铃程序):T0INT:MOV TH0,#0ECH MOV TL0,#0FFH JNB RING

24、,OUT CPL P3.6 ;RING标志位为1时候P3.6口不短取反使喇叭发出一定频率的声音OUT:RETI4.3.9T1溢出中断(计时程序):T1INT: MOV TH1,#3CH MOV TL1,#0B0H INC R0 RETI END总结通过此次的课程设计,让我更进一步的巩固了单片机的各种知识。但在设计的过程中,遇到了很多的问题,有一些知识已经不太清楚了,但是通过一些资料又重新的翻阅并且认真的复习了相关教科书中的内容。此次的课程设计树立了对自己工作能力的信心,相信会对今后的学习工作生活都有非常重要的影响,而且大大的提高了动手能力,使我充分的体会到了创造过程中的探索的艰难和成功的喜悦。虽然这次做出的作品还存在很多需要改进的地方,但是在整个设计过程中所学习到的东西是这次实训所得到的最大收获跟财富,使我终身受益。参考文献1.李建忠.单片机原理及应用.西安电子科技大学出版社,2008; 2. 杨居义.单片机课程设计指导.清华大学出版社,2009;3. 李海滨等.单片机技术课程设计与项目实例.中国电力出版社,2009.

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

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