基于单片机AT89C51电子抢答器设计论文.docVIP

  • 8
  • 0
  • 约1.6万字
  • 约 19页
  • 2018-02-28 发布于贵州
  • 举报

基于单片机AT89C51电子抢答器设计论文.doc

基于单片机AT89C51电子抢答器设计论文

单片机AT89C51电子抢答器设计 1.系统说明: 给主持人设置一个开关,用来控制系统的清零(编号显示数码管灭灯)和抢答器的开始。抢答器具有数据锁存和显示的功能。抢答开始后,若有选手按动抢答器按钮,编号立即锁存,并在LED数码上显示选手的编号,同时扬声器给出音响提示。此外,要封锁输入电路,禁止其他选手抢答 图3-1 总体设计 如图P3.0为开始抢答,P3.2为停止,P1.0-P1.7为八路抢答输入,数码管段选P0口,位选P2口低3位,蜂鸣器(用绿灯代替)输出为P3.6口。P3.2为时间加1调整,P3.3为时间减1调整。P3.0为开始抢答,P3.1为停止,P1.0-P1.7为八路抢答输入,数码管段选P0口,位选P2的低三位口。 (1)外部振荡电路: 一般选用石英晶体振荡器。此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路中两个电容 C1,C2的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。C1,C2的典型值为30PF。 (2)复位电路的设计: 单片机的第9脚RST为硬件复位端,只要将该端持续4个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态,其电路图所示: 在方案中使用到了硬件复位和软件复位两种功能,由上面的硬件复位可使寄存器及存储器的值都恢复到初始值,而前面的功能提到了倒计时间需要有记忆功能,该功能实现的前提条件就是不能对单片机进行硬件复位,所以设定了软复位功能。软复位实际上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到程序执行的起始地址。 (3)按钮输入电路的设计: 抢答器的输入按钮使用常开开关,这些常开开关组成了抢答按键,硬件电路简单,在程序设计上也不复杂,只要在程序中消除在按键过程中产生的“毛刺”现象就可以了。这里采用最常用的方法即延时法,其的原理为:因为“毛刺”脉冲一般持续时间短,约为几ms,而按键的时间一般远远大于这个时间,所以当单片机检测到有按键动静后再延时一段时间(这里取10ms)后再判断此电平是否保持原状态,如果是则为有效按键,否则无效。 (4)发声: 这里能利用程序来控制单机口线高电平或低电平,在该口线上产生一定频率的矩形波,接上就能发出一定频率的声音,再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调,使发出不同的声音。 程序流程图 整个程序主要由定时器T0、定时器T1、外部中断0和主程序构成。定时器T0用于使扬声器发声,当需要响铃时,把响铃标志位置一,每次中断都对P3.7取反,扬声器发声,改变定时器初值,可改变扬声器频率。定时器程流程图如下: 定时器T1用于倒计时,每次中断为50ms,当计数标志为20时即为一秒,显示数字减1。其流程图如下: 外部中断0用于调整倒计时时间,流程图如下: 主程序协调三个中断一起工作,实现抢答功能,其流程图如下: (2)程序代码: 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;

文档评论(0)

1亿VIP精品文档

相关文档