单片机时钟频率为12MHz,分别求定时0.1ms时在工作方式0、1下的定时器的初值。
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;
工作于方式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;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询