unsigned int f,t;
sbit PWM_OUT=P0^0; //shine1991
main (void)
{
TMOD=0x01; //T0方式1 定时计数
TH0=0xb1; //装入初值 20MS
TL0=0xe0;
TR0 = 1;
ET0 = 1;
EX0 = 1; EX1 = 1;
IT0 = 1; IT1 = 1;
EA = 1;
f=5;t=0;
while(1){} //无限循环
}
void t0() interrupt 1 using 2
{
TH0=0xb1; //重装t0
TL0=0xe0;
f--;
if(f<t) PWM_OUT=1; //shine1991
else PWM_OUT=0; //shine1991
if(f==0)
{
f=5;
}
}
void X0_INT() interrupt 0
{
t++;
if(t > 5) t = 5; //占空比等级最大为19
}
//------------------------------------------
void X1_INT() interrupt 2
{
t--;
if(t < 1) t = 1; //占空比等级最小为1
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)