八路智能抢答器设计.docx
- 文档编号:6849957
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:38
- 大小:376.64KB
八路智能抢答器设计.docx
《八路智能抢答器设计.docx》由会员分享,可在线阅读,更多相关《八路智能抢答器设计.docx(38页珍藏版)》请在冰点文库上搜索。
八路智能抢答器设计
摘要
本系统采用软硬件结合的方法而设计,其中硬件设计是借用单片机AT89C51为中心控制模块,采用模块化设计思想,根据系统功能划分成六个模块,分别为:
核心控制模块、电源模块、时钟与复位模块、按键输入模块、显示模块、报警模块。
软件设计是采用汇编语言编程。
本设计限定抢答人数为八人,抢答过程如下:
当主持人按“抢答开始按键”后,数码显示屏显示抢答时间倒计时,并在最后五秒启动报警电路提示,在抢答时间过程中八名选手进行抢答,按键”后,新一轮抢答开始。
显示模块在初始显示、超过规定抢答时间仍无人抢答和答题超过规定时间后显示“FFF”。
抢答时间和回答问题的时间可以设定,设定范围为1-99s,原始状态下抢答时间为10s,回答问题时间为30s。
后台主持人可以通过“抢答时间调整键”、“回答时间调整键”和时间“加1”、“减1”按键修改抢答时间和选手回答问题的时间时间,改完后“停止按键”确定,新时间开始有效。
在抢答器设计过程抢答成功后,显示模块显示选手号和回答问题时间。
回答完问题后,主持人可按“停止按键”结束,新一轮抢答开始。
如果在主持人没有按下“抢答开始按键”而选手就抢答,则视为犯规,显示模块显示“FF”并显示选手号码,而且报警电路进行提示。
主持人按“停止中,首先完成总体方案的论证制定,然后分析系统的工作原理,在此基础上设计出各部分单元电路原理图,进一步完成对系统电路的设计。
在对系统工作原理充分研究的基础上,选择合适的元件型号和参数,再用protel绘图软件画出电路原理图,最后根据电路接口编写软件程序。
关键字:
抢答器;单片机;AT89C51;模块;按键
第一章抢答器的概述
1.1系统设计的功能
1.1.1基本功能
(1)同时供8名选手比赛,分别用8个按钮S0~S7表示。
(2)设置一个系统清除和抢答控制开关S,该开关由主持人控制。
(3)抢答器具有锁存与显示功能。
即选手按动按钮,锁存相应的编号,扬声器发出声响提示,并在七段数码管上显示选手号码。
选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。
1.1.2扩展功能
(1)抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。
当主持人启动"开始"键后,定时器进行减计时。
(2)参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。
(3)如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。
(4)抢答限定时间和回答问题的时间可是在1~99s设定。
1.2抢答器的需求分析
1、在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效。
2、可以显示是哪位选手有效抢答和无效抢答,正确按键后有音乐提示。
3、抢答时间和回答问题时间倒记时显示,时间完后系统自动复位。
4、按键锁定,在有效状态下,按键无效非法。
第二章单片机的功能简介
2.189系列单片机的概况
单片微型计算机简称单片机(MCU),是典型的嵌入式微控制器,单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统。
它最早是被用在工业控制领域,由于单片机在工业控制领域的广泛应用,单片机由芯片内仅有CPU的专用处理器发展而来。
最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
2.2AT89C52单片机的内部结构
1、总线:
总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它线组成的传输线束,按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。
总线是一种内部结构,它是cpu、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。
在计算机系统中,各个部件之间传送信息的公共通路叫总线,微型计算机是以总线结构来连接各个功能部件的。
2、封装形式:
AT89C52有40引脚封装形式如图2-2-1芯片引脚排列。
图2-1
3、I/O口:
同一类型的数据输入(I:
in)输出(O:
out)引脚的一个集合总成。
4、CPU:
中央处理器(英文Central Processing Unit,CPU)是一台计算机的运算核心和控制核心。
CPU、内部存储器和输入/输出设备是电子计算机三大核心部件。
其功能主要是解释计算机指令以及处理计算机软件中的数据。
CPU由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成。
5、晶振:
是石英振荡器的简称,英文名为Crystal,它是时钟电路中最重要的部件,它的主要作用是向显卡、网卡、主板等配件的各部分提供基准频率,它就像个标尺,工作频率不稳定会造成相关设备工作频率不稳定,自然容易出现问题。
晶振还有个作用是在电路产生震荡电流,发出时钟信号.
6、复位电路:
简单地说,单片机的复位就和计算机的重起是一样的概念、任何单片机在工作之前都要有个复位的过程,复位对单片机来说,是程序还没有开始执行,是在做准备工作。
一般的复位只需要5ms的时间。
复位电路的实现可以用很多种方法.但是从功能上一般分为两种:
一种是电源源位,即外部的复位电路在系统通上电源之后直接使单片机工作,单片机的起停通过电源控制;另一种方法是在复位电路中设计按键开关.通过按键开关触发复位电平,控制单片机的复位。
7、单片机P3第二功能各引脚功能定义, P3.0RXD(串行口输入)
P3.1TXD(串行口输出)
P3.2INT0(外部中断0输入)
P3.3 INT1(外部中断1输入)
P3.4 T0(定时\计数器0的外部输入)
P3.5 T1(定时\计数器1的外部输入)
P3.6 WR(片外数据存储器写选通)
P3.7 RD(片外数据存储器读选通)
8、锁存器(Latch)是一种对脉冲电平敏感的存储单元电路,它们可以在特定输入脉冲电平作用下改变状态。
锁存,就是把信号暂存以维持某种电平状态。
锁存器的最主要作用是缓存,其次完成高速的控制其与慢速的外设的不同步问题,再其次是解决驱动的问题,最后是解决一个 I/O口既能输出也能输入的问题。
9、脉冲定义:
一个物理量在短持续时间内突变后迅速回到其初始状态的过程。
其内部结构如图2-2所示。
图2-2单片机的内部结构图
第三章硬件电路的设计
3.1设计原理
本系统采用AT89C52单片机作为核心,控制系统的四个模块分别为:
单片机最小系统、显示模块、显示驱动模块、抢答开关模块。
抢答器原理框图如图3-1所示。
抢答器原理图3-1
总体设计之后,然后进行单元电路设计。
单元电路设计分为电源电路设计、时钟和复位电路、键盘电路、显示报警电路等。
总电路原理如3-2图
P3.0为开始抢答,P3.1为停止抢答,P3.2为抢答时间调整,P3.3为回答时间调整,P3.4为加分,P3.5为减分,P1.0-P1.7为八抢答输入,数码管段选P0口,位选P2口低3位,蜂鸣器输出为P3.6口。
3-2总电路原理图
3.2时钟频率电路模块
晶振的选择:
6MHz的晶振,其机器周期是2us。
12MHz的晶振,其机器周期是1us,也就是说在执行同一条指令时用6MHz的晶振所用的时间是12MHz晶振的两倍。
为了提高整个系统的性能选择了12MHz的晶振。
振荡方式的选择:
内部振荡方式,MCS-51内部都有一个反相放大器,XTAL1、XTAL2分别为反相放大器输入和输出端,外接定时反馈元件以后就组成振荡器,产生时钟送至单片机内部的各个部件。
这样就构成了内部振荡方式外部振荡方式是把已有的时钟信号引入单片机内。
这种方式适合用来使单片机的时钟与外部信号一致。
在这个设计中没有也无需与外部时钟信号一致,所以选择了内部振荡方式,由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。
晶振我选择了12MHz,相对于6MHz的晶振,整个系统的运行速度更快了。
电容器C1、C2起稳定振荡频率、快速起振的作用,电容值我选择了30pF。
内部振荡方式所得的时钟信号稳定性高。
图3-3时钟电路的设计
一般选用石英晶体振荡器。
此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。
电路中两个电容C1,C2的作用有两个:
一是帮助振荡器起振;二是对振荡器的频率进行微调。
C1,C2的典型值为30PF。
单片机在工作时,由内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。
其大小是时钟信号频率的倒数,常用fosc表示。
如时钟频率为12MHz,即fosc=12MHz,则时钟周期为1/12µs。
3.3复位电路模块
3.3.1复位电路的可靠性设计
计算机在启动运行是都需要复位,使中央处理器CPU和系统中的其它部件都处于一个确定的初始状态,并从这个状态开始工作。
MCS-51的复位输入引脚RST为MCS-51提供了初始化的手段,可以使程序从指定处开始执行,在MCS-51的时钟电路工作后,只要RST引脚上出现超过两个机器周期以上的高电平时,即可产生复位的操作。
只要RST保持高电平,则MCS-51循环复位。
只有当RST由高电平变低电平以后,MCS-51才从0000H地址开始执行程序。
本系统采用按键复位方式的复位电路。
MCS-51单片机有一个复位引脚RST,它是施密特触发输入,当振荡器后,该引脚上出现2个机器周期(即24个时钟周期)以上的高电平。
使器件复位,只要RST保持高电平,MCS-51保持复位状态。
此时ALE、/PSEN、P0、P1、P2、P3口都输出高电平。
RST变为低电平后,退出复位,CPU从初始状态开始工作。
复位以后内部寄存器的初始状态为(SP=07,P0、P1、P2、P3为0FFH外,其它寄存器都为0。
在RST复位端接一个电容至VccHE一个电阻至Vss,就能实现上电自动复位,对于CMOS单片机只要接一个电容至Vcc即可。
如图,在加电瞬间,电容通过电阻充电,就在RST端出现一定时间的高电平,只要高电平时间足够长,就可以使MCS-51有效地复位。
RST端在加电时应保持的高电平时间包括Vcc的上升时间和振荡器起振时间,Vcc上升时间若为10ms,振荡器起振时间和频率有关。
10MHz时间约为1ms,1MHz时约为10ms,所以一般为了可靠地复位,RST在上电时应保持20ms以上的高电平。
图3-4中,RC时间常数越大,上电时RST端保持高电平的时间越长。
当振荡频率为12MHZ时,典型值为C=10uF,R=8.2kΩ.
图3-4上电复位电路
3.3.2人工复位
除上电自动复位以外,常常需要人工复位,将一个按钮开关并联于上电自动复位电路,按一下开关就RST端出现一段时间的高电平,即使器件复位。
如图所示
图3-5上电和开关复位
而我们在这次的毕业设计中运用的人工复位电路.其中电平复位是通过RST端经电阻和电源Vcc接通而实现的,按键手动电平复位电路如图。
当时钟频率选用12MHz时,C选取10uF,R选择1000欧。
3.4显示电路模块
在设计显示电路这一块时,我们采用7SEG-MPX4-CA阳极数码管、74HC244、排阻进行设计,设计电路图3-5
3-6图显示设计
3.4.174HC244介绍
74HC244芯片的功能
如果输入的数据可以保持比较长的时间(比如键盘),简单输入接口扩展通常使用的典型芯片为74HC244,由该芯片可构成三态数据缓冲器。
由于AT的51系列单片机一般用并口进行编程,理论上可以直接用单片机的几根I/O口接并口线,但如果电路板没做好,可能会连带把计算机并口烧坏,所以要加个74HC244芯片隔离一下。
3.5发声模块
我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单片机某个口线的“高”电平或低电平,则在该口线上就能产生一定频率的矩形波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调,使喇叭发出不同的声音,如图3-6。
3-7发声
第四章软件设计
4.1实现抢答主程序分析
如程序图4-1,抢答器总共需要14个按钮,8个抢答按钮,1个开始按钮,1个复位按钮,2个时间调整按钮,2个时间加减按钮,当我们按下了P3.2或P3.3则进入时间调整程序,如果P3.0没有按下而有人按下抢答按钮,则转入到非法控制子程序并调用报警程序,P3.0按下后进入倒计时程序,有人按下按钮自锁并输入到显示程序中显示抢答选手号,并开始倒计时答题。
图4-1
主程序如下
OKEQU20H
RINGEQU22H
ORG0000H
AJMPMAIN
ORG0003H
AJMPINT0SUB
ORG000BH
AJMPT0INT
ORG0013H
AJMPINT1SUB
ORG001BH
AJMPT1INT
ORG0040H
MAIN:
MOVR1,#30;初设抢答时间为30s
MOVR2,#60;初设答题时间为60s
MOVTMOD,#11H;设置未定时器/模式1
MOVTH0,#0F0H
MOVTL0,#0FFH;越高发声频率越高,越尖
MOVTH1,#3CH
MOVTL1,#0B0H;50ms为一次溢出中断
SETBEA
SETBET0
SETBET1
SETBEX0
SETBEX1;允许四个中断,T0/T1/INT0/INT1
CLROK
CLRRING
SETBTR1
SETBTR0;启动定时器1和2
START:
MOVR5,#0BH
MOVR4,#0BH
MOVR3,#0BH
ACALLDISPLAY;未开始抢答时候显示FFF
JNBP3.2,INT0SUB
JNBP3.3,TZ3
JBP3.0,NEXT;
ACALLDELAY
JBP3.0,NEXT;去抖动,如果"开始键"按下就向下执行,否者跳到非法抢答查询
ACALLBARK;按键发声
MOVA,R1
MOVR6,A;送R1->R6,因为R1中保存了抢答时间
SETBOK;抢答标志位,用于COUNT只程序中判断是否查询抢答
MOVR7,#01H
MOVR3,#0AH;抢答只显示计时,灭号数
AJMPCOUNT;进入倒计时程序,"查询有效抢答的程序"在COUNT里面
4.2非正常抢答查询分析
在主持人未按下“抢答开始键”时,为防止参赛选手发生抢答,专门设计了非法抢答查询子程序。
当有选手发生抢答时,系统会将选手的号码保持下来,并送到LED显示装置进显示,同时调用非法抢答子程序。
非法抢答查询子程序流程图如图4-2所示。
图4-2
非法抢答查询子程序如下:
NEXT:
JNBP1.0,FALSE1
JNBP1.1,FALSE2
JNBP1.2,FALSE3
JNBP1.3,FALSE4
JNBP1.4,FALSE5
JNBP1.5,FALSE6
JNBP1.6,TZ1
JNBP1.7,TZ2
AJMPSTART
TZ1:
JMPFALSE7
TZ2:
JMPFALSE8
;非法抢答处理程序
FALSE1:
ACALLBARK;按键发声
MOVR3,#01H
AJMPERROR
FALSE2:
ACALLBARK
MOVR3,#02H
AJMPERROR
FALSE3:
ACALLBARK
MOVR3,#03H
AJMPERROR
FALSE4:
ACALLBARK
MOVR3,#04H
AJMPERROR
FALSE5:
ACALLBARK
MOVR3,#05H
AJMPERROR
FALSE6:
ACALLBARK
MOVR3,#06H
AJMPERROR
FALSE7:
ACALLBARK
MOVR3,#07H
AJMPERROR
FALSE8:
ACALLBARK
MOVR3,#08H
AJMPERROR
JBOK,ACCOUT;如果是抢答倒计时,如是则查询抢答,否者跳过查询继续倒数(这里起到锁抢答作用)
AJMPRECOUNT
;=====犯规抢答程序=====
ERROR:
MOVR0,#00H
MOVTH1,#3CH
MOVTL1,#0B0H;定数重置
MOV34H,R3;犯规号数暂存与(34H)
4.3正确抢答程序分析
要想实现正确抢答程序就需要判断哪个键按下,当按键按下后,我们对数据存储区进行清零,封锁抢答其他再按下不在起作用,然后将抢答时间送到R6中,将选手号送R3。
ACCOUT:
JNBP1.0,TRUE1
JNBP1.1,TRUE2
JNBP1.2,TRUE3
JNBP1.3,TRUE4
JNBP1.4,TRUE5
JNBP1.5,TRUE6
JNBP1.6,TRUE7
JNBP1.7,TRUE8
AJMPRECOUNT
QUIT:
CLROK;如果按下了"停止键"执行的程序
CLRRING
AJMPSTART
;正常抢答处理程序
TRUE1:
ACALLBARK;按键发声
MOVA,R2
MOVR6,A;抢答时间R2送R6
MOVR3,#01H
CLROK;因为答题的计时不再查询抢答,所以就锁了抢答
AJMPCOUNT
TRUE2:
ACALLBARK;
MOVA,R2
MOVR6,A
MOVR3,#02H
CLROK
AJMPCOUNT
TRUE3:
ACALLBARK;
MOVA,R2
MOVR6,A
MOVR3,#03H
CLROK
AJMPCOUNT
TRUE4:
ACALLBARK;
MOVA,R2
MOVR6,A
MOVR3,#04H
CLROK
AJMPCOUNT
TRUE5:
ACALLBARK;
MOVA,R2
MOVR6,A
MOVR3,#05H
CLROK
AJMPCOUNT
TRUE6:
ACALLBARK;
MOVA,R2
MOVR6,A
MOVR3,#06H
CLROK
AJMPCOUNT
TRUE7:
ACALLBARK;
MOVA,R2
MOVR6,A
MOVR3,#07H
CLROK
AJMPCOUNT
TRUE8:
ACALLBARK;
MOVA,R2
MOVR6,A
MOVR3,#08H
CLROK
AJMPCOUNT
4.4时间调整程序分析
按下“抢答时间调整键”。
此时,LED显示装置会显示当前抢答时间的设定值,如果想加1S,按下“加1”键;如果想减1S,按下“减一”键。
LED显示装置会自动显示修改后的抢答时间。
抢答时间的设定值范围是0~99S,0S再减1S会变成99S,同理99S再加1S会变成0S。
回答时间的调整与此类似。
抢答时间调整子程序流程图如图4-3所示
程序如下:
INT0SUB:
MOVA,R1
MOVB,#0AH
DIVAB
MOVR5,A
MOVR4,B
MOVR3,#0AH
ACALLDISPLAY;先在两个时间LED上显示R1
JNBP3.4,INC0;P3.4为+1s键,如按下跳到INCO
JNBP3.5,DEC0;P3.5为-1s键,如按下跳到DECO
JNBP3.1,BACK0;P3.1为确定键,如按下跳到BACKO
AJMPINT0SUB
INC0:
MOVA,R1
CJNEA,#63H,ADD0;如果不是99,R2加1,如果加到99,R1就置0,重新加起。
MOVR1,#00H
ACALLDELAY1
AJMPINT0SUB
ADD0:
INCR1
ACALLDELAY1
AJMPINT0SUB
DEC0:
MOVA,R1
JZSETR1;如果R1为0,R1就置99,
DECR1
ACALLDELAY1
AJMPINT0SUB
SETR1:
MOVR1,#63H
ACALLDELAY1
AJMPINT0SUB
BACK0:
RETI
INT1SUB:
MOVA,R2
MOVB,#0AH
DIVAB
MOVR5,A
MOVR4,B
MOVR3,#0AH
ACALLDISPLAY
JNBP3.4,INC1
JNBP3.5,DEC1
JNBP3.1,BACK1
AJMPINT1SUB
INC1:
MOVA,R2
CJNEA,#63H,ADD1
MOVR2,#00H
ACALLDELAY1
AJMPINT1SUB
ADD1:
INCR2
ACALLDELAY1
AJMPINT1SUB
DEC1:
MOVA,R2
JZSETR2
DECR2
ACALLDELAY1
AJMPINT1SUB
图4-4
4.5显示程序处理
显示程序处理分析:
DISPLAY:
MOVDPTR,#DAT1
MOVA,R3
MOVCA,@A+DPTR
MOVP2,#0FBH
MOVP0,A
ACALLDELAY2
MOVDPTR,#DAT2
MOVA,R5
MOVCA,@A+DPTR
MOVP2,#0FEH
MOVP0,A
ACALLDELAY2
MOVA,R4
MOVCA,@A+DPTR
MOVP2,#0FDH
MOVP0,A
ACALLDELAY2
RET
DAT1:
DB0FFH,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H,0FFH,8EH
DAT2:
DB0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H,0FFH,8EH
4.6报警程序
发声程序:
BARK:
SETBRING
ACALLDELAY1
ACALLDELAY1
CLRRING;按键发声RET;
TO溢出中断(响铃程序)
T0INT:
MOVTH0,#0ECH
MOVTL0,#0FFHJNBRING,OUT;
CPLP3.6;RING标志位为1时候P3.6口不短取反使喇叭发出一定频率的声音
OUT:
RETI;=====T1溢出中断(计时程序)=====
T1INT:
MOVTH1,#3CH
MOVTL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 八路 智能 抢答 设计