您当前的位置:五五电子网电子知识单片机-工控设备51单片机第十四课:定时器/计数器的基本结构及工作原理 正文
第十四课:定时器/计数器的基本结构及工作原理

第十四课:定时器/计数器的基本结构及工作原理

点击数:7392 次   录入时间:03-04 11:50:11   整理:http://www.55dianzi.com   51单片机
  SETB     ET0                             ;定时器0允许中断
LOOP:  
  SETB     TR0                             ;开始定时
HERE: 
  SJMP    $                               ;等待中断
  CLP      TF0                             ;计数溢出标志位清0
  AJMP     LOOP

    中断服务中断:

  CPL         P1.0                            ;输出方波
  RETI                                       ;中断返回

例题2: 用定时器1以工作方式2实现计数,每计100次进行累加器加1操作。

⑴ 计算计数初值
        28-100=156D=09CH    则
        TH1=09CH,TL1=09CH
⑵ TMOD寄存器初始化
        M1M0=10,C/T=1,GATE=0    因此
        TMOD=60H

⑶ 程序设计

  MOV    IE, #00H           ;禁止中断
  MOV    TMOD, #60H         ;设置计数器1为方式2
  MOV    TH1, #9CH          ;保存计数初值
  MOV    TL1, #9CH          ;设置计数初值
  SETB   TR1                 ;启动计数
DEL:  
  JBC    TF1, LOOP           ;查询计数溢出
  AJMP   DEL
LOOP: 
  INC    A                   ;累加器加1
  AJMP   DEL                 ;循环返回

工作方式3
2个8位方式。工作方式3只适用于定时器0。如果使定时器1为工作方式3,则定时器1将处于关闭状态。
当T0为工作方式3时,THo和TL0分成2个独立的8位计数器。其中,TL0既可用作定时器,又可用作计数器,并使用原T0的所有控制位及其定时器回零标志和中断源。TH0只能用作定时器,并使用T1的控制位TRl、回零标志TFl和中断源,见下图。
通常情况下,T0不运行于工作方式3,只有在T1处于工作方式2,并不要求中断的条件下才可能使用。这时,T1往往用作串行口波特率发生器(见1.4),TH0用作定时器,TL0作为定时器或计数器。所以,方式3是为了使 单片机 有1个独立的定时器/计数器、1个定时器以及1个串行口波特率发生器的应用场合而特地提供的。这时,可把定时器l用于工作方式2,把定时器0用于工作方式3。

下才可能使用。这时,T1往往用作串行口波特率发生器,TH0用作定时器,TL0作为定时器或计数器。所以,方式3是为了使 单片机 有1个独立的定时器/计数器、1个定时器以及1个串行口波特率发生器的应用场合而特地提供的。这时,可把定时器l用于工作方式2,把定时器0用于工作方式3。
理解内容

定时器/计数器的应用

例1、设fosc = 6MHz,利用 单片机 内定时/计数器及P10口线输出1000个脉冲,脉冲周期为2ms,试编程。
解:


                     T = 12×1/fosc = 2us
选取T0定时;T1计数。
设T0采用中断方式产生周期为2ms方波,T1对该方波计数,当输出至第1000个脉冲时,使TF1置1。
在主程序中用查询方法,检测到TF1变1时,关掉T0,停止输出方波。
T0、T1参数的确定:
T0模式0、定时:脉宽为脉冲周期的一半
所以,X = 213-1ms / 2us = 0001 1110 0000 1100B
     TH0 = 0F0H
     TL0 = 0CH
T1模式1、计数:N = 1000
则 X = 65536-1000 = 64536 = 0FC18H
(若选模式0也可以,此时X = 7192=1C18H)

程序:






MAIN:








WAIT:




TOS:

ORG 0000H
LJMP MAIN
ORG 000BH
LJMP TOS
ORG 1000H
MOV TMOD,#50H;T0定时,模式0;T1计数,模式1
MOV TL0,#0CH
MOV TH0,#0F0H
MOV TL1,#18H
MOV TH1,#0FCH
SETB TR1
SETB TR0
SETB ET0
SETB EA
JNB TF1,WAIT;查询1000个脉冲计够没有?没有等待。
CLR EA
CLR ET0
ANL TCON,#0FH ; 停T0、T1
SJMP $
MOV TL0,#0CH
MOV TH0,#0F0H
CPL P10
RETI
END

例2、脉冲参数测量——GATE功能的使用。
电路连接如下图所示。
脉冲高电平(计数)长度值存于21H、20H中,
脉冲低电平长度存于23H、22H中。
解: 复习GATE的用法:
GATE = 0时,TRi = 1,即可启动Ti定时 / 计数
GATE = 1时,TRi = 1,且/INTi =1,才启动定时 / 计数。




MAIN :







TEST0:

TEST1:

TEST2:



TEST3:

ORG 0000H
LJMP MAIN
ORG 2000H
MOV TMOD,#99H

MOV A,#00H

MOV TL0,A
MOV TH0,A
MOV TL1,A
MOV TH1,A
JB P32,TEST0
SETB TR0
JNB P32,TEST1
SETB TR1
JB P32,TEST2
CLR TR0
MOV 20H,TH0
MOV 21H,TL0
JB P33,TEST3
CLR TR1
MOV 22H,TH1
MOV 23H,TL1
LCALL DISP
SJMP $



;T0、T1均工作在定时,
; 模式1,GATE=1
;T0、T1赋计数初值00H,定时最长时间
;为0000 ~ 65536




;检测是否到a点
;到a点,TR0 = 1,做好取计时值准备。
;检测是否到1点
;到1点T0计时;TR1 = 1,做好T1计时准备。
;检测是否到2点
;到2点,停止T0计时,T1开始计时。
;保存T0计时结果

;检测是否到3点
;到3点,停止T1计数
;保存T1计数结果



上一页  [1] [2] [3] [4] 


本文关键字:工作原理  计数器  定时器  51单片机单片机-工控设备 - 51单片机

《第十四课:定时器/计数器的基本结构及工作原理》相关文章>>>