单片机中断装初值时为什么要对256求模和求余

2024-07-05 22:03:11
单片机中断装初值时为什么要对256求模和求余希望能解答下
写回答

最佳答案

定时器工作在16位计数模式的时候有两个个参数TH跟TL

这2个参数都是8位(0-255)的,不能直接接受16位(0-65535)数据

为了使高8位赋值到TH里面就要采用除以256的方法,等效于>>8(2的8次方=256),就相当于把高字8位移动到低8位的位置了

求余数是为了把低8位赋值到TL里面,当不能被256整除留下的余数范围只有0-255以内。所以可以直接赋值给TL了。

所以

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

等效于

TH0=(65536-50000)>>8;

TL0=(65536-50000)&0x00ff;

在运算时 单片机在逻辑运算方面效率高于算术运算。

2024-07-05 22:03:11
赞 7757踩 0

全部回答(1)