51单片机片内定时器/计数器详解
MCS-51单片机片内定时器/计数器
8051定时器的结构
有两个16位的定时器/计数器,即定时器0(T0)和定时器1(T1)。它们实际上都是16位加1计数器。
T0由两个8位特殊功能寄存器TH0和TL0构成;T1由TH1和TL1构成。
定时器/计数器的结构及基本原理
MCS-51单片机的定时/计数器的结构如下图所示。
定时/计数器的核心是一个加1计数器
结构图中有两个开关K1、K2。
- K1决定工作状态:接内部振荡器为定时,接外部脉冲源为计数。
- K2受控制信号控制,决定脉冲能否加到计数器上,实际上决定计数器的开启与停止。
这两个开关是由SFR的TCON和TMOD两个寄存器相应位控制的。通过对这两个寄存器写入控制字,即可选择工作状态和控制启动时间,可见MCS-51的定时/计数器是可程控的。
加1计数器由两个8位特殊功能寄存器TH X和TL X(X=0或1)组成,它们可以被程控形成定时/计数器的四种工作方式。
加1计数器计数工作的启动和停止由相应的电路控制,方式寄存器TMOD的GATE、寄存器TCON的TR X(X=0或1)
通过方式寄存器TMOD的C/T位来选择加1计数器计数脉冲的来源:
- 作为计数器用时,外部输入脉冲加在定时/计数器的外部输入端T0(P3.4)或T1(P3.5),每出现一次从1到0的跳变,加1计数器便加1。
1.定时器
用于实时控制,定时采样、定时启动等。当定时时间与设定值相等,执行规定操作。
K1接内部时钟时,脉冲源是振荡频率的12分之一,即对机器周期计数,为定时方式,所以定时时间为:
T = 计数值*机器周期
2.计数器
检测转速。电机转动一圈发出一个脉冲,计数器记录一秒时间内脉冲个数,显示转速。
识别一个跳变要占两个机器周期。因此外部计数脉冲高低电平宽度每个至少要保持一个机器周期。
两个16位可编程定时/计数器:
定时
计数
波特率发生器
四种工作模式:
- 13位定时/计数器
- 16位定时/计数器
- 8位定时/计数器(自动装入常数)
- 8位定时/计数器(分成两个独立8位,仅定时/计数器0有)
定时/计数器的控制
MCS-51的定时/计数器主要由几个专用寄存器组成:
- TL0:定时/计数器0低八位计数值
- TH0:定时/计数器0高八位计数值
- TL1:定时/计数器1低八位计数值
- TH1:定时/计数器1高八位计数值
- TMOD:控制寄存器,控制定时/计数器方式的工作方式
- TCON:控制寄存器,控制定时/计数器的起停** 指示溢出中断标志