刚学单片机C语言不久,只会用简单的单片机程序来控制可控硅的导通,因可控硅导通后不用关断,所以也就没有加入关断程序,只有在可控硅全部触发后给于复位,延时的时间只要调整a的值就可以,因还没有用到实用中所以只是随便写了一个数。还请高手指点,程序如下
#include<reg52.h>
unsigned int a;
sbit S=P1^0;
sbit O1=P2^0;
sbit O2=P2^1;
sbit O3=P2^2;
sbit O4=P2^3;
sbit O5=P2^4;
sbit O6=P2^5;
sbit O7=P2^6;
sbit O8=P2^7;
sbit O9=P3^0;
sbit F=P3^1;
void delay20ms(void)
{
unsigned char i,j;
for(i=0;i<100;i++)
for(j=0;j<100;j++)
}
void main()
{
while(1)
{
P0=0xff;
P1=0xff;
P2=0x00;
P3=0x00;
if(S==0)
{
delay20ms();
if(S==0)
{
O1=1;
a=3;
while(a--);
O2=1;
a=3;
while(a--);
O3=1;
a=3;
while(a--);
a=3;
while(a--);
O4=1;
a=3;
while(a--);
O5=1;
a=3;
while(a--);
O6=1;
a=3;
while(a--);
O7=1;
a=3;
while(a--);
O8=1;
a=3;
while(a--);
O9=1;
a=3;
while(a--);
F=1;
a=3;
while(a--);
}
}
while(S==0)
;
}
}