我的三相全控C
#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 = P2^5; /*5*/
sbit OUT6 = P2^7; /*6*/
sbit in1=P3^7; /*A相同步输入*/
sbit in2=P3^6; /*按键升电压高延时变小*/
sbit in3=P3^5; /*按键降电压低延时变大*/
void main(void) /* 主程序*/
{
//uchar i;
uint n,t,i;
uint p=120;
while(1) /*程序循环*/
{
if(in1) /*A相同步电压信号到达后,在安全的调压范围内延时,然后才可以输出脉冲*/
{
for(n=0;n
{ /*并且,在这段时间内,检测升降电压的按钮。注意,这个时间延长后,输出是降低的*/
if(!in3)
{
p=p+10; /*电压的减小是有限制的,到一定程度,就不再减了。20是每按一次电压的减小量,可改*/
if(p>450)
p=450;
}
if(!in2) /*电压的增加是有限制的,到一定程度,比如到35度,就不再增了*/
{
p=p-10; /*电压的增加是有限制的,到一定程度,就不再增了。20是每按一次电压的减小量,可改,但增减要一致*/
if(p<120)
p=120;
}
}
/*上边提到的A相同步信号和延时时间到达,就可以输出脉冲了。以下是脉冲输出控制*/
P1= 00100001; /* OUT6=1; OUT1=1*/
for(i=0;i<39;i++) {i=i;} /*脉冲输出延时,保证可控硅可靠触发*/
P1=255;
for(i=0;i<215;i++){i=i;} /*延时60度,输出下一组脉冲*/
P1= 00000011; /* OUT1=1; OUT2=1*/
for(i=0;i<39;i++) {i=i;} /*脉冲输出延时,保证可控硅可靠触发*/
P1=255;
for(i=0;i<215;i++){i=i;} /*延时60度,输出下一组脉冲*/
P1= 000000110; /* OUT1=2; OUT3=1*/
for(i=0;i<39;i++) {i=i;} /*脉冲输出延时,保证可控硅可靠触发*/
P1=255;
for(i=0;i<215;i++){i=i;} /*延时60度,输出下一组脉冲*/
P1= 000001100; /* OUT3=1; OUT4=1*/
for(i=0;i<39;i++) {i=i;} /*脉冲输出延时,保证可控硅可靠触发*/
P1=255;
for(i=0;i<215;i++){i=i;} /*延时60度,输出下一组脉冲*/
P1= 000011000; /* OUT4=1; OUT5=1*/
for(i=0;i<39;i++) {i=i;} /*脉冲输出延时,保证可控硅可靠触发*/
P1=255;
for(i=0;i<215;i++){i=i;} /*延时60度,输出下一组脉冲*/
P1= 000110000; /* OUT5=1; OUT6=1*/
for(i=0;i<39;i++) {i=i;} /*脉冲输出延时,保证可控硅可靠触发*/
P1=255;
for(i=0;i<215;i++){i=i;} /*延时60度,输出下一组脉冲*/
}
}
}