发 帖  
[问答] 单片机定时器
2018-7-19 14:37:27  433
分享
定时器初始化时,计算初值并将其写入TH0,TL0(用的是定时器0)到底是什么意思?如何计算?TH0,TL0又指什么?
2
2018-7-19 14:37:27   评论
2 个讨论
定时器0是16位的 2的16次方是65536
所以能计数65536次
16位是由TH0高8位和TL0低8位组成,关于计数,有种逆向思维的感觉,根据所要计数多少为TH0和TL0赋初值,比如要计数50ms,65536是计满,那刚开始计数时,16位定时器已计满65536-50000
接下来就是把这个初值分配到高8位,低8位。
TH0=(65536- 所需计数次数)/256 = 初值/256;

TL0=(65536 - 所需计数次数)%256 = 初值%256;

为什么除以256呢?因为要把那些初值装进这两个8位,计数从低8位开始,那么低8位最多能装256个机器周期,那么256计满了就用高8位的,就是说低8位满一次高8位加1,那么高8位装多少,低8位就满了几次,算法就是用初值除一下256取其整数,剩下的,就是还剩了小于256次数的就放在低8位,就是初值的余数
2018-7-20 11:42:30 评论

举报

CKEAI 发表于 2018-7-20 11:42
定时器0是16位的 2的16次方是65536
所以能计数65536次
16位是由TH0高8位和TL0低8位组成,关于计数,有种逆向思维的感觉,根据所要计数多少为TH0和TL0赋初值,比如要计数50ms,65536是计满,那刚开始计数时,16位定时器已计满65536-50000

逆向思维一下子就懂了,非常感谢
2018-7-20 15:49:46 评论

举报

高级模式
您需要登录后才可以回帖 登录 | 注册

发表新帖
关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表