#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
uint a;
void b1 ();
void b2 ();
sbit t=P1^0;
sbit k=P3^5;
sbit reg=P3^3;
sbit bice=P3^2;
void main()
{
P3=0xff;
while (1)
{
if(k==0)
{
while(!k);
bice=0;
b1();
if(k==0)
{
bice=1;
b2();
}
}
else
bice=1;
}
}
void b1()
{
while(1)
{
a=50000;
P1=0xfe;
while(a--);
a=50000;
while(a--);
P1=0xff;
while(a--);
a=50000;
while(a--);
}
}
void b2 ()
{
while(1)
{
a=30000;
P1=0xfe;
while(a--);
a=30000;
while(a--);
P1=0xff;
while(a--);
a=30000;
while(a--);
}
}这是小弟写的一个程序,K为触动开关,reg为红灯,bice为绿灯,b1、b2 各为一个方波,我现在是想按第一次触动开关时红灯亮、b1输出,按第二次绿灯亮、为b2输出,按第三次都关闭,小弟是个初学者,现在自己学习写到了半夜还是不会写,请那位好心人帮帮忙,上面写的我试了不行,