第五章 定时计数器

合集下载

单片机 第五章2 单片机的定时器计数器

单片机 第五章2 单片机的定时器计数器

若晶振频率为6MHz,1个机器周期为1/6 x 10-6 x12=2μs 则最小定时时间为:[213 –(213 -1)]x2μs=2μs 最大定时时间为:[213 –0] x2μs=16384μs =16.384ms
2、 方式1 (T1,T0) 当M1M0两位为 01时,定时 /计数器被选为工作方式 1,16位计数器,其逻辑结构 如图 所示。
8FH TCON TF1 8EH TR1 8DH TF0 8CH TR0 8BH IE1 8AH IT1 89H IE0 88H IT0
TF1(TCON.7, 8FH位)----定时器T1中断请求溢出标志位。 TF0(TCON.5, 8DH位)----定时器T0中断请求溢出标志位。 TR1(TCON.6, 8EH位)----T1运行控制位。 0:关闭T1;1:启动T1运行。只由软件置位或清零。 TR0(TCON.4, 8CH位)----T0运行控制位。 0:关闭T0;1:启动T0运行。只由软件置位或清零。
1、 方式0 (T1,T0)
当 M1M0两位为 00时,定时 /计数器被选为工作方式 0, 13位计数器,其逻辑结 构如图所示。
振荡器 ÷12 C/ T = 0 TL0 低5位 C/ T = 1 控制 T0 端 TR0 GATE INT0 端 TH0 高8 位 TF0 中断
+
在方式0下,计数工作方式时,计数值的范围是: 1~8192(213 ) 定时工作方式时,定时时间的计算公式为: (213一计数初值)×晶振周期×12 或(213一计数初值)×机器周期
例4:用定时器l 以工作方式2计数,每计100次进行累计器加1操作.
(1)计算计数初值. 28—100=156D=9CH TH1=9CH,TL1=9CH TMOD寄存器初始化:MlM0=10,C/T=1,GATE=0 因此 TMOD=60H (2)程序设计序设计

第5章-定时计数器

第5章-定时计数器

5.1 定时/计数器0和1
5.1.1 定时/计数器的结构及功能
1、定时/计数器的结构 定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄 存器组成。
P3.5(T1)
P3.4(T0)
T0部分
T1部分 TH1 TL1 TH0
TL0
微处理器 (CPU) TCON TMOD
图5-1 定时/计数器的结构
TH1 (8位)
INT1引脚
计数个数与计数初值的关系为:X=28-N 工作方式2特别适合于用作较精确的脉冲信号发生器。
TCON TF1 申请 中断 TR1 TF0 TR0 TH0 8位 D0 D7 溢出 1 TL0 &
≥1
TMOD T0引脚 0 M0 1 M1 C/T 0 机器周期 GATE M0 1 INT0引脚 M1 C/T GATE D7 D0
初值计算:
设计数器的最大值为M,则置入的初值X为: 计数方式:X=M-计数值
定时方式:由(M-X)T=定时值,得X=M-定时值/T
T为计数周期,是单片机的机器周期。 (模式0: M为213,模式1: M为216,模式2和3: M为28) 例如:机器周期为1μs 时, 若工作在模式0,则最大定时值为:213×1μs =8.192ms 若工作在模式1,则最大定时值为:216×1μs =65.536ms
TP
INT0
启动T0
T0计时 停止T0计时 读取T0值
图5-8 利用GATE功能来检测脉冲的宽度
编程如下: MOV TMOD,#09H MOV TL0,#00H MOV TH0,#00H MOV R0,#30H JB P3.2,﹩ SETB TR0 JNB P3.2,﹩ JB P3.2,﹩ CLR TR0 MOV @R0,TL0 INC R0 MOV @R0,TH0

第5章AT89S52定时器计数器

第5章AT89S52定时器计数器
8
图5-2 TMOD格式
8位分为两组,高4位控制T1,低4位控制T0。 TMOD各位的功能。 (1)GATE———门控位。
0:仅由运行控制位TRx(x = 0,1)来控制定时器/计数器运 行。
1:用外中断引脚( INT0*或 INT1*)上的电平与运行控制 位TRx共同来控制定时器/计数器运行。
9
5
5.1 定时器/计数器的结构 定时器/计数器T1、T0结构如图5-1所示,T0由特殊功能
寄存器TH0、TL0构成,T1由特殊功能寄存器TH1、TL1构成。
图5-1 定时器/计数器T0、T1结构框图
6
具有定时器和计数器2种工作模式,4种工作方式(方式0、 方式1、方式2和方式3)。属于增1计数器。
定时器/计数器T0分为两个独立的8位计数器TL0和TH0, TL0使用T0的状态控制位C/T*、GATE、TR0、TF0 ,而TH0
23
被固定为一个8位定时器(不能作为外部计数模式),并使用 定时器T1的状态控制位TR1和TF1,同时占用定时器T1的中断 请求源TF1。 2.T0工作在方式3时T1的各种工作方式
P1.0输出;T2OE=0,禁止定时时钟从P1.0输出。 DCEN(D0):计数方式选择。DCEN=1,T2的计数方式
由P1.1引脚状态决定。P1.1=1,T2减计数,P1.1=0,T2加 计数;DCEN=0,计数方式与P1.1无关,同T1和T0一样,采 用增1计数。
31
2. 特殊功能寄存器T2CON T2的功能选择由特殊功能控制寄存器T2CON来设定,
(2)M1、M0——工作方式选择位 M1、M0共有4种编码,对应于4种工作方式的选择,如
表6-1所示。
10
(3)C/T*—计数器模式和定时器模式选择位 0:为定时器工作模式,对单片机的晶体振荡器12分频后的

第5章 MCS-51的定时计数器

第5章 MCS-51的定时计数器
DELAY: DELAY: MOV MOV MOV MOV MOV SETB JBC SJMP DJNZ MOV DJNZ RET R5, R5,#28H R6, R6,#64H TMOD, TMOD,#20H TH1, TH1,#06H TL1, TL1,#06H TR1 TF1, TF1,LP2 LP1 R6, R6,LP1 R6, R6,#64H R5, R5,LP1 ;置25ms计数循环初值 25ms计数循环初值 250μs计数循环初值 ;置250μs计数循环初值 置定时器1为方式2 ;置定时器1为方式2 ;置定时器初值 ;启动定时器 ;查询计数溢出 ;无溢出继续计数 未到25ms 25ms继续循环 ;未到25ms继续循环 ;未到1s继续循环 未到1s继续循环 1s
电气与信息工程学院
2011/3/26
安徽理工大学
5.2 工作方式
(1) 方式0 方式0
位和TL 的低5位组成13 13位计数器 由THX的8位和TLX的低5位组成13位计数器 13位计数加 到全“1”,再加 就产生溢出, 位计数加1到全 就产生溢出, 位计数加 到全“ ,再加1就产生溢出 位为1,同时计数器全变为“ 置TCON的TFX位为 ,同时计数器全变为“0” 的
电气与信息工程学院
2011/3/26
安徽理工大学
(2) 方式1 方式1
唯一的差别是TH 组成一个16位计数器。 16位计数器 唯一的差别是THX和TLX组成一个16位计数器。
振荡器 ÷12
C /T=0 C /T=1 T0 TR0 GATE INT0 1 > 1 & 控制
TL0 TH0 (8位)(8位)
TF0
中断
定时/计数方式1 定时/计数方式1时的逻辑电路结构图 上例中

第5章定时计数器 (2)

第5章定时计数器 (2)

5.4 8XX51定时/计数器的应用程序设计
5.4.3 应用编程举例 例1 如图所示,
P1中接有八个发光二极管, 编程使八个管轮流点亮,每 个管亮100ms,设晶振为 6MHz。 分析利用T1完成100ms的定时、 当P1口线输出“1”时,发光二 极管亮,每隔100ms”1”左移一 次,采用定时方式1,先计算计 数初值: MC=2μs 100ms/2μs =50000=C350H C =10000H-C350H=3CB0H
★若将T0设置为模式3,TL0和TH0被分成为两个互相独立的8位计数器
TH0和 TL0 。
★TL0可工作为定时方式或计数方式。占用原T0的各控制位、引脚和 中断源。即C/T、GATE、TR0、TF0和T0 (P3.4)引脚、INT0 (P3.2) 引脚。 TH0只可用作定时功能,占用定时器T1的控制位TR1和T1的中断标 志位TF1,其启动和关闭仅受TRl的控制。
ORG 0000H
AJMP
AJMP
MAIN
;T0中断服务程序入口 ;主程序开始 ;T0定时100ms IP0
ORG 000BH ORG 0030H MAIN:CLR P1.7
MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H
SETB
SETB
ET0
EA
5.4 8XX51定时/计数器的应用程序设计
本章介绍的主要内容
★ ★

定时计数器结构和工作原理 定时计数器的控制寄存器
定时计数器的应用编程
5· 1 8XX51定时/计数器结构和工作原理
★51系列单片机片内有两个十六位定时/计数器:定时器0(T0) 和定时器1(T1)。 ★两个定时器都有定时或事件计数的功能,可用于定时控制、 延时、对外部事件计数和检测等场合。 ★定时/计数器实际上是16位加1计数器。 T0由2个8位持殊功能寄存器TH0和TL0构成, T1由2个8位持殊功能寄存器TH1和TL1构成。 ★每个定时器都可由软件设置为定时工作方式或 计数工作方式。

单片机原理第5章定时、计数器

单片机原理第5章定时、计数器

5.2.2 控制寄存器 控制寄存器TCON
5,控制寄存器TCON初始化设置 ,控制寄存器 初始化设置
0
0 1
0
1 0 1
0
0
0
0
复位时, 的所有位被清0. 复位时,TCON的所有位被清 的所有位被清 要启动,关闭 , 要启动,关闭TI, T0,需对 ,需对TR1,TR0用 , 用 软件设置: 软件设置: SETB TRx;启动 ; CRL TRx;关闭 ; 也可以用传送指令 MOV TCON,#50H , 同时启动T0, 同时 同时启动 ,T1同时 使用电平触发方式. 使用电平触发方式.
时钟 振荡 ÷12
2,脉冲计数 , 每来1个脉冲,计 每来 个脉冲, 个脉冲 数器加1. 数器加 .
C P U
T0 TL0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0
溢 出 启动 TH0 工作 方式
TCON
TMOD
中断
5.1 定时器的结构及工作原理
1,计数脉冲来源 ,
(P3.4)
INT0(INTI)=1 指令 SETB TR0(TR1) 启动定时/计数器 启动定时 计数器T0(T1) 计数器
1
5.2.2 控制寄存器 控制寄存器TCON
1,溢出标志位 TFx
0 1
TFl(TCON.7):T1溢出标志位.当T1溢出时由硬 : 溢出标志位 溢出标志位. 溢出时由硬 件自动使中断触发器TFl置1,并向 申请中断. 件自动使中断触发器 置 ,并向CPU申请中断. 申请中断 响应进入中断服务程序后, 当CPU响应进入中断服务程序后,TFl又被硬件 响应进入中断服务程序后 又被硬件 自动清0. TFl也可以用软件清 . 自动清 . 也可以用软件清0. 也可以用软件清 TF0(TCON.5):T0溢出标志位.其功能和操作同 : 溢出标志位 其功能和操作同TFl 溢出标志位.

第五章 定时器计数器8253

第五章  定时器计数器8253

1方式----低电平输出(GATE信号上升沿重新计数) 可重复触发的单稳态触发器 1方式为可编程的单稳态工作方式。(平时gate无效) 情况一: (1)写入计数初值后,计数器并不立即开始工作; (2)门控信号GATE有效,才开始工作,使输出OUT变成低电平; (3)直到计数器值减到零后,输出才变高电平。见图6.5中①。 情况二: 21组16 在计数器工作期间,当GATE又出现一个上升沿时,计数器 重新装入原计数初值并重新开始计数,见图见图6.5中②。 21组17 如果工作期间对计数器写入新的计数初值,则要等到当前的 计数值计满回零且门控信号再次出现上升沿后,才按新写入的 计数初值开始工作,见图6.5所示③。21组1 2.
CLK WR
n=6
5 4 3 2 1 0

OUT
② ห้องสมุดไป่ตู้ATE
OUT
5
4
4
4
4
3
2
1
0
图6.8:8253的4方式时序波形
6. 5方式------单次负脉冲输出(硬件触发)
加1,计数脉冲是频率恒定的时钟脉冲
一次计数过程是指计数器从初值开始计数到0。
一段定时是指计数器从初值开始计数到0所经
历的时间段。
定时举例:
①计算机及电子系统中需要定时信号,如系统 的日历时钟,一天24小时的计时。动态存储器 的刷新,应用系统的定时中断、定时查询与检 测等称为日时钟。
②在监测系统中,对被测点的定时取样。 ③在读键盘时,为去抖,一般延迟10ms再读。
个字节),采用二进制计数。其初始化程序段为

MOV DX,43H
;命令口 ;2号计数器的初始化命令字 ;写入命令寄存器 ;2号计数器数据口

第5章 定时器计数器

第5章 定时器计数器
时软件清0 ) ✓ 使用中断方式时,此位作为中断请求标志位,进入中断服务程序
后由硬件自动清0
(2)TR1、TR0——计数运行控制位
✓ TR1(或TR0)=1,启动定时器/计数器工作 ✓ TR1(或TR0)=0,停止定时器/计数器工作。 ✓ 该位可由软件置1或清0(位操作)
7
定时器/计数器T1、T0工作方式
22
✓ 当T2MOD的DCEN=0时,T2为增1型重新装载方式
EXEN2=0时,T2计满回0溢出,TF2置1;陷阱寄存器RCAP2L、 RCAP2H中预置的16位计数初值重新再装入TL2、TH2中,自动进 行下一轮计数。
EXEN2=1时,T2操作方式照旧,但当T2EX(P1.1)产生负跳变时 触发三态门将RCAP2L、RCAP2H陷阱寄存器中的计数初值自动装 载到TL2和TH2中重新开始计数,EXF2置1并发出中断请求。
9
✓ 方式2(M1 M0=10B) 方式2为自动恢复初值(初值自动装入)的8位定时器/计数器。
TLx(x = 0,1)作为常数缓冲器,当TLx计数溢出时,TFx置1且
自动将THx中的初值送至TLx,开始重新计数。
【注】方式2可省去用户软件中重装初值的指令执行时间,可以
相当精确地确定定时时间。
10
✓ 方式3(M1 M0=11B) 相当于增加了一个8位定时器/计数器。
(2)T1工作在方式1( M1 M0 =01B )
12
(3)T1工作在方式2( M1 M0 =10B )
(4)T1设置在方式3( M1 M0 =11B )
当T0设置在方式3,再把T1也设成方式3,此时T1停止计数。
13
定时/计数器初始化步骤
(1)方式控制字送TMOD MOV TMOD,#——

第5章 定时器计数器2(1)

第5章 定时器计数器2(1)

2、模式1模式1(M1M0=01)除了使用了THn和TLn全部16位外,其它与模式0相同。

(1)计数工作方式由于定时器/计数器以加1方式计数,假定计数值为X,则应装入定时器/计数器的初值为:初值=216-计数值【216=初值+计数值】所以方式1的计数值围是:1~65536(216=65536),最大值为:65536(2)定时工作方式定时时间t的计算公式为:【t的时间单位为微秒(µs)】计数值=216-初值定时时间t=计数值×机器周期=(216-初值)×(1/晶体振荡频率)×12在模式1下的情况下,如果fosc=12MHz,最大定时时间为:t=(65536-初值)×(1/12)×12=65536-0=65.536ms在模式1下的情况下,如果fosc=6MHz,最大定时时间为:t=(65536-初值)×(1/6)×12=(65536-0)×2=131.072 ms。

【例如】:若晶体振荡为12MHz,要定时2.5ms,计算初值。

要定时2.5ms,也可以用模式1。

2500=(216-初值)×(1/12)×12初值=65536-2500=63036=32768+16384+8192+4096+1024+512+32+16+8+4=1111 0110 0011 1100――> THn =0xF6 和 TLn=0x3C在fosc=12MHz时,如果定时时间大于65.536ms,这时用一个定时/计数器直接处理不能实现,这时可用:1、2个定时/计数器共同处理;2、1个定时/计数器配合软件计数方式处理。

3、模式2方式0和方式1的最大特点是计数溢出后,计数器为全0。

因此在循环定时或循环计数应用时就存在用指令反复装入计数初值的问题。

这不仅影响定时精度,也给程序设计带来麻烦。

方式2就是针对此问题而设置的。

该方式可省去用户软件中重装初值的指令执行时间,简化定时初值的计算方法,可以相当精确地确定定时时间。

第5章 定时计数器

第5章 定时计数器
当TL0的低5位溢出时,向TH0产生进位;TH0溢出时,将 定时器中断请求标志位TF0置1,可申请中断,也可对TF0进 行查询。
图4-11 定时/计数器T0方式0的逻辑结构示意图
2. 方式1 当M1M0=01时,定时/计数器工作于方式1。方式1的计 数位数是16位,由TL0作为低8位,TH0作为高8位共同构 成。其余操作同方式0。
2.定时/计数器控制寄存器TCON TCON的低4位用于控制外部中断,高4位用于控 制定时/计数器的启动和中断申请。 TF0(或TF1)
当计数溢出时,TF0(或TF1)会自动由0变1, 告诉我们计数已满,我们可以通过查询TF0(或TF1) 位的状态来判断计时时间是否已到;
如果采用定时中断方式,则 由0变1时,能自动引发中断。 TF0(或TF1)
16位定时/计数器的计数容量是65536
假设计满一小时需要100,000,000 滴,这称为水钟的计数容量
(2)定时 单片机内部的计数器用作定时器时,是对标准的 时钟进行了计数,每来一个时钟脉冲,计数器加1, 计数器如何能作为定时 只要保证计数脉冲的间隔相等,则计数值就代表了 器使用呢? 时间的流逝。 单片机中的定时器和计数器其实是一个器件: 计数器:是对外部发生的事件进行计数, 定时器:是对单片机内部的标准时钟脉冲进行 计数。
TR0(或TR1) 由图4-11 可知,只有 当TR0(或TR1)为1时,开 关1才能闭合,计数脉冲才 能进入计数器,故TR0(或 TR1)称为运行控制位,可 用指令“SETB TR0(或 TR1)”来置位以启动定时/ 计数器运行;或用指令 “CLR TR0(或TR1)”来关 闭定时/计数器的工作,一 切全靠编程人员控制。
2.初始化程序:
MOV MOV MOV MOV TMOD,#06H TH0,#0F4H TL0,#0F4H IE ,#00H ;T0作计数器,工作于方式2 ;装入时间常数初值 ;自动重装时间常数 ;用查询方式确定计满12盒? ;自动申请中断

第5章 MCS-51单片单片机内部 定时器计数器

第5章  MCS-51单片单片机内部 定时器计数器

LOOP:
例:由P1.0输出方波信号,周 期为2ms,设fosc=12MHz。 (中断方式)
2ms
解:每隔1ms改变一次P1.0的输出状态,即形成方波, 用T0非门控方式1定时。 计算时间常数:X = 216 - t/T = 216 –(1/1000)/10-6 = 65536-1000 = 64536 = FC18H
3 工作模式2 • 模式2把TL0(或TL1)设置成一个可以自动重 装载的8位定时器/计数器 。 用于需要重复定时和计数的场合。 最大计数值:256 (28) 最大定时时间(晶振12MHz时 T=1s): 256s 自动恢复初值8位定时/计数器。TLx为8位加1计 数器,THx为8位初值暂存器。
复位时,TMOD所有位均置0。 确定定时器工作方式指令: MOV TMOD,#方式字 例:设T0用方式2非门控定时,T1用方式1门控计数。 MOV TMOD,#0D2H ; 1101 0010 B
定时器控制寄存器TCON除可字节寻址外,各 位还可以位寻址。
位地址 位符号 8FH TF1 8EH 8DH 8CH TR1 TF0 TR0 8BH IE1 8AH 89H 88H IT1 IE0 IT0
解得:T0初值=7096=11011101 11000B,其中将高8位 11011101 B=DDH 赋给 TH0 ,低 5 位 11000B=18H 赋 给 TL0。

方法一:
采用查询工作方式,编程如下:
ORG AJMP 0000H MAIN
LOOP:JNB TF0,$;$为当前指令指 针地址 CLR SETB CLR MOV MOV TF0 P1.0 P1.0 TH0 , #0DDH ;重装载 ;产生2µ s正脉冲
ORG AJMP ORG AJMP ORG MAIN:MOV MOV MOV SETB SETB SETB HERE:SJMP PT0INT:MOV MOV CPL RETI

第五章定时计数器

第五章定时计数器
TMOD、TCON与T0、T1结构框图

TH1 TL1
TH0
TL0

理 器
工作
工作 方式
μP
TCON 方式 TMOD
5.2 定时/计数器方式和控制寄存器
由结构框图可以看到,特殊功能寄存器TMOD和TCON 用来确定定时/计数器的工作方式,并控制其功能。 每当执行一条改变TMOD和TCON内容的指令时,所改 变的值在下一条指令的第一个机器周期的S1P1期间进入特 殊功能寄存器,并立即产生效果。 TMOD控制定时/计数器的工作方式;
5.4 定时/计数器的编程举例
定时/计数器的应用编程应注意:⑴正确写入控制字,即 初始化;⑵时间常数的正确计算。 定时计数器操作控制次序:
➢① 确定工作方式,写入TMOD定时/计数器工作方式寄 存器; ➢② 计算定时/计数初值,装入THx及TLx;
➢③ 置位TRx以启动计数;
➢④ 置位ETx以允许定时/计数器x中断(若需要,不需要可 略);
后由硬件清除。
IT0:外部中断0类型控制位。控制外部中断0是选择边沿触发 还是电平触发方式。当IT0=0时,选择为电平触发方式,INT0低 电平有效;当IT0=1时,选择为边沿触发方式,当INT0输入脚上 出现电平由高到低的负跳变时有效。IT0由软件置位或清除。 由于定时/计数器T0、T1是可编程的,所有在任何一个定时/ 计数器开始工作之前,必须对其写入相应的控制字。
5.3.4 方式3
振荡器
÷12
C/T=0
T0端
GATE INT0端 振荡器
C/T=1
TR0
&
l ≥l
÷12
控制
TL0 (8位)
TF0 中断
TH0 (8位)

第五章定时器计数器一定时器计数器的功能1定时器的

第五章定时器计数器一定时器计数器的功能1定时器的

用于存放计数初值,它是加1计数器,溢出中断。它们的字节地址 是:
TH1(8位) TL1(8位) TH0(8位) TL0(8位)
8DH
8BH
8CH
8AH
控制定时器计数器时,计数长度可分别选择8位,16位,13位, 与工作方式有关。
注意它是加1计数器,例如选择8位计数器,最大可存255,如果 置入初值250,则计数6次即溢出中断。
• 初始化时在TL0、TH0中装入同样的初始常数,TH0即记忆了该 初始常数,因此在中断服务程序中不必重装时间常数,省去了重装 时间常数的时间,因此定时准确。
• 时间常数计算公式为:定时 (28 –X)×12/f =定时间隔
计数 28 –X = 计数次数
13
4.方式3 三个8位定时器计数器 方式3只适用于T0 • TL0 作为8位定时器计数器,使用T0的C/T 、GATE 、TR0 、 TF0 ,可定时亦可计数,外部计数脉冲从T0引脚输入,TR0置1启动。 • TH0 可单独用作8位定时器,不能用作外部计数。置1 TR1即可 启动,溢出中断时将TF1置1,即它占用了T1的启动位和中断源。 • TH1 TL1 当定时器T0定义为工作方式3时,定时器T1常用作串 行口的波特率发生器,T1仍可选择方式0、1、2,用TL1、TH1分 别作为13、16、8位计数器,可以改变不同的波特率范围。此时的 T1不能使用中断源。
216 ×2×10-6 =65536 ×2×10-6 =131.072 ms
最小定时间隔为: 当X=FFFFH 时
2μs
计数范围 : 1~65536
方式2和方式3 8位计数器
定时间隔为: 2μs~512μs 计数范围 : 1~256 20
4.扩大定时间隔的方法: 可采用多次中断的方法。 例:要求用一台单片机控制10台加热炉,每隔10秒钟进行一次温
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

;程序如下
MOV TMOD, #60H
MOV TH1, #38H MOV TL1, #38H SETB TR1 DEL: JBC TF1, LOOP
SJMP DEL
LOOP: INC A
SJMP DEL
第五章 定时/计数器
假设有一个用户系统中已使用了两个外部中断源, 并
置定时器 T1 于模式 2, 作串行口波特率发生器用, 现
TR1、TR0 分别是定时器 /计数器T1、 T0 的运行控制位,
通过软件置 1 后, 定时器 /计数器才开始工作, 在系统复位时 被清 0。
第五章 定时/计数器
5.1.3 T0和T1的四种工作模式
一、 模式 0
图5.3 定时/计数器 0模式0(13位计数器)
第五章 定时/计数器
在模式0下,T0和T1工作在13位的定时/计数 器方式,由TH的高 8 位和TL的低 5 位组成。 当T0的13位计数器加到全部为 1 以后,再加
1. 定时/计数,向上计数,捕获方式
EXEN2=1时,T2EX产生一个负跳变,计数器置送入RCAP2并产生 中断申请。
第五章 定时/计数器
2.定时/计数,向上计数,重装方式
第五章 定时/计数器
3.定时/计数,向下计数,重装方式
第五章 定时/计数器
4.波特率发生器 B=fosc/(32*(65536-RCAP2))
如果定时/计数器0工作于模式3,那么定时/计数
器1的工作方式就不可避免受到一定的限制,因为自 己的一些控制位已被定时/计数器借用,只能工作在 模式0、模式1或模式2下,如果设置T1工作在模式3, 则T1停止工作,相当于其它模式时令TR1=0。
第五章 定时/计数器
5.2 定时/计数器2
5.2.1 T2控制寄存器T2CON
载工作方式。
第五章 定时/计数器
在这种模式中,16位计数器分为两部分,即以
TL0为计数器,以TH0作为预置寄存器,初始化时把
计数初值分别加载至TL0和TH0中,当计数溢出时, 不再象方式0和方式1那样需要“人工干预”,由软件
重新赋值,而是由预置寄存器TH以硬件方法自动给
计数器TL0重新加载。
第五章 定时/计数器
第五章 定时/计数器
二、 模式1
图 5.4 模式 1(16位计数器)
第五章 定时/计数器
模式1和模式0的工作原理基本相同,唯一
不同是T0和T1工作在模式1时是16位的计数/定 时器。 模式1时的计数长度M是2的16次方。16位 的初值直接拆成高低字节,分别送入TH和TL 即可。
第五章 定时/计数器
的定时器使用,而且由于定时/计数器0的控制位已被TL0 占用,因此只能借用定时/计数器1的控制位TR1和TF1, 也就是以计数溢出去置位TF1,TR1则负责控制TH0定时 的启动和停止。
第五章 定时/计数器
由于TL0既能作定时器也能作计数器使用,而 TH0只能作定时器使用而不能作计数器使用,因此在 模式3下,定时/计数器0可以构成二个定时器或者一 个定时器和一个计数器。
第五章 定时/计数器
5.1 定时器/计数器0和1
定时器/计数器: Timer/Counter
本质上都是加法计数器,当对固定周期的脉冲信号 计数时是定时器,对脉冲长度不确定的信号计数时是计 数器。 每接收到一个计数脉冲,加法计数器的值就加一, 当计满时发生溢出,并从0开始继续计数。
加法计数器的计满溢出信号就是定时/计数器的输出, 该信号使TCON的某位(TF0或TF1位)置一,作为定时 器/计数器的溢出中断标志。
1就产生溢出,这时置TCON的TF0为 1 ,同时把
计数器全部变 0 ,然后从 0 开始继续计数。
第五章 定时/计数器
模式0的计数长度M为2的13次方。 初值也是13位二进制数,但要注意是高8位赋值 给TH0,低5位前面补足 3 个 0 凑成 8 位赋给TL0。 例如,如要求计数值为1000,则初值为 x=M-1000=8192-1000 =1C18H=1 1100 000 1 1000B 则赋初值时,TH0=0E0H,TL0=18H。
第五章 定时/计数器
程序如下: MOV TMOD, #01H SETB TR0 LOOP: MOV TH0, #0D8H
ቤተ መጻሕፍቲ ባይዱ
MOV TL0, #0F0H JNB TF0, $
CLR TF0
CPL
P1.0
SJMP LOOP END
第五章 定时/计数器
三、 模式 2 应用 模式 2 是定时器自动重装载的操作方式, 在这种模式下, 定时器 0 和 1 的工作是相同的, 它的工作过程与模式 0、 模式 1 基本相同, 只不过在溢出的同时, 将 8 位二进制初值 自动重装载, 即在中断服务子程序中, 不需要编程送初值, 这 里不再举例。定时器 T1 工作在模式 2 时, 可直接用作串行 口波特率发生器,
三、模式 2
图 5.5 模式 2(初始常数自动重装载)
第五章 定时/计数器
工作模式0和模式1的最大特点就是计数溢出后,计
数器为全0,因而循环定时或循环计数应用时就存在反
复设置初值的问题,这给程序设计带来许多不便,同时 也会影响计时精度。 工作模式2就针对这个问题而设置,它具有自动重 装载功能,即自动加载计数初值,所以也称为自动重加
第五章 定时/计数器
二、 模式 1应用 模式 1 与模式 0 基本相同, 只是模式 1 改用了 16 位计数 器。 要求定时周期较长时, 13 位计数器不够用, 可改用 16 位 计数器。
例 2 利用T0模式1产生50Hz的方波,由P1.0输出。
设晶振为12MHz,机器周期为1μS, 50Hz方波的周期 为0.02S,每隔0.01S改变一次电平。则计数器的初值X (216-X)10-6=0.01,X=D8F0H
TF2:T2溢出中断标志位,在波特率发生器下溢出不置位;
EXF2:T2 外部触发中断标志; RCLK:接收时钟选择位 TCLK:发送时钟选择位 EXEN2:定时/计数器2外部触发允许标志 TR2:定时/计数器2运行控制位
C/T2:功能选择位
CP/RL2:捕获或重装载标志
第五章 定时/计数器
第五章 定时/计数器
第五章 定时/计数器
M1 M0:四种工作方式的选择位 表 5.1 工作方式选择表
M0 方式 0 1 0 0 1 2 说 明
M1 0 0 1
13 位定时器(TH的 8 位和TL的低 5 位) 16 位定时器/计数器 自动重装入初值的 8 位计数器 T0 分成两个独立的 8 位计数器, T1 在方式 3 时停止工作
第五章 定时/计数器
5. 时钟输出方式 产生50%占空比的可编程时钟输出,61Hz~4MHz对16MHz的 fosc
第五章 定时/计数器
5.3 定时器/计数器应用举例
一、 模式 0 的应用 例 1 利用定时器输出周期为 2 ms的方波, 设单片机晶振 频率为 6 MHz。 选用定时器 /计数器T0 作定时器, 输出为P1.0 引脚, 2 ms 的方波可由间隔 1 ms的高低电平相间而成, 因而只要每隔 1 ms对 P1.0 取反一次即可得到这个方波。
定时 1 ms的初值:
因为 机器周期=12÷6 MHz= 2 μs
所以 1 ms内T0 需要计数N次:
N= 1 ms÷2 μs = 500
第五章 定时/计数器
由此可知: 使用方式 0 的 13 位计数器即可, T0 的初值X为 X=M-N=8 192-500=7 692=1E0CH 但是, 因为 13 位计数器中, 低 8 位 TL0 只使用了 5 位, 其 余码均计入高 8 位TH0 的初值, 则 T0 的初值调整为
第五章 定时/计数器
图 5.1 定时器/计数器结构框图
第五章 定时/计数器
5.1.2 控制和状态寄存器
一、 定时器/计数器的模式寄存器TMOD
8位分为两组,高四位控制T1,低4位控制T0。
图 5.2 TMOD各位定义
第五章 定时/计数器
对TMOD的各个位的说明: GATE位:门控位。GATE=1时,T0、T1是否计数要受 到外部引脚输入电平的控制,INT0引脚控制T0,INT1引 脚控制T1。可用于测量在INT0和INT1引脚出现的正脉冲 的宽度。若GATE=0,即不使能门控功能,定时计数器 的运行不受外部输入引脚INT0、INT1的控制。
定时状态: X=M-定时时间/T
而 T=12÷晶振频率
第五章 定时/计数器
二、 定时器/计数器控制寄存器TCON
TF1
TR1
TF0
TR0
IE1 IT1
IE0
IT0
TF0、TF1分别是定时器/计数器T0、 T1 的溢出标志位, 加法计数器计满溢出时置 1, 申请中断, 在中断响应后自动复 0。TF产生的中断申请是否被接受, 还需要由中断是否开放 来决定。
第五章 定时/计数器
第5章 定时/计数器
5.1 定时器/计数器0和1
5.2 定时/计数器2
5.3 定时/计数器的应用
第五章 定时/计数器
在工业检测、控制中,很多场合都要用到计数或者定 时功能。例如对外部脉冲进行计数、产生精确的定时时间、 作串行口的波特率发声器等。MCS-51单片机内部有两个 可编程的定时器/计数器,以满足这方面的需要。它们具 有 两种工作模数(计数器模式、 定时器模式)和四种工 作方式( 方式0、方式1、方式2、方式3),其控制字均 在相应的特殊功能寄存器(SFR)中,通过对它的SFR的 编程,可以方便的选择工作模数和工作方式。
要求再增加一个外部中断源, 并由 P1.0 口输出一个 5K Hz的方波(假设晶振频率为 6 MHz)。
第五章 定时/计数器
定时/计数器门控位GATE的应用
相关文档
最新文档