你好 我想请教您 TH0=-2000》》8 不是先算- 再算》》 不就是-2000右移8位 然后赋值给TH0 能把您的解释
答案:2 悬赏:20 手机版
解决时间 2021-02-22 10:31
- 提问者网友:喧嚣尘世
- 2021-02-21 11:55
说的再详细些吗 我真的很菜 就是最开始 TH0 TL0 最开始是什么值 ,你说的-2000是怎么得到的,最好在能给我解释一下》》8,%256 谢谢您
最佳答案
- 五星知识达人网友:杯酒困英雄
- 2021-02-21 12:30
其实写TH0 = -2000 / 256;和TH0 = (65536- 2000) / 256;是一样的,寄存器存数的时候存数据的补码,正数的补码等于它的原码,负数的补码等于它的反码加1,那么-2000的补码正好等于(65536-2000),这个知识点你得看看数电书,书上有介绍,另外那个TH0和TL0分别是定时/计数器的高八位寄存器和低八位寄存器,两个赋初值的时候要把数据的高八位和低八位分别取出来赋给它们,所以就有了TH0 = (65536 - 2000) >> 8;TL0 = (65536 - 2000) % 256;前面那一句的>>8和/256是一样的,都是为了获取数据的高八位。后面那一句程序就是为了获取低八位...
全部回答
- 1楼网友:走死在岁月里
- 2021-02-21 13:01
是一样的,第一种是65536-10000=55536,而55536转换成是十六进制就是d8f0,th0=0xd8是高8位,而tl0=0xf0是低8位。
第二个th0= -10000/256;tl0 =-10000%256;相当于:th0= 65536-10000/256;tl0 =65536-10000%56;那运算之后就是th0=55536/256;tl0 =55536%256;.
55536/256相当于高8位,也就是0xd8;55536%256相当于低8位,也就是0xf0。
所以说只是赋值的方式不同,但是结果是一样的!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯