• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

我的可控硅三相全控

void main(void) /* 主程序*/
{
//uchar i;
        uint n,t,i;
        uint p=12;
while(1) /*程序循环*/
{    
   if(!in1)        /*A相同步电压信号到达后,在安全的调压范围内延时,然后才可以输出脉冲*/
     {
               for(n=0;n                  {             /*并且,在这段时间内,检测升降电压的按钮.注意,这个时间延长后,输出是降低的*/
                     if(!in3)
{
   p=p+20;    /*电压的减小是有限制的,到一定程度,就不再减了.20是每按一次电压的减小量,可改*/
                           if(p>500)
                              p=500;
}
                     if(!in2)   /*电压的增加是有限制的,到一定程度,比如到35度,就不再增了*/
{
   p=p-20;   /*电压的增加是有限制的,到一定程度,就不再增了.20是每按一次电压的减小量,可改,但增减要一致*/
                           if(p<12)
                              p=12;
}

                  }
                /*上边提到的A相同步信号和延时时间到达,就可以输出脉冲了.以下是脉冲输出控制*/

P1=~1;   /*  OUT6=1; OUT1=1*/
for(i=0;i<20;i++) {i=i;}   /*脉冲输出延时,保证可控硅可靠触发*/
P1=~0;
for(i=0;i<480;i++){i=i;}  /*延时60度,输出下一组脉冲*/              

P1=~2;   /*  OUT1=1; OUT2=1*/
for(i=0;i<20;i++) {i=i;}   /*脉冲输出延时,保证可控硅可靠触发*/
P1=~0;
for(i=0;i<480;i++){i=i;}  /*延时60度,输出下一组脉冲*/              

P1=~4;   /*  OUT1=2; OUT3=1*/
for(i=0;i<20;i++) {i=i;}   /*脉冲输出延时,保证可控硅可靠触发*/
P1=~0;
// for(i=0;i<480;i++){i=i;}  /*延时60度,输出下一组脉冲*/              

// P1=~12;   /*  OUT3=1; OUT4=1*/
// for(i=0;i<10;i++) {i=i;}   /*脉冲输出延时,保证可控硅可靠触发*/
// P1=~0;
// for(i=0;i<245;i++){i=i;}  /*延时60度,输出下一组脉冲*/              

// P1=~24;   /*  OUT4=1; OUT5=1*/
// for(i=0;i<10;i++) {i=i;}   /*脉冲输出延时,保证可控硅可靠触发*/
// P1=~0;
// for(i=0;i<245;i++){i=i;}  /*延时60度,输出下一组脉冲*/              


// P1=~48;   /*  OUT5=1; OUT6=1*/
// for(i=0;i<10;i++) {i=i;}   /*脉冲输出延时,保证可控硅可靠触发*/
// P1=~0;
// for(i=0;i<245;i++){i=i;}  /*延时60度,输出下一组脉冲*/              


             }
  
}
}
全部回复(5)
正序查看
倒序查看
mmm789
LV.6
2
2009-12-09 14:46
#include
#define uchar unsigned char
#define uint  unsigned int
#define ulong unsigned long
sbit OUT1 = P1^0; /*可控硅1脉冲输出*/
sbit OUT2 = P1^1; /*2*/
sbit OUT3 = P1^2; /*3*/
sbit OUT4 = P1^3; /*4*/
sbit OUT5 = P1^4; /*5*/
sbit OUT6 = P1^5; /*6*/


sbit in1=P3^7;  /*A相同步输入*/
sbit in2=P3^5; /*按键升电压高延时变小*/
sbit in3=P3^6; /*按键降电压低延时变大*/
void main(void) /* 主程序*/
{
//uchar i;
        uint n,t,i;
        uint p=12;
while(1) /*程序循环*/
{    
   if(!in1)        /*A相同步电压信号到达后,在安全的调压范围内延时,然后才可以输出脉冲*/
     {
               for(n=0;n                  {             /*并且,在这段时间内,检测升降电压的按钮.注意,这个时间延长后,输出是降低的*/
                     if(!in3)
{
   p=p+20;    /*电压的减小是有限制的,到一定程度,就不再减了.20是每按一次电压的减小量,可改*/
                           if(p>500)
                              p=500;
}
                     if(!in2)   /*电压的增加是有限制的,到一定程度,比如到35度,就不再增了*/
{
   p=p-20;   /*电压的增加是有限制的,到一定程度,就不再增了.20是每按一次电压的减小量,可改,但增减要一致*/
                           if(p<12)
                              p=12;
}

                  }
                /*上边提到的A相同步信号和延时时间到达,就可以输出脉冲了.以下是脉冲输出控制*/

P1=~1;   /*  OUT6=1; OUT1=1*/
for(i=0;i<20;i++) {i=i;}   /*脉冲输出延时,保证可控硅可靠触发*/
P1=~0;
for(i=0;i<480;i++){i=i;}  /*延时60度,输出下一组脉冲*/              

P1=~2;   /*  OUT1=1; OUT2=1*/
for(i=0;i<20;i++) {i=i;}   /*脉冲输出延时,保证可控硅可靠触发*/
P1=~0;
for(i=0;i<480;i++){i=i;}  /*延时60度,输出下一组脉冲*/              

P1=~4;   /*  OUT1=2; OUT3=1*/
for(i=0;i<20;i++) {i=i;}   /*脉冲输出延时,保证可控硅可靠触发*/
P1=~0;
// for(i=0;i<480;i++){i=i;}  /*延时60度,输出下一组脉冲*/              

// P1=~12;   /*  OUT3=1; OUT4=1*/
// for(i=0;i<10;i++) {i=i;}   /*脉冲输出延时,保证可控硅可靠触发*/
// P1=~0;
// for(i=0;i<245;i++){i=i;}  /*延时60度,输出下一组脉冲*/              

// P1=~24;   /*  OUT4=1; OUT5=1*/
// for(i=0;i<10;i++) {i=i;}   /*脉冲输出延时,保证可控硅可靠触发*/
// P1=~0;
// for(i=0;i<245;i++){i=i;}  /*延时60度,输出下一组脉冲*/              


// P1=~48;   /*  OUT5=1; OUT6=1*/
// for(i=0;i<10;i++) {i=i;}   /*脉冲输出延时,保证可控硅可靠触发*/
// P1=~0;
// for(i=0;i<245;i++){i=i;}  /*延时60度,输出下一组脉冲*/              


             }
  
}
}


0
回复
qifeng
LV.5
3
2010-05-04 21:40
@mmm789
#include#defineucharunsignedchar#defineuint  unsignedint#defineulongunsignedlongsbitOUT1=P1^0;/*可控硅1脉冲输出*/sbitOUT2=P1^1;/*2*/sbitOUT3=P1^2;/*3*/sbitOUT4=P1^3;/*4*/sbitOUT5=P1^4;/*5*/sbitOUT6=P1^5;/*6*/sbitin1=P3^7;  /*A相同步输入*/sbitin2=P3^5;/*按键升电压高延时变小*/sbitin3=P3^6;/*按键降电压低延时变大*/voidmain(void)/*主程序*/{//uchari;        uintn,t,i;        uintp=12;while(1)/*程序循环*/{      if(!in1)        /*A相同步电压信号到达后,在安全的调压范围内延时,然后才可以输出脉冲*/    {              for(n=0;n500)                              p=500;}                    if(!in2)  /*电压的增加是有限制的,到一定程度,比如到35度,就不再增了*/{  p=p-20;  /*电压的增加是有限制的,到一定程度,就不再增了.20是每按一次电压的减小量,可改,但增减要一致*/                          if(p
能做调压模块吗?
0
回复
mmm789
LV.6
4
2010-05-05 07:58
@qifeng
能做调压模块吗?

这是C51   还有AVR MEGA16 含AD模拟量输入   反馈

0
回复
zhouboak
LV.8
5
2011-07-11 23:46
@mmm789
这是C51  还有AVRMEGA16含AD模拟量输入  反馈
0
回复
mmm789
LV.6
6
2011-08-11 12:30
@zhouboak
[图片]
0
回复