基于单片机的8路抢答器的设计23431_第1页
基于单片机的8路抢答器的设计23431_第2页
基于单片机的8路抢答器的设计23431_第3页
基于单片机的8路抢答器的设计23431_第4页
基于单片机的8路抢答器的设计23431_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、基于单片机的八路抢答器设计方案第一章抢答器设计功能分析1.1 数字抢答器的概述对于抢答器我们大家来说都不陌生, 它是用于很多竞赛场合, 真正实现先抢 先答,让最先抢到题的选手来回答问题。抢答器不仅考验选手的反应速度同时也 要求选手具备足够的知识面和一定的勇气。选手们都站在同一个起跑线上,体现 了公平公正的原则。1.2 设计任务与要求基本要求:1. 给主持人设置一个开关,用来控制系统的清零 (编号显示数码管灭灯) 和抢 答器的开始。2. 抢答器具有数据锁存和显示的功能。抢答开始后,若有选手按动抢答器按 钮,编号立即锁存,并在 LED数码上显示选手的编号,同时扬声器给出音响 提示。此外,要封锁输入

2、电路,禁止其他选手抢答。发挥部分:1. 抢答器具有定时抢答的功能,且一次抢答的时间可以由主持人设定(如 30 秒)。当节目主持人启动“开始”键后,要求定时器立即减计时,并用显示 器显示,同时扬声器发出短暂的声响,声响持续时间 0.5 秒左右。2. 参加选手在设定的时间内抢答,抢答有效,定时器停止工作,显示器上显示 选手的编号和抢答时刻的时间,并保持到主持人将系统清零为止。3. 如果定时抢答的时间已到,却没有选手抢答时,本次抢答无效,系统短暂报 警,并封锁输入电路,禁止选手超时后抢答,时间显示器上显示 00。4. 选手如果在主持人按开始键之前违规抢答,系统报警, LED显示违规选手号 码和 FF

3、,直到主持人按下停止键。第二章 抢答器方案论证抢答器的实现方式有种多样, 通过纯电子器件搭建电路实现, 如优先编码器, 锁存器, 555定时器译码器等,纯电子器件实现没有软件参与,调试简单,但是 它不易于扩展和修改,而且电路结构复杂,调试困难电子,电子器件管脚很多, 实际搭建起来费时费力,焊接很容易出错。于是,我想到了用单片机实现。单片 机体积小价格低, 应用方便,稳定可靠。单片机将很多任务交给了软件编程去实 现,大大简化了外围硬件电路, 使外围电路的实现简单方便。 由于单片机本身不 具有软件编译测试的功能,我们需要借助其他软件编译,将编译好的程序“烧” 入单片机内。在实际电路设计中,需要先通

4、过仿真软件测试电路以及编译的程序,检查 外围电路设计是否合理, 软件编译是否正确, 以及软件和硬件电路能否正常配合 工作,能否准确的实现所设计的功能。 如果测试通过, 电路仿真没有问题能完全 实现功能的话就可以实际的做板子的焊接工作了。 在老师的指导下我选择了常用 的单片机仿真软件 proteus6.9 以及 keil 进行仿真。第三章 硬件电路设计3.1 总体设计图 3-1 总体设计如图3-1,P3.0为开始抢答,P3.2为停止,P1.0-P1.7 为八路抢答输入,数码 管段选P0口,位选 P2口低3位,蜂鸣器(用绿灯代替)输出为 P3.6口。P3.2为时 间加1调整, P3.3为时间减 1

5、调整。3.2 外部振荡电路图 3-2 外部振荡电路一般选用石英晶体振荡器。此电路在加电大约延迟10ms后振荡器起振 , 在XTAL2引脚产生幅度为 3V左右的正弦波时钟信号 , 其振荡频率主要由石英晶振的 频率确定。电路中两个电容 C1,C2的作用有两个 : 一是帮助振荡器起振 ; 二是对振 荡器的频率进行微调。 C1,C2的典型值为 30PF。3.3 复位电路的设计单片机的第 9脚RST为硬件复位端 , 只要将该端持续 4个机器周期的高电平即 可实现复位 , 复位后单片机的各状态都恢复到初始化状态,其电路图如图4所示:图3-3 复位电路在方案中使用到了硬件复位和软件复位两种功能 , 由上面的

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

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

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

9、协调三个中断一起工作,实现抢答功能 , 其流程图如下:图4-5 主程序流程图附录: 程序代码: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; 初设抢答时间为 15sMOV R2,#0AH; 初设答题时间为 10

10、sMOV 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; 一开始就运行定时器 , 以开始显示 FFF. 如果想重新计数 , 重 置TH1/TL1就可以了 查询程序 :START: MOV R5,#0BHMOV R4,#0BHMOV R3,#0BHA

11、CALL DISPLAY; 未开始抢答时候显示 FFFJB P3.0,NEXTACALL DELAYJB P3.0,NEXT;去抖动 , 如果 开始键 按下就向下执行 , 否者跳到非法抢答查询ACALL BARK; 按键发声MOV A,R1MOV R6,A;送R1-R6,因为 R1中保存了抢答时间SETB OK;抢答标志位 , 用于 COUN只T程序中判断是否查询抢答MOV R3,#0AH; 抢答只显示计时 , 灭号数AJMP COUNT; 进入倒计时程序 , 查询有效抢答的程序 在COUN里T面 NEXT: JNB P1.0,FALSE1JNB P1.1,FALSE2JNB P1.2,FAL

12、SE3JNB P1.3,FALSE4JNB P1.4,FALSE5JNB P1.5,FALSE6JNB P1.6,FALSE7JNB P1.7,FALSE8AJMP START 非法抢答处理程序 : FALSE1: ACALL BARK; 按键发声MOV R3,#01HAJMP ERRORFALSE2: ACALL BARKMOV R3,#02HAJMP ERRORFALSE3: ACALL BARKMOV R3,#03HAJMP ERRORFALSE4: ACALL BARKMOV R3,#04HAJMP ERRORFALSE5: ACALL BARKMOV R3,#05HAJMP ERRO

13、RFALSE6: ACALL BARKMOV R3,#06H AJMP ERRORFALSE7: ACALL BARKMOV R3,#07HAJMP ERRORFALSE8: ACALL BARKMOV R3,#08HAJMP ERROR倒计时程序 ( 包括有效抢答程序 ):COUNT: MOV R0,#00H;MOV TH1,#3CHMOV TL1,#0B0HRECOUNT: MOV A,R6;MOV B,#0AHDIV AB;MOV 30H,A;MOV 31H,B;重置定时器中断次数重置定时器R6 保存了倒计时的时间除十分出个位 / 十位 十位存于 (30H) 个位存于 (31H)MOV

14、R5,30HMOV R4,31HMOV A,R6CLR CSUBB A,#07HJNC LARGERMOV A,R0CJNE A,#0AH,FULL;1sCLR RINGAJMP CHECKFULL: CJNE A,#14H,CHECKSETB RINGMOV A,R6 JZ QUIT;MOV R0,#00H DEC R6;AJMP CHECKLARGER: MOV A,R0CJNE A,#14H,CHECKDEC R6;MOV R0,#00HCHECK: JNB P3.1,QUIT;ACALL DISPLAYJNB P1.0,TRUE1JNB P1.1,TRUE2JNB P1.2,TRUE3

15、JNB P1.3,TRUE4JNB P1.4,TRUE5JNB P1.5,TRUE6JNB P1.6,TRUE7取十位取个位大于5s跳到LARGER小, 于等于5s会提醒中0.5s 向下运行; 1s时, 响并显示号数并清 R0,重新计时计时完毕一秒标志减 1如果1s向下运行,否者跳到查 停/显示计时一秒 R6自动减1如按下停止键退出JNB P1.7,TRUE8AJMP RECOUNTQUIT: CLR OK;如果按下了 停止键 重新回到开始CLR RINGACALL BARKAJMP START正常抢答处理程序:TRUE1: ACALL BARK;按 键发声MOV A,R2MOV R6,A;抢

16、答时间 R2送 R6MOV R3,#01HCLR OK;AJMP LOOP2TRUE2:ACALL BARK;MOV A,R2MOV R6,AMOV R3,#02HCLR OKAJMP LOOP2TRUE3:ACALL BARK;MOV A,R2MOV R6,AMOV R3,#03HCLR OKAJMP LOOP2TRUE4:ACALL BARK;MOV A,R2MOV R6,AMOV R3,#04HCLR OKAJMP LOOP2TRUE5: ACALL BARK;MOV A,R2MOV R6,AMOV R3,#05HCLR OKAJMP LOOP2TRUE6: ACALL BARK;MOV

17、 A,R2MOV R6,AMOV R3,#06HCLR OKAJMP LOOP2TRUE7: ACALL BARK;MOV A,R2MOV R6,AMOV R3,#07HCLR OKAJMP LOOP2TRUE8: ACALL BARK;MOV A,R2MOV R6,AMOV R3,#08HCLR OKLOOP2: AJMP DISPLAY ; 抢答后停止计时,等待返回SETB RINGJNB P3.1 QUITAJMP LOOP2犯规抢答程序 :ERROR: SETB RING ; 犯规响铃MOV R5,#0BHMOV R4,#0BH;显示 FF和犯规号数LOOP3: ACALL DISPL

18、AYJNB P3.1 QUIT1; 等待“停止”键按下AJMP LOOP3QUIT1: CLR RINGCLR OKAJMP START 显示程序 :DISPLAY:MOV DPTR,#DAT1; 查 表显示程序 , 利用 P0口做段选码口输出 /P2低三位 做位选码输出MOV A,R5MOVC A,A+DPTRMOV P2,#01HMOV P0,AACALL DELAYMOV DPTR,#DAT2MOV A,R4MOVC A,A+DPTRMOV P2,#02HMOV P0,AACALL DELAYMOV A,R3MOVC A,A+DPTRMOV P2,#04HMOV P0,AACALL DE

19、LAYRETDAT1:DB 00H,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H灭,F灭,1,2,3,4,5,6,7,8,9,DAT2:DB 3FH, 06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H DELAY1: MOV 35H,#08HLOOP0: ACALL DISPLAYDJNZ 35H,LOOP0RET延时( 显示和去抖动用到 ):DELAY: MOV 32H,#12HLOOP: MOV 33H,#0AFHLOOP1: DJNZ 33H,LOOP1DJNZ 32H,LOOPRET发声程序 :BARK: SETB RINGACALL DELAY1ACALL DELAY1CLR RING;RETINT0(抢答时间R1调整程序 ): INT0SUB

温馨提示

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

评论

0/150

提交评论