51单片机定时/计数器

硬件结构:

电路图:

 T0,T1均由两个{TH0/1(高位),TL0/1(低位)}8位SFR(Special Function Register)寄存器构成

 TMOD用于设置定时器/计数器的工作方式

TCON用于启动和停止定时器/计数器的计数,并控制定时器的工作状态

工作模式

定时器:由系统内部的时钟晶振输出脉冲的1/12,当每来一个内部脉冲,对应的计数单元就加一,当加到对应模式的最大值,TF0/1置1,向cup发出中断请求。

计数器:由外部脉冲源提供,当每来一个外部脉冲,计数器就加1,当加到计数器全为1时候,位于TCON寄存器中的TF0/1(溢出标志位)置1,向cup发出中断请求。

(如何选择定时器/计数器?见寄存器板块)

寄存器

定时器/计数器控制寄存器TCON(可按位寻址):

定时器/计数器工作方式寄存器TMOD(不可按位寻址):

 寄存器结构:

 寄存器各位功能:

特殊说明:当为计数器模式时且GATE=1,此时计数的停止与否受INTx位控制,当INTx=1(高电平)开始计数,INTx=0(低电平)停止计数。

定时器/计数器工作方式:

1--13位定时器/计数器(最大计数:2^13=8192,M1M0=00)

 由TLx的低5位(高3位未使用),THx的8位组成,TLx低5位溢出时向THx进位,,当THx溢出时候,TCON中的TFx置1,向cup发出中断请求。

设置初值:

设单片机机器周期为T,产生一次中断时间是t,那么需要的计数次数N=t/T;

THx=(8192-N)/2^5,TLx=(8192-N)%2^5;

2--16位定时器/计数器(最大计数次数:2^16=65536,M1M0=01)最常用

THx的8位和TLx的8位组成

设置初值:

N=t/T;

THx=(65536-N)/2^8,TLx=(65536-N)%2^8;

3--8位自动重装初值方式(最大计数:2^8=256,当计数器溢出,自动将上次设置的初值重装--适合做比较精确的脉冲信号发生器)

计数的次数:N=t/T

THx=256-N,TLx=256-N;

(晶振频率要选择12的整数倍,因为定时器的频率是晶振频率的1/12,如果使用11.0592MHZ,误差比较大)

4--将T0分为两个8位计数器(最大计数:256,T1被禁用了)

 TL0是正常的8位定时/计数器,计数溢出后,将TF0位置1,向cup发出中断请求,之后重装初值。

TH0也被固定为一个8位定时/计数器,计数溢出后,将TF1置1,向cup发出中断请求,之后重装初值。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值