全国服务热线:13926579481
当前位置: 网站首页 » 新闻动态 » 行业资讯 » 51单片机过零检测电路浅析 详情展示

51单片机过零检测电路浅析

发布时间:2020-03-24丨点击量:1599

51单片机过零检测电路浅析

如下图所示为按上述思想设计的电压正向过零检测电路。220V的交流电首先经过电阻分压,然后进行光电耦合,假设输入的是A相电压,则在A相电压由负半周向正半周转换时,图中三极管导通并工作在饱和状态,会产生一个下降沿脉冲送入ADμC812的INT0引脚使系统进入中断程序。微机系统进入中断程序后,发出采样命令并从采样保持器读取无功电流值Iqm,这个无功电流即为A相的无功电流,经过1/4个周期电压达到最大值,此时对电压进行采样,得到UM,由UM=1.414U可以得到电压有效值U。

过零检测及单片机调压

首先用PWM(脉宽调制)方法用于可控硅控制是有条件的,即调制频率不能大于市电频率(50Hz),也就是周期不能小于20mS,否则就不能达到调制作用,调制频率超过市电频率时,可控硅即处于连续导通状态而不能达到调压目的。只有调制频率低于市电频率才能起到调压目的,即限制市电的周波通过可控硅的数量而起到调压的目的。因此用该种方法调制的电压周波数一定是小于50HZ,超过了人眼视觉暂留效应,此就是用于调光产生闪烁的原因。该调压方法用在调功或对脉动电压不敏感的用途上尚可。如果采用可控硅调压用在调光上,须采用移相的调制方法,可使光连续可调。采用移相方法就需过零检测作为移相基点。过零检测其实并不难,如果要求调压比不是很高采用简单的方法即可奏效;用一只三极管即可。用单片机进行移相调压控制可以做得很精。

/********************************************************************************/

#i nclude      <pic.h>

__CONFIG (CPD&PROTECT&BOREN&MCLRDIS&PWRTEN&WDTEN&INTIO);

/********************************************************************************/

//

void      init         (void);

/********************************************************************************/

//

                      bit   fg_pw,fg_vs,fg_zq;

volatile    unsigned  char  fg_count;

volatile    unsigned  int   time1_temp,buff;

/********************************************************************************/

#define      powon          GPIO|=0B00110000

#define      powoff         GPIO&=0B00001111

#define      vpp            GPIO2

#define      feedback       GPIO0

/********************************************************************************/

        void      init         (void)

    {   CLRWDT();

        TRISIO=0B11001111;

     WPU=1;

     IOCB=4;               //使能过零信号中断

     VRCON=0;

     PIE1=1;

     OPTION=0;

     INTCON&=7;

     INTCON|=0B10001000;

     CMCON=7;

        T1CON&=1;

     T1CON|=0x10;

 }

/*********************************************************************************/

        void      interrupt  isr_power   (void)

    {   GPIO=GPIO;

           if     (TMR1IF&&TMR1ON)

         { TMR1IF=0;

              if      (fg_pw)

             { if  (!fg_vs)

               {powon;fg_vs=1;TMR1L=112;TMR1H=0xfe;}  //触发宽度400US(256+144)

                else

               {fg_vs=0;

                powoff;       //关闭

                TMR1ON=0;

               }

             }

              else    {powoff;fg_count=0;}

         }

            if    (GPIF)

         {   GPIF=0;

             if (fg_pw)

             {fg_zq=1;

              TMR1H=(time1_temp>>8);

              TMR1L=(time1_temp&0xff);

              //if    (vpp==0)   TMR1H-=3;     //上下沿检测,下沿时间补偿(3*256)US

              TMR1ON=1;

             }

             else

           { if     (vpp)   {TMR1ON=1;TMR1L=TMR1H=0;}  //l-->h

              else

             {time1_temp=(TMR1H<<8|TMR1L);    //h-->l

              TMR1ON=0;

              TMR1L=TMR1H=0;

              time1_temp=~time1_temp;         //同步信号周期检测(时间)

              time1_temp+=1000;               //一个半周时间中缩短1MS开始触发

              buff=time1_temp;

              if   (++fg_count>=4)    fg_pw=1;//连续周期检测4次

             }

           }

         }

     }

/************************************************************************************/

         void        main         (void)

    {     unsigned int i;

          TMR0=0;

          init();

          while   (1)

       {    if     (fg_pw&&fg_zq)

           {  fg_zq=0;

              if     (feedback)  {if(time1_temp<0xffff-1000) time1_temp+=20;}//功率(电压)上限

              else

              {if  (time1_temp>buff)time1_temp-=20;}  //功率(电压)下限

             for  (i=1000;i!=0;i--) {;}

             init();

           }

       }

    }

版权所有:2019 深圳市同为旭业科技有限公司   粤ICP备17023442号  舒先生:13926579481  彭小姐:13714275397

电话:4006039588,0755-29080943深圳总部地址:深圳市龙华新区清祥路1号宝能科技园6栋A座9楼F单元  

电脑版 | 手机版