基于数字电路八路抢答器的设计,八路数字抢答器课程设计
跪求八路抢答器课程设计 , 急!
课程设计(论文)题目
课程设计(论文)任务
题目:八路数字抢答器
控制要求:
(1) 抢答器可以供8名选手或8组参赛队使用,分别用8个按钮S0----S8表示。
(2) 设置一个系统清除和抢答控制开关S,该开关由主持人控制。
(3) 抢答器具有锁存与显示功能。即1人按后,其他电路被封锁,七段显示器上显示答题人号码,一次抢答的时间由主持人设定(如30秒)。
(4) .如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。控制器由AC220V供电。
主要设计内容:
硬件电路设计:
1. CPU最小系统设计(包括CPU选择,晶振电路,复位电路)
2. 开关接口电路以及声音电路设计
3. 显示电路及电源设计
软件设计:1.编程程序流程图2.程序清单编写
工作计划:
第1天 课程设计任务下达
第2天 资料收集
第3天 总体设计方案的确定
第4天 CPU最小系统设计
第5天 开关接口电路以及声音电路设计
第6天 显示电路及电源设计
第7天 确定程序流程图
第8天 软件编写
第9天 设计说明书完成
指导教师评语
指导教师签字: 年 月 日
总成绩 平时表现:20% 答辩:20% 设计内容质量:60%
目 录
第1章 课程设计的方案 3
1.1 概述 3
1.2 系统组成总体结构 4
第2章 课程设计内容 5
2.1 单片机最小系统设计 5
2.2 功能电路设计 5
2.3软件流程图设计 5
2.4系统硬件电路原理图设计 5
第3章 课程设计总结 6
参考文献 6
第1章 课程设计的方案
1.1 概述
题目的意义:
现在,有很多时候都需要竞争,而最激烈最残酷的竞争可能就是现场答题方式的比赛.而且这种比赛现正越来越多,无论是在选拔人才,社会娱乐等等很多场合都应用这种比赛方式。而这种现场式的比赛方式一个最大的要求及时实时性,比如抢答,限时答题等等如果都用裁判去完成计时,判断等工作,不但效率低,而且还不可避免的会有人为引起的误差和错误,这样会违背比赛的公平公正性。 在这样一种情况下就需要开发一种避免人为因素的机器,让比赛变得即高效,又绝对公平。
应用场合:
系统功能介绍:
1.2 系统组成总体结构
为完成上述系统功能,选择和设计八路抢答器电路组成系统,
其系统组成框图如图1.1所示。
图1.1 系统总体框图
第2章 课程设计内容
2.1 单片机最小系统设计
1.单片机选择本
设计CPU选择AT89C51单片机,AT89C51 单片机采用双列直插封装(DIP),有40 个引脚。与MCS—51 系列单片机的指令和引脚设置兼容。其主要特征如下:
8 位CPU ,内置4K 字节可重复编程Flash,可重复擦写1000 次,完全定态操作:0Hz~24Hz,可输出时钟信号,128B 的片内数据存储器,32 根可编程I/O 线,2个16 位定时/计数器,中断系统有6 个中断源,可编为两个优先级。一个全双工可编程串行通道,具有两种节能模式:闲置模式和掉电模式P0、P1、P2、P3 口作为普通I/O 口使用时都是准双向口结构。另外,I/O 口的端口自动识别功能,保证了无论是P1 口(低8 位地址)P2 口(高8位地址)的总线复用,还是P3 口的功能复用,内部资源自动选择而不需要用指令进行状态选择。振荡器特性:
XTAL1 和XTAL2 分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。
2.时钟电路设计
时钟控制电路是抢答器设计的关键,它要完成以下功能:
a.主持人将控制开关拨到"开始"位置时,扬声器发声,抢答电路和定时电路进人正常抢答工作状态。
b.当参赛选手按动抢答键时,扬声器发声,抢答电路和定时电路停止工作
3.复位电路设计
单片机的复位是靠外电路来实现的,在正常运行情况下,只要RST 引脚
上出现两个机器周期时间以上的高电平,即可引起系统复位,但如果RST 引脚上持续为高电平,单片机就处于循环复位状态。可见复位的时间和充电的时间有关,充电时间越长复位时间越长,增大电容或增大电阻都可以增加复位时间。为了保证系统可靠复位,在设计复位电路时,一般使RESET 引脚保持10ms 以上的高电平,单片机就能实现复位。本设计采用手动复位方式,电路如图 2.4。
2.2 功能电路设计
1.电源电路设计
电源电路采用三端集成线性稳压集成块,L7805CV,因为它的外围电路比较简单,并且工作比较稳定,很适合74系列的集成块。它的稳压精度为2%,工作电流1.5A,封装为TO-220(A),工作温度也很不错,并且具有过温保护和短路保护,最大输入电压为35V,能对电路的长时间工作有很大的保障。如图2.5
2.晶振电路设计
单片机的时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号通常用两种电路形式得到:内部振荡和外部振荡。AT89C51 单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTALl(X1)和XTAL(X2)分别是此放大电器的输入端和输出端。该反向放大器可配置为内部振荡。在其外接晶体振荡器(简称晶振)或陶瓷谐振器就构成了内部振荡方式。由于采用内部振荡方式时,电路简单,所得的时钟信号比较稳定,本设计采用内部振荡方式,
其电路如图2.3:
3.报警电路设计
报警电路用于报警,当遇到报警信号时,发出警报。一般喇叭是一种电感性
图2.6报警电路图。8951驱动喇叭的信号为各种频率的脉冲。因此,最简单的喇叭驱动方式就是利用达林顿晶体管,或者以两个常用的小晶体管连接成达林顿架势。在右图中电阻R为限流电阻,在此利用晶体管的高电流增益,以达到电路快速饱和的目的。不过,如果要由P0输出到此电路,还需要连接一个10K的上拉电阻。
选手在设定的时间内抢答时,实现:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次抢答必须由主持人再次*作"清除"和"开始"状态开关。图面是数字抢答器的报警电路图。
其中555构成多谐振荡器,振荡频率fo=1.43/〔(RI+2R2)C〕,其输出信号经三极管推动扬声器。PR为控制信号,当PR为高电平时,多谐振荡器工作,反之,电路停振。
2.3软件流程图设计
软件功能、作用说明,
流程图设计
1、主程序流程图
2、主程序清单
OK EQU 20H;抢答开始标志位
RING EQU 22H;响铃标志位
ORG 0000H
AJMP MAIN
ORG 0003H
AJMP INT0SUB
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;去抖动,如果"开始键"按下就向下执行,否者跳到非法抢答查询
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
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
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;
=====正常抢答处理程序=====
TRUE1: ACALL BARK
MOV A,R2
MOV R6,A;抢答时间R2送R6
MOV R3,#01H
CLR OK;因为答题的计时不再查询抢答,所以就锁了抢答
AJMP COUNT
TRUE2:ACALL BARK
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
;=====犯规抢答程序=====
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
;=====发声程序=====
BARK: SETB RING
ACALL DELAY1
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
2.4系统硬件电路原理图设计
系统硬件电路原理图如图2. 所示。
图2
.第3章 课程设计总结
此课程的课程设计实际是作为电气工程及其自动化专业学生学习完《单片机原理及接口技术》课程后,进行的一次全面的综合训练,其目的在于加深对单片机技术基础理论和基本知识的理解,掌握运用单片机技术基础合理论知识设计一些简单的基本应用电路的方法。虽说整个课设过程很辛苦,可是我们从中找到了乐趣、接触了实践,以前不是特别明白的地方也通过实践弄懂了。
总的来说,这次课程设计使我 感受到了理论与实践相结合的目的及其重要意义,不但使我对所掌握的单片机技术基础知识有了更深刻的认识,还提高了我的动手查阅资料的能力而且还锻炼了自己的独立思考能力。设计思路是最重要的,只要你的设计思路是成功的,那你的设计已经成功了一半。因此我们应该在设计前做好充分的准备,像查找详细的资料,为我们设计的成功打下坚实的基础。设计简洁、易懂 、不超出我的能力范围的内容不涉及,这写想法在我没设计此电路之前就已经有拉考虑,但是做完之后在失真度方面还是有那么一点欠缺,做为一名刚学习完《单片机原理及接口技术》的我来说有一定的难度,但是这对于我掌握,理解学习过的知识有很大的帮助,对于思维 、逻辑及其理论知识的运用等多方面有了更加进一步的掌握,在做课设的过程中我查阅了很多老师的参考书通过参考及运用自己所掌握的知识完成了此次的设计,在这里我也感谢所有给予我关心帮助的老师和同学,希望以后有更多的机会来锻炼自己的综合素质,为以后的学习、生活打下良好的基础,在这次课设中也暴露了自己的一些缺点,基础知识不够扎实,我会在以后的日子里加以改正,来提高自己综合能力。
总之,这次实验过程中我受益匪浅,在摸索我和我的搭档实现了课题所要求的结果。培养了我的设计思维,增加了动手操作的能力。更让我体会到实现电路功能喜悦。
课程设计 八路竞赛抢答器
第一章抢答器设计功能分析
1.1 数字抢答器的概述
对于抢答器我们大家来说都不陌生,它是用于很多竞赛场合,真正实现先抢先答,让最先抢到题的选手来回答问题。抢答器不仅考验选手的反应速度同时也要求选手具备足够的知识面和一定的勇气。选手们都站在同一个起跑线上,体现了公平公正的原则。
1.2 设计任务与要求
基本要求:
1. 给主持人设置一个开关,用来控制系统的清零(编号显示数码管灭灯)和抢答器的开始。
2. 抢答器具有数据锁存和显示的功能。抢答开始后,若有选手按动抢答器按钮,编号立即锁存,并在LED数码上显示选手的编号,同时扬声器给出音响提示。此外,要封锁输入电路,禁止其他选手抢答。
发挥部分:
1. 抢答器具有定时抢答的功能,且一次抢答的时间可以由主持人设定(如30秒)。当节目主持人启动“开始”键后,要求定时器立即减计时,并用显示器显示,同时扬声器发出短暂的声响,声响持续时间0.5秒左右。
2. 参加选手在设定的时间内抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答时刻的时间,并保持到主持人将系统清零为止。
3. 如果定时抢答的时间已到,却没有选手抢答时,本次抢答无效,系统短暂报警,并封锁输入电路,禁止选手超时后抢答,时间显示器上显示00。
4. 选手如果在主持人按开始键之前违规抢答,系统报警,LED显示违规选手号码和FF,直到主持人按下停止键。
第二章 抢答器方案论证
抢答器的实现方式有种多样,通过纯电子器件搭建电路实现,如优先编码器,锁存器,555定时器译码器等,纯电子器件实现没有软件参与,调试简单,但是它不易于扩展和修改,而且电路结构复杂,调试困难电子,电子器件管脚很多,实际搭建起来费时费力,焊接很容易出错。于是,我想到了用单片机实现。单片机体积小价格低,应用方便,稳定可靠。单片机将很多任务交给了软件编程去实现,大大简化了外围硬件电路,使外围电路的实现简单方便。由于单片机本身不具有软件编译测试的功能,我们需要借助其他软件编译,将编译好的程序“烧”入单片机内。
在实际电路设计中,需要先通过仿真软件测试电路以及编译的程序,检查外围电路设计是否合理,软件编译是否正确,以及软件和硬件电路能否正常配合工作,能否准确的实现所设计的功能。如果测试通过,电路仿真没有问题能完全实现功能的话就可以实际的做板子的焊接工作了。在老师的指导下我选择了常用的单片机仿真软件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调整。
3.2 外部振荡电路
图3-2 外部振荡电路
一般选用石英晶体振荡器。此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路中两个电容 C1,C2的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。C1,C2的典型值为30PF。
3.3 复位电路的设计
单片机的第9脚RST为硬件复位端,只要将该端持续4个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态,其电路图如图4所示:
图3-3 复位电路
在方案中使用到了硬件复位和软件复位两种功能,由上面的硬件复位可使寄存器及存储器的值都恢复到初始值,而前面的功能提到了倒计时间需要有记忆功能,该功能实现的前提条件就是不能对单片机进行硬件复位,所以设定了软复位功能。软复位实际上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到程序执行的起始地址。
3.1.4 显示电路的设计
显示电路使用了七段数码管7SEG-MPX4-CC,它是共阴极的,由高电平点亮。
图3-4 阴极七段数码管
4.1.5 按钮输入电路的设计
抢答器的输入按钮使用常开开关,
图3-5 抢答按键
这些常开开关组成了抢答按键,硬件电路简单,在程序设计上也不复杂,只要在程序中消除在按键过程中产生的“毛刺”现象就可以了。这里采用最常用的方法即延时法,其的原理为:因为“毛刺”脉冲一般持续时间短,约为几ms,而按键的时间一般远远大于这个时间,所以当单片机检测到有按键动静后再延时一段时间(这里取10ms)后再判断此电平是否保持原状态,如果是则为有效按键,否则无效。
3.1.6 发声
这里能利用程序来控制单片机P3.6口线反复输出高电平或低电平,即在该口线上产生一定频率的矩形波,接上扬声器就能发出一定频率的声音,再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调,使扬声器发出不同的声音。
第四章 系统软件设计
4.1 程序系统结构图
硬件电路确定后,软件的编程要与硬件相匹配,软硬件才能结合完成所要实现的功能。由功能分析得到以下的软件结构图:
图4-1 软件系统结构图
4.2 程序流程图
整个程序主要由定时器T0、定时器T1、外部中断0和主程序构成。
定时器T0用于使扬声器发声,当需要响铃时,把响铃标志位置一,每次中断都对P3.7取反,扬声器发声,改变定时器初值,可改变扬声器频率。定时器程流程图如下:
图4-2 响铃程序流程图
定时器T1用于倒计时,每次中断为50ms,当计数标志为20时即为一秒,显示数字减一。其流程图如下:
图4-3 倒计时中断流程图
外部中断0用于调整倒计时时间,流程图如下:
图4-4 调整抢答时间流程图
主程序协调三个中断一起工作,实现抢答功能,其流程图如下:
图4-5 主程序流程图
附录:
程序代码:
P3.0为开始抢答,P3.1为停止,P1.0-P1.7为八路抢答输入,数码管段选P0口,位选P2的低三位口,蜂鸣器输出为P3.6口。
ORG 0000H
AJMP MAIN
ORG 0003H
AJMP INT0SUB
ORG 000BH
AJMP T0INT
ORG 001BH
AJMP T1INT
OK EQU 20H ; 抢答开始标志位
RING EQU 22H ; 响铃标志位
ORG 0040H
MAIN: MOV R1,#0FH; 初设抢答时间为15s
MOV R2,#0AH; 初设答题时间为10s
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
ACALL DELAY
JB P3.0,NEXT;去抖动,如果"开始键"按下就向下执行,否者跳到非法抢答查询
ACALL BARK;按键发声
MOV A,R1
MOV R6,A; 送R1-R6,因为R1中保存了抢答时间
SETB OK; 抢答标志位,用于COUNT只程序中判断是否查询抢答
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: ACALL BARK; 按键发声
MOV R3,#01H
AJMP ERROR
FALSE2: ACALL BARK
MOV R3,#02H
AJMP ERROR
FALSE3: ACALL BARK
MOV R3,#03H
AJMP ERROR
FALSE4: ACALL BARK
MOV R3,#04H
AJMP ERROR
FALSE5: ACALL BARK
MOV R3,#05H
AJMP ERROR
FALSE6: ACALL BARK
MOV R3,#06H
AJMP ERROR
FALSE7: ACALL BARK
MOV R3,#07H
AJMP ERROR
FALSE8: ACALL BARK
MOV R3,#08H
AJMP ERROR
倒计时程序(包括有效抢答程序):
COUNT: MOV R0,#00H; 重置定时器中断次数
MOV TH1,#3CH
MOV TL1,#0B0H; 重置定时器
RECOUNT: MOV A,R6; R6保存了倒计时的时间
MOV B,#0AH
DIV AB; 除十分出个位/十位
MOV 30H,A; 十位存于(30H)
MOV 31H,B; 个位存于(31H)
MOV R5,30H ; 取十位
MOV R4,31H ; 取个位
MOV A,R6
CLR C
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,重新计时
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; 如按下停止键退出
ACALL DISPLAY
JNB P1.0,TRUE1
JNB P1.1,TRUE2
JNB P1.2,TRUE3
JNB P1.3,TRUE4
JNB P1.4,TRUE5
JNB P1.5,TRUE6
JNB P1.6,TRUE7
JNB P1.7,TRUE8
AJMP RECOUNT
QUIT: CLR OK ; 如果按下了"停止键"重新回到开始
CLR RING
ACALL BARK
AJMP START
正常抢答处理程序:
TRUE1: ACALL BARK; 按键发声
MOV A,R2
MOV R6,A; 抢答时间R2送R6
MOV R3,#01H
CLR OK;
AJMP LOOP2
TRUE2:ACALL BARK;
MOV A,R2
MOV R6,A
MOV R3,#02H
CLR OK
AJMP LOOP2
TRUE3:ACALL BARK;
MOV A,R2
MOV R6,A
MOV R3,#03H
CLR OK
AJMP LOOP2
TRUE4:ACALL BARK;
MOV A,R2
MOV R6,A
MOV R3,#04H
CLR OK
AJMP LOOP2
TRUE5: ACALL BARK;
MOV A,R2
MOV R6,A
MOV R3,#05H
CLR OK
AJMP LOOP2
TRUE6: ACALL BARK;
MOV A,R2
MOV R6,A
MOV R3,#06H
CLR OK
AJMP LOOP2
TRUE7: ACALL BARK;
MOV A,R2
MOV R6,A
MOV R3,#07H
CLR OK
AJMP LOOP2
TRUE8: ACALL BARK;
MOV A,R2
MOV R6,A
MOV R3,#08H
CLR OK
LOOP2: AJMP DISPLAY ;抢答后停止计时,等待返回
SETB RING
JNB P3.1 QUIT
AJMP LOOP2
犯规抢答程序:
ERROR: SETB RING ;犯规响铃
MOV R5,#0BH
MOV R4,#0BH; 显示FF和犯规号数
LOOP3: ACALL DISPLAY
JNB P3.1 QUIT1; 等待“停止”键按下
AJMP LOOP3
QUIT1: CLR RING
CLR OK
AJMP START
显示程序:
DISPLAY:MOV DPTR,#DAT1; 查表显示程序,利用P0口做段选码口输出/P2低三位做位选码输出
MOV A,R5
MOVC 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
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
DELAY1: MOV 35H,#08H
LOOP0: ACALL DISPLAY
DJNZ 35H,LOOP0
RET
延时(显示和去抖动用到):
DELAY: MOV 32H,#12H
LOOP: MOV 33H,#0AFH
LOOP1: DJNZ 33H,LOOP1
DJNZ 32H,LOOP
RET
发声程序:
BARK: SETB RING
ACALL DELAY1
ACALL DELAY1
CLR RING; 按键发声
RET
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.2,INC0; P3.2为+1s键,如按下跳到INCO
JNB P3.3,DEC0; P3.3为-1s键,如按下跳到DECO
JNB P3.4,BACK0; P3.4为确定键,如按下跳到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
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
八路抢答器课程设计,急用~~~!!!~~~~高分
电子技术课程设计
——————八路智力竞赛抢答器
学院: 华科学院
专业,班级:电气工程及其自动化062203H
姓名 段超
学号: 200622050308
指导老师: 黄庆彩
2008年1月
目录
一 设计任务与要求……………………………………3
二 总体框图……………………………………………3
三 选择器件……………………………………………4
四 功能模块……………………………………………6
五 电路的装配调试……………………………………9
六 心得体会……………………………………………11
八路智力竞赛抢答器
一.设计任务与要求
1.任务和要求
抢大器能容纳8名选手,并且给出相应的编号为1、2、3、4、5、6、7、8,为每名选手设置一个按键。为了简化设计,可以利用试验仪上的逻辑电平开关。(这部分要求由我主要负责)
设置一个给工作人员清零的开关,以便能开始新的一轮的抢答。为了简化设计,可以利用试验仪上的逻辑电平开关。
用LED数码管显示获得优先抢答的选手的编号,一直保持到工作人员清零或1分钟倒记时答题时间结束为止。
用LED数码管显示有效抢答后的1分钟到记时答题时间。
用喇叭发声知识有效抢答及答题时间的结束。(这部分要求由我主要负责)
秒信号不必考虑时间精度,可利用试验仪上所提供的连续脉冲(方波)。
二.总体框图
根据设计任务与要求,我初步将系统分为4大功能模块:主电路、数据采集电路、控制电路和音响电路。可将主电路分为一个十六进制(实现一分钟倒记时答题时间)计数、译码、显示电路;数据采集电路(获得优先抢答选手的编号)分为8路抢答开关、八D数据锁存器、优先编码器、加1电路;控制电路分为锁存控制、倒记时控制、音响控制;音响电路分为单稳态触发器、音振及喇叭电路。以下是我设计的总体框图:如图1所示
图一 总体框图
三.选择器件
整个电路的电子器件有:555定时器,74LS192,74LS148,74LS373,74LS00,74LS04以及若干电容和电阻。我详细介绍一下我所设计的这两个电路中所用到的重要器件(555定时器和 74LS373):
1.555定时器
555 定时器是一种模拟和数字功能相结合的中规模集成器件。555 定时器成本低,性能可靠,只需要外接几个电阻、电容,就可以实现多谐振荡器、单稳态触发器及施密特触发器等脉冲产生与变换电路。它也常作为定时器广泛应用于仪器仪表、家用电器、电子测量及自动控制等方面。555 定时器的内部电路框图和外引脚排列图分别如下图2:
图2 555定时器的内部电路框图和外引脚排列图
它内部包括两个电压比较器,三个等值串联电阻,一个 RS 触发器,一个放电管 T 及功率输出级。它提供两个基准电压VCC /3 和 2VCC /3 555 定时器的功能主要由两个比较器决定。两个比较器的输出电压控制 RS 触发器和放电管的状态。在电源与地之间加上电压,当 5 脚悬空时,则电压比较器 A1 的反相输入端的电压为 2VCC /3,A2 的同相输入端的电压为VCC /3。若触发输入端 TR 的电压小于VCC /3,则比较器 A2 的输出为 1,可使 RS 触发器置 1,使输出端 OUT=1。如果阈值输入端 TH 的电压大于 2VCC/3,同时 TR 端的电压大于VCC /3,则 A1 的输出为 1,A2 的输出为 0,可将 RS 触发器置 0,使输出为 0 电平。
2.74LS373
74373八D锁存器为三态输出的8 D透明锁存器, 373的输出端O0-O7可直接与总线相连。当三态允许控制端OE为低电平时,O0-O7为正常逻辑状态,可用来驱动负载或总线。当OE为高电平时,O0-O7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。当锁存允许端LE为高电平时,O随数据D而变。当LE为低电平时,O被锁存在已建立的数据电平。当LE端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善400mV。
373引出端符号:
???D0~D7-----数据输入端?????OE-----三态允许控制端
???LE-----锁存允许端???????????? O0-O7-----输出端
74LS373外部管腿图、真值表、逻辑图,如下图3所示:
图3 74LS373外部管腿图、真值表、逻辑图
真值表中:L——低电平; H——高电平; X——不定态; Q0——建立稳态前Q的电平; G——输入端,与8031ALE连高电平:畅通无阻低电平:关门锁存。图中OE——使能端,接地。当G=“1”时,74LS373输出端1Q—8Q与输入端1D—8D相同;当G为下降沿时,将输入数据锁存。
四.功能模块
根据设计任务与要求,我初步将系统分为4大功能模块:主电路、数据采集电路、控制电路和音响电路。
1.主电路由六十进制计数器和译码、显示电路两部分组成。
2.控制电路由锁存控制和倒计时控制两部分组成。
以上的这两大模块部电路均由我的搭档负责
以下的数据采集电路和音响电路两个模块是由我主要负责,下面我就详细说明我所设计的这两模块:
3.数据采集电路
(1).八路抢答开关
为8位选手提供8个抢答的按钮,这样可以在松开按钮后及时复位,为下次做准备。这部分我利用的是试验仪上的8个逻辑开关,在接电路图的时候,只用一个开关仿真。
(2).八D数据锁存器
采用八D数据锁存器74LS373,抢答前应使锁存允许LE=1,此时允许选手抢答,当有选手抢答有效时,要利用控制电路中的LE=0,使数据被锁存,其它选手就抢答无效了。
(3).优先编码器
采用优先编码器74LS148,因为采用了高速控制电路,因此一旦抢答,立即锁存。
我所设计的控制电路将充分利用74LS148的两个输出信号:选通输出Ys和扩展输出YEX。
以下是我设计的数据采集电路电路图如图4所示:
图4数据采集电路
4.音响电路
(1).单稳态触发器
设音响提示时间为2秒左右,可采用一脉宽为2秒的单稳态触发器实现。
实现单稳态触发器的方法有很多,可以用与非门或者非门电路实现微分型单稳、利用施密特触发器实现单稳、集成单稳等。现采用555定时器实现,注意其脉宽的计算公式为tw=1.1RC.若一个负脉冲触发信号到来,将有效触发单稳态电路产生一个脉宽为2秒的正脉冲。
(2).音频振荡器及喇叭电路
利用555定时器实现频率约1kHz的音频振荡器,因555定时器有较强的功率输出能力,可以直接推动喇叭输出。
当单稳态触发器进入暂稳态产生一个正脉冲时,控制555定时器开始工作,发出响声;当单稳态触发器自动返回稳态后,555定时器清零,不能发声。
以下是我设计的电路图如图5所示:
图5 音响电路
五 电路的装配与调试
1.由图中所示的定时抢答器的总体方框,按时信号的流向分单元装配,逐级级联。
2.我接好电路后,开始检验我的结果,发现当有选手抢答后,没有开始倒计时,经过老师的指正我们找到了原因,并立即改正,实现了要求的结果。
3.我将裁判的开关拨至0再拨回1时,发现是总能在任意时间重新抢答。(与设计要求相符)
4.我检查到,当计数器减到00时,产生了一个负脉冲信号,同时也允许开始新一轮的抢答。(与设计要求相符)
5.最后我检查的是我所设计的音响电路,当我拨动一个选手开关后,音响电路所对应的绿灯开始发光,并开始倒计时。当计数器减到00时,绿灯再次发光提示。(与设计要求相符)
现给出我所设计的总电路图如图6所示:
图6 总电路图
我的仿真结果图如图7所示:
图7 分别是倒计时、数据采集、音响电路的仿真结果
六 心得体会
在设计之前,参考了许多相关的资料。在设计中又参考了以前讲过的四路抢答器的原理图,有了基本的思路。
但着手设计时,又出现了许多未预料到的问题,例如元件的选择:在选择编码器时,是采用普通编码器还是优先编码器。普通编码器中,任何时刻只允许输入一个编码信号,否则输出将发生混乱。所以选择了优先编码器。但是74LS系列中众多不同管脚的类型,选择哪个作编码器。经过查找,选择了74LS192,因为想用数字的形式显示抢答者的编号,所以选择了数码显示管,但数码显示管不能直接,数码显示管需要由TTL或CMOS集成电路驱动,所以在TTL还是CMOS集成电路上又进行了比较和选择。最后选择了数显译码器,用它将输出的二进制代码译成相对应的高、低信号,用其作为数码显示管的驱动信号,数码显示管显示出相对应的选手编号。在音响电路中,根据设计需要选择了555定时器。
在一些设计原理上也遇到了许多新问题。发现当电源接通后,无论有无人按按钮都会使音乐集成电路通电发出声响,经同学以及老师的指证,发现导通的原因,并及时的改正。
通过这次八路抢答器的设计,我发现了以往学习中的许多不足,也让我掌握了以往许多掌握的不太牢的知识,感觉学到了很多东西。三周的课程设计,留给我印象最深的是要设计一个成功的电路,必须要有耐性和坚持下去的毅力。在整个电路的安装调试的过程中,花费时间最多的是各个元件电路的连接,电路的细节设计以及连完线路后的检查工作上,其中在连接电路是出现问题比较多,在555元件和74LS192元件的连接的调试的时候出现了问题在老师的指导和讲解下我门有了更深刻的认识,同时对元件的原理的功能了解的更多更深刻。在这次过程中,我深刻的体会到在设计过程中,需要反复实践,其过程很可能相当的烦琐,有时花很长时间检查电路故障,分析原因,那时心中就有点灰心,有时还特别想放弃,此时更需要静下心来,更仔细的查找原因。
总之,这次实验过程中我受益匪浅,在摸索我和我的搭档实现了课题所要求的结果。培养了我的设计思维,增加了动手操作的能力。更让我体会到实现电路功能喜悦。
数字电路八路抢答器怎么做?
《基于74系列八路抢答器的设计》
《数字电子电路课程设计-74系列数字抢答器》
《8路智力抢答器》