给你提供给一个思路:利用51定时器产生us级别的中断,然后设置两个变量,一个是pwm周期,也就是你说的1/10kHz,另一个是占空比变量,让占空比变量的值是周期寄存器值的一半就可以了这样就是50%占空比的方波,等到你要改占空比或者频率的时候只要改这两个变量就行
频率在10KHZ 1/10KHZ/2=50us
#include
sbit P1_0=P1^0;
void int_X_T()
{
IE=0x82;
TMOD=0x01;
TH0=(65536-50)/256;
TL0=(65536-50)%256;
TR0=1;
}
void int_x() interrupt 1
{
TH0=(65536-50)/256;
TL0=(65536-50)%256;
P1_0=!P1_0;
}
void main()
{
int_X_T();
while(1);
}