有关单片机程序问题
void t0() interrupt 1
{
TR0=0;
ET0=0; // 关中断定时器T0
moc30=0; //光耦导通,单片机产生PWM波
TH1=0Xf8;
TL1=0X30;
ET1=1;
TR1=1;
}
void t1() interrupt 3
{
TR1=0;
ET1=0;
moc30=1; //光耦关闭
}
void int0() interrupt 0
{
if(dw==6)
{ //不同的档位,改变导通角延时0
moc30=0;
TH0=0Xff;
TL0=0Xfa;
}
if(dw==1) //
{ //不同的档位,改变导通角延时6000
TH0=0Xe8;
TL0=0X90;
}
if(dw==3)
{ //不同的档位,改变导通角延时4500
TH0=0Xee;
TL0=0X6c;
}
if(dw==4)
{ //不同的档位,改变导通角延时3750
TH0=0Xf1;
TL0=0X5a;
}
if(dw==2)
{ //不同的档位,改变导通角延时5250
TH0=0Xeb;
TL0=0X7e;
}
if(dw==5)
{ //不同的档位,改变导通角延时2100
TH0=0Xf7;
TL0=0Xcc;
}
if(dw>0)
{
ET0=1; //开中断定时器T0
TR0=1;
}
if(dw==0) //不同的档位,这里直接关掉
moc30=1;
}
220V交流电压过零检测,一个周期20MS内有2次过零点,INT0测得的方波频率为50HZ(只能测到一个过零点),另一个过零点怎么用定时器产生?上面的程序测得PWM波的频率是50HZ,怎么编写程序才能得到100HZ的频率呢?