多功能单片机8路抢答器.docx
- 文档编号:14443786
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:42
- 大小:219.35KB
多功能单片机8路抢答器.docx
《多功能单片机8路抢答器.docx》由会员分享,可在线阅读,更多相关《多功能单片机8路抢答器.docx(42页珍藏版)》请在冰点文库上搜索。
多功能单片机8路抢答器
摘要
本文分别从硬件和软件两个介绍了一种采用单片机制作的抢答器的设计思路与功能。
该抢答器除了基本的抢答功能之外,还实现其它多种功能。
这些附加功能的实现使其在使用过程中更加的方便与智能化。
这也符合电子设备的发展步伐。
它在硬件方面主要由AT89SC52单片机、MAX7219显示驱动、LCD显示器组成。
除了具有基本的抢答功能之外,还具有定时报警的功能,和数显的功能,当抢答开始后,系统会自动倒计时,并且时间是可以预设的,期间有人抢答的话系统会停止计时,如果期间没人抢答,系统会有短暂的报警,提示抢答结束。
在软件方面主要由程序流程图与部分功能介绍来进行解读。
本设计中大部分的较为复杂的逻辑控制,都是用相应的汇编程来控制实现的。
通过一系列的汇编程序,来控制、实现相应的逻辑功能。
关键词:
抢答器;单片机AT89SC52;时间控制;LCD显示。
Abstract
Thispaperrespectivelyfromtwointroducesahardwareandsoftwaremadebysinglechipmicrocomputerdesignideasandfunctionofthebuzzer.Thebuzzerinadditiontothebasicviestoanswerfirstfunction,andotherfunctions.Therealizationofthefunctionoftheseadditionaltomakeitinuseprocessmoreconvenientandintelligent.Thisalsoaccordwiththedevelopmentofelectronicequipment.
ItintheaspectofhardwaremainlydrivenbyAT89SC52microcontroller,MAX7219display,LCDdisplay.Inadditiontothebasicviestoanswerfirstfunctionoutside,stillhavetimingalarmfunction,andthefunctionofthedigitaldisplay,whenthecontestbegan,thesystemwillautomaticallycountdown,andtimecanbepreset,someoneviestoanswerfirstduringsystemwillstoptime,ifnobodyviestoanswerfirst,duringthesystemwillhaveabriefreporttothepolice,promptviestoanswerfirst.
Onsoftwareismainlycomposedofprogramflowchartandpartfunctionisintroducedtointerpret.Mostofthedesignofmorecomplexlogiccontrol,isdonewiththecorrespondingprogrammingtocontroltheimplementation.Throughaseriesofassembler,tocontrolandimplementcorrespondinglogicfunctions.
Keywords:
TheBuzzer;SingleChipAT89C52;DurationControl;LCDDisplay.
目录
绪论1
选题背景与意义1
课题简介1
1.总体系统设计2
1.1设计内容2
1.2设计目标2
1.3设计抢答器原理方框图3
2.抢答器各模块设计及介绍4
2.1单片机模块4
2.1.1AT89C52主要性能参数4
2.1.2AT89C52功能特性介绍及P0、P1口介绍5
2.1.3AT89C52引脚介绍5
2.1.4结合在方案中需要使用的引脚对抢答器工作流程进行分析7
2.1.5单片机模块工作流程图12
2.2MAX7219显示驱动模块13
2.2.1MAX7219引脚说明13
2.2.2基本的工作方法14
2.2.3MAX7219初始化15
2.2.4显示驱动程序介绍16
2.3lcd显示器介绍17
2.3.1LCD和LED的区别17
2.3.2单片机和分立元件之间的选择17
2.3.3显示电路设计和LCD的引脚功能说明18
2.3.4液晶显示模块18
3.抢答器电路原图及仿真20
3.1抢答器原理图20
3.2仿真软件介绍20
3.3仿真测试效果21
结论24
致谢25
参考文献26
附录27
绪论
选题背景与意义
抢答器是一种常见的电子产品,尤其是在各类智力竞猜中,在电视和学校中我们会经常看到一些智力抢答的节目,如果要是让抢答者用举手等方法,主持人很容易误判,会造成抢答的不公平,比赛中为了准确、公正、直观地判断出第一抢答者,所设计的抢答器通常由数码显示、灯光、音响等多种手段指示出第一抢答者。
为了使这种不公平不发生,只有靠电子产品的高准确性来保障抢答的公平性。
为了实现选手的公平性,性能优良的抢答器往往更能得到各单位的青睐。
很明显,在先前学习过程中的基于74系列电路的抢答器方案虽然在只基于硬件的条件下就能实现大部分功能,似乎更加省事,但仔细比较下两种方案,不难发现,由于单片机具有可编程定时器和中断设备,便于实现编程和时间的精确控制。
通过硬件与软件相结合的方式能使方案电路结构简单,易于实现,采用LCD显示且具有简单精准的报警电路。
并且该方案还有一个很重要的特点在于具有灵活性,可以随意的进行时间设定,更加适应社会要求。
课题简介
课题名称:
多功能单片机抢答器
主要任务:
通过硬软件相结合实现集定时、计时、报警、数码显示等功能为一体的抢答器。
开发思路:
(1)以AT89C52系列单片机为核心部件
(2)用中小规模集成电路为硬件基础
(3)以LCD作为显示设备
(4)以汇编语言实现逻辑编程
1.总体系统设计
1.1设计内容
(1)可同时供8名选手参加比赛,其相应的编码分别是0、1、2、3、4、5、6、7,各用一个抢答按钮,按钮的编号与选手的编号相对应。
分别是S0、S1、S2、S3、S4、S5、S6、S7。
(2)给主持人设置一个控制开关,用来控制系统的清零(编号显示数码管灭灯)和抢答的开始。
(3)抢答器具有数据锁存和显示的功能。
抢答开始后,若有选手按动抢答按钮,编号立即锁存,并在LED数码管上显示出选手的编号,同时蜂鸣器给出音响提示。
此外,要封锁输入电路,禁止其他选手抢答。
优先抢答选手的编号一直保持到主持人将系统清零为止。
(4)画出各单元电路图和总体逻辑框图,描述各单元功能,合理选用电路器件,画出完整的电路设计图。
(5)列出完整的语言逻辑程序
(6)写出设计总结报告
1.2设计目标
(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调整。
(6)当参赛选手在回答问题时要求使用锦囊,则主持人按下抢答开始键,计时重新开始。
1.3设计抢答器原理方框图
如图1-1所示为八路多功能抢答器设计的原理框图:
抢答输入
显示输出
控制输入
输出
锁存
单片机
控制
看
语音输出
图1-1八路多功能抢答器设计的原理框图
当主持人宣布抢答开始的时候,按下开始按钮,此时电路进入抢答状态,选手的输入采用了扫描式的输入,之后把相应的信息送往单片机,再由单片机输出到显示输出电路中。
此时有人第一按下相应的抢答按钮,经过单片机的控制选择,在八段显示器上显示相应的号码,并锁存,同时禁止其他按钮的输入。
通过主持人的相关操作,以及选手的抢答,显示模块与语音模块应能迅速做出正确回应。
如主持人按下开始,语音模块立刻给以语音提示,显示模块立刻显示抢答倒计时;当有选手抢答,显示模块应马上显示最先抢答的选手号,并进入答题倒计时…而这一切,都有赖于本设计的核心模块—51单片机来控制。
通过一系列的汇编程序,来控制、实现相应的逻辑功能。
2.抢答器各模块设计及介绍
2.1单片机模块
采用MCS-51系列单片机AT89S51作为控制核心,该系统可以完成运算控制、信号识别以及显示功能的实现。
由于用了单片机,使其技术比较成熟,应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。
整个系统具有极其灵活的可编程性,能方便地对系统进行功能的扩张和更改性。
CS-51单片机特点如下:
(1)可靠性好:
单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般的CPU,程序指令和数据都可以烧写在ROM许多信号通道都在同一芯片,因此可靠性高。
(2)易扩充:
单片机有一般电脑所必须的器件,如三态双向总线,串并行的输入及输出引脚,可扩充为各种规模的微电脑系统.
(3)控制功能强:
单片机指令除了输入输出指令,逻辑判断指令外还有更丰富的条件分支跳跃指令。
所以采用单片机AT89S51组成的最小系统(AT89S51加复位电路和外界晶体振荡器)为主要部件,加按键作为选手抢答和主持人控制、4位共阴数码管为显示选手的编号和剩余的抢答时间。
AT89SC52的引脚图如图2-1所示:
图2-189C52单片机引脚图
2.1.1AT89C52主要性能参数
1 它与MCS-51单片机产品兼容
2 8K字节在系统可编程Flash存储器
3 1000次擦写周期
4 全静态操作:
0Hz~33Hz
5 三级加密程序存储器
6 32个可编程I/O口线
7 三个16位定时器/计数器
8 八个中断源
9 全双工UART串行通道
10 低功耗空闲和掉电模式
11 掉电后中断可唤醒
12 看门狗定时器
13 双数据指针
14 掉电标识符
2.1.2AT89C52功能特性介绍及P0、P1口介绍
At89sc52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89SC52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
8位微控制器8K字节在系统可编程FlashAT89S52。
P0口:
P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。
作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P1口:
P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
2.1.3AT89C52引脚介绍
(1)VCC:
供电电压。
(2)GND:
接地。
(3)P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0口能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
(4)P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高电平,可用作输入,P1口被外部下拉为低电平时,将输出电流。
在FLASH编程和校验时,P1口作为第八位地址接收。
(5)P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
P2口的管脚被外部拉低,将输出电流,这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
(6)P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流,这是由于上拉的缘故。
P3口也可作为AT89C52的一些特殊功能口,管脚备选功能如下:
P3.0RXD(串行输入口)P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
(7)RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平。
(8)ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令时ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
(9)/PSEN:
外部程序存储器的选通信号。
在外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,两次有效的/PSEN信号将不出现。
(10)/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH)工作,不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
(11)XTAL1:
振荡器反相放大器的及内部时钟发生器的输入端。
(12)XTAL2:
振荡器反相放大器的输出端。
特殊功能寄存器:
在AT89C52片内存储器中,80H-FFH共128个单元为特殊功能寄存器(SFE)。
并非所有的地址都被定义,从80H—FFH共128个字节只有一部分被定义,还有相当一部分没有定义。
对没有定义的单元读写将是无效的,读出的数值将不确定,而写入的数据也将丢失。
不应将数据“1”写入未定义的单元,由于这些单元在将来的产品中可能赋予新的功能,在这种情况下,复位后这些单元数值总是“0”。
AT89C52除了与AT89C51所有的定时/计数器0和定时/计数器1外,还增加了一个定时/计数器2。
定时/计数器2的控制和状态位位于T2CON,T2MOD,寄存器对(RCAO2H、RCAP2L)是定时器2在16位捕获方式或16位自动重装载方式下的捕获/自动重装载寄存器。
2.1.4结合在方案中需要使用的引脚对抢答器工作流程进行分析
本设计采用P3.2、P3.3分别接抢答时间调节和答题时间调节按钮,即通过外部中断0、外部中断1分别控制抢答、答题时间的调整。
因此,设计的软件部分可分为工作模块、外部中断0模块、外部中断1模块。
对流程图的分析,也分三部分来介绍。
(1)工作时(非调节时间时)的流程
平时正常工作时,程序的流程图绘制如图2-2:
对工作流程图中的某些部分解释如下:
初始化部分:
包括对定时计数器的工作方式、初始化数值的设置,还包括对抢答时间与答题时间的预设,另外,还应对外部中断0、外部中断1进行开放。
抢答倒计时、回答倒计时部分:
由于二者功能的相似性,本设计将二者在一个子程序——倒计时程序中一起编写。
犯规程序部分:
包括对犯规选手号的显示、报警器的间断工作。
另外,由于在设计要求主持人能随时对工作过程终止,因此,要不断查询停止键的状态,一旦按下,便回到初始化后的状态;在倒计时过程中还要不断将与5S比较,当小于5S时,还需调用发声程序;小于5S后,又需要不断将与0较,当其等于零时,立即返回。
图2-2工作流程图
(2)外部中断0(抢答时间调整)流程
外部中断0(抢答时间调整)的流程图见图2-3:
Y
图2-3INT0流程图
一旦因P3.2对应键的按下,便进入INT0中断过程。
通过不断对P3.4(加1s)和P3.5(减1s)进行不断的查询,来对抢答时间进行调整:
发现P3.4按下,就对原抢答时间加1s,发现P3.5下,就对原抢答时间减1s并调用显示程序。
根据设计要求,当加至99s时,若再加1s,则时间变为0;当减至0s后,若再减一秒,时间变为99s。
因此,流程中应该对当前时间于99s或0s比较,再作出相应处理。
另外,在中断过程中还需要不时对停止按钮进行查询,一旦发现其按下,立即中断返回。
由于本中断过程在返回前一直是循环执行的,因此,只需要在每次循环末查询一次即可,如流程图所示
(3)外部中断1(答题时间调整)流程
外部中断1(答题时间调整)流程与外部中断1流程大同小异。
与抢答时间调整类似,一旦因P3.3对应的按钮按下,便进入INT1中断过程。
通过不断对P3.4(加1s)和P3.5(减1s)进行不断的查询,来对抢答时间进行调整:
发现P3.4按下,就对原抢答时间加1s,发现P3.5下,就对原抢答时间减1s并调用显示程序。
当加至99s时,若再加1s,则时间变为0;当减至0s后,若再减一秒,时间变为99s。
因此,流程中应该对当前时间于99s或0s比较,再作出相应处理。
同上,在中断过程中,也还需要不时对停止按钮进行查询,一旦发现其按下,立即中断返回。
其程序流程参见下图图2-4:
Y
图2-4INT1流程图
2.1.5单片机模块工作流程图
单片机模块工作流程图如下图2-5所示:
图2-5程序流程图
2.2MAX7219显示驱动模块
2.2.1MAX7219引脚说明
引脚说明见表2-1
表2-1MAX7219引脚说明
引脚号
名称
功能说明
1
Din
串行数据输入端在CLK的上升沿数据被锁入芯片内部16位移位寄存器。
2.3.5~8.10.11
DIG0~DIG7
8位LED位选线,从共阴极LED中吸入电流。
4.9
GND
地线(两个GND必须连在一起)。
12
Load
锁入输入的数据在Load上升沿最后的16位串行数据被锁入。
13
CLK
时钟输入,最高时钟频率为10MHZ,在CLK的上升沿数据被锁入内部移位寄存器,在CLK的下降沿,数据从Dout脚被输出。
14~1720~23
SegA~SegG.DP
7段驱动和小数点驱动
18
Iset
该脚通过一个电阻与V+相连,设置峰值段电流。
19
V+
电源电压,+5V。
24
Dout
串行数据输出。
输入到Din的数据在16.5个时钟周期后在Dout脚发出,该脚用于与级联扩展
2.2.2基本的工作方法
与8031单片机连接采用三线串行接口,典型应用电路如表2-2所示。
表2-216位数据包的数据格式表_Y&F_e
N;y-jGuest
D0~D7
D8~D11
D12
D13
D14
D15
LSBDATAMSB
ADDRESS
ⅹ
ⅹ
ⅹ
ⅹ
D7~D0:
8位数据位,D7最高位,D0最低位;
D11~D8:
4位地址位;
D15~D12:
无关位,通常全取1。
MAX7219通过D11~D84位地址位译码,可寻址14个内部寄存器,分别是8个LED显示位寄存器,5个控制寄存器和1个空操作寄存器。
LED显示寄存器由内部8×8静态RAM构成,操作者可直接对位寄存器进行个别寻址,以刷新和保持数据,只要V+超过2V(一般为+5V)。
_ay6i/e8G(rW0n_~Guest控制寄存器包括:
译码模式,显示亮度调节,扫描限制(选择扫描位数),关断和显示测试寄存器。
EETOP专业博客---电子工程师自己的家园1w_}_m_0@-?
7B_`-v&{L_tPGueste(|_o'x*U`)vGuestMAX7219的驱动程序首先必须对5个控制寄存器(地址分配见表2-3)初始设置即初始化,各控制寄存器设置含义如下:
译码模式选择寄存器(地址=F9H);
5G)s_J'wG_m+C_[GuestEETOP专业博客---电子工程师自己的家园
\_x_G/U9Y3O_|共有4种译码模式供选择,当数据位全0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多功能 单片机 抢答