基于51单片机的四路抢答器设计.docx

上传人:b****5 文档编号:6861847 上传时间:2023-01-11 格式:DOCX 页数:31 大小:315.15KB
下载 相关 举报
基于51单片机的四路抢答器设计.docx_第1页
第1页 / 共31页
基于51单片机的四路抢答器设计.docx_第2页
第2页 / 共31页
基于51单片机的四路抢答器设计.docx_第3页
第3页 / 共31页
基于51单片机的四路抢答器设计.docx_第4页
第4页 / 共31页
基于51单片机的四路抢答器设计.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

基于51单片机的四路抢答器设计.docx

《基于51单片机的四路抢答器设计.docx》由会员分享,可在线阅读,更多相关《基于51单片机的四路抢答器设计.docx(31页珍藏版)》请在冰豆网上搜索。

基于51单片机的四路抢答器设计.docx

基于51单片机的四路抢答器设计

山东农业大学

毕业论文

 

基于51单片机的四路抢答器设计

 

院部:

机械与电子工程学院专业班级:

10级自动化1班届次:

14届学生姓名:

吴新春

学号:

20101209 指导教师:

刘平

 

二〇一四年五月二十七日

Abstract

Contents

Abstract

Introduction

1Systemoverview

1.1Theanalysisofresponder needs

1.2Responder workprocess 

2MCUfeatures 

2.1STC89C51

2.1.1Specialfunctionregister

2.2TheinternalstructureofSTC89c51

3Thedesignofcircuitsystem

3.1The circuitsystem 

3.2Thedesignofminimum system

3.2.1Thedesignofpowersupply

3.2.2Thedesignofclock circuit

3.2.3Thedesignofresetcircuit 

3.3Thedesignofdisplaycircuit

3.3.1Digitaltube profile

3.3.2TheintroductionofCD4511

3.4Thedesignofkeycircuit 

3.5Thedesignofbuzzer 

3.6Componentsandwelding debugging

4Thedesignofsoftware 

4.1Delaysubroutine

4.2Displayprogram

4.3Thecountdown and keyboardscanning subroutine

4.4Mainprogram andanalysis

5Conclusions

References

Acknowledgement

Appendix1

Appendix2

基于51单片机的四路抢答器设计

作者:

吴新春,指导教师:

刘平

(山东农业大学讲师)

【摘要】本文设计以STC89C51单片机为核心的四路抢答器。

采用了数字显示器直接显示,自动锁存显示结果,并自动复位的设计思想,它能根据不同的抢答输入信号,经过单片机的控制处理产生不同的与输入信号相对应的输出信号,最后通过LED数码管显示相应的路数,分辨出是哪组优先按下的按键,它充分利用了单片机系统的优点,具有结构简单、功能强大、可靠性好、实用性强的特点。

本设计是以四路抢答为基本理念。

考虑到需限时回答的功能,利用89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。

同时系统能够实现:

在抢答中,只有开始后抢答才有效;满时后系统等待主控强制复位;按键锁定等功能。

关键词:

51单片机四路抢答器数码管最小系统

 

ThedesignofQuadResponderbasedon51microcomputer

Author:

WuXinchun,Supervisor:

LiuPing

(ShandongAgriculturalUniversityLecturer)

AbstractThispaperdesigntheSTC89C51microcontrollerasthecoreofthefourroadresponder.Adoptingdigitaldisplaydirectlydisplay,automaticlatchdisplayresults,andtheideaofthedesignoftheautomaticresetwhichcanaccordingtodifferentviestoanswerfirsttheinputsignal,throughMCUcontrolprocessingindifferentwayswiththeinputsignalscorrespondingtotheoutputsignal,finally,LEDdigitaltubedisplaythecorresponding,distinguishiswhichgroupfirstpressthebutton,itmakesfulluseoftheadvantagesoftheMCUsystemwhihissimpleinstructure,thecharacteristicsofpowerfulfunction,goodreliabilityandstrongpracticability.

Thisdesignisbasedonfourroadviestoanswerfirstthebasicconcepts.Consideringthefunctionneedtimetoanswer,theuseof89C51MCUandperipheralinterfaceimplementationofviestoanswerfirstsystem,theMCU’stimer/countertimingandthenumberofprinciple,softwareandhardwareorganically,enablesthesystemtoaccuratelytime,atthesametimemakedigitaltubecancorrectlydisplaythetime.Atthesametime,systemcanrealize:

inviestoanswerfirst,onlyafterthestartofviestoanswerfirsteffectively;Afterfullwaitingforforcedresetcontrolsystem;Keylock,andotherfunctions.

Keywords:

51singlechipmicrocomputer;four-waybuzzer;digitaltubeminimumsystem

引言

随着科学技术的飞速发展和生活内容的丰富,各种各样的竞赛越来越多,其中抢答器有着无可替代的作用。

目前很多抢答器采用小规模数字集成电路设计,使用起来不够理想。

因此设计一种更便于使用的抢答器是非常必要的。

随着科技的进步单片机已进入各个领域,以其功耗小、智能化而著称,所以利用单片机来设计抢答器,便可以解决上述问题。

针对以上情况,本文设计出以STC89C51单片机为核心的四路抢答器。

我们采用了数码管显示,自动锁存显示结果,并自动复位的设计思想,它能根据不同的抢答输入信号,经过单片机的控制处理并产生不同的与输入信号相对应的输出信号,最后通过LED数码管显示相应的路数,可分辨出优先按下的按键,它充分利用了单片机系统的优点,具有结构简单、功能强大、可靠性好、实用性强的特点。

考虑到需设定限时回答的功能,利用89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。

用开关做键盘输出。

同时系统能够实现:

主控操作优先;在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;满时后系统等待主控强制复位;按键锁定,在有效状态下,按键无效非法。

 

1系统概述

1.1抢答器需求分析

(1)在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效。

(2)抢答限定时间20秒和回答问题的时间60秒。

(3)可以显示是哪位选手有效抢答和无效抢答,正确按键后显示按键者号码并锁存直到主持人允许答题。

(4)抢答时间和回答问题时间倒记时显示,时间完后等待主持人按键复位。

(5)按键锁定,在有效状态下,按键无效非法。

1.2抢答器工作过程

主持人按“抢答开始”键,立刻进入抢答倒计时(预设20s抢答时间),如有选手抢答,显示其号数并等待主持人允许答题,允许答题(主持人按键)进入答题倒计时(预设60秒答题时间)。

不进行抢答查询,所以只有第一个按抢答的选手有效。

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

如果主持人未按“答开始”,而有人按了抢答按键,犯规抢答,LED上不显示任何结果,直到按下“止”键为止。

系统方框图如图1-1所示。

图1-1系统方框图

2单片机功能简介

MCS-51单片机是美国INTE公司于1980年推出的产品,典型产品有8031(内部没有程序存储器,实际使用方面已经被市场淘汰)、8051(芯片采用HMOS,功耗是630mW,是89C51的5倍,实际使用方面已经被市场淘汰)和8751等通用产品,一直到现在,MCS-51内核系列兼容的单片机仍是应用的主流产品(比如目前流行的89S51、已经停产的89C51等),各高校及专业学校的培训教材仍与MCS-51单片机作为代表进行理论基础学习。

有些文献甚至也将8051泛指MCS-51系列单片机,8051是早期的最典型的代表作,由于MCS-51单片机影响极深远,许多公司都推出了兼容系列单片机,就是说MCS-51内核实际上已经成为一个8位单片机的标准。

其他的公司的51单片机产品都是和MCS-51内核兼容的产品而以。

同样的一段程序,在各个单片机厂家的硬件上运行的结果都是一样的,如ATMEL的89C51(已经停产)、89S51,PHILIPS(菲利浦),和WINBOND(华邦)等,我们常说的已经停产的89C51指的是ATMEL公司的AT89C51单片机,同时是在原基础上增强了许多特性,如时钟,更优秀的是由Flash(程序存储器的内容至少可以改写1000次)存储器取带了原来的ROM(一次性写入),AT89C51的性能相对于8051已经算是非常优越的了。

不过在市场化方面,89C51受到了PIC单片机阵营的挑战,89C51最致命的缺陷在于不支持ISP(在线更新程序)功能,必须加上ISP功能等新功能才能更好延续MCS-51的传奇。

89S51就是在这样的背景下取代89C51的,现在,89S51目前已经成为了实际应用市场上新的宠儿,作为市场占有率第一的Atmel目前公司已经停产AT89C51,将用AT89S51代替。

89S51在工艺上进行了改进,89S51采用0.35新工艺,成本降低,而且将功能提升,增加了竞争力。

89SXX可以像下兼容89CXX等51系列芯片。

市场上见到的89C51实际都是Atmel前期生产的巨量库存而以。

如果市场需要,Atmel当然也可以再恢复生产AT89C51。

AT89S51/LS51单片机是低功耗的、具有4KB在线课编程Flash存储器的单片机。

它与通用80C51系列单片机的指令系统和引脚兼容。

片内的Flash可允许在线重新编程,也可使用非易失性存储器编程。

他将通用CPU和在线可编程Flash集成在一个芯片上,形成了功能强大、使用灵活和具有较高性能性价比的微控制器。

2.1STC89C51的功能

2.1.1STC89C51特殊功能寄存器

表2-1STC89C51特殊功能寄存器

符号

地址

注释

*ACC

*B

*PSW

SP

DPL

DPH

*IE

*IP

*P0

*P1

*P2

*P3

PCON

*SCON

*TCON

TMOD

TL0

TL1

TH0

TH1

E0H

F0H

D0H

81H

82H

83H

A8H

D8H

80H

90H

A0H

B0H

87H

98H

88H

89H

8AH

8BH

8CH

8DH

累加器

乘法寄存器

程序状态字

堆栈指针

数据寄存器指针低8位

数据寄存器指针高8位

中断允许控制器中断优先控制器

端口0

端口1

端口2

端口3

电源控制及波率选择

串行口控制器

定时器控制

定时器方式选择

定时器0低8位

定时器1低8位

定时器0高8位

定时器1高8位

注:

带*号的特殊功能寄存器都是可以位寻址的寄存器

特殊功能寄存器是80C51单片机中各功能部件对应的寄存器,用于存放相应功能部件的控制命令,状态或数据。

它是80C51单片机中最具有特色的部分,现在几乎所有80C51系列功能的增加和扩展都是通过增加特殊功能寄存器来达到目的的。

利用它可以访问51单片机内部的所有特殊功能寄存器。

如用sfrP1=0x90这一句定义P1为P1端口在片内的寄存器,在后面的语句中我们可以用P1=255(对P1端口的所有引脚置高电平)之类的语句来操作特殊功能寄存器。

特殊功能寄存器也称专用寄存器,共含有22个不同寄存器。

它们的地址分配在80H~FFH中,即在RAM地址中。

这些寄存器的名称和地址见表2-1。

虽然特殊功能寄存器地址在80H~FFH之中,但在80H~FFH的地址单元中,不是所有的单元都被特殊功能寄存器占用,未被占用的单元,其内容是不确定的,如果对这些单元进行操作,得到的是一些随机数,而写入则无效。

所以,用户编程时不应该将数据写入这些未确定的地址单元,它们是公司留待将来开发新产品时使用的。

2.2STC89c51单片机的内部结构

STC89c51内部由一个8位的微处理器CPU、片内程序存储器FlashROM、8位并行I/O(输入/输出)接口P0~P3、定时/计数器、全双工UART的串行I/O口、片内振荡器和时钟产生电路和中断源的中断控制系统组成。

下面是各部分的介绍。

一个8位的微处理器CPU。

片内数据存储器(RAM128B/256B):

用以存放可以读/写的数据,如运算的中间结果、最终结果以及欲显示的数据等。

片内4kB程序存储器FlashROM(4KB):

用以存放程序、一些原始数据和表格。

四个8位并行I/O(输入/输出)接口P0~P3:

每个口可以用作输入,也可以用作输出。

两个(或三个)定时/计数器:

每个定时/计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制。

一个全双工UART的串行I/O口:

可实现单片机与单片机或其它微机之间串行通信。

片内振荡器和时钟产生电路:

但需外接晶振和电容。

五个中断源的中断控制系统。

休闲方式及掉电方式。

 

3系统硬件电路的设计

为使硬件电路设计尽可能合理,应注意以下几方面:

(1)尽可能采用功能强的芯片,以简化电路,功能强的芯片可以代替若干普通芯片,随着生产工艺的提高,新型芯片的的价格不断下降,并不一定比若干普通芯片价格的总和高。

(2)留有设计余地。

在设计硬件电路时,要考虑到将来修改扩展的方便。

因为很少有一锤定音的电路设计,如果现在不留余地,将来可能要为一点小小的修改或扩展而被迫进行全面返工。

(3)程序空间,选用片内程序空间足够大的单片机,本设计采用STC89C51单片机。

(4)I/O端口:

在样机研制出来后进行现场试用时,往往会发现一些被忽视的问题,而这些问题不是靠单纯的软件措施来解决的。

如有些新的信号需要采集,就必须增加输入检测端;有些物理量需要控制,就必须增加输出端。

如果在硬件电路设计就预留出一些I/O端口,虽然当时空着没用,那么用的时候就派上用场了。

3.1系统总电路如图

图3-1系统电路图

3.2最小系统的设计

单片机的最小系统是指单片机能正常工作所必需的基本电路,主要由单片机、复位电路、晶振电路构成,如果采用的是不带内部ROM的单片机,还需要有外部ROM扩展电路。

3.2.1电源的设计

常用的三端电子稳压元件有输出正点压的78xx系列和输出负电压的79xx系列。

顾名思义,三端稳压元件有三个管脚:

一个输入端,一个接地端和一个输出端。

用78/79系列三端稳压元件来组成稳压电路所需的外围元器件很少,电路内部还有过流、过热及调整管的保护电路,使用起来方便可靠,而且价格便宜。

该系列集成稳压IC型号中的78/79后面的两个数字表示输出电压的大小,如7805表示输出正5V电压,7909表示输出负9V电压。

本设计采用7805三端稳压电路。

在实际应用中应当在三端稳压集成电路上安装散热器,以免温度过高影响稳压电路的稳压效果。

当制作中需要一个能输出1.5A以上电流的稳压电源,通常采用几块三端稳压电路并联起来,使其最大输出电流为N个1.5A,但应用时需注意:

并联使用的集成稳压电路应采用同一厂家、同一批号的产品,以保证参数的一致。

7805电参数如图3-2。

3.2.2时钟频率电路的设计

时钟电路是计算机的心脏,它控制着计算机的工作节奏。

MCS-51单片机允许的时钟频率是因型号而异的。

晶振的选择

6MHz的晶振,其机器周期是2us。

12MHz的晶振,其机器周期是1us,也就是说在执行同一条指令时用6MHz的晶振所用的时间是12MHz晶振的两倍。

为了提高整个系统的性能我选择了12MHz的晶振。

振荡方式的选择:

内部振荡方式,MCS-51内部都有一个反相放大器XTAL1、XTAL2分别为反相放大器输入和输出端,外接定时反馈元件以后就组成振荡器,产生时钟送至单片机内部的各个部件。

这样就构成了内部振荡方式外部振荡方式是把已有的时钟信号引入单片机内。

这种方式适合用来使单片机的时钟与外部信号一致。

本设计中没有也无需与外部时钟信号一致,所以我选择了内部振荡方式,由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。

晶振我选择了12MHz,相对于6MHz的晶振,整个系统

图3-2三端稳压元件7805电参数

的运行速度更快了。

电容器C1、C2起稳定振荡频率、快速起振的作用,电容值我选择了30pF。

内部振荡方式所得的时钟信号稳定性高。

时钟复位电路如图3-3

图3-3钟复位电路图

3.2.3复位电路的设计

复位电路的作用:

在上电或复位过程中,控制CPU的复位状态:

这段时间内让CPU保持复位状态,而不是一上电或刚复位完毕就工作,防止CPU发出错误的指令、执行错误操作,也可以提高电磁兼容性能。

无论用户使用哪种类型的单片机,总要涉及到单片机复位电路的设计。

而单片机复位电路设计的好坏,直接影响到整个系统工作的可靠性。

许多用户在设计完单片机系统,并在实验室调试成功后,在现场却出现了“死机”、“程序走飞”等现象,这主要是单片机的复位电路设计不可靠引起的。

基本的复位方式:

单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。

89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。

当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。

单片机系统的复位方式有:

手动按钮复位和上电复位。

(1)手动按钮复位

手动按钮复位需要人为在复位输入端RST上加入高电平。

一般采用的办法是在RST端和正电源Vcc之间接一个按钮。

当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。

手动按钮复位的电路如图3-4所示。

由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。

求。

       

图3-4手动复位电路图3-5上电复位电路图

(2)上电复位

AT89C51的上电复位电路如图3-5示,只要在RST复位输入引脚上接一电容至Vcc端,下接一个电阻到地即可。

对于CMOS型单片机,由于在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至1µF。

上电复位的工作过程是在加电时,复位电路通过电容加给RST端一个短暂的高电平信号,此高电平信号随着Vcc对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。

为了保证系统能够可靠地复位,RST端的高电平信号必须维持足够长的时间。

上电时,Vcc的上升时间约为10ms,而振荡器的起振时间取决于振荡频率,如晶振频率为10MHz,起振时间为1ms;晶振频率为1MHz,起振时间则为10ms。

在图3-4的复位电路中,当Vcc掉电时,必然会使RST端电压迅速下降到0V以下,但是,由于内部电路的限制作用,这个负电压将不会对器件产生损害。

另外,在复位期间,端口引脚处于随机状态,复位后,系统将端口置为全“l”态。

如果系统在上电时得不到有效的复位,则程序计数器PC将得不到一个合适的初值,因此,CPU可能会从一个未被定义的位置开始执行程序。

当时钟频率选用6MHz时,C取22uF,Rs取200欧,Rk取1千欧。

在实际的应用系统设计中,若有外部扩展的I/O接口电路也需初始复位,如果它们的复位端和MCS-51的复位端相连,复位电路中的R、C参数要受到影响,这时复位电路中的R、C参数要统一考虑,以保证可靠的复位。

如果单片机MCS-51与外围I/O接口电路的复位电路和复位时间不完全一致,使单片机初始化程序不能正常进行,外围I/O接口电路的复位也可以不和MCS-51复位端相连,仅采用独立的上电复位电路。

若RC上电复位电路接施密特电路输入端,施密特电路输出接MCS-51和外围电路复位端,则能使系统可靠地同步复位,一般来说,单片机的复位速度比外围I/O接口电路快一点,为保证系统可靠复位在初始化程序中应该安排一定的复位延迟时间。

本设计采用上电复位电路。

(3)看门狗型复位电路

看门狗型复位电路主要利用CPU正常工作时,定时复位计数器,使得计数器的值不超过某一值;当CPU不能正常工作时,由于计数器不能被复位,因此其计数会超过某一值,从而产生复位脉冲,使得CPU恢复正常工作状态。

此复位电路的可靠性主要取决于软件设计,即将定时向复位电路发出脉冲的程序放在何处。

一般设计,将此段程序放在定时器中断服务子程序中。

然而,有时这种设计仍然会引起程序走飞或工作不正常。

原因主要是:

当程序“走飞”发生时定时器初始化以及开中断之后的话,这种“走飞”情况就有可能不能由Watchdog复位电路校正回来。

因为定时器中断一真在产生,即使程序不正常,Watchdog也能被正常复位。

为此提出定时器加预设的设计方法。

即在初始化时压入堆栈一个地址,在此地址内执行的是一条关中断和一条死循环语句。

在所有不被程序代码占用的地址尽可能地用子程序返回指令RET代替。

这样,当程序走飞后,其进入陷阱的可能性将大大增加。

而一旦进入陷阱,定时器停止工作并且关闭中断,从而使Watchdog复位电路会产生一个复位脉冲将CPU复位。

当然这种技术用于实时性较强的控制或处理软件中有一定的困难。

3.3显示电路的设计

显示电路原理图如图3-6示。

图3-6示电路原理图

3.3.1数码管简介

数码管按段数分为七段数

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1