请教:我用单片机控制可控硅调压,控制可控硅的导通角:
当外部中断接到同步信号(50hz)中断后,中断方式:边沿触发,那么是不是1S内应该中断100次,但可控硅是整流器件,在正向电压时才导通,那么1S内应该导通的波头有50个。
如果控制导通角的话,是不是应该在每个周期的高电平(即10MS)处开始延时控制导通角,我想问的是:当外部中断0中断的时候,如果中断的是下降沿,单片机收到的是低电平,这个时候肯定不能延时导通,这个时候应该如何处理?是延时吗等下一个中断吗?可我用的是外部中断0,是不是也要做判断高电平或低电平?还是如何处理。请高手指教 。谢谢!!!!!!!!能否给一个编程思路
可控硅控制电路
(原文件名:22222222222222222.JPG)
-----------------------------------------------------------------------
我用的是AT89S51和STC89C51RC单片机,
1. 双向可控硅,正负半波都可以导通
2. 50HZ的过零信号,用双变沿触发
3. 1S内要送100个触发信号出去
4. 单片机检测到的过零信号,与市电的正弦波的过零会有一点误差。
-----------------------------------------------------------------------
正负都可以,那如何控制可控硅的导通角?
-----------------------------------------------------------------------
检测到过零后,启动计时到你想到的延时时间后触发呀
{ static uchar DCHL_Pulse,DCHR_Pulse;
if ( DCHL_Pulse>0 )
DCHL_Pulse--;
if ( DCHR_Pulse > 0 )
DCHR_Pulse--;
if ( DCHL_Pulse == 0 ) DCHL = 1;
if ( DCHR_Pulse == 0 ) DCHR = 1;
PWMCount++;
if ( PWMCount == DCHL_PWM )
{ if ( DCHL_ON )
{ DCHL_ON = 0;
DCHL = 0;
DCHL_Pulse = 1; //如果在前面,脉冲就没有了。
}
}
if ( PWMCount == DCHR_PWM )
{ if ( DCHR_ON )
{ DCHR_ON = 0;
DCHR = 0;
DCHR_Pulse = 1;
}
}
if ( BeeTime > 0 )
{ BeeTime--;
if (BeeTime==0) BEEP = 0;
}
}
void INT1_fun(void) interrupt 2
{ PWMCount = 0;
ms20++;
如果是四象限的可控硅,每个半波都可以导通。
以上希望对你有用。
一周热门 更多>