当前位置:文档之家› 基于80C51单片机的八路抢答器设计分析

基于80C51单片机的八路抢答器设计分析

专业论文题目:基于80C51单片机的八路抢答器设计摘要:八路智力抢答器是一个可供八个参赛组进行智力竞赛的电路装置,该装置主要是由单片机最小系统、控制电路(八个选手抢答按钮;三个主持人控制按钮;四个修改按钮)、数码显示电路与蜂鸣器电路组成的。

单片机(MCU)是目前在电气控制技术中广泛应用的重要元件。

它具有体积小,稳定性高,应用范围广,控制能力强,升级改造容易等诸多优点。

本论文介绍采用ATMEL公司AT89S52单片机设计八路智能抢答器。

软件采用汇编语言编程,汇编语言属于计算机领域的低级语言,具有简明易懂,执行效率高等的优点。

智能八路抢答器具有抢答时间与答题时间调整,抢答错误报警提示等功能,可以广泛应用于各类知识竞赛。

关键词:抢答器;单片机;硬件系统;软件编程基于80C51单片机的八路抢答器设计一、系统概述与原理方框图在文中,我对八路抢答器的总体设计及其主要的功能特点进行简单的分析,并给出它的特点,实现的功能以及系统的简单操作,以对单片机及其控制系统的了解。

(一)单片机技术发展的概述与系统问题的提出目前,单片机正朝着高性能和多品种方向发展,单片机的发展正朝着CMOS化,低功耗,小体积,大容量,高性能,低价格和外围电路的内装化等几个方面发展。

近几年,由于某种原因CHMOS技术的进步,大大地促进了单片机的CMOS化,此种芯片除了低功耗外,还具有功耗的可控性,使单片机可以工作在功耗精细管理状态,特别是IIC,API等串行总线的引入,可以使单片机的引脚设计得更少,单片机系统结构更加简化及规范化。

我们设计出的8路抢答器是一种基于MCS-51单片机的硬件和软件设计及实现方法,这种电路设计具有按键有效提示,输入错误提示,控制报警电路,在线修改功能等多种功能,保密性强,灵活性高,特别适用于家庭!办公室!学生宿舍及宾馆等场所。

它具有全集成化,智能化,高精度,高性能,高可靠性和低价格等优点,是一个值得推广的一种方法。

接下来我们就对方案与设计原理方框图进行比较分析。

(二)设计思路与系统组成及主要特点为了使设计更具有针对性,使用性更强,我对其进行精心的设计,在设计过程中,我们想到了很多的设计方案。

1.设计思路设计一个八路抢答器,可同时供8名选手或者8个代表队参加比赛,他们的编号分别为1——8,各用一个抢答器按钮,按钮的编号与选手的编号相对应,分别设为S1…S8。

节目主持人设置一组控制开关,用来控制系统的清零和抢答器的开始,修改抢答时间与答题时间,如果想调节抢答时间或答题时间,按"抢答时间调节"键或"答题时间调节"键进入调节状态。

并且抢答器具有数据锁存和显示的功能,抢答开始,若有选手按动抢答按钮,编号立即锁存,并在LED数码管上显示出选手的编号,同时蜂鸣器给出音响提示,此外,要封锁输入电路,禁止其他选手抢答,优先抢答选手的编号一直保持到主持人将系统清零为止。

2.系统的主要特点有:1)该产品的互换性好,响应速度快,抗干扰能力强,外围电路简单易懂,因此相对来说体积小。

2)该系统能用软件的方式设计硬件,所以用软件方式设计的系统向硬件系统的转换是由有关开发软件自动完成的,易操作。

3)具有具体数字显示的功能。

4)可以从以前的组合设计转向真正的自由设计,所以设计的移植性好,效率高。

可适合大规模的现场制作。

5)利用按钮进行输入,输入简单。

6)具有智能报警的功能,当选定之后就马上锁定,并且发出音乐声音。

大大提高了抢答器的可靠性。

7)因为整个系统可集成在一个芯片上,因此体积小,功耗低,可靠边性更高。

3.系统组成硬件电路框架如图1.2所示:硬件部分由单片机控制模块、按键模块、蜂鸣器模块和数码显示模块组成。

图1.2二、系统硬件电路的设计(元器件选择)硬件电路应能完成以下功能:当主持人按下开始键时,参与选手对主持人提出的问题要在最短的时间内作出判断,并按下抢答按键回答。

当第一个人按下按键后,则在显示器上显示此参赛选手号码并进行声音提示,同时电路将其他抢答按键封锁,使其不起作用。

若有人在主持人按下开始键之前按键,应有违规提示。

当选手开始答题时,电路具有倒计时功能,倒计时时间可以设置并显示,倒计时时间到时提醒主持人时间到。

如果在规定时间内没有人抢答则蜂鸣器报警提示。

回答完或超时后,由主持人将所有按键恢复,重新开始下一轮答题。

(一)单片机控制模块该模块采用AT89C52单片机作为核心控制元件,它对整个抢答器起到控制作用。

当主持人按下开始按键后,选手就可以按下自己的抢答键进行抢答,当主持人没有按下开始键时,选手按下自己的抢答键是无效的。

AT89C52(二)按键输入模块(加口电路的介绍)该模块主要由两部分组成,一部分是主持人按键起到控制的作用,一部分是选手按键。

其中,主持人按键起到控制的作用,当主持人没有按下开始键时,选手不能抢答。

另外,当选手答题完毕后,主持人要按下复位键,准备进行下一轮的抢答,当在规定的时间内,没有选手抢答时,主持人也要按下复位键,使其进入下一轮的抢答。

按键开关是实现人机对话的最简单地输入设备,通过它能随时发出各种控制指令和数据到单片机。

按键输入模块的基本工作原理:当有按键被按下时按键所接的单片机端口引脚接地,其引脚电平为0,未按下时引脚电平为1。

所以,判断按键开关是否有信号输入,是通过测量按键所接的引脚电平高低,当检测到按键所接引脚的电平为0时,说明该按键被按下,然后再检测到电平为1时,说明按键按下后又被放开,完成一次信号输入的过程。

单片机复位电路包括片内、片外两部分。

外部复位电路就是为内部复位电路提供两个机器周期以上的高电平而设计的。

通常采用上电自动复位和按键手动复位两种方式。

当运行出错或进入死循环时,可按复位键重新运行。

复位操作可使单片机进入初始化状态,其中包括使程序计数器PC=0000H,这表明程序从0000H地址单元开始执行。

按键电平复位电路单片机有硬件复位端,只要输入持续4个机器周期的高电平即可实现复位。

硬件复位后的各状态可知寄存器及存储器的值都恢复到了初始值,应为本设计功能中有倒计时时间的记忆功能,所以不能对单片机进行硬件复位,只能用软复位。

软复位实际上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到程序的初始位置。

(三)外部晶振模块外部振荡电路单片机必须在AT89C52的驱动下才能工作.在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元。

单片机内部有一个高增益的反相放大器,用于构成振荡器,反相放大器的输入端为XTAL1,输出端为XTAL2。

内部振荡方式:是在XTAL1和XTAL2引脚两端跨接石英晶体振荡器和两个电容构成稳定的自激振荡电路。

外部振荡方式:外部振荡方式就是把外部已有的时钟信号引入单片机内。

电容C1和C2通常取30pF,对振荡频率有微调作用。

晶振频率范围是1.2MHz~12MHz。

(四)蜂鸣器模块该模块主要是起到提醒和报警的作用,当主持人按下开始键时,蜂鸣器响,当有选手犯规时,蜂鸣器也要发出声音,还有就是当倒计时开始时,蜂鸣器就要发出报警的声音。

单片机I/O引脚以软件延时方法产出一定频率的方波输出,控制接在该引脚的三极管导通和截止,从而会使接在三极管上的蜂鸣器发出声响。

其发生模块由三部分组成:(1)产生方波输出、(2)确定发生频率、(3)确定维持发生的时间。

蜂鸣器发声时工作在三极管的饱和状态,不发声时工作在三极管的截止状态。

三极管在电路中起到开关与放大作用,即:发射结正偏,集电结反偏时三极管起放大作用;发射结正偏,集电结正偏时三极管起饱和(开关闭合)作用;发射结反偏集电结反偏时三极管起截止(开关断开)作用。

电路中发射极与集电极上的电阻是限流电阻,起到保护三极管作用。

在这里使用的是无缘蜂鸣器,工作时需要接入音频方波,改变方波频率可以得到不同音调的声音。

(五)数字显示模块(加四位一体数码管的原理)图2.5.1 图2.5.2图2.5.3该模块主要显示两部分内容。

一部分是参加选手的编号,另一部分是显示倒计时。

图2.5.1中R2—R8七个330欧姆电阻起到限流作用,可用来控制显示管的亮度,亮度随阻值的增大而增大。

图2.5.2中数码管上的8个引脚依照A、B、C、D、E、F、G、DP与单片机P0.0、P0.1、P0.2 、P0.3、P0.4、P0.5、P0.6、P0.7相连接的阳极接口。

BIT1、BIT2、BIT3、BIT4是数码管的片选,对应选择第几个数码管可以亮。

对于图2.5.3中的七段数码管,各段二极管的阴极连接在一起作为公共端,这样可以使驱动电路简单,将阴极连接在一起的称为共阴极数码管,用高电平驱动数码管各段的阳极,其COM端接地。

(六)抢答器电路接线图三、系统的软件程序设计(一)抢答器功能介绍1.如果想调节抢答时间或答题时间,按"抢答时间调节"键或"答题时间调节"键进入调节状态,此时会显示现在设定的抢答时间或回答时间值,如想加一秒按一下"加1s"键,如果想减一秒按一下"-1s"键,时间LED上会显示改变后的时间,调整范围为0s~99s, 0s时再减1s会跳到99,99s时再加1s会变到0s。

2.主持人按"抢答开始"键,会有提示音,并立刻进入抢答倒计时(预设30s 抢答时间),如有选手抢答,会有提示音,并会显示其号数并立刻进入回答倒计时(预设60s抢答时间),不进行抢答查询,所以只有第一个按抢答的选手有效。

倒数时间到小于5s会每秒响一下提示音。

3.如倒计时期间,主持人想停止倒计时可以随时按"停止"按键,系统会自动进入准备状态,等待主持人按"抢答开始"进入下次抢答计时。

4.如果主持人未按"抢答开始"键,而有人按了抢答按键,犯规抢答,LED 上不断闪烁FF和犯规号数并响个不停,直到按下"停止" 键为止。

5.P3.0为开始抢答,P3.1为停止,p1.0-p1.7为八路抢答输入数码管段选P0口,位选P2口低3位,蜂鸣器输出为P3.6口。

P3.2抢答时间调整结,P3.3回答时间调整,P3.4为时间加1调整,P3.5为时间减1调整。

(二)程序流程(三)程序设计OK EQU 20H;抢答开始标志位RING EQU 22H;响铃标志位ORG 0000HAJMP MAINORG 0003HAJMP INT0SUBORG 000BHAJMP T0INTORG 0013HAJMP INT1SUBORG 001BHAJMP T1INTORG 0040HMAIN: MOV R1,#30;初设抢答时间为30sMOV R2,#60;初设答题时间为60sMOV TMOD,#11H;设置未定时器/模式1MOV TH0,#0F0HMOV TL0,#0FFH;越高发声频率越高,越尖MOV TH1,#3CHMOV TL1,#0B0H;50ms为一次溢出中断SETB EASETB ET0SETB ET1SETB EX0SETB EX1;允许四个中断,T0/T1/INT0/INT1 CLR OKCLR RINGSETB TR1SETB TR0;一开始就运行定时器,以开始显示FFF.如果想重新计数,重置TH1/TL1就可以了;=====查询程序=====START: MOV R5,#0BHMOV R4,#0BHMOV R3,#0BHACALL DISPLAY;未开始抢答时候显示FFFJB P3.0,NEXT;dddddddACALL DELAYJB 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,TZ1JNB P1.7,TZ2AJMP STARTTZ1: JMP FALSE7TZ2: JMP FALSE8;=====非法抢答处理程序=====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 ERRORFALSE6: ACALL BARKMOV R3,#06HAJMP ERRORFALSE7: ACALL BARKMOV R3,#07HAJMP ERRORFALSE8: ACALL BARKMOV R3,#08HAJMP ERROR;=====INT0(抢答时间R1调整程序)=====INT0SUB: MOV A,R1MOV B,#0AHDIV ABMOV R5,AMOV R4,BMOV R3,#0AHACALL DISPLAY;先在两个时间LED上显示R1JNB P3.4,INC0;P3.4为+1s键,如按下跳到INCOJNB P3.5,DEC0;P3.5为-1s键,如按下跳到DECOJNB P3.1,BACK0;P3.1为确定键,如按下跳到BACKOAJMP INT0SUBINC0:MOV A,R1CJNE A,#63H,ADD0;如果不是99,R2加1,如果加到99,R1就置0,重新加起。

相关主题