文档介绍:第5章定时计数技术
单片机控制系统中常常用到的定时与计数问题。
定时计数概述
MCS-51单片机的定时计数器
定时/计数器概述
1、定时的定义:
定时是对周期固定、已知的脉冲计数。
2、计数的定义:
计数是对外界产生的周期不固定的未知脉冲计数。计数器的计数方式可以是加1计数,也可以是减1计数。
3、定时/计数的实现方法:
定时/计数的实现方法有3种:
⑴硬件数字电路:用555构成的定时器和计数器等。
⑵软件编程
⑶可编程定时/计数器
软件编程
例:编制一个延时2mS的子程序。
D2MS: MOV R7,#2
D2MS0: MOV R6,#250
DJNZ R6,$
DJNZ R7,D2MS0
RET
例:统计开关按动次数,并存于30H单元。
MOV 30H,#0
UP: JB ,$
JNB ,$
INC 30H
SJMP UP
可编程定时/计数器
有的控制系统是按时间间隔来进行控制的,如定时的温度检测等。虽然可以利用延迟程序来取得定时的效果,但这会降低CPU的工作效率。如果能用一个可编程的实时时钟,以实现定时或延时控制,则CPU不必通过等待来实现延时,就可以提高CPU的效率。
另外也有些控制是按计数的结果来进行的,因此在微机控制系统中常使用可编程的硬件定时/计数器。现在有很多专门用作定时/计数器的接口芯片。单片机内带有硬件定时/计数器可以简化系统设计。
不论是独立的定时器芯片还是单片机内的定时器,都有以下特点:
,可以是计数方式也可以是定时方式等等。
,当然计数的最大值是有一定限制的,这取决于计数器的位数。计数的最大值也就限制了定时的最大值。
,当定时的时间到或者计数终止时,发出中断申请,以便实现定时或计数控制。除了上述共同特点外,各种定时器还会有各自的特点,各自的工作方式和控制方式。
MCS51单片机内部的定时/计数器
定时/计数器结构
定时/计数器工作方式
定时/计数器应用
定时/计数器结构
MCS51单片机内有2个独立的16位的可编程定时/计数器T0和T1。它们的结构相似。T0的结构如图所示:
振荡器
÷12
C/T=0
C/T=1
&
+
加1计数器
TF0
合/断
T0
TR0
GATE0
INT0
TCON
TMOD
TH0
TL0
TH1
TL1
TMOD:89H 只能按字节操作。
振荡器
÷12
C/T=0
C/T=1
&
+
加1计数器
TF0
合/断
T0
TR0
GATE0
INT0
GATE1
C/T: 用来确定To(T1)是工作在计数方式还是工作在定时方式。C/T=0为定时方式,C/T=1为计数方式。即对外部引脚的外部输入脉冲计数。外部引脚上输入的每一个脉冲的负跳变使计数值加1,由于外输入脉冲的每个高、低电平持续时间各应大于一个机器周期,因此最小的计数周期为两个机器周期。例如,若单片机晶振频率为12MHZ,则外部计数脉冲的最高频率只能为500KHZ。
M1和M2: 两位用来确定To(T1)的具体工作模式。M1、M2的四种组合刚好与四种工作模式对应,分别是方式0、方式1、方式2、方式3。
GATE : 一般称为门控标志。它对定时/数器的启动起着控制作用。当GATE=1时,定时计数器的启动除了受TR控制外,还受INT引脚的控制。当TR=0且INT引脚上出现高电平时才能启动定时计数器。
TMOD
C/T1
M11
M10
GATE1
C/T1
M11
M10
TCON:88H 可以按字节操作,也可以按位操作。
振荡器
÷12
C/T=0
C/T=1
&
+
加1计数器
TF0
合/断
T0
TR0
GATE0
INT0
TCON
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
TF0: T0溢出中断标志位。当T0计数溢出时,TF0=1。在允许中断的情况下,CPU响应T0中断,转向T0中断服务程序,此时由硬件自动将TF0清0。该标志位可由软件查询,也可用软件清0或置1。
TR0:为T0启动控制位。当TR0=1时,启动T0;TR0=0时,关闭T0。该位由软件进行设置。
TF0: T0溢出中断标志位。当T0计数溢出时,TF0=1。在允许中断的情况下,CPU响应T0中断,转向T0中断服务程序,此时由硬件自动将TF0清0。该标志位可由软件查询,也可用软件清0或置1。
TR0:为T0启动控制位。当TR0=1时,启动T0;TR0=0时,关