1、基于单片机的8路智能抢答器设计毕业设计论文 摘 要在抢答比赛中,利用抢答器可以轻易分辨出某个人或代表队首先获得答题权。本设计采用STC89C52单片机设计抢答器系统。电路要求设置有8个键盘,但是考虑到系统的可拓展性,本设计采取矩阵键盘从而设置16个键盘,可以供16名选手参加比赛。主持人按下开始按钮,则开始抢答,并显示抢答时限;若有人按下自己抢答键,则在数码管上显示对应编号和抢答剩余时间,抢答剩余时间低于5秒时会报警提示,剩余时间为0秒时,若无人抢答,本次抢答无效;有人抢答情况下,主持人读完题目后按下开始作答按钮,则显示作答时间,作答时间低于5秒,会报警提示。关键词:可拓展性;STC89C52单
2、片机;矩阵键盘 ABSTRACTIn a quiz, the responder can easily distinguish which group achieve the first answer right. The subject applies the STC89C52 MCU to design the responder system. The circuit set 8 keyboards. But taking into account the scalability of the system, this design take the matrix keyboard to
3、 set the 16 keyboards, so the circuit can be used for 16 players to participate in the competition. The responder will work when a host press the start button, and show answer time limit; if you press your answer key, the digital tube will show the corresponding number and the remaining time; and th
4、e circuit will alarm when the remaining time less than 5 seconds; if nobody answer the question when the remaining time is 0 seconds, the answer is invalid. The moderator will press the button after reading the question if someone answer a question, then the circuit display response time after press
5、ing the button .In addition, the circuit will alarm when the time of the answer less than 5 seconds.Key words:Scalability; STC89C52 single chip microcomputer; Matrix keyboard1 前言1.1 设计背景及意义随着科技的飞速发展,单片机已经渗透到我们生活的各个领域,几乎在每个领域都能找到单片机的影子。上至军用航空导弹导航系统下至生活中使用的电子表等用品,都离不开单片机应用。单片机产生于20世纪70年代末,大致经历了三个阶段。单片
6、微型计算机(Single Chip Microcomputer)阶段,微控制器(Micro Controller Unit)阶段,SoC单片机(System On Chip)阶段。著名的单片机生产企业有Atmel、STC、飞利浦、Intel、Philips等公司。1单片机出现方便了人们的生活,所以单片机的使用也使抢答器的电路更加简便和实用。抢答器的运用虽然很广泛,但是,传统的抢答器具有以下的问题亟待解决:有的传统抢答器由数字电路组成,在使用现场会有多名选手或代表团参加比赛,所以会造成布线繁琐等麻烦,现场不美观等问题;由于传统抢答器由电子元器件集成制作而成,所以就会造成可靠性低,元器件集成工艺复
7、杂,花费比较高等麻烦:由与传统的抢答器由数字电路构成,所以可能造成抢答时控制不精确,功能单一等缺陷。2所以,为了改进传统抢答器的各种缺点,本课题采用STC89C52单片机设计抢答器系统。采用单片机设计抢答器,不仅可以避免布线复杂,集成工艺复杂等问题,还可以减小误差,降低开支,充分利用现有资源。使得抢答器工作效率高,反应灵敏。采用单片机设计的抢答器可以简单的实现拓展功能,可以扩至16路。而且单片机具有方便、低功耗、抗干扰性强等特点,使得本设计具有更强的实用价值。通过本次毕业设计,我们应该熟悉单片机的基本结构,将理论所学知识运用到实际中来,能熟练运用Proteus仿真软件,和Keil51编程软件。
8、从而提高自身的编程能力以及解决问题的能力。 1.2 设计要求利用单片机使用方便、低功耗、抗干扰性强、可靠性高等特点,设计一个8路智能抢答器。1、以单片机为核心处理器,实现一个智能抢答器,要求同时供8名选手或8个代表队参加比赛。2、同时要设置一个用于控制整个电路的开关,用来控制整个抢答器系统的清零、开始抢答及定时器预置等。3、抢答器具有锁存抢答选手编号和显示功能,抢答正式开始后,若有参赛选手或代表队按下自己按钮,锁存并显示选手编号,并禁止其他选手抢答。1.3 设计内容利用单片机实现8路智能抢答器功能。先在Proteus软件上画出系统的各部分硬件电路设计框图,并且在Keil软件上完成对应的软件程序
9、设计,实现系统的主要功能。硬件设计内容主要包括:复位电路,晶振电路,矩阵键盘输入,LED显示模块,报警电路部分。软件设计内容主要包括:键盘扫描,编码显示,抢答选手扫描,中断程序控制,定时器的使用。抢答器要求可同时供8名选手或8个代表队参加抢答比赛。此外,设置一个控制开关,用来控制系统的清零、抢答开始及定时器的预置等。抢答器具有数据锁存和显示功能。1.4 设计内容的扩展 设计题目要求设计基于单片机的8路抢答器,但是在实际运用过程中,参赛的选手或者代表队往往多于8路,所以8路抢答往往不够用。本次设计为了更好的适应实际要求,在设计过程中对电路做了扩展,将基于单片机的8路抢答器扩展设计成16路抢答器。
10、在下文中,所有设计都是按照16路抢答器要求来完成的。2 系统概述2.1 系统的主要功能 本系统运用单片机来实现抢答器设计,主要包括一下几个模块:复位电路,晶振电路,矩阵键盘输入,LED显示模块,报警电路。图2.1系统主要功能2.2 系统工作状态将16位选手编号1-16,接通电源后,主持人按下开始键则开始抢答,16位选手在规定时间内抢答,当有选手按键抢答时,在屏幕上显示选手号码且显示剩余时间,并禁止其他选手抢答;此时,主持人读完题目按下开始答题按钮则开始答题,选手要在规定时间内完成作答,若答题时间快到时会报警。当无选手抢答时,剩余抢答时间小于5秒时会通过闪亮小灯响起蜂鸣器来报警,如果抢答时间耗尽
11、还没有选手按下抢答键,则此轮抢答无效。主持人按下复位按钮则抢答重新开始。图2.2系统工作状态2.3 单片机STC89C52功能简介本次毕业设计采用的是STC89C52型号的单片机,也是16路抢答器电路的核心处理器。STC89C52是由宏晶公司生产的一种8位微型处理器,具有8k可编程的只读Flash存储器。巨有低功耗、低电压、低价格和高性能的特点。在当今科技发展飞速的时期,STC89C52单片机的使用越来越广泛。STC89C52是STC89C51的升级产品,与STC89C51比较多了以下功能:STC89C52具有3个定时器/计数器,STC89C51只有2个定时器/计数器;STC89C52具有8K
12、B的Flash存储器,而STC89C51具有4KB的Flash存储器。STC89C52单片机内部主要有以下部件组成:8KB Flash存储器,512B数据存储器,32条I/O口线,3个定时器/计时器,看门狗定时电路,内置4KB的EEPROM,用于多处理机通信、I/O扩展或全双工UART的串行口;一个具有8个中断源、4个优先级的中断嵌套结构。如下图2.3是STC89C52的管脚示意图:图2.3 STC89C52的管脚示意图STC89C52各个管脚的功能:(1)电源与晶振Vcc接+5V电压,GND接地。XTAL1接外部晶体振荡器的一个引脚。在单片机内部,他是一个反相放大器的输入端,此反相放大器构成
13、了片内振荡器。XTAL2接外部晶体振荡器的另一个引脚。在单片机内部,他是一个反相放大器的输出端,输入到内部时钟发生器。(2)I/O:P0、P1、P2、P3共4个I/O口,32根P0:8位、漏极开路的双向I/O口,不含内部上拉电阻。P1:8位、准双向I/O口,内部含有上拉电阻。P2:8位、准双向I/O口,内部含有上拉电阻。P3:8位、准双向I/O口,内部含有上拉电阻。(3)控制线:共4根RST-复位输入信号,高电平有效。在振荡器工作时,在RST上作用两个机器周期以上的高电平,便可实现复位操作。EA/Vpp-片外程序存储器访问允许信号,低电平有效。当EA接地。单片机只执行片外存储器中的程序;当EA
14、接Vcc时, CPU首先执行片内程序存储器中的程序,然后自动转向执行片外程序存储器中的程序。如果程序锁定位LB1被编程,那么EA值将在复位时由片内锁存。在与Flash并行编程/校验期时。该引脚施加12V的编程电压Vpp。ALE/PROG-地址锁存允许信号输出。在CPU访问外部程序存储器或外部数据存储器时,ALE提供一个地址锁存信号,将低8位地址锁存在片外存储器中。在与Flash并行编程/校验期间,该引脚也是编程负脉冲的输入端。在正常操作状态下,该引脚端口输出恒定频率的脉冲。其频率为晶振频率的1/6,可用做外部定时或其他触发信号。应注意,单片机每次访问内部数据存储器时,都要失去一个ALE脉冲。A
15、LE的禁止位不影响对外部存储器的访问。 PSEN-片外程序存储器选通信号,低电平有效。 当STC89C52执行来自外部程序存储器的指令代码时,PSEN每个机器周期两次有效。在访问外部数据存储器时,PSEN无效。33 硬件电路设计3.1 Proteus软件介绍Proteus软件是英国公司出版的一款EDA软件。此软件不仅具有一般EDA软件的仿真功能,而且能仿真单片机及其外围电路。它是目前最好的仿真单片机及外围电路软件。在进行各种电路设计之前,必须要进行电路原理图的仿真,只有在软件仿真成功才可能在实际电路中实现。并且由于实验室器件的有限,有些电路无法在实际中设计出来,所以我们必须要通过Proteus
16、仿真电路。Proteus软件是世界上唯一将电路仿真、PCB设计和虚拟模型仿真三合一的设计平台,在单片机电路设计中使用更为广泛。43.2 单片机最小系统设计在利用单片机设计各种电路的过程中都离不开最小系统的外围支持,单片机最小系统是每个单片机电路设计必不可少的部分,单片机最小系统包含两个部分:时钟频率电路和复位电路。3.2.1 时钟频率电路设计 单片机工作时需要时钟电路产生时钟信号,指令执行中各信号之间的相互关系就是时序所研究的内容。为保证同步工作方式实现,电路应在唯一的时钟信号控制下按照时序进行工作。时钟信号可以通过两种电路形式得到:内部振荡方式和外部振荡方式。外部振荡方式是把外部已有的时钟信
17、号引入单片机内。这种方式适宜用来使单片机的时钟与外部信号保持同步。本系统采用内部振荡方式产生时钟信号。STC89C52单片机内部带有时钟电路,因此,只需要将定时控制元件(晶体振荡器和电容)通过XTAL1和XTAL2引脚接入单片机芯片,即可形成一个稳定的自激振荡器。如图3.1所示为内部振荡方式的外部电路:图3.1 时钟频率电路电路中采用11.0592Mhz的石英晶体振荡器产生时钟信号,两个电容均为33pf,电容的作用是为了帮助振荡器起振以及对电路频率的微调。3.2.2 复位电路设计 在抢答器电路中,难免会出现操作失误,使得程序跑偏,或者出错,所以需要复位电路来使得在出错时使电路恢复正常工作。复位
18、电路是单片机的初始化操作,使单片机从0开始执行程序。复位不仅能使单片机进入系统正常初始化,而且当程序运行出错或操作不当使系统死锁时,按下复位按钮重新启动,使单片机正常工作。 复位方式有以下四种:上电自动复位、按键电平复位、外部脉冲复位、和自动复位。即外部产生复位信号由单片机的9脚(RST)输入,从而使单片机完成复位操作。复位信号是高电平有效,有效时间应持续两个机器周期以上。 本系统采用的是按键电平复位方式,如图3.2所示复位电路:图3.2复位电路图中所示复位电路由电源、电解电容C3、电阻R2和按键组成。当复位按钮按下,产生高电平的复位信号送入9脚。电解电容充电放电使得复位高电平信号持续2个机器
19、周期以上。当放起按键时,9脚缓慢达到低电平则退出复位。程序从头开始执行。3.3 按键输入电路设计在抢答器电路中每位选手会通过手中的抢答按键来获得优先答题权。每位选手的按键就构成抢答器电路的键盘输入。键盘输入电路是单片机外围电路中最常见的一种电路。键盘有两种形式,编码键盘和非编码键盘。当有键盘被按下时,通过一种专用的硬件编码器来识别按键闭合,并且确定出键盘编码号码,这种键盘称为编码键盘,如计算机键盘。而通过软件编程方式来确定某个按键的闭合的键盘称为非编码键盘,在单片机组成的各种系统中,用的比较多的是非编码键盘。非编码键盘又分为:独立键盘和行列式键盘(或称矩阵键盘)。对于每一个按键需要与单片机的I
20、/O口相连,从而读出键盘的状态。单片机可以通过软件编程读出哪个键按下,从而做出对应的操作。3.3.1 独立式键盘电路设计独立式键盘是单片机电路中用的最多的键盘输入,独立键盘是由键盘的两端直接和单片机的I/O口与接地相连。当键盘按下时,对应端口与地相连,则直接将对应的端口变成低电平,然后做出相应的操作。每个独立键盘需要单独使用一根I/O线,所以当一个电路中键盘输入较多时采用独立键盘设计就会造成I/O口的大量浪费,从而造成I/O口不够用。所以,只有按键数量不多时,采用独立键盘输入。电路中的开始抢答按键和开始答题按键采用的就是独立式键盘输入。独立键盘的好处就是:每个按键单独使用一根I/O线,键盘扫描
21、容易,且独立键盘每个按键互不影响。本电路中用到的独立键盘有下面几处。如图3.3所示电路:图3.3 控制电路当按下开始抢答按键时候,P2.0口被硬件置为低电平,控制整个电路开始,开始抢答;当按下开始答题按键时候,P2.1被硬件置为低电平,显示答题时间。3.3.2 矩阵键盘电路设计 在矩阵键盘中,每4个键盘构成一行,一共四行四列。每一行按键的一端连接起来,每一列按键的另一端连接起来,总共构成8路,所以,一个单片机的P3口就可以构成16个键盘电路的输入端口了。 在本次设计中,有16个选手或代表队参加比赛,每一个代表队需要一个抢答按键,就需要16个按钮。在设计中发现,如果采用独立键盘连接电路,则需要一
22、个端口连接一个按键,所以需要占用16个I/O口,就会造成资源的浪费,成本增高。所以当有16位选手参加抢答比赛时,需要16个键盘,采用4 X 4矩阵键盘只需要8个I/O口,从而大大减少了I/O口资源的浪费。当键盘个数超过8个,采用矩阵键盘是最为合适的。相比独立键盘,矩阵键盘的特点是:电路的I/O口需要相对较少,能有效节省I/O口资源浪费;但是硬件电路相对复杂,键盘扫描比独立键盘扫描繁琐,需要独立软件编程,完成键盘扫描,从而确定那个按键按下,做出相应操作,矩阵键盘更适合多按键电路。以下是抢答器系统的矩阵键盘输入电路,P3口高四位(P3.4-P3.7)作为列线,P3口低四位(P3.0-P3.3)作为
23、行线,电路如图3.4所示: 图3.4 矩阵键盘电路矩阵键盘接好以后,就要对应的键盘扫描工作,判断出那个按键按下,从而做出对应操作。当没有按键按下的时候所有行线和列线是开路的。当键盘上的一个按键被按下的时候,该按键的行线和列线就会被短路。将所有的列线都置为高电平,行线逐个置为低电平。例如当把第一行线置为低电平,第一行有按键按下时该按键的列线也会变成低电平,从而判断第一行的某个按钮被按下,以此类推,单片机根据电平的变化从而扫描出键盘操作。键盘的扫描分为循环扫描工作方式和中断扫描工作方式。循环扫描工作方式,是在单片机工作的过程中调用键盘扫描子程序来响应按键输入。此种扫描方式缺点是,不管键盘有无按下,
24、单片机都会扫描键盘,然而在工作的过程中不需要按键按下,此时系统处于空扫描状态。为了提高单片机的工作效率,采用中断扫描,即只有按键按下时,才发送中断申请,进行键盘扫描。5本次设计采用了循环扫描的工作方式。按键在按下的过程中有可能会产生抖动,此时逻辑电平是不稳定,所以在键盘扫描过程中,一定要在软件设计过程加入去抖部分。在本次设计中,我们通过在软件编程过程中,对按键扫描进行延时的方法中来去除抖动。在按下按键并处理完相应操作时,可以在软件编程中增加键盘释放的程序。63.4 显示电路设计显示电路是最常用的输出设备。为观察单片机的运行状态,往往需要显示器来直观的表现出来。抢答器电路需要通过显示电路,来显示
25、抢答选手的标号,和倒计时显示。本系统采用四位一体共阴数码管显示,数码管前两位显示倒计时,后两位显示抢答选手的标号。下图3.5是抢答器系统的显示电路:图3.5显示电路 上图所示是抢答器系统的显示电路,显示电路用到了一个上拉电阻、两个透明锁存器和一个四位一体共阴数码管。下面介绍显示电路的原理。3.4.1 透明锁存器74HC573原理 74HC573是八进制三态非反转透明锁存器,是高性能硅门CMOS器件。74HC573和LS/AL573的管脚一样。器件的输入是和标准CMOS输出兼容的:加上拉电阻,它们能和LS/ALSTTL输出兼容。 74HC573具有锁存功能,当锁存使能为高时,此器件的锁存对于数据
26、是透明的,即输出同步。当锁存使能变低时,数据就会锁存,即当输入数据消失时,输出数据仍然保持。数据锁存的功能在并行数据扩展中经常用到。 74HC573是三态锁存器,具有低电平、高电平和高阻态。在高阻态下,可以多个芯片并联输出;但是,这些芯片中只能有一个处于非高阻态状态,否则会将芯片烧毁。高阻态的概念在RS422和RS232通讯中还可以用到。透明锁存器还可以起到数据缓冲的功能,能加强驱动功能力。7 在显示系统中用74HC573透明锁存器作为驱动电路能避免直接接入数码管的数据传输不稳定。 如图3.6所示为74HC573管脚图:图3.6 透明锁存器74HC573管脚图OE是输出使能端;LE数据锁存使能
27、;Dn为第n路输入数据;On为第n路输出数据。下表3.1为74HC573的功能表:表3.1 透明锁存器74HC573的功能表OELEDQLHHHLHLLLLX保持HXXZ3.4.2四位一体数码管显示在经过透明锁存器的数据缓冲电路后,就会将数据传输到显示器中。比较常用的显示器有1602液晶显示器、数码管显示等。由于抢答器电路中需要显示的数据比较简单,如若采用1602液晶显示就会有些浪费。所以本系统的显示电路采用四位一体共阴数码管显示。每一位数码管显示是由8个发光二极管组成的,根据不同的二极管发光,从而显示出不同的数据。通常我们在显示采用的方法有两种:动态显示和静态显示。静态显示原理是:每个数码管
28、由8个小型的发光二极管组成,所以不同的二极管发光便显示出不同的字符,8个发光二极管必须接一个8位数据线来保持所需显示的字形,当送入一次字形码的编码后,即可一直显示所需字形,直到送入一个新的字形编码为止。静态显示的优点是占用CPU较少的时间,数码显示便于控制。缺点是:每一个字形需要一个数码管,每个数码管需要8位I/O口控制,所需电路复杂且成本高。8动态显示原理是:将所有位数码管的8位发光二极管的信号线并联在一起,由一个特殊的位选线控制那一位数码管显示。显示特性没有静态显示好,利用二极管发光的和人眼视觉的暂留作用,让人感觉好像各位数码管在同时显示,称为动态显示。数码显示分为共阴和共阳显示两种。下图
29、3.7是数码管显示的原理图:图3.7 共阴数码管原理图CS0、CS1、CS2、CS3分别为四位一体数码管的位选端,当其中一个端口置于低电平时,则这一位数码管被选中;然后再设置段选端,段选端由8位数据线控制,当一个端口处于高电平是则对应的一段显示。从而完成数码显示。如图3.8为所用数码管:图3.8 数码管电路图中A、B、C、D四个端口分别为数码管显示的位选,a、b、c、d、e、f、g、p为数码管的段选。数码管的位选由P1.0-P1.3控制,段选信号由P0.0-P0.7控制。当程序分别控制P0口和P1口的时候,然后完成显示功能。3.5 报警电路设计在抢答器系统里,当抢答时间快要结束时或者答题时间快
30、要结束时,需要一个报警电路来提示抢答选手,所以在本次设计中添加了报警电路部分。当答题时间和抢答时间小于5秒后,则会启动报警电路。如图3.9所示,为报警电路。图3.9 报警电路如上图所示为报警电路,当P2.2口为低电平时,LED灯通路,则LED灯亮。单片机的P2.3口负责发声电路,当P2.3为低电平时候,三极管导通,扬声器工作,从而完成发声电路。当抢答时间和答题时间剩余5秒时,为了及时提示选手,设置LED灯和扬声器隔1秒工作一次,从而达到警示选手的作用。报警电路中,扬声器部分采用PNP三极管驱动,当基极为低电平时,三极管导通,从而驱动扬声器电路工作。3.6 电源电路设计在整个抢答系统中,一定会用
31、到电源,而一般直流电源均为1.5V的倍数,单片机所需电源为5V。所以电路中需要稳压电源来满足单片机电路的电压限制。在本次设计中,采用7805达到稳压的效果。7805所需外围电路简单,内部具有保护电路,用起来方便,并且价格便宜。在电子设计中得到了广泛的运用。如下图3.10所示为7805的外围电路:图3.10 稳压器7805外围电路将12V直流电源接入左边,右边输出是5V电压。将单片机电源以及74HC573电源接入5V电源,即可使本系统工作。3.7 下载器电路 当完成上述工作后,一个完整的系统基本完成,此时需要一个下载器电路将软件程序下载达到STC89C52单片机中才能实现抢答器功能。 下载器需要和单片机的P1.5、P1.6、P1.7、RST端口连接起来,只有这样才能将软件程序下载到STC89C52中。 下载电路连接方式如图3.11所示:图3.11下载电路连接方式将下载器一端与单片机按照上图连接起来,同时将下载器USB一端插入电脑,通过烧写软件将软件程序写入到STC89C52中。烧写成功后,则可验证本系统的软件部分与硬件部分是否对应,以及测试本系统的是否能实设计要求中的各个功能模块。3.8 总体电路设计本章详细叙述了抢答器各个模块的设计原理以及具体电路。在以STC89C52为核心电路的基础上,结合显示电路、键盘输入电路、报警电路、复位电路和外
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1