20101011定时器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

TF0:定时器T0溢出标志位。其功能与TF1相同。 TR0:定时器T0运行控制位。其功能与TR1相同。 IE1:外部中断1请求标志位。 IT1:外部中断1触发方式控制位。
IE0:外部中断0请求标志位。
IT0:外部中断0触发方式控制位。
IE1、IT1、IE0、IT0这4位已讲述。
控制寄存器TCON的位地址是88H,可以对它进行 位、字节寻址。复位后,TMOD.TCON寄存器全部清零。
22定时器定时器计数器的工作方式计数器的工作方式pp135135取决于定时器取决于定时器计数器的工作方式寄存器计数器的工作方式寄存器tmodtmod定时器定时器计数器是一种可编程部件计数器是一种可编程部件在工作之在工作之前必须通过软件设定它的工作方式前必须通过软件设定它的工作方式即对工作方即对工作方式寄存器式寄存器tmodtmod中相应的位进行设定中相应的位进行设定
8.3、定时计数器编程举例
定时/计数器的编程有2个要点:
(1) 初始化: 骤如下: 初始化即正确写入控制字。具体步
把工作方式控制字写入TMOD寄存器; 把定时/计数初值装入TLx,THx寄存器; 置位TRx,启动计数; 若需中断,置位ETx允许定时/计数器中断,置位EA使 CPU开放中断。 下面讨论计数常数的计算:定时器/计数器运行前, 要在 其TLx,THx寄存器中预先置入的常数,称为定时常数 或计数常数(TC)。注意计数器是加1(向上)计数的。
TF1 中断
方式3可使MCS-51单片机增加一个附加的8位定时/计数器,其 只适用于定时/计数器0,定时/计数器1处于方式3时相当于TR1=0, 停止计数。 如果把定时器0置成方式3,TL0和TH0成为两个独立的8位计数 器,定时器0在方式3的逻辑结构如图6-5所示。在这种方式下,TL0 使用了定时器0的所有控制位:C/T,GATE,TR0,INT0和TF0。TH0 则被限制为一个定时器(计数机器周期)。同时和定时器1的TR1和 TF1连用,也即借用了定时器1的中断标志和运行控制位。 一般来说,当系统需要增加一个额外的8位定时器时,才设置 定时/计数器0工作于方式3。当定时/计数器0工作于方式3时,由于 TH0控制了定时器1的中断,此时定时/计数器1虽可定义为方式0、 方式1和方式2,但只能用在不需要中断控制的场合,例如,工作于 自动装载方式(方式2),作为串行口的波特率发生器使用等等。 方式3了解即可,要求熟练掌握方式0。1。2 。
定时器/计数器的控制寄存器TCON
设定好了定时器/计数器的工作方式后,它 还不能进入工作状态,必须通过设置控制寄存器 TCON中的某些位来启动它工。要使定时器/计 数器停止运行,也必须通过设置TCON中的某些 位来实现。当定时器/计数器计满溢出,或有外 部中断请求时,TCON中某些位能标明溢出和中 断情况。下面介绍控制寄存器TCON每位的含义:
TF1:定时器T1溢出标志位。当定时器T1溢出时, 由硬件自动使TF1置1,并向CPU申请中断。CPU响应
中断后,自动对TF1清零。TF1也可以用软件清零。
TR1:定时器T1运行控制位。可由软件置1(或清 零)来启动(或关闭)定时器T1,使定时器T1开始计 数。用指令SETB (或清零)。 TR1(或CLR TR1)使TR1置1
数预置在THX中,再装入TLX后,THX(X=0,1)的内容保持不变。
振荡器
除 12 C/T=0 C/T=1 TLx (8 位) TFx 中断 重新装入 控制
Tx 引脚 GATE INTx 引脚 TRx
+
THx(8 位)
定时器工作方式 2 逻辑结构
4 。 工作方式3
工作方式3仅对定时器T0有效。当定时器T0工作在方式3时,
例1 设定时/计数器T0为定时状态,工作于方式1,定时时间为2ms, 每当2ms申请中断,A中初始值为01H,送P1口,在中断服务程序 中将累加器 A的内容自左环移一次 ,送 P1口,已知晶振频率为 6MHz。试编程之。
ORG 0000H AJMP MAIN ORG 000BH LJMP INTT0 MAIN: MOV SP, #53H MOV TMOD, #01H MOV TL0, #18H MOV TH0, #0FCH MOV A, #01H MOV P1, A SETB TR0 SETB ET0 SETB EA SJMP $
将16位的计数器分为两个独立的8位计数器TH0和TL0。
1/12 fosc(机器周期) 振荡器 除 12 C/T=0 C/T=1 T0 引脚 GATE INT0 引脚 TR0 控制 TL0 (8 位) TF0 中断
+
1/12 fosc(机器周期) TR1 定时器工作方式 3 逻辑结构
TH0 (8 位) 控制
INTT0: MOV TL0, #18H
MOV TH0, #0FCH RL A
MOV P1, A
RETI
我们再探讨一下如果需要长延时,如何处理。先看看在系统的 晶振频率为12MHZ时(Tp=1μs),方式0、1、2下,最大 的基本定时时间: 要使定时/计数器的基本定时时间最大,则定时时间常数寄存 器全送0。 方式0:TMAX0=(213-0)×1μ s =8192μ s 方式1:TMAX1=(216-0)×1μ s =65536μ s 方式2:TMAX2=(28-0)×1μ s =256μ s 相应地在系统的晶振频率为6MHZ时(Tp=2μs),方式0、1、 2下,最大的基本定时时间: 方式0:TMAX0=(213-0)×2μ s =16384μ s=16.384ms 方式1:TMAX1=(216-0)×2μ s =131072μ s=131.072ms 方式2:TMAX2=(28-0)×2μ s =512μ s 由此可见即便在晶振频率为6MHZ时,最大的基本定时时间也 不超过131.072ms。如果需要的定时时间较大,则需増加计 数单元(单片机内RAM字节单元)。
Tx 引脚 GATE INTx 引脚 TRx
+
定时器工作方式 1 逻辑结构
3 。工作方式2: 定时/计时器构成一个自动再装入功能的8位计数器(TLX),而THX在
此方式中作为一个数据缓冲器。当TLX计数溢出时,在置“1”溢出标志TFX的同时,还自 动地将THX中的常数送至TLX,使TLX从初值开始重新计数。用户可以通过软件把时间常
其相关程序段为:ORG AJMP ORG AJMP MAIN: MOV MOV MOV MOV SETB SETB SETB SETB SJMP INTT1: MOV MOV CPL RETI
0000H MAIN ;转主程序 001BH ;T1中断服务程序入口 INTT1 ;转中断服务程序 SP, #50H ;主程序 TMOD, #00H ;T1初始化 TH1,#0FCH TL1,#1CH P1.4 ET1 ;允许T1中断 TR1 ;启动T1计数 EA ;CPU开中断 $ ;等待 TH1,#0FCH ;送200μ s定时时间初值 TL1, #1CH P1.4 ;P1.4口变反
作方式,如表所示。
2、C/T定时器/计数器方式选择位 C/T=0,设置为定时方式,对机器周期进行计数。 定时方式时T0(P3.4)或T1(P3.5)引脚可作为一般
I/O引脚使用。
C/T=1,设定为计数方式,对外部脉冲信号进行计
数,外部脉冲信号接至T0(P3.4)或T1(P3.5)引脚。
3、GATE门控位 GATE=0时,只要用软件使TR0(或TR1)置1就能启动定时 器T0(或T1); GATE=1时,只有在INT0(或INT1)引脚为高电平的情况 下,且由软件使TR0(或TR1)置1时,才能启动定时器T0(或 T1)工作。
当工作于定时状态时,由于定时/计数器是计数机器周期, 每个机器周期(设为Tp)包括12个振荡周期,若晶振频率为 6MHZ,则一个机器周期为2μs;若晶振频率为12MHZ,则一个 机器周期为1μs。由于定时/计数器是以加1方式计数的。假定所 需的定时/计数初值为X,则相关的计算公式为: (2n-TC)×Tp=所需的定时时间 (对于方式0,n=13; 对于方式1,n=16;和对于方式2、3, n=8)。 例如:设以定时器T0来进行讨论,要求定时1ms。已知系统时钟 为6MHZ,则Tp=2μs 对方式0: 套用上述公式(213-TC)×2μs =1000μs 可求得TC=7692D=1E0CH。 TH0=F0H,TL0=0CH 对方式1: 套用上述公式(216-TC)×2μs =1000μs 可求得TC=65036D=FE0CH。TH0=FEH,TL0=0CH
8.1 单片机80C51定时/计数器及其应用P134
1.定时/计数器的核心是一个加1计数器
2.加1计数器的脉冲有两个来源,一个是外部脉冲源(计数
方式),另一个是系统的时钟振荡器(实际是对12分频后
的振荡周期即对机器周期计数,为定时方式)。 3.对外部脉冲计数时是下降沿计数
8.2
定时器/计数器的工作方式
例.如图所示为定时 器应用的例子, 80C51单片机的 P1.0~P1.7为LED 发光二极管输出口。 使发光二极管的一 位间隔1秒循环点 亮。(晶振频率为 6MHZ),要求用 定时/计数器T0, 用方式1 ,采用中 断方式定时,试编 制程序。
要定时1S,最大的基本定时时间无法满足。在此, 使用定时器T0基本定时100ms,用计数10次 100ms基本定时来实现定时1S的要求。 首先计算定时100ms的定时时间常数:(216-X) ×2μ s =100000μ s 则X=15536D=3CB0H(TH0=3CH,TL0=0B0H)。用 R7来计基本定时10次。
பைடு நூலகம்
§定时器/计数器的工作方式
(1) 工作方式0: 定时器/计数器T0工作在方式0时,16位计数 器只用了13位,即TH0的高8位和TL0的低5位,组 成一个13位定时器/计数器。
1 工作方式0
振荡器
除 12 C/T=0 C/T=1 THx (8 位) TLx (低 5 位) TFx 中断 控制
Tx 引脚 TRx GATE INTx 引脚
例.要求在单片机8031的P1口的P1.4产生周期为400μS的连续方波, 图示。 用定时/计数器1,使其工作在方式0下,用中断方式定时满 足上述要求(系统的晶振频率为6MHZ),编写相关程 序段。
200μ s 200μ s
由于系统的晶振频率为6MHZ,则Tp=2μs。所需的定时时间为 200μs。 (213-X)×2μ s =200μ s X=213-200/2=8192-100=8092D=1F9CH=0001 1111 1001 1100B 方式0时为13位计数器。在此由TH1的8位和TL1的低5位組成。TL1的 高3位全取为0, 将上述二进制数按要求重新排列为1111 1100 0001 1100B,装入 TH1、、TL1如下: TH1=FCH, TL1=1CH
ORG 0000H AJMP MAIN ;转主程序 ORG 000BH ;T0中断服务程序入口 AJMP INTT0 ;转中断服务程序 MAIN: MOV SP, #60H ;主程序 MOV R7,#0AH MOV A,#0FEH MOV P1,A MOV TMOD,#01H ;T0初始化 MOV TH0,#3CH ;送100ms定时时间初值 MOV TL0,#0B0H SETB ET0 ;允许T0中断 SETB TR0 ;启动T0计数 SETB EA ;CPU开中断 SJMP $ ;等待 INTT0: MOV TH0,#3CH;送100ms定时时间初值 MOV TL0,#0B0H DJNZ R7,L1 MOV R7,#0AH RL A MOV P1,A L1: RETI
p135
取决于定时器/计数器的工作方式寄存器TMOD 定时器/计数器是一种可编程部件,在工作之 前必须通过软件设定它的工作方式,即对工作方 式寄存器TMOD中相应的位进行设定。下面介绍 每位的含义: TMOD(89H)只能字节寻址,不可位寻址
其中,低4位用于决定T0的工作方式, 高4位用于决定T1的工作方式。 1、M1和M0工作方式控制位 M0和M1为工作方式控制位,确定4种工
+
. 定时器工作方式 0 逻辑结构 方式 0:
2 。 工作方式1:
定时器/计数器工作方式1与工作方式0类
同,差别在于其中的计数器的位数。工作方式0以13位计数器参 与计数,工作方式1则以16位计数器参与计数
振荡器
除 12 C/T=0 C/T=1 THx (8 位) TLx (8 位) TFx 中断 控制
相关文档
最新文档