如果要输出高频信号,让方波的频率达到几十K甚至几百K的话,最好用串口来发。而如果仅仅是几K赫兹的话那就用定时器咯。下面是一些参考。
void main()
{
TOMD=0X02; //定时器0工作方式二
TH0=0XFE;
TL0=0XFE;
EA=1; //开总中断
ET0=1; //使能定时器0中断
TRO=1; //开定时器0中断
}
void timer0 interrupt 1
{
P1=~P1;
}
如果对周期和占空比没有很精确的要求这个问题就很简单了。如果有要求的话就应该用定时器中断来写。下面给一个简单的,供你参考
sbit PWM = P1^0;
void main()
{
while()
{
delay(); //这个就是一般的延时函数,你自己写
PWM = 1 - PWM;
}
}
非常简单 就是用定时器 控制引脚的通断时间