单片机时钟频率为12MHz,分别求定时0.1ms时在工作方式0、1下的定时器的初值。

如题所述

就以普通51单片机即12T,r定时器0为例:
工作于方式0时,是13位的,低5位赋值给TL0,高8位赋值给TH0;
工作于方式1时,是16位的,低8位赋值给TL0,高8位赋值给TH0;
而0.1ms,即100us,又在12MHz,所以,需要计时 100个数字

所以,最简单的办法是:

定时器0:
TH0 = (8192 - 100)/32;
TL0 = (8192 - 100)%32;
也可以:
TH0 = (8192 - 100)>>5;
TL0 = (8192 - 100)&0x1F;

定时器1:
TH0 = (65536 - 100)/256;
TL0 = (65536 - 100)%256;
也可以:
TH0 = (65536 - 100)>>8;
TL0 = (65536 - 100)&0xFF;
温馨提示:答案为网友推荐,仅供参考
相似回答