TH0=-50000/256;TH0=(65536-50000)/256分别什么意思

[复制链接]
查看11 | 回复5 | 2022-12-1 19:27:51 | 显示全部楼层 |阅读模式
(65536-50000)=15536,换算成16进制就是3CB0H\x0d\x0a(65536-50000)/256的结果是3CH,即一个字的高位字节。\x0d\x0a而(65536-50000)%256的结果是B0H,即一个字的低字节。\x0d\x0a单片机TH0=(65536-50000)/256;就是将定时器0(TH0)高位字节付值3CH。...
回复

使用道具 举报

千问 | 2022-12-1 19:27:51 | 显示全部楼层
这是16位的定时器,最大计数2的16次方即65536。式中的5000表示需要定时器定时一次需要计数的个数。那么定时器的初始值就是(65536-50000)。需要把这个初值分别赋给 TH0(高字节)TL0(低字节)高字节就是这个数除以256,即TH0=(65536-50000)/256。具体的结果编译器就给你计算了,这是一个省劲的写...
回复

使用道具 举报

千问 | 2022-12-1 19:27:51 | 显示全部楼层
如果你选的单片机的晶振一定,比如12MHZ来说吧,机器周期是1us,就是说每1us产生一次计数,就拿50ms来说,这是你想要的计时,意思是,对机器周期进行50000计数就可以得到我想要的,可T0是一个可以对机器周期能进行65536次计数,也就是说我想要的50MS不能让T0溢出,怎么办,那么先给这个定时器里面放些数,放多少,就是我们想要的50MS在加上一个多少...
回复

使用道具 举报

千问 | 2022-12-1 19:27:51 | 显示全部楼层
它们是相等的,在51单片机中是16位定时器(65535)初值的高8位,可以写成TH0=(65536-50000)/256,也可以写成TH0=-50000/256,在这它省略了65535而已.
希望能帮助到您,若再有疑问可以在追加噢,谢谢!...
回复

使用道具 举报

千问 | 2022-12-1 19:27:51 | 显示全部楼层
(65536-50000)=15536,换算成16进制就是3CB0H(65536-50000)/256的结果是3CH,即一个字的高位字节。而(65536-50000)%256的结果是B0H,即一个字的低字节。单片机TH0=(65536-50000)/256;就是将定时器0(TH0)高位字节付值3CH。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行