可通过定时器中断来产生PWM方波
TMOD=0X20;
EA=1;
ET1=1;
TH1=...
TL1=..
TR1=1
PWM=50;
while(1)
{
if(S1==0)
{
if(PWM>=0);
PWM-=10;
}
if(S2==0)
{
if(PWM<100);
PWM+=10;
}
}
void Timer1(void) interrupt 3
{
TIME++;
if(TIME==100)
{
TIME=0;
PWMO=1;
}
if (TIME == PWM)
{
PWMO=0;
}
}
当然按键要消抖,PWM0输出可设置在任一IO管脚
需要实物还是仿真