单片机内部定时产生频率为100KHZ等宽矩形波,晶振频率为12MHZ,如何编程?

如题所述

晶振频率fsoc = 12MHz
也就是机器周期为1us
要产生100KHz的等宽矩形波,也就是T=10us,即5us定时器溢出一次,然后改变引脚电平,从而产生等宽矩形波。
则定时器在递增N之后溢出,N=5us/1us =5,所以转载的数为 n=(2^16-1)-N = 65530
即TH0 = n/256 = 0xFF;
TL0 = n%256 = 0xFA;

#include <reg52.h>

sbit Pin = P0^0;

void main()
{
TH0 = 0xFF;
TL0 = 0xFA;
TR0 = 1;
IT0 = 1;
EA = 1;

while(1){

}

}

void T0_int(void) interrupt 1
{
TH0 = 0xFF;
TL0 = 0xFA;
Pin = ~Pin;
}
温馨提示:答案为网友推荐,仅供参考