当前位置:文档之家› 第六章 定时器_计数器

第六章 定时器_计数器


申请 中断
申请 中断
TCON
TF1 TR1 TF0 TR0
溢出 TH0 8位
溢出 TL0 8位
D0
1 0 &
≥1
机器周期 T0引脚
机器周期 1
INT0引脚
TMOD
1 M0 D0 1 M1
C/T GATE
M0 M1 C/T GATE D7
四、定时器/计数器的编程应用举例
一、 定时器/计数器的初始化
1.初始化的步骤
(1) 确定工作方式、操作模式、启动控制方式——写入TMOD 寄存器。
(2) 设置定时器或计数器的初值——可直接将初值送入TH0、 TL0或TH1、TL1中,16位计数初值必须分两次写入对应的 计数器。
(3) 根据要求是否采用中断方式——直接对IE寄存器赋值。开 放中断时,将对应的中断允许位置1,采用程序查询方式IE 应将对应的中断允许位清0,进行中断屏蔽。
计数值由式 N=8192-x 计算 (x为初值)
对内部机器周期计数即为定时,定时时间由式
T=(8192-x)Tcy 计算
2.方式1
16位定时/计数器。 THx8位和TLx8位组成16位加1计数器
最大计数脉冲个数:1~65536(216),最长定时时间(晶振
12MHz T=1s):1s ~ 65536×T= 65.54ms
TCON
TF1 D7
申请 中断
TR1
溢出
TF0
TH0 TL0
TR0
8位 5位
D0
1 1
0 &
≥1
T0引脚
机器周期 1
INT0引脚
TMOD
0 M0 D0 0 M1
C/T GATE
M0 M1 C/T GATE D7
可用程序将0-8191(213-1)的某一数送入TH0、TL0 作为初值。TH0、TL0从初值开始加法计数,直至溢出, 所以设置的初值不同,定时时间或计数值也不同。
INTx=1 计数开始
INTx =0 计数停止
3.方式2
用于需要重复定时和计数的场合。 最大计数值:256 (28) 最大定时时间(晶振12MHz时 T=1s): 256s
自动恢复初值8位定时/计数器。TLx为8位加1计数器,
THx为8位初值暂存器。
TCON
TF1 D7
申请 中断
TR1
TF0
溢出 TL0
T=(65536-x)Tcy=(65536-x)×1μs=10ms 得 x=55536=D8F0 即 TH0=D8H,TL0=F0H (2)方式寄存器TMOD的编程
(3)初始化程序 START:MOV TL0,#0F0H MOV TH0,#0D8H MOV TMOD,#01H SETB TR0
=1,计数功能,计数引脚T0(T1)输入的负脉冲。
2)方式选择位M1、M0:
3)门控方式选择位GATE
计数器启动方式的选择
确定定时器工作方式指令:
MOV TMOD,#方式字
例:设T0用方式2非门控定时,T1用方式1门控计数。
MOV TMOD,#0D2H ; 1101 0010 B
二、定时器/计数器控制寄存器TCON
TL1
T0引脚
机器周 期脉冲
TH0
TL0
TCON
TF1 TR1 TF0 TR0 GATE C/T M1 M0 GATE C/T M1 M0
外部中断相关位
T1方式
图6-1
内部总线 TMOD T0方式
一、 定时器方式控制寄存器TMOD
T1
T0
1)功能选择位C/T:
=0,定时功能,计数内部机器周期脉冲;
在定时器/计数器1工作时,CPU可以随时查询TF1的状态。 (3)定时器/计数器0运行控制位TR0(TCON.4) (4)定时器/计数器0溢出中断标志TF0(TCON.5)
三、工作方式
1.方式0
13位定时/计数器。 THx 8位和TLx低5 位组成13位加1计数器,此种方式与MCS -48系列兼容,如果不是为了兼容的目 的,一般不用方式0.方式0的全部功能, 方式1都可以代替。
第六章 AT89S51单片机定时/计数器
实质是计数器,脉冲每一次下降沿,计数寄存器数值将 加1。 计数的脉冲如果来源于单片机内部的晶振,由于其周期 极为准确,这时称为定时器。计数的脉冲如果来源于单片机 外部的引脚,由于其周期一般不准确,数器 溢出 中断
T1引脚
TH1
TR0
TH0 8位
1 0 &
≥1
T0引脚
机器周期 1
TMOD
0 M0 D0 1 M1
C/T GATE M0 M1 C/T
D0
INT0引脚
GATE D7
4.方式3
T0分成2个8位定时器:TL0定时/计数器和TH0定时器
TL0占用T0控制位:C/T,TR0,GATE;TH0占用T1控制
位:TR1。T1不能使用方式3工作。
(4)启动定时器工作——可使用SETB TR0、SETB TR1和 SETB TR2指令启动。对于T0和T2而言,可根据GATE的
设置有两种启动。
2.计数初值的计算
当计数器使用时,初值X的计算式为: X=M-计数值
当定时器使用时,初值的计算式为:
X=M-计数值=M-T/TCY
式中:TCY --为机器周期, T --为要求定时的时间。
M 由工作方式决定 例如:AT89S51的主频为6MHz,要求产生1ms的定时,试计算计
数初值X。若设置定时器工作于操作模式1,定时1ms,则计数 初值X等于:
3. 定时器初始化举例
例610-m1s定已时知,振试编荡写器初振始荡化频程率序fos。c=12MHz,要求定时器/计数器0产生 解:由于定时时间大于8192us,应选用工作方式1。 (1)TH0、TL0初值的计算 由于Tcy=1μs,故有
(1)定时器/计数器1运行控制位TR1(TCON.6) (2)定时器/计数器溢出中断标志TF1(TCON.7),当定时 器/计数器1溢出时由硬件自动置TF1=1,在中断允许的条件下, 便 向 CPU 发 出 定 时 器 / 计 数 器 1 的 中 断 请 求 信 号 , CPU 响 应 后 TF1由硬件自动清零。在中断屏蔽条件下,TF1可作查询测试用。
TCON
TMOD
申请 中断
TF1 D7
TR1
溢出
TF0
TH0 TL0
TR0
8位 8位
T0引脚 1 M0 D0
1
0 M1
0
&
机器周期
C/T GATE
M0
≥1
1
M1
C/T
D0
INT0引脚
GATE D7
非门控方式:当GATE=0,
控制权由 TRx 决定 TRx=1 计数开始 TRx =0 计数停止
7
门控方式:当GATE=1、TRx=1 控制权由 INTx 决定
相关主题