51单片机的定时器/计数器接口

51单片机的定时器/计数器接口

定时器/计数器0和1
T0由特殊功能寄存器TH0(T0高8位)、TL0(T0低8位)构成,T1由特殊功能寄存器TH1(T1高8位)、TL1(T1低8位)构成。
原理:定时/计数器实质上是一个加1计数器,当加到计数器为全1时,在输入一个脉冲就使计数器为0,并溢出发出中断请求。

  1. 不需要CPU的参与。
  2. 定时器:机器内部的时钟的脉冲信号对寄存器中的数据加1;
    计数器:机器外部的时钟的脉冲信号对寄存器中的数据加1;
  3. 精确定时作用

与T0/T1相关的寄存器

  • 工作方式控制寄存器TMOD
    1.不可位寻址
符号字节地址位名称位名称位名称位名称位名称位名称位名称位名称复位值
TMOD89HGATEC/TM1M0GATEC/TM1M000000000

高四位为定时/计数器1的方式控制段,低四位为定时/计数器0的方式控制段。

  1. M1,M0:定时/计数器工作方式选择位
M1M0方式工作说明
00013位定时器(TH的8位和TL的低5位)
01116位定时器/计数器
102自动重装入初值的8位计数器
113T0分成两个独立的8位计数器,T1在方式3时停止工作
  1. C/T:定时/计数器工作模式选择位
    C/T=0时:定时/计数器为定时器方式
    C/T=1时:定时/计数器为计数器方式
  2. GATE:门控位
    GATE=0时,定时/计数器只由软件控制位TRx(x为0或1)来控制启/停。TRx位为1时,定时/计数器启动工作;为0时,定时/计数器停止工作。
    GATE=1时,定时/计数器的启动受外部中断引脚和TRx共同控制。只有当外部中断引脚INT0或INT1为高电平时,同时TR0或TR1置1时,才能启动定时/计数器0或定时/计数器1。
  • 定时/计数器控制寄存器TCON
符号字节地址位名称位名称位名称位名称位名称位名称位名称位名称复位值
TCON88HTF1TR1TF0TR0IE1IT1IE0IT000000000
  1. TR0:T0运行控制位。TR0置1时,T0开始工作;TR1置0时,T1停止工作。TR0由软件置1或清0。
  2. TF0:T0溢出中断请求标志位。T0计数溢出时由硬件自动置TF0为1。CPU响应中断后TF0由硬件自动清0。
  3. TR1:T1运行控制位。
  4. TF1:T1溢出中断请求标志位。

定时/计数器0/1的编程

  • 定时/计数器0/1初始化的步骤
  1. 确定工作方式(即对TMOD赋值)
  2. 预置定时/计数器的初值,可直接将初值写入TH0、TL0或TH1、TL1。
  3. 根据需要决定是否开始定时/计数器的中断,直接对IE对应位赋值。
  4. 启动定时/计数器。若步骤(1)中设定为非门控方式(GATE=0),则将TRx(x为0或1)置1,定时/计数器即开始工作;若设定为门控方式(GATE=1),则必须由外部引脚INTX(x为0或1)和TRx共同控制,只有当INTX引脚为高电平时,将TRx置1才能启动定时/计数器工作。
  • 定时/计数器0/1初值的计算
    • 方式0:最大计数值=213=8192,最长定时时间=8192*Tcy(Tcy为机器周期)。
    • 方式1:最大计数值=216=65536,最长定时时间=65536*Tcy(Tcy为机器周期)。
    • 方式2:最大计数值=28=256,最长定时时间=256*Tcy(Tcy为机器周期)。
    • 方式3:定时器0分成两个8位计数器,其最大计数值均为256,最长定时时间均为256*Tcy(Tcy为机器周期)。
      初值计算
    1. 计数器模式下:初值=最大计数值-计数值
    2. 定时器模式下:初值=最大计数值-定时时间/Tcy
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值