单片机定时器和计数器优秀PPT.ppt
单片机定时器和计数器第1页,本讲稿共33页2.4MCS-51单片机定时/计数器80518051单片机定时器单片机定时器/计数器的总体结构图计数器的总体结构图第2页,本讲稿共33页2.4MCS-51单片机定时/计数器2、定时定时/计数器的基本模型计数器的基本模型 对计数脉冲可以选择来自单片机内部振荡器或是由单片机引脚来的外部脉冲。计数器的主体是一个加1计数器(其计数长度由程序设定。但不能超过16位)。计数器是否计数由控制信号确定。计数器溢出时(进位),置一个溢出标志TFx并触发中断系统产生中断。TFx可以由程序或是中断服务程序复位(清0)。第3页,本讲稿共33页2.4MCS-51单片机定时/计数器Tx:T0的引脚(P3.4)或T1的引脚(P3.5)输入。定时:计数脉冲内部振荡器12分频后提供。计数:对由T0的引脚(P3.4)或T1的引脚(P3.5)输入的外部脉冲进行计数。计数的最高频率为内部振荡器的1/24。第4页,本讲稿共33页2.4MCS-51单片机定时/计数器3、与定时与定时/计数器有关的特殊功能寄存器计数器有关的特殊功能寄存器 在MCS-51单片机中与两个16位定时/计数器有关的特殊功能寄存器有TH0、TL0、TH1、TL1、TMOD、TCON。下面分别简单加以介绍:TH0、TL0:为定时/计数器0(T0)16位计数器的高8位和低8位。TH1、TL1:为定时/计数器1(T1)16位计数器的高8位和低8位。TMOD:为定时/计数器0/1的运行方式控制寄存器。TCON:为定时/计数器0/1的的状态和运行控制寄存器。第5页,本讲稿共33页2.4MCS-51单片机定时/计数器定时/计数器方式寄存器TMOD 的地址为89H,其各位的意义如图:定时定时/计数器方式寄存器计数器方式寄存器TMODTMOD第6页,本讲稿共33页2.4MCS-51单片机定时/计数器M1和M0为工作方式选择。M1 M0 工作方式0 0 方式0 13位计数器;0 1 方式1 16位计数器;0 0 方式2 可自动重新装入初值的8位计数器;0 1 方式3 将定时器0分为两个8位计数器。关闭定时器1,定时器做串行口时钟。第7页,本讲稿共33页2.4MCS-51单片机定时/计数器C/T:定时/计数选择。0为定时,计数脉冲由内部振荡器12分频后提供。1为计数,对由T0的引脚(P3.4)或T1的引脚(P3.5)输入的外部脉冲进行计数。计数的最高频率为内部振荡器的1/24。GATE:门控位。确定控制信号由TRx位还是由引脚控制。定时器0有0、1、2、3共四4种工作方式,定时器1只有0、1、2共三种工作方式。第8页,本讲稿共33页2.4MCS-51单片机定时/计数器定时/计数器控制寄存器TCON的地址为88H(可位寻址),其各位的意义如图 定时控制寄存器定时控制寄存器TCONTCON第9页,本讲稿共33页2.4MCS-51单片机定时/计数器 TF1/TF0:定时器1/0溢出中断标志位。由硬件置位,当转向中断服务程序时由硬件清0,也可以由软件清0。TR1/TR0:定时器1/0运行控制位。1为计数,0为停止。IE1/IE0:外部中断1/0请求标志位。中断时由硬件置位,当转向中断服务程序时由硬件清0,也可以由软件清0。(具体用法详见中断系统)IT1/IT0:外部中断触发方式控制位。IT1/IT0=1时为下降沿触发中断;IT1/IT0=0时为低电平沿触发中断。(具体用法详见中断系统)第10页,本讲稿共33页2.4MCS-51单片机定时/计数器4、定时定时/计数器的工作方式计数器的工作方式 通过上面对定时/计数器方式控制寄存器TMOD的介绍,已经知道定时/计数器T0有0、1、2、3共四种工作方式,定时器/计数器1只有0、1、2共三种工作方式。下面以T0为例对定时/计数器的四种工作方式定时/计数器结构及控制详细进行说明。第11页,本讲稿共33页2.4MCS-51单片机定时/计数器(1)、方式 0 当M1M0为00时定时/计数器工作于方式0。13位计数器。定时/计数器方式0的结构框图(以T0为例)如图 第12页,本讲稿共33页2.4MCS-51单片机定时/计数器第13页,本讲稿共33页2.4MCS-51单片机定时/计数器 例:若 单 片 机 的 振 荡 器 振 荡 频 率fosc=12MHz,需要用定时/计数器T0工作在方式0定时500s,如何初始化T0相关的特殊功能寄存器?第14页,本讲稿共33页2.4MCS-51单片机定时/计数器 解:设计数频率为fc则fc=fosc/12MHz=1MHz设计数脉冲的周期为Tc,则Tc=1/fc=1s设定时/计数器的初值为N,则有500s=(213N)Tc故N=213500s/Tc=8192500=7692将N=7692转换成二进制数N=(1111000001100)B=(11110000,01100)BTL0=N的低5位=01100B(二进制)=0CH(十六进制)TH0=N的高8位=11110000B(二进制)=0F0H(十六进制)第15页,本讲稿共33页 计算定时/计数器的初值N及TH0、TL0后可按下列步骤编程:T0T0初始化程序流程初始化程序流程第16页,本讲稿共33页2.4MCS-51单片机定时/计数器在实际应用时如果要使用定时/计数器,应按下列步骤进行编程:设定定时/计数器的工作方式(TMOD)。给计数器设定所需的初值(TH0、TL0、TH1、TL1)启动计数器开始计数(TCON)开放定时/计数器中断(如果需要的话)第17页,本讲稿共33页2.4MCS-51单片机定时/计数器(1)、方式 1 当M1M0为01时定时/计数器工作于方式0。16位计数器。定时/计数器方式0的结构框图(以T0为例)如图2.4.4-3所示。除了为16位计数器外其它与方式0完全一致,但可定时计数的范围更大。一般编程时都采用方式1,这主要是其预置初值容易计算。可直接10进制数转换成四位十六进制数即可。第18页,本讲稿共33页2.4MCS-51单片机定时/计数器第19页,本讲稿共33页2.4MCS-51单片机定时/计数器(1)、方式 2 当M1M0为10时定时/计数器工作于方式2。方式2是可以当计数器溢出时自动重新赋初值的8位定时/计数器,将TL0作为计数器,而将TH0作为存放初值的寄存器,这样当计数器溢出使TF0置1时,由硬件将保存在TH0中的初值自动赋给TL0,这样大大减少了让程序查询计数器的溢出所等待的时间。其控制信号及计数脉冲的选择与方式0、方式1完全相同。不过就是计数器只有8位,而不是十六位。常将定时器TI设定为方式2做串行口波特率发生器。第20页,本讲稿共33页2.4MCS-51单片机定时/计数器第21页,本讲稿共33页2.4MCS-51单片机定时/计数器如果在实际应用中需要更长的定时,解决办法有两个:1、采用方式2的8位自动重新装入初值加上软件计数法;2、选用8052单片机,因为它的定时/计数器2有16位自动重新装入初值的工作方式。方式2常用于定时控制。第22页,本讲稿共33页2.4MCS-51单片机定时/计数器(1)、方式 3 当M1M0为11时定时/计数器工作于方式3。仅定时/计数器0有此工作方式。当T0工作在方式3时,TH0和TL0成为两个独立的8位计数器。可以看出T0使用TL0作为8位计数器,使用了T0本身的控制信号、T0的溢出标志TF0及T0自己的中断请。TH0作为另一个8位计数器,控制信号为T1的控制位TR1,而溢出标志及中断请求用的是T1的。当T1用作串行口波特率发生器时,T0才定义为方式3,以增加一个8位计数器。如果T0工作在方式3,T1虽可以工作在方式0,1,2,但只能用在不需要中断控制的场合。第23页,本讲稿共33页第24页,本讲稿共33页2.4MCS-51单片机定时/计数器5、定时定时/计数器计数器2 2 8052等单片机增加了一个16位定时/计数器T2,T2和T0、T1的作用相同,可以用于定时和对外部事件计数。且计数器的主体都是加1计数器(有些单片机如80C51FA/FB等即可以加1,也可以减1)。其T0、T1的工作原理和使用方法与8051完全一致。下面只介绍一下8052的定时/计数器T2的工作原理和使用方法 第25页,本讲稿共33页2.4MCS-51单片机定时/计数器T2T2有有三三种种工工作作方方式式:捕捉方式、常数自动再装入方式和串行口波特率发生器方式。TH2、TL2组成16位计数器,RCAP2H、RCAP2L组成16位缓冲寄存器,T2CON为T2的状态控制寄存器。第26页,本讲稿共33页2.4MCS-51单片机定时/计数器常数自动再装入方式:这种方式的计数脉冲可以由C/位来选择对是振荡器12分频后的脉冲进行计数,还是对来自外部引脚T2(P1.0)的脉冲进行计数(负跳变时T2加1)。TR2置1后T2从初值开始计数,计数器溢出时,将RCAP2H、RCAP2L作为初值自动装入TH2、TL2,使T2从该初值开始重新加1,同时置位TF2,向CPU申请中断。若T2中断开放,则转入中断服务程序。不开T2中断时也可以由软件来查询TF2,确定T2是否溢出。第27页,本讲稿共33页2.4MCS-51单片机定时/计数器 第28页,本讲稿共33页2.4MCS-51单片机定时/计数器16位捕捉方式 T2的16位捕捉方式工作原理在计数脉冲的选择上与16位常数自动再装入方式相同,由C/位来选择对是振荡器12分频后的脉冲进行计数,还是对来自外部引脚T2(P1.0)的脉冲进行计数(负跳变时T2加1)。TR2置1后T2从初值开始计数,当计数器溢出时置位TF2。当EXEN2=1且T2EXT2EX(P1.1)有负跳变时,将当时TH2、TL2中的计数值锁存到RCAP2H、RCAP2L中,同时置位EXF2,向CPU申请中断。第29页,本讲稿共33页2.4MCS-51单片机定时/计数器 第30页,本讲稿共33页2.4MCS-51单片机定时/计数器串行口波特率发生器方式当RCLK或TCLK为1时,T2为串行口波特率发生器。由RCLK、TCLK位确定是接收时钟或发送时钟。TR2控制波特率发生器的运行。T2为串行口波特率发生器时工作于常数自动再装入方式,即RCAP2H、RCAP2L作为时间常数缓冲器。第31页,本讲稿共33页2.4MCS-51单片机定时/计数器6、定时定时/计数器的应用计数器的应用 定时/计数器的核心是加1计数器。其工作特点有以下几个:根据工作方式的不同长度有8位、13位及16位。*有些工作方式当计数溢出时可自动重新赋时间初值。*其计数脉冲是可以选择内部振荡器或外部引脚。*计数器的长度为N,其计数的最大值为2N。*计数器的长度为N,时间初值为a,其定时的最长时间为:(12fosc)(2N-a)第32页,本讲稿共33页作业实验中心网站:210.41.94.18第33页,本讲稿共33页