定时计数器及其应用
6.1 定时器的结构及工作原理
1.定时/计数器的结构
T 1( P3.5)
T 0( P3.4)
TH 1 微
处 内部总线
理
器 TCON
TL 1
工作 方式
TH 0 TMOD
TL 0
工作 方式
定时器:对片内机器时钟(周期方波)进行计数 计数器:对Tx引脚输入的负脉冲进行计数
2. 定时/计数器概述
80C51单片机内部有两个定时/计数器T0和T1,其 核心是计数器,基本功能是加1。
6.2 定时器的控制
1. 工作方式控制寄存器TMOD
TMOD用于设定定时/计数器的工作方式 低4位用于控制T0,高4位用于控制T1。
高4位控制T1
低4位控制T0
门控 计数/定时 工作方式 门控 计数/定时 工作方式
位 方式选择
选择 位 方式选择
选择
G
C/T
M1 M0 G
C/T
⑴ M1M0 —— 工作方式选择位
一个机器周期=12个振荡周期, 故,计数频率为振荡频率的1/12。 若:单片机晶振=6MHz,则计数频率为0.5MHz,
2微秒计数器加1.
定时器工作方式的特点:
当定时器设置了某种工作方式之后,定时器就会按设定 的工作方式独立运行,不再占用CPU的操作时间,除非定时 器计满溢出,才可能中断CPU当前操作。
80C51定时/计数器
定时/计数器是单片机系统一个重要的部 件,其工作方式灵活、编程简单、使用方便, 可用来实现定时控制、延时、频率测量、脉宽 测量、信号发生、信号检测等。此外,定时/ 计数器还可作为串行通信中波特率发生器。
在工业检测、控制中,很多场合都要用到计数或者定 时功能。例如对外部脉冲进行计数、产生精确的定时时间、 作串行口的波特率发声器等。MCS-51单片机内部有两个 可编程的定时器/计数器,以满足这方面的需要。它们具 有 两种工作模数(计数器模式、 定时器模式)和四种工 作方式( 方式0、方式1、方式2、方式3),其控制字均 在相应的特殊功能寄存器(SFR)中,通过对它的SFR的 编程,可以方便的选择工作模数和工作方式。
定时器计数器的功能:定时和计数。 1.计数功能
计数:对外部事件进行计数。 外部事件的发生以输入脉冲表示,因此计数功能的实质 就是对外来脉冲进行计数。 计数输入端:T0(P3.4)和T1(P3.5)。 外部输入的脉冲在负跳变时有效,进行计数器加1(加法 计数)。
2.定时功能 实现方法:通过计数器的计数实现。 与计数功能的不同之处:计数脉冲来自单片机的内部,即 每个机器周期产生一个计数脉冲,也就是每个机器周期计数 器加1。
因此, 定时器/计数器是一种可编程部件。
编程:在定时器/计数器开始工作之前,CPU必须将一些命令 (称为控制字)写入定时器/计数器,决定T0、T1的工作方 式。
将控制字写入定时器/计数器的过程叫定时器/计数 器的初始化。
初始化内容: 规定T0、T1的工作方式; 将工作方式控制字写入方式寄存器 规定T0、T1的工作状态; 将工作状态控制字写入控制寄存器 赋定时/计数初值。
M1 M0
M1M0 00 01 10 11
工作方式
功能
方式0 13位计数器,TH高8位和TL低5位
方式1
16位计数器
方式2 两个8位计数器,初值自动装入
方式3
两个8位计数器,仅适用T0
⑵ C/T —— 计数/定时方式选择位
C/T=1,计数工作方式,对外部事件脉冲计数,用作计数器。 C/T=0,定时工作方式,对片内机周脉冲计数,用作定时器。
MOV TMOD,#25H。
位序号 D7 D6 D5 D4 D3 D2 D1 D0
位符号 GATE C/T M1 M0 GATE C/T M1 M0
0 0 00 0
1 01
2. 控制寄存器TCON
TCON
位名称 位地址
T1 中断 标志
TF1 8FH
T1 运行 标志
TR1 8EH
T0 中断 标志
TF0 8DH
T0 运行 标志 TR0 8CH
INT1 中断 标志 IE1 8BH
INT1 触发 方式 IT1 8AH
INT0 中断 标志 IE0 89H
INT0 触发 方式 IT0 88H
TCON低4位与外中断 INT0 、INT1 有关,已在中断中叙述。 高4位与定时/计数器T0、T1有关。
⑴ TF1:定时/计数器T1溢出标志。 ⑵ TF0:定时/计数器T0溢出标志。 ⑶ TR1:定时/计数器T1运行控制位。TR1=1,T1运行;TR1=0,T1停。 ⑷ TR0:定时/计数器T0运行控制位。TR0=1,T0运行;TR0=0,T0停。 TCON的字节地址为88H,每一位有位地址,均可位操作。
6.3 定时器/计数器的四种工作方式
四种工作方式: 即方式0、方式1、方式2和方式3。 其中: 方式0、1和2下,T0和T1的工作方式相同,
方式3下,两个定时器的工作方式不同。 6.3.1 方式0
⑶ GATE —— 门控位
GATE=0,运行只受TCON中运行控制位TR0/TR1的控制。 GATE=1,运行同时受TR0/TR1和外中断输入信号的双重控制。
只有当INT0/INT1=1且TR0/TR1=1,T0/T1才能运行。
TMOD字节地址89H,不能位操作,设置TMOD须用字节操作指令。
设 定时器1为定时工作方式,要求由软件启动定时器1, 按方式2工作。定时器0为计数方式,要求由软件启动定时 器0,按方式1工作。
定时器/计数器: Timer/Counter
本质上都是加法计数器,当对固定周期的脉冲信号 计数时是定时器,对脉冲长度不确定的信号计数时是计 数器。
每接收到一个计数脉冲,加法计数器的值就加一, 当计满时发生溢出,并从0开始继续计数。
加法计数器的计满溢出信号就是定时/计数器的输出, 该信号使TCON的某位(TF0或TF1位)置一,作为定时 器/计数器的溢出中断标志。
对外部事件脉冲(下降沿)计数,是计数器;对 片内机周脉冲计数,是定时器。
计数器由二个8位计数器组成。
定时时间和计数值可以编程设定,其方法是在计 数器内设置一个初值,然后加1计满后溢出。调整 计数器初值,可调整从初值到计满溢出的数值, 即调整了定时时间和计数值。
定时/计数器作为计数器时,外部事件脉冲必须从 规定的引脚输入。且外部脉冲的最ቤተ መጻሕፍቲ ባይዱ频率不能超 过时钟频率的1/24。