基于单片机的简易计时器设计资料.docx
- 文档编号:13193964
- 上传时间:2023-06-11
- 格式:DOCX
- 页数:28
- 大小:400.76KB
基于单片机的简易计时器设计资料.docx
《基于单片机的简易计时器设计资料.docx》由会员分享,可在线阅读,更多相关《基于单片机的简易计时器设计资料.docx(28页珍藏版)》请在冰点文库上搜索。
基于单片机的简易计时器设计资料
摘要:
单片机自70年代问世以来得到蓬勃发展,目前单片机功能正日渐完善:
单片机集成越来越多资源,内部储存资源日益丰富,用户不需要扩充资源就可以完成项目开发,不仅是开发简单,产品小巧美观,同时抗干扰能力强,系统也更加稳定,使它更适合工业控制领域,具有更广阔的市场前景;提供在线编程能力,加速了产品的开发进程,为企业产品上市赢得了宝贵时间。
本设计通过STC89C51单片机以及单片机最小系统和三极管驱动以及外围的按键和数码管显示等部件,设计一个基于单片机的简易计时器。
设计通过四位一体共阳极数码管显示,并能通过按键对秒进行设置。
关键词:
STC89C51单片机,驱动,四位一体数码管
Abstract:
SCMbeboomingsincesincethe70s,MCUfunctionsareincreasinglyperfectatpresent:
singlechipmicrocomputerintegratedmoreandmoreresources,internalstorageresourceincreasinglyrich,usersdonotneedtoexpandresourcescancompletetheprojectdevelopment,isnotonlythedevelopmentofsimple,smallbeautifulproducts,atthesametime,stronganti-jammingcapability,systemismorestable,makeitmoresuitableforindustrialcontrolfield,hasabroadmarketprospect;Provideonlineprogrammingability,speededuptheprocessofproductdevelopment,productfortheenterprisetowintheprecioustime.ThisdesignandtriodedrivenbySTC89C51microcontrollerandthesinglechipmicrocomputerminimumsystemandperipheralkeysanddigitaltubedisplaycomponents,designasimpletimerbasedonsinglechipmicrocomputer.Designthroughthefourdigitaltubedisplay,atotalofanode,andcanthroughthebuttontosettheseconds.
Keywords:
STC89C51microcontroller,drive,Fourdigitaltube
引言
时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。
怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?
这就要求人们不断设计出新型时钟。
现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。
1、时间被认为是最宝贵的资源,为了对时间有更深刻的了解,同时也在电子方面有更深刻的认识,通过学习,本次设计主要介绍用单片机内部的定时/计数器来实现电子秒表的方法,本设计由单片机STC89C51芯片和LED数码管为核心,辅以必要的电路,构成了一个单片机电子秒表。
相信它会越来越深入地浸透到人们的生活中,并且将在一定程度上影响人们对生活的理解和诠释。
用单片机制作电子产品也会越来越多,也是众多领域实施编程开发不可缺少的一部分,这将必然成为一种趋势。
为更多的了解单片机的原理和应用,故做此设计来进行巩固。
1.设计任务及基本要求
设计任务:
掌握单片机程序设计、调试和应用电路设计、分析及调试检测。
基本要求:
设计一按键控制数码管显示的计时器,能实现正计开始、暂停和清零等功能。
2.系统基本方案选择与论证
2.1单片机选择
方案一:
采用STC系列芯片作为硬件核心。
STC系列内部具有8KBROM存储空间,512字节数据存储空间,带有2K字节的EEPROM存储空间,与MCS-51系列单片机完全兼容,STC系列可以通过串口下载。
方案二:
采用AT系列。
AT系列片内具有8K字节程序存储空间,256字节的数据存储空间没有EEPROM存储空间,也与MCS-51系列单片机完全兼容,具有在线编程可擦除技术。
两种单片机都完全能够满足设计需要,STC系列相对AT系列价格便宜,且抗干扰能力强。
考虑到成本因素,因此选用STC系列。
2.2显示模块选择方案和论证:
方案一:
采用点阵式数码管显示。
点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且成本也相对较高,所以不用此种作为显示。
方案二:
采用LCD液晶显示屏。
液晶显示屏的显示功能强大,可显示大量文字,显示多样,清晰可见,但价格昂贵,所以也不用了LCD数码管作为显示。
方案三:
采用LED数码管动态扫描。
LED数码管价格便宜,对于显示数字最合适,功耗虽然较大,但足以完成显示,所以采用此种方案。
3.主要元件介绍
3.1STC89C51介绍
3.1.1STC89C51主要功能及DIP封装
STC89C51是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能:
8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口。
另外STC89X51可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35Mhz,6T/12T可选。
STC89C51主要功能如表1所示,其DIP封装如图3.1所示
表3.1STC89C51主要功能
主要功能特性
兼容MCS51指令系统
4K可反复擦写FlashROM
32个双向I/O口
256x8bit内部RAM
3个16位可编程定时/计数器中断
时钟频率0-24MHz
2个串行中断
可编程UART串行通道
2个外部中断源
共6个中断源
2个读写中断口线
3级加密位
低功耗空闲和掉电模式
软件设置睡眠和唤醒功能
图3.1STC89C51DIP封装图
3.1.2STC89C51引脚介绍
①主电源引脚(2根)
VCC(Pin40):
电源输入,接+5V电源
GND(Pin20):
接地线
②外接晶振引脚(2根)
XTAL1(Pin19):
片内振荡电路的输入端
XTAL2(Pin20):
片内振荡电路的输出端
③控制引脚(4根)
RST/VPP(Pin9):
复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。
ALE/PROG(Pin30):
地址锁存允许信号
PSEN(Pin29):
外部存储器读选通信号
EA/VPP(Pin31):
程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。
④可编程输入/输出引脚(32根)
STC89C51单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。
P0口(Pin39~Pin32):
8位双向I/O口线,名称为P0.0~P0.7
P1口(Pin1~Pin8):
8位准双向I/O口线,名称为P1.0~P1.7
P2口(Pin21~Pin28):
8位准双向I/O口线,名称为P2.0~P2.7
P3口(Pin10~Pin17):
8位准双向I/O口线,名称为P3.0~P3.7
最小系统包括单片机及其所需的必要的电源、时钟、复位等部件,能使单片机始终处于正常的运行状态。
电源、时钟等电路是使单片机能运行的必备条件,可以将最小系统作为应用系统的核心部分,通过对其进行存储器扩展、A/D扩展等,使单片机完成较复杂的功能。
STC89C51是片内有ROM/EPROM的单片机,因此,这种芯片构成的最小系统简单﹑可靠。
用STC89C52单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,结构如图2所示,由于集成度的限制,最小应用系统只能用作一些小型的控制单元。
图3.2单片机最小系统原理框图
(1)时钟电路
STC89C51单片机的时钟信号通常有两种方式产生:
一是内部时钟方式,二是外部时钟方式。
内部时钟方式如图3所示。
在STC89C51单片机内部有一振荡电路,只要在单片机的XTAL1(18)和XTAL2(19)引脚外接石英晶体(简称晶振),就构成了自激振荡器并在单片机内部产生时钟脉冲信号。
图中电容C1和C2的作用是稳定频率和快速起振,电容值在5~30pF,典型值为30pF。
晶振CYS的振荡频率范围在1.2~12MHz间选择,典型值为12MHz和6MHz。
图3.3STC89C51内部时钟电路
(2)复位电路
当在STC89C51单片机的RST引脚引入高电平并保持2个机器周期时,单片机内部就执行复位操作(若该引脚持续保持高电平,单片机就处于循环复位状态)。
复位电路通常采用上电自动复位和按钮复位两种方式。
最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充放电来实现的。
只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。
除了上电复位外,有时还需要按键手动复位。
本设计就是用的按键手动复位。
按键手动复位有电平方式和脉冲方式两种。
其中电平复位是通过RST(9)端与电源Vcc接通而实现的。
按键手动复位电路见图4。
时钟频率用11.0592MHZ时C取10uF,R取10kΩ。
图3.4STC89C51复位电路
(3)STC89C51中断技术概述
中断技术主要用于实时监测与控制,要求单片机能及时地响应中断请求源提出的服务请求,并作出快速响应、及时处理。
这是由片内的中断系统来实现的。
当中断请求源发出中断请求时,如果中断请求被允许,单片机暂时中止当前正在执行的主程序,转到中断服务处理程序处理中断服务请求。
中断服务处理程序处理完中断服务请求后,再回到原来被中止的程序之处(断点),继续执行被中断的主程序。
图5为整个中断响应和处理过程。
图3.5中断响应和处理过程
如果单片机没有中断系统,单片机的大量时间可能会浪费在查询是否有服务请求发生的定时查询操作上。
采用中断技术完全消除了单片机在查询方式中的等待现象,大大地提高了单片机的工作效率和实时性。
3.2数码管介绍
3.2.1四位一体数码管概述
LED数码管(LEDSegmentDisplays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。
数码管分为动态显示和静态显示驱动两种,静态驱动也称直流驱动。
静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。
静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,而一个STC89C51的I/O端口只有32个,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。
数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。
通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。
在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。
3.2.2四位一体数码管引脚图
光阳数码管共阳端为每一位的led阳极都接在一起。
引脚图如图6;
图3.6四位一体数码管引脚图
3.3自锁开关说明
自锁开关电路中起到电源的开关作用,常开的其中一脚接DC电源插口电源脚,常开的另一脚接电路的VCC
图3.7自锁开关原理图图3.8自锁开关硬件图
3.4上拉电阻介绍
其实排阻就是由8个电阻组成的,其中一端全部接在一起,103为8个10K电阻,102为8个1K电阻,他们在电路中起到“上拉”的作用,又称上拉电阻。
上拉就是将不确定的信号通过一个电阻嵌位在高电平,电阻同时起限流作用,下拉同理.上拉是对器件注入电流,下拉是输出电流,弱强只是上拉电阻的阻值不同,没有什么严格区分,对于非集电极(或漏极)开路输出型电路(如普通门电路)提升电流和电压的能力是有限的,上拉电阻的功能主要是为集电极开路输出型电路输出电流通道。
上拉,就是把电位拉高,比如拉到VCC.下拉,就是把电压拉低,拉到GND.一般就是刚上电的时候,端口电压不稳定,为了让他稳定为高或低,就会用到上拉或下拉电阻。
有些芯片内部集成了上拉电阻(如单片机的P1、2、3口),所以外部就不用上拉电阻了。
但是有一些开漏的(如单片机的P0口),外部必须加上拉电阻。
图3.9排组上拉电阻原理图
3.5三极管介绍
常见的三极管为9012、S8550、9013、s8050.单片机应用电路中三极管主要的作用就是开关作用。
其中9012与8550为PNP型三极管,可以通用,9013与8050为NPN型三极管,可以通用。
区别引脚:
三极管向着自己,引脚从左到右分别为ebc,原理图中有箭头的一端为e,与电阻相连的为b,另一个为c。
箭头向里指为PNP(9012或8550),箭头向外指为NPN(9013或8050)。
三极管的工作原理:
三极管是电流放大器件,有三个极,分别叫做集电极C,基极B,发射极E。
分成NPN和PNP两种。
下面仅以NPN三极管的共发射极放大电路为例来说明一下三极管放大电路的基本原理。
(1)电流放大
下面的分析仅对于NPN型硅三极管。
如上图所示,我们把从基极B流至发射极E的电流叫做基极电流Ib;把从集电极C流至发射极E的电流叫做集电极电流Ic。
这两个电流的方向都是流出发射极的,所以发射极E上就用了一个箭头来表示电流的方向。
三极管的放大作用就是:
集电极电流受基极电流的控制(假设电源能够提供给集电极足够大的电流的话),并且基极电流很小的变化,会引起集电极电流很大的变化,且变化满足一定的比例关系:
集电极电流的变化量是基极电流变化量的β倍,即电流变化被放大了β倍,所以我们把β叫做三极管的放大倍数(β一般远大于1,例如几十,几百)。
如果我们将一个变化的小信号加到基极跟发射极之间,这就会引起基极电流Ib的变化,Ib的变化被放大后,导致了Ic很大的变化。
如果集电极电流Ic是流过一个电阻R的,那么根据电压计算公式U=R*I可以算得,这电阻上电压就会发生很大的变化。
我们将这个电阻上的电压取出来,就得到了放大后的电压信号了。
(2)偏置电路
三极管在实际的放大电路中使用时,还需要加合适的偏置电路。
这有几个原因。
首先是由于三极管BE结的非线性(相当于一个二极管),基极电流必须在输入电压大到一定程度后才能产生(对于硅管,常取0.7V)。
当基极与发射极之间的电压小于0.7V时,基极电流就可以认为是0。
但实际中要放大的信号往往远比0.7V要小,如果不加偏置的话,这么小的信号就不足以引起基极电流的改变(因为小于0.7V时,基极电流都是0)。
如果我们事先在三极管的基极上加上一个合适的电流(叫做偏置电流,上图中那个电阻Rb就是用来提供这个电流的,所以它被叫做基极偏置电阻),那么当一个小信号跟这个偏置电流叠加在一起时,小信号就会导致基极电流的变化,而基极电流的变化,就会被放大并在集电极上输出。
另一个原因就是输出信号范围的要求,如果没有加偏置,那么只有对那些增加的信号放大,而对减小的信号无效(因为没有偏置时集电极电流为0,不能再减小了)。
而加上偏置,事先让集电极有一定的电流,当输入的基极电流变小时,集电极电流就可以减小;当输入的基极电流增大时,集电极电流就增大。
这样减小的信号和增大的信号都可以被放大了。
(3)开关作用
下面说说三极管的饱和情况。
像上面那样的图,因为受到电阻Rc的限制(Rc是固定值,那么最大电流为U/Rc,其中U为电源电压),集电极电流是不能无限增加下去的。
当基极电流的增大,不能使集电极电流继续增大时,三极管就进入了饱和状态。
一般判断三极管是否饱和的准则是:
Ib*β〉Ic。
进入饱和状态之后,三极管的集电极跟发射极之间的电压将很小,可以理解为一个开关闭合了。
这样我们就可以拿三极管来当作开关使用:
当基极电流为0时,三极管集电极电流为0(这叫做三极管截止),相当于开关断开;当基极电流很大,以至于三极管饱和时,相当于开关闭合。
如果三极管主要工作在截止和饱和状态,那么这样的三极管我们一般把它叫做开关管。
(4)工作状态
如果我们在上面这个图中,将电阻Rc换成一个灯泡,那么当基极电流为0时,集电极电流为0,灯泡灭。
如果基极电流比较大时(大于流过灯泡的电流除以三极管的放大倍数β),三极管就饱和,相当于开关闭合,灯泡就亮了。
由于控制电流只需要比灯泡电流的β分之一大一点就行了,所以就可以用一个小电流来控制一个大电流的通断。
如果基极电流从0慢慢增加,那么灯泡的亮度也会随着增加(在三极管未饱和之前)。
图3.10三极管引脚介绍图3.11PNP型原理图图3.12NPN型原理图
3.6按键介绍
单片机键盘有独立键盘和矩阵式键盘两种:
独立键盘每一个I/O口上只接一个按键,按键的另一端接电源或接地(一般接地),这种接法程序比较简单且系统更加稳定;而矩阵式键盘式接法程序比较复杂,但是占用的I/O少。
根据本设计的需要这里选用了独立式键盘接法。
独立式键盘的实现方法是利用单片机I/O口读取口的电平高低来判断是否有键按下。
将常开按键的一端接地,另一端接一个I/O口,程序开始时将此I/O口置于高电平,平时无键按下时I/O口保护高电平。
当有键按下时,此I/O口与地短路迫使I/O口为低电平。
按键释放后,单片机内部的上拉电阻使I/O口仍然保持高电平。
我们所要做的就是在程序中查寻此I/O口的电平状态就可以了解我们是否有按键动作了。
在用单片机对键盘处理的时候涉及到了一个重要的过程,那就是键盘的去抖动。
这里说的抖动是机械的抖动,是当键盘在未按到按下的临界区产生的电平不稳定正常现象,并不是我们在按键时通过注意可以避免的。
这种抖动一般10~200毫秒之间,这种不稳定电平的抖动时间对于人来说太快了,而对于时钟是微秒的单片机而言则是慢长的。
硬件去抖动就是用部分电路对抖动部分加之处理,软件去抖动不是去掉抖动,而是避抖动部分的时间,等键盘稳定了再对其处理。
所以这里选择了软件去抖动,实现法是先查寻按键当有低电平出现时立即延时10~200毫秒以避开抖动(经典值为20毫秒),延时结束后再读一次I/O口的值,这一次的值如果为1表示低电平的时间不到10~200毫秒,视为干扰信号。
当读出的值是0时则表示有按键按下,调用相应的处理程序。
硬件电路如图13所示:
图3.13键盘控制电路图
4.系统硬件设计
4.1电路设计框图
图4.1电路设计框图
4.2系统硬件概述
本设计通过STC89C51单片机以及单片机最小系统和三极管驱动以及外围的按键和数码管显示等部件,设计一个基于单片机的简易计时器。
设计通过四位一体共阳极数码管显示。
5.系统软件设计
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
下面详细介绍KeilC51开发系统各部分功能和使用。
Keil_c软件界面如图
图4.2Keil_c软件界面
Protel99SE是PORTEL公司在80年代末推出的EDA软件。
Protel99SE是应用于Windows9X/2000/NT操作系统下的EDA设计软件,采用设计库管理模式,可以网设计,具有很强的数据交换能力和开放性及3D模拟功能,是一个32位的设计软件,可以完成电路原理图设计,印制电路板设计和可编程逻辑器件设计等工作,可以设计32个信号层,16个电源--地层和16个机加工层。
Protel99SE软件的特点:
(1)可生成30多种格式的电气连接网络表;
(2)强大的全局编辑功能;
(3)在原理图中选择一级器件,PCB中同样的器件也将被选中;
(4)同时运行原理图和PCB,在打开的原理图和PCB图间允许双向交叉查找元器件、引脚、网络
(5)既可以进行正向注释元器件标号(由原理图到PCB),也可以进行反向注释(由PCB到原理图),以保持电气原理图和PCB在设计上的一致性;
(6)满足国际化设计要求(包括国标标题栏输出,GB4728国标库);*方便易用的数模混合仿真(兼容SPICE3f5);
(7)支持用CUPL语言和原理图设计PLD,生成标准的JED下载文件;*PCB可设计32个信号层,16个电源-地层和16个机加工层;
(8)强大的“规则驱动”设计环境,符合在线的和批处理的设计规则检查;
(9)智能覆铜功能,覆铀可以自动重铺;
(10)提供大量的工业化标准电路板做为设计模版;
Protel99SE的工作界面是一种标准的Windows界面,如图所示,包括:
标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。
Protel99SE软件界面如图17
图4.3Prtel99SE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 简易 计时器 设计 资料