学习51单片机定时器

文章详细介绍了定时/计数器的工作原理,包括它们的初始值计算、计数过程、TMOD和TCON寄存器的功能,以及四种不同的工作模式。在不同模式下,定时器可以作为13/16位定时器或计数器使用,并且有特定的溢出和启动条件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.定时器是一个加法器,公式:

        初值X=最大计数值M-计数值N

2.当定时/计数器工作于计数方式,芯片引脚T0-P3.4(或T1-P3.5)上的输入脉冲计数。

        计数过程:在每一个机器周期的S5P2时刻对T0或T1上的电平采样一次,当上一个机器周期采样到高电平,下一个机器周期采样到低电平时,计数器在下一个机器周期的S3P2时刻加1计数一次。

3.TMOD寄存器

 其中:M1,M0为工作方式选择位,选择T0,T1的工作方式。

 C/T:定时或计数方式选择位,当 C/T=1工作于计数方式,当 C/T=0工作于定时方式。

GATE:门控位,控制定时/计数去的启动是否受外部中断请求信号的影响,INTx为高电平时才运行。

4.TCON寄存器

 TF1(TF0):定时/计数器T1(T0)溢出标志,当定时/计数器溢出时,TF1=1;

TR1(TR0):定时/计数器T1(T0)的启动位,当TR1=1时启动,TR1=0时停止。

5.各个工作方式

(1)方式0

        13位定时/计数器,最大值位2的13次幂,等于8192。如计数值为N,则初值X为:

                X=8192-N

        如定时/计数器T0的计数值为1000,则初值为7192,转换为二进制,TH0=11100000(E0H),TL0=00011000(18H)。

(2)方式1

        16位定时/计数器,最大为2的16次幂,为65536。初值X:

                X=65536-N

        如定时/计数器T0的计数值为1000,则初值为64536,二进制TH0=11111100(FCH),TL0=00011000(18H)

(3)方式2

        16位计数器用8位来计数,TL0来计数,TH0用来存放初值,当TL0溢出时,将TH0的值自动装入TL0。最大值为2的8次幂256,初值X:

                X=256-N

        如定时/计数器T0的计数值为100,则初值为156,二进制TH0=10011100(FCH),TL0=10011100(18H)

(4)方式3

        方式3只有定时计数器T0才有,当M1M0两位为11时,定时/计数器T0工作于方式3,方式3下,定时计数器 T0 被分为两个部分 TL0 和 TH0 ,其中, TL0 可作为定时/计数器使用,占用 T0 的全部控制位:GATE、C/T、TR0和TF0;而TH0固定只能作定时器使用,对机器周期进行计数,这时它占用定时/计数器T1的TR1位、TF1位和T1的中断资源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值