智能抢答器的设计终结版.docx
- 文档编号:25122174
- 上传时间:2023-06-05
- 格式:DOCX
- 页数:31
- 大小:192.43KB
智能抢答器的设计终结版.docx
《智能抢答器的设计终结版.docx》由会员分享,可在线阅读,更多相关《智能抢答器的设计终结版.docx(31页珍藏版)》请在冰豆网上搜索。
智能抢答器的设计终结版
2010届本科毕业设计
智能抢答器的设计
姓名:
系别:
专业:
学号:
指导教师:
2010年5月9日
目录
摘要与关键词II
0引言1
1抢答器系统概述1
1.1抢答器的工作原理1
1.2抢答器的主要功能1
1.3抢答器的工作流程2
2AT89C51单片机3
2.1单片机的比较分析3
2.2AT89C51单片机概述3
2.3AT89C51内部结构图4
2.4AT89C51单片机管脚说明5
3电路的硬件设计6
3.1硬件电路功能描述6
3.2时钟电路的设计7
3.3复位电路设计8
3.4显示电路的设计8
3.5键盘扫描电路的设计9
3.6报警电路设计9
4软件设计9
4.1主程序的设计10
4.2定时器T0、T1中断服务程序的设计10
4.3显示子程序的设计11
4.4抢答处理程序的设计11
5软件仿真14
5.1Keil软件编译14
5.2Proteus软件模拟仿真14
6系统测试15
7结语16
参考文献17
致谢17
智能抢答器的设计
摘要
智能抢答器的设计以八路抢答系统为基本理念。
考虑到设定限时抢答、回答的功能,系统使用AT89C51单片机及外围接口电路实现抢答功能,利用单片机定时器/计数器的定时和记数原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使LED数码管能够正确地显示时间。
系统使用按键开关控制键盘的输入信号,同时系统能够实现在抢答中只有开始后抢答才有效,如果在开始前抢答则视为无效抢答。
系统可以正确显示是哪位选手有效抢答或无效抢答。
抢答限时时间和答题限时时间可在1~99s之间设定,若倒计时正确显示,计时满后系统自动复位。
关键词
抢答器;模拟仿真;LED数码管;倒计时
Designofintelligentresponder
Abstract
Thedesignofintelligentscare-answerisbasedofthebasicideaofeight-wayscare-answeringsystem.Consideringthefunctionofsettingtime-limitedanswering,thesystemusessingle-chipmicrocomputerAT89C51andperipheralinterfacecircuittorealizethefunctionofscan-answeringandwhichgetthehardwareandsoftwaretogetherorganicallybyusingthecountertimingprincipleoftimeandcountingprincipleofcounterofthesingle-chipmicrocomputer,whichenablethesystemcounttimecorrectly,whilemakestheLEDdigitaltubeshowtimecorrectly.Thesystemusesthekeyswitchofthekeyboardtocontroltheinputsignalandwhichmakesthescare-answeringeffective.Onlyafterthebeginningofscare-answeringwhilebeforeitisineffective.Thesystemcandisplyaralidorinvalidscare-answeringproperly.Thelimitedtimeofscare-answeringandresponsingcanbesetbetween1to99seconds,ifitscountdowntimedisplaycirrectly,thesystemresetsafterfulltimeautomatically.
Keywords
responder;simulation;LEDdigitaltube;countdown
0引言
抢答器又称第一信号鉴别器,应用于各种知识竞赛、文娱活动等场合,能够客观地分辨出最先获得发言权的选手。
普通抢答器存在一下缺陷:
1)在一次抢答过程中,当出现超前违规抢答时,只能处理违规抢答信号,而对没有违规的有效抢答信号不能进行处理。
因而,使该抢答过程变的无效。
2)当有多个违规抢答时,普通抢答只能“抓住”其中一个,这是一个漏洞。
3)当同时出现多个有效抢答信号时,普通抢答器采用优先编码电路选择其中一个,也可说是利用抢答电路电子元器件的“竞争”选择其中一个。
由于抢答电路制作完毕后电子元件被固定,各路抢答信号的“竞争”能力也被固定,因而在本质上存在优先权,普通抢答器因而存在不公平。
本文介绍一种以AT89C51单片机为控制核心的智能抢答器,它对采样获得的各路抢答信号进行分析,识别超前违规信号,有效抢答信号,并对他们进行处理,使每一次抢答过程都有效[1]。
当某一位选手第一按下抢答按键后,系统将对其它各路抢答按键进行锁定,不在读取按键的输入状态,避免错误抢答的产生。
1抢答器系统概述
1.1抢答器的工作原理
该抢答器利用单片机的定时器T0、T1中断来完成抢答功能,其余状态循环调用显示子程序,用4个共阴极LED数码管来显示状态,用P0口的P0.0~P0.7作为数码管的七个段选与数码管的段选端相连,用P2口中的P2.0、P2.1、P2.2作为LED数码管中的3个位选。
P1口接8个选手按键S0~S7,当有键按下时,对应的输入端为低电平“0”,反之为高电平“1”。
P3.0接开始/求助按键,在抢答开始时,按动一下此按键,向单片机申请一次INT0中断,单片机在中断服务程序中对抢答信号进行采样和识别处理。
P3.1口接停止按键,停止按键常用在抢答时间、答题时间调整之后,按下此按键使系统进入抢答状态。
P3.2、P3.3为抢答时间、答题时间设定功能设置之用。
P3.4、P3.5为抢答时间或答题时间加一秒或减一秒之用。
P3.6口接报警器,做提示功能之用。
抢答系统采用模块化设计,由单片机控制模块、按键模块、报警模块和数码显示模块组成。
各个模块之间相互协调、有序工作。
系统方框图如图1所示。
图1系统方框图
每个参赛者分别有一个抢答按钮,主持人有开始和停止按键。
在后台,主持人可以修改抢答时间和选手回答问题的时间,初始状态下抢答时间为30s,回答问题时间为60s。
通过加键和减键修改上述时间,修改完毕后按停止键确定,新时间开始有效,主持人按开始键后,选手抢答为有效,数码管显示抢答时间倒计时和选手号,在最后五秒时报警器每间隔一秒报警提示一次。
如果主持人没有按开始键而选手就抢答则视为无效抢答,数码显示屏显示犯规者的代号,报警器持续报警。
主持人可按停止键,新一轮抢答开始[2]。
1.2抢答器的主要功能
抢答系统主要实现以下功能:
1)抢答功能:
通过八路抢答按键配合程序来实现抢答功能。
当主持人按下开始键开始抢答后,此时任一选手按下抢答按钮后,系统均闭锁其它各路,由程序对按键接口进行读取并显示最先按下抢答键的选手代号。
2)抢答限时:
主持人按开始键后,系统进行抢答状态,若25秒内无人抢答,则倒计时剩5秒时报警器报警,直到时间结束。
此时抢答器自动复位,主持人再次按下开始键后方可开始下一轮抢答。
3)答题限时:
当选手按下抢答键后开始答题,此时系统进入答题倒计时(时间可在1~99秒之间修改)状态,系统默认60秒答题时间。
4)违规报警:
如果主持人未按“开始”按键,而有人按了抢答按键,则视为犯规抢答,LED显示器上不断闪烁FF和犯规代,报警器持续报警,直到主持人按下“停止”键为止。
5)时间调整:
按下设定键后,可按顺序设置抢答限时时间,答题限时时间。
1.3抢答器的工作流程
抢答器的基本工作流程:
系统加电后,自动加载端口扫描程序,循环检测个端口的电平情况,当主持人按下开始键后,系统进入抢答时间倒计时状态(初始状态30s),由选手抢答按键,当单片机检测到P1口某一位为低电平时通过显示器将按键的选手号码显示出来,同时调用延时程序,此刻,抢答器进入答题倒计时状态(初始状态为60s),当时间只剩5s时,报警器会每秒报警一次。
在主持人按下“停止”键后,系统返回到初始状态,进行下一轮抢答[3]。
抢答器工作流程图如图2所示。
图2抢答器工作流程图
总而言之,本文利用AT89C51单片机及外围电路实现抢答器的设计,该抢答器增加了新的功能,提高了系统的可靠性,简化了电路结构,节约了成本,是一个实用的系统设计。
2AT89C51单片机
2.1单片机的比较分析
如表1所示,各种类型的单片机内除CPU外,还包括ROM、RAM、4*8I/O口和2个16位定时/计数器,它们都是功能很强的单片微型计算机。
但由于80C51片内为掩膜ROM,故内部程序不能改写,不用于实验开发。
80C31在市场上的价格很低,但片内没有ROM,必须在片外扩展一片EPROM,非常不便。
AT89C51片内具有可电擦除的FPEROM,可以快速、多次地编程,且价格不高,所以用得非常广泛,目前开发用的MCS-51产品绝大多数用AT89C51。
表1单片机主要性能的比较
型号
ROM
形式
片内ROM
片内
RAM
寻址
范围
定时
计数
I/O口
串行I/O口
外部
中断
80C31
ROM
4K
128
2*64K
2*16
4
UART
2
80C51
ROM
4K
128
2*64K
2*16
4
UART
2
87C51
EPROM
4K
128
2*64K
2*16
4
UART
2
89C51
FPEROM
4K
128
2*64K
2*16
4
UART
2
2.2AT89C51单片机概述
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能8位CMOS微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C51提供以下标准功能:
4K字节Flash闪存字节,128字节ROM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通讯口,片内振荡器及时钟电路[4]。
AT89C51引脚图如图3所示。
图3AT89C51引脚图
1)89系列单片机的特点:
89系列单片机以8031为内核,它与51系列单片机是兼容的。
89系列单片机具有以下特点:
a)内部含有Flash存储器,使用户在开发过程中十分容易修改程序缩短系统的开发周期。
可以重复多次编程,可根据需要对内部程序进行更新或升级。
b)89系列单片机的引脚和AT80C51引脚座兼容,用89系列单片机可以代替同档次的AT80C51单片机,不需要对外围电路进行改动。
c)89系列单片机采用静态时钟方式,可以节省电能,降低便携式设备的功耗。
2)89系列单片机的结构简介:
89系列单片机的内部结构与AT80C51相近,主要有以下部件:
振荡电路、总线控制部件、中断控制部件、片内Flash存储器、片内RAM、并行I/O接口、定时器和串行I/O接口。
89系列单片机的型号编码中字母的意义是:
AT表示该器件是ATMEL公司的产品,C表示该器件是CMOS产品,LV表示该器件是低电压产品,S表示该器件含可以下载的Flash存储器。
AT89C51是89系列单片机的标准型,它是与MSC-51系列单片机兼容的。
在内部含有4KB或8KB可重复编程的Flash存储器,可进行1000次擦写操作。
AT89C51全静态工作频率为0~24MHZ,有3级程序锁存器,内部含有128~256字节的RAM,有32条可编程I/O口线,2~3个16位定时/计数器,6~8个中断源,通用的串行接口,低电压空闲及电源下降方式。
AT89C51提供以下标准功能:
4K字节Flash闪存,128字节ROM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通讯口,片内振荡器及时钟电路。
另外,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM、定时/计数器、串行通讯口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。
2.3AT89C51内部结构图
AT89C51单片机内部由CPU、4KB的FPEROM(FlashProgrammableandErasableReadOnlyMemory),128字节的RAM,两个16位的定时/计数器T0和T1,4个8位的I/O端P0、P1、P2、P3等组成。
单片机内部最核心的部分是CPU,CPU主要功能是产生各种控制信号,控制存储器、输入/输出端口的数据传输、数据的算术运算、逻辑运算以及位操作处理等。
CPU按其功能可分为运算器和控制器两个部分。
控制器由程序计数器PC、指令储存器、指令译码器、实时控制与条件转移逻辑电路等组成。
它的功能是对来自存储器中的指令进行译码,通过实时控制电路,在规定的时刻发出各种操作所需的内部和外部控制信号,使各部分协调工作,完成指令所规定的操作。
运算器由算术逻辑单元ALU、累加器ACC、暂存器、程序状态字寄存器PSW和BCD码运算调整电路等组成。
为了提高数据处理和位操作功能,片内增加了一个通用寄存器B和一些专用寄存器,还增加了位处理逻辑电路的功能。
单片机内部结构如图4所示。
图4AT89C51单片机内部结构图
AT89C51是一种低功耗、高性能的含有4KB闪速可编程电擦除只读存储器的8位CMOS微控制器,使用高密度、非易失存储技术制造,并且与80C51指令系统和引脚完全兼容。
芯片上的FPEROM允许在线或采用通用的非易失存储编程器对程序存储器重复编程。
1)AT89C51的主要性能:
AT89C51与MCS-51控制器系列产品兼容,片内有4K可在线重复编程闪速电擦除存储器(FlashMemory),存储器可循环写入/擦除1000次,存储器数据保存时间可达10年。
工作电压范围宽:
Vcc可由2.7V到6V;全静态工作可由0Hz到16MHz;程序存储器具有3级锁存保护;128*8位内部RAM;32条可编程I/O线;两个16位定时器/计数器;中断结构具有5个中断源和2个中断优先级;可编程全双工串行通信;空闲状态维持低功耗和掉电状态保存存储内容。
2)FPEROM的编程:
AT89C51的I/O口P0、P1、P2和P3除具有与80C51相同的一些性能和用途外,在FPEROM编程时,P0口接收代码字节,并在程序检验时输出代码字节,但在程序校验时需要外部上拉负载电阻,在FPEROM编程和程序校验期间,P1口接收低位地址字节,P2口接收高位地址字节和一些控制信号,P3口也接收一些FPEROM编程和校验用的信号,此时ALE/PROG引脚是编程脉冲输入(PROG)端,在FPEROM编程期间,如果选择12V编程电压,那么EA/Vpp引脚也允许接受12V编程电压(Vpp)。
2.4AT89C51单片机管脚说明
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8个LS型TTL门电流。
当P0口的管脚第一次写1时,被定义为高阻输入。
P0口能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0口外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4个LS型TTL门电流。
P1口管脚写入“1”后,其内部上拉电阻被拉高,可用作输入端,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收、输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,作为输入端。
作为输出时,P2口的管脚被外部拉低,将输出电流,这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输出,由于外部下拉为低电平,P3口将输出电流,这是由于上拉的缘故。
P3口又作为闪烁编程和编程校验接收一些控制信号。
P3口也可作为AT89C51的一些特殊功能口,如表2所示。
表2AT89C51单片机P3口特殊功能
管脚
特殊功能
P3.0/RXD
串行输入口
P3.1/TXD
串行输出口
P3.2/INT0
外部中断0
P3.3/INT1
外部中断1
P3.4/T0
定时器0外部输入
P3.5/T1
定时器1外部输入
P3.6/WR
外部数据存储器写选通
P3.7/RD
外部数据存储器读选通
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
正常工作时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR区的8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令时ALE才起作用。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在向外部程序存储器取指令期间,每个机器周期有两次/PSEN才有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP(ENABLEADDRESS/VOLTAGEPULSEOFPROGRAMMING):
外部程序存储器地址允许输入端/固化编程电压输入端。
当/EA引脚接高电平时,CPU只访问片内FlashROM并执行内部程序存储器中的指令;但当PC(程序计数器)的值超过0FFF时,将自动转去执行片外程序存储器内的程序。
当输入信号/EA引脚接低电平(接地)时,CPU只访问片外ROM并执行外部程序存储器中的指令;而不管是否有片内程序存储器。
然而需要注意的是,如果保密位LB1被编程,则复位时在内部会锁存/EA端的状态。
当/EA端保持高电平(接VCC端)时,CPU则执行内部程序存储器中的程序。
在FlashROM编程期间,该引脚也用于施加12V的编程允许电源VPP。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
3电路的硬件设计
3.1硬件电路功能描述
硬件电路应能完成以下功能:
当主持人按下开始键后,参赛选手对主持人提出的问题要在最短的时间内作出判断,并按下抢答按键回答问题。
当某位选手首先按下按键后,则在显示器上显示此参赛选手号码并进行声音提示,同时电路将其他抢答按键封锁,使其不起作用。
若有人在主持人按下开始键之前按键,则蜂鸣器发出报警声并显示该选手号码,提示有选手违规操作。
当选手开始答题时,抢答器进入倒计时状态,倒计时时间可以自行设置并显示,倒计时时间到时提醒主持人时间到。
如果在规定时间内没有人抢答则本题作废。
回答完或超时后,由主持人将所有按键恢复,重新开始下一轮答题[5,6]。
为使硬件电路设计尽可能合理,应注意以下几方面:
1)尽可能采用功能强的芯片,以简化电路。
功能强的芯片可以代替若干普通芯片,随着生产工艺的提高,新型芯片的的价格不断下降,并不一定比若干普通芯片价格的总和高,并且功能强大的芯片对以后电路功能的扩展有很大的帮助。
2)留有设计余地。
在设计硬件电路时,要考虑到将来扩展的方便。
因为很少有一锤定音的电路设计,如果现在不留余地,将来就得为一点小小的修改或扩展而被迫进行全面返工。
3)程序空间。
选用片内程序空间足够大的单片机,本设计采用AT89C51单片机,片内有4K字节的存储空间,必要时还可以扩展。
4)RAM空间。
AT89C51内部RAM不多,当要增强软件数据处理功能时,往往觉得不足。
如果系统配置了外部RAM,则建议多留一些空间。
只要在电路设计初期考虑到这一点,就应该为系统升级留足够的RAM空间,哪怕多设计一个RAM的插座,暂不插芯片也好。
5)I/O端口。
在成品进行现场试用时,往往会发现一些被忽视的问题,而这些问题不是靠单纯的软件措施来解决的。
如有些新的信号需要采集,就必须增加输入检测端。
如果在硬件电路设计时就预留出一些I/O端口,虽然当时空着没用,那么,以后用的时候就派上用场了。
系统电路图如图5所示。
图5系统电路图
P3.0口为开始抢答,P3.1口为停止,P1.0~P1.7口为八路抢答信号输入端,数码管段选为P0口的P0.0~P0.7,位选为P2口低3位,报警器输出为P3.6口。
P3.4口为时间加1s调整,P3.5口为时间减1s调整。
3.2时钟电路的设计
AT89C51单片机各功能部件的运行都是以时钟控制信号为基准,有条不紊地一拍一拍地工作,就像一个交响乐团演奏一首乐曲一样,按着指挥棒的节拍进行。
时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。
89C51单片机片内有一个节拍发生器,即片内的震荡脉冲电路,电路中的电容C1和C2典型值通常选择为30pF左右。
对外接电容的值虽然没有严格的要求,但电容的大小会影响振荡器的频率高低,振荡器的稳定性和起振的快速性,晶振的频率越高则系统的时钟频率也越高,单片机的运行速度也就越快。
晶体振荡器的震荡信号从XTAL2端输入到片内的时钟发生器上。
本设计采用晶振频率为12MHz,电容C1和C2为30pF的内部时钟方式,电容为瓷片电容。
判断单片机芯片及时钟系统是否正常工作有一个简单的方法:
用万用表测量单片机晶振引脚(18脚,19脚)的对地电压
。
以正常工作的单片机用数字万用表测量为例:
18脚对地电压约为2.24V,19脚对地电压约为2.09V。
时钟电路图如图6所示。
图6时钟电路图
3.3复位电路设计
单片机的第9脚RST为系统复位端,只要将该端持续2个机器周期的高电平即可实现系统复位,复位后单片机的各状态都恢复到初始化状态。
抢答系统采用手动复位和上电自动复位。
系统加电后首先进行复位,若在抢答过程中需要复位只需按一下复位键即可。
复位电路图如图7所示。
图7复位电路图
值
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 抢答 设计 终结