单片机机器周期怎么计算公式_单片机定时器周期计算公式

定时器是单片机的重要功能模块之一,在检测、控制领域有广泛应用。定时器常用作定时时钟,以实现定时检测,定时响应、定时控制,并且可以产生ms宽的脉冲信号,驱动步进电机。定时和计数的最终功能都是通过计数实现,若计数的事件源是周期固定的脉冲则可实现定时功能,否则只能实现计数功能。因此可以将定时和计数功能全由一个部件实现。

10MS定时器初值的计算

1.晶振12M

12MHz除12为1MHz,也就是说一秒=1000000次机器周期。10ms=10000次机器周期。

65536-10000=55536(d8f0)

TH0=0xd8,TL0=0xf0

444c1f47c9eed462752f6865599047b0.png

2.晶振11.0592M

11.0592MHz除12为921600Hz,就是一秒921600次机器周期,10ms=9216次机器周期。

65536-9216=56320(dc00)

TH0=0xdc,TL0=0x00

50MS定时器初值的计算

1.晶振12M

12MHz除12为1MHz,也就是说一秒=1000000次机器周期。50ms=50000次机器周期。

65536-50000=15536(3cb0)

TH0=0x3c,TL0=0xb0

2.晶振11.0592M

11.0592MHz除12为921600Hz,就是一秒921600次机器周期,50ms=46080次机器周期。

65536-46080=19456(4c00)

TH0=0x4c,TL0=0x00

e4e971874e9f76953ffbd89a236288d8.png

使用说明

以12M晶振为例:每秒钟可以执行1000000次机器周期个机器周期。而T每次溢出最多65536个机器周期。我们尽量应该让溢出中断的次数最少(如50ms),这样对主程序的干扰也就最小。开发的时候可能会根据需要更换不同频率的晶振(比如c51单片机,用11.0592M的晶振,很适合产生串口时钟,而12M晶振很方便计算定时器的时间),使用插接式比较方便。

对12MHz1个机器周期1us12/fosc=1us

方式013位定时器最大时间间隔=2^13=8.192ms

方式116位定时器最大时间间隔=2^16=65.536ms

方式28位定时器最大时间间隔=2^8=0.256ms=256us定时5ms,计算计时器初值M=2^K-X*Fosc/1212MHz方式0:K=13,X=5ms,Fosc=12MHz则M=2^13-5*10^(-3)*12*10^6/12=3192=0x0C78THx=0CH,TLx=78H,

9e178e74eb92663e19c2a6ffc6519877.png

方式1:K=16,X=5ms,Fosc=12MHz则M=2^16-5*10^(-3)*12*10^6/12=60536=0xEC78THx=ECH,TLx=78H,

50ms12MHzTHx=3CH,TLx=B0H,10msTHx=D8H,TLx=F0H,

方式2:最大时间2^8Fosc/12=0.256ms

十进制数是怎么来的?6MHz一个机器周期12/6=2us定时1ms计数初值x(2^16-x)*2us=1000usx=2^16-500,TH,TL可置-500

12MHz一个机器周期12/12=1us12MHz一个机器周期12/12=1us定时50ms计数初值x(2^16-x)*1us=50000usx=2^16-50000,TH,TL可置-500定时器计内部晶振频率

计数器计外部输入CPU脚上的脉冲个数P3.4(T0)P3.5(T1)负跳变加一

当晶振为6MHz时,最高计数频率500KHz

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值