预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共22页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

5定时器/计数器及其应用(3)定时的种类 软件定时:利用执行一个循环程序进行时间延迟。其特点是定时时间精确,不需外加硬件电路,但占用CPU时间。因此软件定时的时间不宜过长。 硬件定时:利用硬件电路实现定时。其特点是不占用CPU时间,通过改变电路元器件参数来调节定时,但使用不够灵活方便。对于时间较长的定时,常用硬件电路来实现。 可编程定时器:通过专用的定时器/计数器芯片实现。其特点是通过对系统时钟脉冲进行计数实现定时,定时时间可通过程序设定的方法改变,使用灵活方便。也可实现对外部脉冲的计数功能。MCS-51单片机内部有两个16位可编程的定时器/计数器,简称为T0和T1,均可作定时器用也可计数器,它们均是二进制加法计数器,当计数器计满回零时能自动产生溢出中断请求,表示定时时间已到或计数已终止。适用于定时控制、延时、外部计数和检测等。 计数器:对引脚T0(P3.4)和T1(P3.5.)输入的外部脉冲信号计数,当输入脉冲信号从1到0的负跳变时,计数器就自动加1。计数的最高频率一般为振荡频率的1/24。 定时器:对系统晶振振荡脉冲的12分频输出进行计数。 (1)定时器/计数器的结构 组成:16位加法计数器、工作方式寄存器TMOD和控制寄存器TCON。 T0:TL0(低8位)和TH0(高8位) T1:TL1(低8位)和TH1(高8位)8051单片机内部的定时器/计数器的结构如下图所示。(2)控制寄存器TCON(88H)M1,M0:工作方式选择位。 =00:13位定时器/计数器; =01:16位定时器/计数器(常用); =10:可自动重装的8位定时器/计数器(常用); =11:T0分为2个8位定时器/计数器;仅适用于T0。 C/:定时方式/计数方式选择位。 =1:选择计数器工作方式,对T0/T1引脚输入的外部事件的负脉冲计数; =0:选择定时器工作方式,对机器周期脉冲计数定时。 如下页图所示。GATE:门控位,定时器/计数器的启/停可由软件与硬件两者控制 =0:软件控制,只由TCON中的启/停控制位TR0/TR1控制定时器/计数器的启/停。 =1:硬件控制,由外部中断请求信号/和TCON中的启/停控制位TR0/TR1组合状态控制定时器/计数器的启/停。 其控制逻辑如下图所示。5.3定时器/计数器的工作方式4.工作方式3(M1M0=11,2个8位定时器/计数器,仅适用于T0) TL0:8位定时器/计数器,使用T0原有控制资源TR0和TF0,其功能和操作与方式0或方式1完全相同。 TH0:只能作为8位定时器,借用T1的控制位TR1和TF1,只能对片内机器周期脉冲计数。 在方式3模式下,定时器/计数器0可以构成两个定时器或者一个定时器和一个计数器。 T0方式3下的T1方式2,因定时初值能自动恢复,用作波特率发生器更为合适。定时器/计数器可按片内机器周期定时,也可对由T0/T1引脚输入一个负脉冲进行加法计数。在应用时,其工作方式和工作过程均可通过程序设定和控制,因此,定时器/计数器在工作前必须先对其进行初始化,计算和设置初值。 1.定时器T0/T1中断申请过程 (1)在已经开放T0/T1中断允许且已被启动的前提下,T0/T1加1计满溢出时TF0/TF1标志位自动置“1”; (2)CPU检测到TCON中TF0/TF1变“1”后,将产生指令:LCALL000BH/LCALL001BH执行中断服务程序; (3)TF0/TF1标志位由硬件自动清“0”,以备下次中断申请。2.定时器/计数器初始化的步骤3.计数器初值的计算4.定时器初值的计算5.定时器/计数器应用举例 [例题4]设一只发光二极管LED和8051的P1.0脚相连。当P1.0脚是低电平时,LED发亮;当P1.0脚是高电平时,LED不亮。编制程序用定时器来实现发光二极管LED的闪烁功能,设置LED每1s闪烁一次。已知单片机系统主频为12MHz。 解:定时器/计数器的最长的定时是65.536ms,无法实现1s的定时。可以采用软件计数器来进行设计。设计思想:定义一个软件计数器单元30H,先用定时器/计数器0做一个50ms的定时器,定时时间到了以后将软件计数器中的值加1,如果软件计数器计到了20,取反P1.0,并清掉软件计数器中的值,否则直接返回。则完成了20次定时中断才取反一次P1.0,因此定时时间就为20×50=1000ms=1s。 定时器/计数器0采用工作方式1,其初值为: 21650ms/1s=6553650000=15536=3CB0H 电路图如下:定时器初值的新算法:程序如下: ORG0000H AJMPSTART;转入主程序 ORG000BH ;定时器/计数器0的中断服务程序入口地址 AJMPTIME0 ;跳转到真正的定时器中断服务程序处 ORG0030H START:M