基于AT89C52单片机的电子秒表设计.docx
- 文档编号:7080676
- 上传时间:2023-01-17
- 格式:DOCX
- 页数:25
- 大小:282.07KB
基于AT89C52单片机的电子秒表设计.docx
《基于AT89C52单片机的电子秒表设计.docx》由会员分享,可在线阅读,更多相关《基于AT89C52单片机的电子秒表设计.docx(25页珍藏版)》请在冰豆网上搜索。
基于AT89C52单片机的电子秒表设计
摘要
随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统控制检测技术不断更新。
单片机是指集成在一个芯片上的微型计算机,主要包括CPU、随机存储器、只读存储器、基本输入/输出接口电路、定时器/计数器等部件。
本文设计的主要思路是采用ATMEL公司的AT89C52单片机作为中央处理器,应用LED数码显示器,设计具有计时和倒计时功能的电子秒表。
论文概述中主要介绍了本次课题的课题背景、研究意义以及要求完成的任务。
正文中首先介绍了系统硬件的设计思路以及工作原理,其次简单阐述了程序的流程、程序各功能模块的分析和实现过程,最后简单总结了本次设计的难点、关键点以及收获的经验。
关键词:
单片机,LED数码管显示器,AT89C52
ABSTRACT
Withcomputerpenetrationinthesocialsphere,SCMapplicationsareconstantlydeepening,andpromotethetraditionalcontroldetectiontechnologyupdate.Singlechipisintegratedonachipmicrocomputer,includingCPU,randomaccessmemory,aread-onlymemory,input/outputinterfacecircuit,timer/counterandotherparts.
InthispaperthemaintrainofthoughtofthedesignistheuseofAT89C52microcontrollerasthecentralprocessor,theapplicationofLEDdigitaldisplay,designhasatimerandcountdownfunctionelectronicstopwatch.Thepapersummarizesmainlyintroducedthistopicresearchbackground,researchsignificanceandtasks.Thetextfirstlyintroducesthesystemhardwaredesignandworkingprinciple,thenbrieflydiscussestheprocessflow,processofeachfunctionmoduleoftheanalysisandtherealizationoftheprocess,finallysummarizesthedesigndifficulty,keypointsandgainexperience.
Keywords:
Single-ChipMicrocomputer,LEDfigurestubedisplay,AT89C52
1绪论
1.1引言
单片机自问世以来,性能不断提高和完善,而且具有集成度高、功能强、速度快、体积小、功耗低、使用方便、价格低廉等特点,因此在工业控制、智能仪表、数据采集和处理、通信系统、网络系统、汽车工业、国防工业、家用电器等领域的应用日益广泛,并且正逐步取代现有的多片微机应用系统,单片机的潜力越来越被人们所重视。
基于单片机的定时与控制装置在诸多行业都有广泛的应用,本文以AT89C52为主控制芯片,应用LED显示器设计电子秒表,其主要功能有单计时、连续记8个的计时、设定初值的倒计时。
本文是一个单片机的最小系统设计,对于各种复杂系统的开发,有一定的引导作用。
1.2单片机及其发展
集成在一个芯片上的微型计算机即为单片机,也就是把组成微型计算机的各种功能部件,像CPU、只读存储器ROM(Readonlymemory)、随机存储器RAM(Randomaccessmemory)、基本输入/输出接口电路、定时器/计数器等部件集成在一块芯片上,构成一个较为完整的微型计算机,从而实现一些微型计算机所具有的功能[2]。
1.2.1单片机的产生与发展
(1)单片机的产生
电子计算机的发展经历了四个阶段,分别是电子管、晶体管、集成电路大(超大)规模集成电路阶段,即通常所说的第一代,第二代,第三代和第四代计算机。
现在广泛使用的微型计算机属于第四代计算机,是大规模集成电路技术发展的产物,而单片机则是众多微型计算机中的一个分支[3]。
从1971年微型计算机问世以来,由于实际应用的需要,微型计算机向着两个不同的方向发展;一个是向高速度,大容量,高性能的高档微机方向发展;而另一个则是向稳定可靠、体积小和价格廉价的单片机方向发展。
但是两者在原理和技术上是紧密联系的[4]。
(2)单片机的发展
继1971年微处理器的研制成功不久,就出现了单片的微型计算机即单片机,但最早出现的单片机是一位的。
随后在1976年Intel公司推出了8位的MCS-48系列单片机,采用将8位CPU、8位并行I/O口、8位定时/计数器、RAM、ROM等集成于一块芯片上的单片结构,能够满足一般工业控制和智能化仪器、仪表等的需求,赢得了广泛的市场,为单片机的发展奠定了坚实的基础[6]。
到80年代末世界各地已相继研制出大约50个系列300多个品种的单片机产品,其中包括Rockwell公司的6501,6502,Motorola公司的6801,6802,Zilog公司的Z-8系列等。
此外,日本的日立公司,NEC公司等也相继推出了各自的单片机品种。
尽管目前市面上单片机的种类很多,但我国使用最为普遍的是Intel公司的MCS-51单片机系列。
20世纪80年代初,MCS-51系列在MCS-48的基础上迅速发展起来,尽管它是8位的单片机,但是相对于MCS-48,它的功能有很大的改善。
此外,它还具有兼容性强,品种全,软硬件资料丰富等特点,因此应用非常广泛,成为非常重要的单片机品种。
直到现在,单片机的主流系列仍然包含MCS-51系列。
1983年Intel公司推出的MCS-96系列单片机是16位单片机中的典型代表,它是在8位单片机基础上发展而来的。
MCS-96相对于MCS-51,不但字长增加一倍,而且在其他性能方面也有很大的提高,特别是芯片内还增加了一个10位数模转换器,使其具有数模转换的功能[7]。
纵观单片机近些年来的发展历程,今后单片机将在集成度、功能、性能、速度、功耗、价格、可靠性、应用领域等全方位地向更高水平发展。
尽管现在已经有了32位单片机,但单片机位数不一定会继续增加,并且目前32位单片机使用的并不多。
由此可以推测,今后的单片机将具有更强的功能,更高的可靠性,更高的集成度,更低的功耗、更简单的外围电路等特点。
除此之外,单片机的另一个发展方向是专业化,针对单一用途的专用单片机将会越来越多。
1.2.2单片机的分类
根据控制应用的需要,可以将单片机分成为通用型和专用型两种类型。
通用型单片机是一种基本芯片,内部资源比较丰富,性能全面且适用性强,能覆盖多种应用需要。
用户可以根据需要设计成各种不同应用的控制系统,即通用单片机有一个在设计的过程,通过用户的进一步设计,才能组建成一个以通用单片机芯片为核心再配以其它外围电路的应用控制系统。
然而在单片机的控制应用中,有许多时候是专门针对某个特定产品的,例如电度表和IC卡读写器上的单片机等。
这种应用的最大特点是针对性强而且数量巨大,为此厂家常与芯片制造商合作,设计和生产专用的单片机芯片。
由于专用单片机芯片是针对一种产品或一种控制应用而专门设计的,设计时已经对系统结构的最简化,软硬件资源利用的最优化[8]。
1.2.3单片机应用领域
由于单片机具有显著的有点,它已经成为科技领域的有力工具,人们生活的得力助手,其应用遍及各个领域,主要体现在一下几个方面:
(1)测控系统中的应用
测控系统特别是工业控制系统的工作环境恶劣,各种干扰也强,而且往往要求实时控制,故要求控制系统工作稳定、可靠、抗干扰能力强。
由单片机的特点可以看出,单片机很适合用于测控领域。
例如,炉温控制等[2]。
(2)智能仪表中的应用
用单片机制作的测量、控制仪表,能使仪表向数字化、智能化、多功能化发展,并使检测、处理、控制等功能一体化,使仪表重量大大减轻,便于携带和使用,同时降低了成本,提高了性价比。
如智能转速表、计时器等。
(3)家用电器方面
当前,不断提高其智能化程度是家用电器产品的一个重要发展趋势,而单片机的参与是进一步提高家电智能化的需要,因此许多生产厂家经常标榜“电脑控制”以提高产品的档次,例如微波炉、空调机、洗衣机、电视机和热水器等,这里厂家所说的“电脑”实际上就是单片机。
智能化家用电器将给我们带来更大的舒适和方便,进一步改善我们的生活质量。
(4)在智能计算机外设中的应用
在计算机应用系统中,出通用外部设备外,还有许多用于外部通信、数据采集、驱动控制等接口。
采用单片机专门对接口进行控制盒管理,则主机和单片机就能并行工作,这不仅大大提高了系统的运算速度,而且单片机还可以对接口信息进行预处理,以减少主机和接口之间的通信密度、提高接口控制管理的水平。
如绘图仪控制器、打印机的控制器等。
1.2.4单片机的生产厂家和型号
Intel(美国英特尔)公司:
MCS-48,MCS-51系列;
Microchip(美国微晶)公司:
PICI6XX,PIC54CXX系列;
Motorola(美国摩托罗拉)公司:
6801系列和6805系列;
Rockwell(美国洛克威尔)公司:
6500/1系列;
NS(美国国家半导体)公司:
NS8070;
RCA(美国无线电)公司:
CDP1800系列;
Panasonic(日本松下)公司:
MN101C系列;
NEC(日本电气)公司:
Ucom87,uPD7800系列;
Hitachi(日本日立)公司:
HD6301,HD6305,HD63L05系列;
ATMEL公司:
AT89C51系列;
PHILIPS:
87LPC系列。
1.3LED显示器概述
1.3.1LED显示器的结构及分类
发光二极管芯片的适当连接和适当的光学结构,可构成发光显示器的发光段和发光点,由这些发光段或发光点可以组成数码管、符号管、米字管、矩阵管等。
通常把数码管、符号管、米字管共称为笔画显示器;而把笔画显示器和矩阵管统称为字符显示器[1]。
按照各发光段的连接方式分,数码管可分为共阳极和共阴极两种。
所谓的共阳方式就是笔画显示器各段发光管的阳极是公共的,而阴极是互相隔离的。
所谓的共阴方式就是笔画显示器各段发光管的阴极是公共的,而阳极是互相隔离的。
按发光颜色分,发光二极管可分为橙色、红色、蓝色、绿色(又细分黄绿、标准绿和纯绿)等。
另外,有的发光管中包含两种或两种以上的颜色的芯片。
根据出光处掺或不掺散射剂、有色还是无色,上述各种颜色的发光二极管还可以分成有色散射和无色散射、有色透明和无色透明四种类型。
散射型发光二极管适用于做指示灯。
除上述分类方法外,还有按芯片材料分类及按功能分类的方法。
1.3.2LED显示的原理
如图所示为七段LED数码管的原理图,通过该图可以很容易的看出共阳极和共阴极的七段LED管的工作原理的不同点。
对于共阴极的数码管,所有发光二极管的阴极共连后接地,而阳极引出脚用于控制LED是否发亮。
若阳极引出脚接地,则LED被熄灭;若阳极引脚接高电平,则LED被点亮。
图1-1LED原理图
共阳极的LED正好相反,所有发光二极管的阳极共连后接高电平,而阳极引出脚用于控制LED是否点亮。
若阴极引脚接高电平,则LED被熄灭;若阴极引脚接地,则LED被点亮。
单片机对LED管的显示可以分为静态和动态两种。
静态显示的特点是各LED管能同时稳定地显示各自字符;动态显示是指各LED轮流一遍一遍显示各自字符,但由于显示的切换较快,在人的视觉看来是各LED管同时显示不同字符。
1.3.3LED数码显示器的接口方法与电路
(1)LED数码显示的接口方法。
单片机与LED数码显示器有以硬件为主和以软件为主的两种接口方法。
以硬件为主的接口方法,这种接口方法的电路如图所示。
图1-2LED接口方法电路图
(2)LED数码显示器的接口电路。
PB0实际使用的LED数码显示器位数较多。
为降低成本,大部分以软件为主的接口方法对于多位LED数码管显示器,通常采用动态扫描显示方法,即逐个循环点亮各位显示器。
这样虽然在任一时期只有一位显示器被点亮,但是由于人眼有视觉残留效应,看起来与全部显示持续点亮的效果基本一样(在亮度上要有差别)。
1.3.4驱动器
LED显示是单片机控制产品中常见的应用。
使用LED模块,这种模块中带有LED显示管和LED驱动电路,用起来较方便。
一般用户直接采用单片机+LED驱动器+LED显示管的方式,一种经常使用的LED驱动器8550,它作为共阳数码管的驱动器,而共阴数码管的驱动器则是A1015,它们都是三极管。
1.4论文章节安排
本文以单片机的研发工程项目作为应用背景,对应用单片机设计电子秒表技术进行了研究。
全文共分为五章,各章的主要内容如下:
第一章简明扼要地介绍了单片机、LED特点、分类及应用;
第二章扼要介绍了系统功能,各个按键的作用;
第三章对电子秒表系统的总方案进行了研究,给出了电子秒表硬件的实现方法及设计思路;
第四章列出了各模块流程图,完成控制系统中的软件设定,给出了程序源代码;
第五章论文总结,设计中的重要问题,以及个人感想。
2系统功能概述
毕业设计总体方案是以AT89C52单片机作为控制核心,设计具有计时、倒计时等功能的电子秒表。
一个完整的电子秒表电路就是一个单片机的最小系统,主要由键盘输入电路、单片机、晶振、复位电路和LED显示电路构成。
本毕业设计中电子秒表可以实现以下的功能:
(1)用开关控制两种计时模式的选择。
分别是单计时模式和连续计8个的计时模式。
(2)用开关控制电子秒表的启动、停止、复位,七段数码管的高2位显示秒表的秒值,低2位显示秒表的百分秒值。
(3)可实现设定初值的倒计时功能。
其中涉及了三种初值调整方式,分别是增1(减1)、连续增(连续减)和快速增(快速减)。
上述的功能主要是为了讲述单片机定时器、键盘和LED显示器的使用方法。
本次毕业设计中所涉及的内容主要包括:
(1)定时器的使用:
本设计通过秒表的计时详细说明了定时器的使用方法。
(2)键盘的使用:
本设计通过秒表的启动、停止、复位、计时模式的选择,以及倒计时初值的设定,讲述了独立式键盘的设计方法和关键技术。
(3)LED的使用:
本设计比较详细的介绍了LED的原理和方法,并对其编程方法做了一般性的总结。
外部指令对单片机的输入一般是通过按键、键盘等输入器件来实现的,本次毕业设计是利用键盘来实现秒表的启停控制及功能选择:
(1)按键K1。
按键K1有两个功能,第一个是在单计时状态下控制秒表的启停;第二个是在倒计时初值设定的时候用于增加初值。
(2)按键K2。
按键K2同样有两个功能,第一个是在连续计8个的计时模式下控制秒表的启停;第二个是在倒计时初值设定的时候用于减少初值。
(3)按键K3。
按键K3的功能是设定秒表的工作方式。
在默认的状态下,秒表始终处于准备计时的状态,按下K3后秒表进入倒计时的状态,这时通过按键K1和K2可以进行倒计时初值的调整,再按下K3则进入倒计时。
(4)按键RESET。
起程序复位作用[1]。
3系统硬件设计
3.1中央处理器设计
3.1.1单片机选择
在微型单片机选择上,我们应该考虑存储器容量,时钟频率,I/O口线等基本参数。
对于本设计,由于电子秒表系统在数据的处理和存储方面要求不高,所以选取片内带RAM和ROM的单片机即可,在本设计中选取的是ATMEL公司的AT89C52单片机。
3.1.2AT89C52单片机的介绍
在众多的单片机系列中,AT89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系列可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
AT89C52具有以下标准功能:
8K字节Flash,256字节RAM,32位I/O口线,3个16位定时器/计数器,一个响亮2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89C52可降至0HZ静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
AT89C52单片机的内部结构与MCS-51系列单片机的构成基本相同。
CPU是由运算器和控制器所构成的。
运算器主要用来对操作数进行算术、逻辑运算和位操作的。
控制器是单片机的指挥控制部件,主要任务的识别指令,并根据指令的性质控制单片机各功能部件,从而保证单片机各部分能自动而协调地工作。
AT89C52单片机的指令系统和引脚功能与MCS-51的完全兼容。
AT89C52的引脚排列如图3-1所示。
图3-1AT89C52引脚排列图
3.2系统电路设计
如图3-2所示为单片机电子秒表的电路图,下面对其中某些部分做出解释。
图3-2电子秒表原理图
3.2.1复位电路
复位电路在单片机系统中是必不可少的。
所谓的复位就是讲单片机重新启动,这是单片机内部的都有寄存器都回到初始状态。
本设计电路中对应的复位电路如图3-3所示。
图3-3复位电路图
对于AT89C52单片机来说,它是高电平复位,也就是说只要将单片机的RESET引脚接高电平并保持一定的时间就可以实现单片机的复位(而对于一些低电平复位的单片机来说就刚好相反,要使其RESET引脚置为低电平并保持一定时间以实现单片机的复位)。
从上面的电路可以看出实现的是上电复位和按键复位两个复位功能。
上电的一瞬间,单片机的RESET引脚接到高电平,同时电容C1开始充电,经过一定的时间后电容充电饱和,10K的下拉电阻把RESET引脚拉回到低电平状态,实现了单片机的复位。
同样道理,在单片机工作的时候按下复位按钮,单片机的RESET引脚接到高电平,电容C1马上放电完毕;松开该按钮后电容C1开始充电,经过一定的时间后电容充电饱和,10K的下拉电阻把RESET引脚拉回到低电平状态,实现了单片机的复位[9]。
3.2.2电路元件
AT89C52:
单片机,控制LED显示。
LED1~LED4:
七段码LED,用于显示秒表数据。
SS9012:
由于数码管需要较大电流驱动,单靠AT89C52的I/O口直接驱动效果不好,需要加放大电路。
本设计中,所用的数码管为共阴极的,所以三极管选用了SS9012.NPN型三极管。
按键K1:
在正常情况下,用于控制单一计时模式下秒表的启动、停止。
在倒计时初值设定的情况下为倒计时初值的增加按键,按一下K1,倒计时初值增加1;按住K1不放,倒计时初值连续增加;快速连按两下K1然后不放,则倒计时初值快速增加,增加的速度是连续增加的10倍。
按键K2:
在正常情况下,用于控制连续计时8个的计时模式下秒表的启动、停止。
在倒计时初值设定的情况下为倒计时初值的减少按键,按一下K2,倒计时初值减少1;按住K2不放,倒计时初值连续减少;快速连按两下K2然后不放,则倒计时初值快速减少,减少的速度是连续减少的10倍。
按键K3:
用于秒表的功能的选择,在默认的情况下,为秒表的计时准备模式;按下K3后秒表进入倒计时的状态,这是通过按键K1和K2可以进行倒计时初值的调整,再按下K3则进入倒计时。
按键RESET:
在复位电路中,对于单片机起复位作用。
LED5:
用于显示单片机的工作状态,在准备计时的时候,LED5点亮;在计时的时候,LED5闪烁;在倒计时初值设定和倒计时工作的时候,LED5熄灭。
LED6:
用于显示单片机的工作状态,在准备计时和计时工作的时候,LED6熄灭;在倒计时初值设定的时候,LED6点亮;在倒计时工作的时候,LED6闪烁[1]。
3.2.3I/O口线连接
P1.0~P1.7:
与数码管的各个位相连,用于传送数码管的段位吗。
P3.0~P3.3:
与数码管LED1~LED4相连,通过单片机的P3.0~P3.3可以控制LED的显示。
P2.1:
和按钮K1相连,用于决定单一计时模式下的秒表启动、停止和倒计时初值的增加。
P2.0:
和按钮K2相连,用于决定连续计8个的计时模式下秒表启动、停止和倒计时初值的减少。
P2.2:
和按钮K3相连,用于单片机工作模式的选择。
P2.6:
和LED6相连,用于显示单片机的工作状态。
P2.7:
和LED5相连,用于显示单片机的工作状态。
4系统软件设计
系统硬件设计好之后,接下来就要进行软件设计。
电子秒表的软件设计主要有三个方面:
第一是利用定时器来完成秒表的定时周期;第二是利用定时中断来实现键盘的扫描,确定单片机的工作状态;第三是利用单片机控制LED的输出显示。
4.1程序功能及主要变量的说明
4.1.1程序功能
电子秒表程序主要完成如下功能:
(1)两种计时模式的启动、停止、复位功能的秒表。
(2)可设定初值的倒计时定时器。
4.1.2主要变量说明
程序中用到的关键变量说明如下。
表4-1主要变量定义
变量
说明
m
整型变量,用于存储要显示的数
ms
字符型变量,用于10ms的累加
LED0~LED3
整型变量,用于存储要显示的各个位的数字
start
位变量,用于控制秒表单一计时模式的计时开始
stop
位变量,用于控制秒表单一计时模式的计时停止
eight_start
位变量,用于控制秒表连续计时8次模式的计时开始
eight_stop
位变量,用于控制秒表连续计时8次模式的计时停止
count_down
位变量,用于控制倒计时开始
scankey
位变量,用于控制键盘扫描
cheak
位变量,按键的消抖标志位
keydown
位变量,K1的按下标志位
K2_keydown
位变量,K2的按下标志位
K3_keydown
位变量,K3的按下标志位
K3_keyup
位变量,K3的弹起标志
mm
字符型变量,用于0.2秒的累加
add
位变量,倒计时初值加1标志位
sub
位变量,倒计时初值减1标志位
bit_add1
位变量,K1完成一次按键动作的标志位
bit_sub
位变量,K2完成一次按键动作的标志位
fast_add
位变量,倒计时初值连续增标志位
double_key
位变量,倒计时初值快速增标志位
fast_sub
位变量,倒计时初值连续减标志位
double_sub
位变量,倒计时初值快速减标志位
tab[8]
整型变量,存储连续计时8次模式的8的时间值
4.2程序流程图
主程序完成的工作是检测各个标志位的状态,以确定单片机的工作情况。
键盘查询和数据显示的部分在定时中段服务子程序中完成。
由于程序较大,所以将程序的各个功能模块的流程图分别给出。
4.2.1计时功能流程图
图4-1计时功能流程图
4.2.2倒计时初值设定流程图
图4-2倒计时初值增加流程图
图4-3倒计时初值减少流程图
4.2.3倒计时功能流程图
图4-4倒计时开始流程图
4.3按键消抖介绍
按键消抖作为本设
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 AT89C52 单片机 电子 秒表 设计