菜鸟求教,希望各位能指点下,感激不尽
时间:10-02
整理:3721RD
点击:
定时器定时50ms的计算。要计50000个数时,TH0和TL0中应该装入的总数是65536-50000=15536,把15536对256求模:15536/256=60装入TH0中;把15536%256=176装入TL0中。
为什么是分别对256取模载入TH0中,取余载入TL0中呢?
为什么是分别对256取模载入TH0中,取余载入TL0中呢?
其实这样做的目的不是要取商和余的问题;
这样问是因为你对要装什么进TH和TL、还有二进制、16进制、字节、字的概念掌握不够;
设置定时器的目的是要将16位的值装进定时器计数器内,而定时器计数器在MCS51中被分成两个字节的存储单元TH和TL,即要将16位值的高字节装进TH,低字节装进TL;
要取得N的高字节,可以按N>>8计算,而N>>8 = N/(2^8) = N/256;
要取得N的低字节,可以按N&0xFF计算,N&0xFF = N-N/256 = N%256。
哦哦~~~~~谢谢指点,祝生活愉快哈。
sorry,要取得N的低字节,应该是‘可以按N&0xFF计算,N&0xFF = N-INT(N/256)×256 = N%256',INT为取整函数。