51单片机定时器计数器详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六章定时器/计数器
6.1 定时器的结构及工作原理6.2 定时器的控制
6.3 定时器的工作模式及其应用
第六章定时器/计数器
实现定时一般有多种方法:
1. 利用软件实现(延时程序)
优点:简单,控制方便;缺点:CPU效率低。
2. 外部硬件实现:单稳态定时器、计数定时器
优点:CPU效率高;缺点:修改参数麻烦。
3. 利用计数器实现
输入脉冲
定时器/计数器作用主要包括产生各种时标间隔、记录外部事件的数量等,是单片机中最常用、最基本的部件之一。
外来脉冲
定时计数定时器/计数器功能示意图
6.1 定时器/计数器的结构及工作原理6.1.1 定时器/计数器的基本结构
MCS-51单片机有二个定时器/计数器,每个定时器/计数器由几个专用寄存器组成。
TMOD(89H )高四位TMOD(89H )低四位方式寄存器TCON(88H)
TCON(88H)
控制寄存器*
8DH 8BH 8CH 8AH TH1 TL1TH0 TL0数据寄存器(16位)
定时器T1定时器T0
定时器/计数器的结构如下图所示。
定时器/计数器的基本结构框图
申请
P3.5or P3.4or 8DH 8BH
8CH 8AH
6.1.2 定时器/计数器的工作原理定时器/计数器结构原理图
INTx P3.Y
GATE :门控制位
:定时/计数控制位T
C/x=0,1Y=2,3Z=4,5
一. 对外部输入信号的计数功能
当T0或T1设置为计数工作方式时,计数器对来自输入引脚P3.4(T0)和P3.5(T1)的外部信号计数。
若前一个机器周期采样值为1,后一个机器周期采样值为0,则计数器加1。所以计数器计数的频率最高为fosc 的1/24。
B
D
E
H
T H >1个机器周期
T L >1个机器周期
L
二. 定时功能:
定时器/计数器的定时功能也是通过计数实现的,它的计数脉冲是由单片机的片内振荡器输出经12分频后产生的信号,即为对机器周期计数。
INTx P3.Y
例如:
晶振频率=12MHz 机器周期=1us ,计数1次=1us ,计数频为=1MHz 。
f=机器周期
fmax=fosc/24
计数频率f
内部信号(片内振荡器)外部信号下降沿T0对应P3.4T1对应P3.5计数脉冲
定时器
计数器
定时器/计数器的比较
6.2 定时器的控制
定时器/计数器的控制主要是通过以下几个寄存器实现的:
TCON---定时器/计数器控制寄存器
TMOD---定时器/计数器工作方式控
制寄存器
IE---中断允许控制寄存器
6.2.1 定时器/计数器的工作方式寄存器TMOD
定时器/计数器是一种可编程部件,在工作之前必须通过软件设定它的工作方式,即对工作方式寄存器TMOD 中每位进行设
定。T0TMOD 字节地址89H
M0
M1 C/ GATE M0 M1C/ GATE T T TMOD 不能位寻址。上电复位时,TMOD 所有位均为零。
一、M1和M0工作方式控制位
M0和M1为工作方式控制位,确定4种工作方式,如表7-1所示。
T0分成两个独立的8位计数器, T1在
方式3时停止工作
1 1自动重装入初值的8位计数器1 0
16位定时器/计数器0 1
13位定时器/计数器(TH 的8位和TL 的低5位) 0 0
说明M1 M0
二、定时器/计数器方式选择位1. =0 选择定时方式。在定时方式中,以振荡输出时钟脉冲的12分频信号作为定时的计数信号,也就是每一个机器周期定时器加“1”,若晶振为12MHz ,则定时器的计数频率为1MHz 。
2. =1 选择计数功能。在计数方式中,采用外部引脚T0(P
3.4)、T1(P3.5)的输入脉冲作为计数脉冲,当外部输入脉冲发生1到0的负跳变时,计数器加1,最高计数频率为时钟频率的1/24。
T C/T C/T C/
M0
M1 C/ GATE M0 M1C/ GATE T0
C/ =0 —定时;C/ =1 —对外计数。定时:fosc/12 =1/(12/fosc)=1/T (机器周期)N 个方波
T 计数:脉冲不等间隔波形等间隔,次数已定,时间确
定, 即对机器周期进行计数。左图定时时间为N*T
每个下降沿计数一次确认一次负跳变需两个机器周期,所以,计数频率最高为fosc / 24。T T
三、GATE启动门控位
1. GATE=0 时
只要用软件使TR0(或TR1)置1就能启动定时器T0(或T1);
2. GATE=1 时
只有在INT0(或INT1)引脚为高电平的情况下,且由软件使TR0(或TR1)置1时,才能启动定时器T0(或T1)工作。
T0
C/
GATE
M1
M0
M1
C/
GATE
M0
INTx
P3.Y
x=0,1
Y=2,3
Z=4,5对TMOD进行设置: MOV TMOD,#0CH MOV TMOD,#60H MOV TMOD,#6CH