《89C51的定时》
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
即TH1=63H,TL1=18H,又因采用方式0定时,故
TMOD=00H。
精选课件
18
5.1 89C51的定时与计数
定时/计数器的应用实例
【例2】用定时器1,方式0实现1s的延时。
延时子程序如下:
DELAY:MOV R0,#200
;置5ms计数循环初值
MOV TMOD,#00H ;设定时器1为方式0
(P3器。
确定定时器工作方式指令:
MOV TMOD,#方式字
例:设T0用方式2非门控定时,T1用方式1门控计数。
MOV TMOD精,选课#0件D2H ; 1101 0010 B
4
5.1 89C51的定时与计数
定时/计数器的4种工作方式
精选课件
15
5.1 89C51的定时与计数
定时/计数器的初始化
置入计数初值X可这样计算: 计数方式时:X=M-计数值(X即为计数值的补) 定时方式时:(M-X)*T=定时值,故X=M-定
时值/T 其中T为计数周期,是单片机时钟的12分频,
即单片机机器周期。当晶振为6MHz时,t=2μs;当 晶振12MHz时,T=1μs。
因定时器1的TR1被占用,因此其启动和关闭较为 特殊,当设置好工作方式时,定时器1即自动开始运 行。若要停止操作,只需送入一个设置定时器1为方 式3的方式字即可。
精选课件
11
5.1 89C51的定时与计数
控制寄存器TCON
定时/计数器的控制寄存器也是一个8位特殊功能寄存 器,字节地址为88H,可以位寻址,位地址为88H~8FH, 用来存放控制字,其格式如下:
精选课件
21
5.1 89C51的定时与计数
定时/计数器的应用实例
【例4】用定时器1,方式2实现1s的延时
延时子程序:
DELAY: MOV R7,#40
;置25ms计数循环初值
MOV R6,#100
;置250μs计数循环初值
MOV TMOD,#20H ;设定时器1为方式2
MOV TH1,#06H ;置定时器初值
其中,TL0占用原定时器0的控制位、引脚和中断 源,即GATE、TR0、TF0和T0(P3.4)引脚、INT0 (P3.2)引脚。除计数位数不同于方式0、方式1外, 其功能、操作与方式0、方式1完全相同,可定时亦可 计数。定时时间为:
( 25T 60 L初值 时) 钟周 12
精选课件
9
5.1 89C51的定时与计数
TCON.7 TF1:定时器1溢出标志位 当定时器1计满数产生溢出时,由硬件自动置TF1=1。在中
断允许时,向CPU发出定时器1的中断请求,进入中断服务程 序后,由硬件自动清0。
在中断屏蔽时,TF1可作精查选课询件测试用,此时只能由软件清102。
5.1 89C51的定时与计数
控制寄存器TCON
TCON.6 TR1:定时器1运行控制位 由软件置1或清0来启动或关闭定时器1。当
3.定时 晶振的频率非常准,用它作为计数脉冲的时间间隔 也很准 。计数值就代表了时间的流逝 ,计一定的数,也 就是确定一定的时间。这就是定时与计数的密切关系。
4.溢出 计数器溢出后将使得TF0变为“1” 5.任意定时及计数的方法
加1计数,计到65536就会精产选课生件溢出。采用预置数的方法 2
5.1 89C51的定时与计数
定时/计数器的初始化
由于定时/计数器是可编程的,因此在定时或计
数之前要用程序初始化,初始化步骤:
(1) 确定工作方式——对TMOD赋值。
(2) 预置定时或计数的初值——直接将初值写入
TH0、TL0或TH1、TL1。
定时/计数器的初值因工作方式的不同而不同。
设最大计数值为M,则各种工作方式下的M值如下:
=1111000001100B 但方式0的TL0高3位是不用的,都设为“0”,这1E0CH应 写成:
F00CH=1111000000001100B
最后将F0H装入TH0,0CH装入TL0。
采用方式1:
X=216-(500*10-6s/10-6s)=65036=FE0CH
即将FEH装入TH0,0CH装精选入课T件L0。
(假定单片机晶振为12MHz ,5ms/1μs=5000),则定时器1的
初值为:
X=M-计数值=8192-5000=3192=C78H=0110001111000B
因13位计数器中TL1的高3位未用,应填写0,TH1占
高8位,所以,X的实际填写值应为
X=0110001100011000B=6318H
第5章89C51的定时/计数器
计算机采取的是软、硬结合的方法, 配置了专门的定时和计数逻辑电路,可以 通过在线调整它的参数,称为可编程定时 /计数器。
89C51单片机内部配置了两个16位 的可编程定时/计数器。
精选课件
1
5.1 89C51的定时与计数
一、几个重要的概念
1.计数的概念
2.计数器的容量 89C51单片机中有两个计数器,分别称 之为T0和T1,这两个计数器分别是由两个8位的RAM单元 组成的,即每个计数器都是16位的计数器,最大的计数量 是65536。
精选课件
16
5.1 89C51的定时与计数
定时/计数器的应用实例
【例1】若单片机晶振为12MHz,要求产生500μs的定时, 试计算X的初值。
解:由于T=1μs,产生500μs定时,则需要“+1”500次,定 时器方能产生溢出。
采用方式0: X=213-(500*10-6s/10-6s)=7692=1E0CH
【例4】用定时器1,方式2实现1s的延时。 解:因方式2是8位计数器,其最大定时时间为:
256*1μs=256μs,为实现1s的延时,可选择定时时间 为250μs,再循环4000次。
定时时间选定后,可确定计数值为250,则定时 器1的初值为:X=M-计数值=256-250=6=06H。采用 定时器1,方式2工作,因此,TMOD=20H。
1.方式0 当软件使方式寄存器TMOD中M1M0=00时,计数器长度按
13位工作。有TL的低5位(TL的高3位未用)和TH的8位构成 13位计数器(对T0、T1都适用)。
精选课件
5
5.1 89C51的定时与计数
2.方式1 当软件使方式寄存器TMOD中M1M0=01时,计数器长度按
16位工作,即TL、TH全部使用,构成16位计数器,其控制与 操作方式与方式0完全相同。
MOV TL1,#06H
SETB TR1
;启动T1
LP1: JBC TF1,LP2
;查询计数溢出
SJMP LP1
;无溢出则继续计数
LP2: DJNZ R6,LP1
;未到25ms继续循环
MOV R6,#100
DJNZ R7,LP1
;未到1s继续循环
RET
精选课件 ;返回主程序
22
2)方式选择位M1、M0: M1 M0 方式 4种工作方式: 0 0 0
01 1
功能描述 13 位 16 位
1 0 2 8 位自动重装
3)门控方式选择位GATE 1 1 3 T0 为两个 8 位
计数器启动方式的选择
当GATE=0时,软件控制位TR0或TR1置1即可启动定时器;
当GATE=1时,软件控制位TR0或TR1须置1,同时还须
启动计数方式:
非门控方式:当GATE=0,
控制权由 TRx 决定 TRx=1 计数开始 TRx =0 精计选课数件停止
门控方式: 当GATE=1、TRx=1 控制权由 INTx 决定 INTx=1 计数开始 INTx =0 计数停止 6
5.1 89C51的定时与计数
3. 方式2
用于需要重复定时和计数的场合。 最大计数值:256 (28) 自动恢复初值8位定时/计数器。TLx为8位加1计数器,
二、 89C51 定时/计数器的方式控制字
在单片机中有两个特殊功能寄存器与定时/计数有关,这 就是TMOD和TCON。
TMOD的地址是89H
1)功能选择位C/T: C/T =0,定时功能,计数内部机器周期脉冲; C/T =1,计数功能,计数精引选课脚件 T0(T1)输入的负脉冲。 3
5.1 89C51的定时与计数
GATE=1,且为高电平时,TR1置1启动定时器1;当 GATE=0时,TR1置1即可启动定时器1。
TCON.5 TF0:定时器0溢出标志位。其功能及操作情 况同TF1。 TCON.4 TR0: 定时器0运行控制位。其功能及操作情 况同TR1。
当系统复位时,TCON的所有位均清0。
精选课件
13
5.1 89C51的定时与计数
方式0:M2138192 方式1:M21665536
方式2:M28 2 5 6
方式3:M28 2精5选课6件
14
5.1 89C51的定时与计数
定时/计数器的初始化
(3) 根据需要开启定时/计数器中断——直接对 IE寄存器赋值。
(4) 启动定时/计数器工作——将TR0或TR1置 “1”。
在初始化过程中,要置入定时或计数的初值, 要做一点计算。由于计数器是加“1”计数器,并在 溢出时产生中断请求,因此不能直接将需要计数的 个数直接置入计数器,而应送计数个数的补数。
THx为8位初值暂存器。
精选课件
7
5.1 89C51的定时与计数
4.方式3 T0分成2个8位定时器:TL0定时/计数器和TH0定时器 TL0占用T0控制位:C/T,TR0,GATE;TH0占用T1控制位:TR1。 T1不能使用方式3工作
精选课件
8
5.1 89C51的定时与计数
4.方式3
方式3时,定时器0被分解成两个独立的8位计数 器TL0和TH0。
;启动T0
LP1: JBC TF0,LP2 ;查询计数溢出
SJMP LP1
;未到50ms继续计数
LP2: MOV TH0,#3CH ;重新置定时器初值
MOV TL0,#0B0H
DJNZ R0,LP1 ;未到1s继续循环
RET
精选课件 ;返回主程序
20
5.1 89C51的定时与计数
定时/计数器的应用实例
4.方式3
TH0占用原定时器1的控制位TF1和TR1,同时 还占用了定时器1的中断源,其启动和关闭仅受TR1 置1或清0控制。
TH0只能对机器周期进行计数,因此,TH0只 能用作简单的内部定时,不能用作对外部脉冲进行 计数,是定时器0附加的一个8位定时器。
定时时间计算公式为:
( 25T 6 H 0初值 时) 钟1 周 2 期
精选课件
19
5.1 89C51的定时与计数
定时/计数器的应用实例
【例3】用定时器0,方式1实现1s的延时。
延时子程序如下:
DELAY: MOV R0,#20
;置50ms计数循环初值
MOV TMOD,#01H;设定时器0为方式1
MOV TH0,#3CH ;置定时器初值
MOV TL0,#0B0H
SETB TR0
MOV TH1,#63H ;置定时器初值
MOV TL1,#18H
SETB TR1
;启动T1
LP1: JBC TF1,LP2 ;查询计数溢出
SJMP LP1
;未到5ms继续计数
LP2: MOV TH1,#63H ;重新置定时器初值
MOV TL1,#18H
DJNZ R0,LP1
;未到1s继续循环
RET
;返回主程序
17
5.1 89C51的定时与计数
定时/计数器的应用实例
【例2】用定时器1,方式0实现1s的延时。
解:因方式0采用13位计数器,其最大定时时间为:
8192*1μs=8192μs,因此,定时时间可选择为8ms,再循环125
次;或者定时时间选择为5ms,再循环200次。
本例选择后者。定时时间选定后,再确定计数值为5000
精选课件
10
5.1 89C51的定时与计数
4.方式3
方式3时,定时器1仍可设置为方式0、方式1或方 式2。但由于TR1、TF1及T1的中断源已被定时器0占 用,此时,定时器1仅由控制位切换其定时或计数功 能,当计数器计满溢出时,只能将输出送往串行口。 在这种情况下,定时器1一般用作串行口波特率发生 器或不需要中断的场合。