求解答一个困扰我的51定时器问题

2019-07-16 06:57发布

      51定时器初值计算比如TH0=(65536-50000)/256;TL0=(65536-50000)%256;以前我从来没这样用过,我直接用计算器算的,但是很久以前我看过别人这么算!我就郁闷了好久,后来没多想,就忘记了,但是今天我突然看就又有人这么写。。所以想问个彻底明白。。。为何/256就得高8位??%256就得第八位??。。。。/256还好理解:相当于右移8位,当然得到高8位。。。但是%256为何就能直接得到低8位??原理是什么?谁能解释一下?比画比画一下。。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
hands
1楼-- · 2019-07-16 10:30
%是表示取余数吧。
kevinvind
2楼-- · 2019-07-16 15:56
hands 发表于 2011-6-29 15:46
%是表示取余数吧。

为什么要选择256求余?其实最不明白的是为何对256求余就会得到低8位?它的过程是怎么样的??、、、这点难理解。。。/256倒是比较好理解。。右移8位..直接得到高8位
assingle
3楼-- · 2019-07-16 19:34
 精彩回答 2  元偷偷看……
suae
4楼-- · 2019-07-17 00:42
本帖最后由 suae 于 2011-6-29 15:51 编辑

楼上说的很透彻明了了。
① TH0,TL0是八位的寄存器 最大值为0xFF(255)
② 对于任意一个数 Num  它的个位数是Num%10
                       它的十位数是Num/10

如果理解这些就会理解上面的
kevinvind
5楼-- · 2019-07-17 01:59
这样就有点明白了。谢谢大家 。
zhoualvin
6楼-- · 2019-07-17 04:25
T0计数器是16位,是由TH0和TL0构成,而TH0,TL0是8位,也就是如果满256就要向高位进位。也可以从十进制数来理解从0开始加,到9就要进位。比如35,那么它的个位数=35%10,十位数=35/10;同理对一个十六进制数0xff00;  低位数=0XFF00%256 , 高位数=0XFF00/256;

一周热门 更多>