通过PWM来产生电机转速变化
代码:设置中断,每100us中断一次并执行内部指令
void Timer0_Routine() interrupt 1
{
TL0 = 0x9C; //设置定时初值
TH0 = 0xFF; //设置定时初值
}
——————————
unsigned char counter,compare;
counter++;
counter%=100; //取模操作,确保计数不会超过 100
if(counter>compare) //counter>compare,电机工作,反之停止
{
Motor=1;
}
else
{
Motor=0;
}
unsigned char KeyNum,Speed;
KeyNum=Key(); //获取键码;
if(KeyNum==1) // 当按下k1
{
Speed++; // speed增加
Speed%=4; //Speed清零,不超过4
if(Speed==3){compare=0;}
if(Speed==2){compare=20;}
if(Speed==1){compare=50;}
if(Speed==0){compare=100;}
}