单片机定时器预置数的方法

来源:百度知道 编辑:UC知道 时间:2024/05/28 08:50:10
T1H=(65536-55536)/256
T1L=(65536-55536)MOD256
详细说说是什么意思

T1H=(65536-55536)/256
T1L=(65536-55536)MOD256
---------------------
应该是“TH1”和“TL1”。
他们两个,共同存放一个16位的二进制数,定时器启动后,就会自动加一。
当加到65536的时候,就加满溢出了,出现定时中断申请。
如果预先存入10000,那么就会加上55536次,产生溢出。
10000,要分出高8位,存入TH1、分出低8位,存入TL1。

10000/256,就是分离出高8位,这是除以256,得到整数部分;
10000%256,就是分离出低8位,这是除以256,得到余数部分。

“/”和“%”的算法,可以参考C语言的运算符号部分。

就是赋初值啊
TH1是高八位TL1是低八位,就是每计数到65536就会产生一次中断,但是计数的起始就是你付的初值。比如你吧他们服了50000那么它就从50000开始数 50000 50001 50002.。。。。65536 这是旧会产生中断,
(65536-55536)/256这个的意思就是把你要付的初值化成二进制 然后取高八位付给TH1(65536-55536)%256这个是取低八位。
因为计算机只认识二进制数。记住就好了 这就是格式 有点数学问题

51单片机的定时器是加法计数的,上面两句的意思是定时器1要计数55536次中断一次,所以定时器的初值就是65536-55536,而“/256”就是取高8位,“MOD256”就是取低8位,不过应该写成“%256”才对吧
这样说你应该明白了吧,其实这样写是很方便直观的,修改也容易,建议写程序时用这种写法