下面51单片机C语言程序怎么改成按钮按一下才执行,再按一下就停止,如此反复???

#include<reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
uchar a,i,j;
while(1)
{
for(j=0;j<3;j++)
{
P1=0x55;
delay(5000);
P1=0xaa;
delay(5000);
}
for(j=0;j<3;j++)
{
a=0xfe;
for(i=0;i<8;i++)
{
P1=a;
delay(2000);
a=_crol_(a,1);
}
}
P1=0xff;
for(j=0;j<3;j++)
{
P1=0x7e;
delay(2500);
P1=0xbd;
delay(2500);
P1=0xdb;
delay(2500);
P1=0xe7;
delay(2500);
}
P1=0xff;
for(j=0;j<3;j++)
{
P1=0xe7;
delay(2500);
P1=0xdb;
delay(2500);
P1=0xbd;
delay(2500);
P1=0x7e;
delay(2500);
}
P1=0xff;
for(j=0;j<6;j++)
{
P1=~P1;
delay(5000);
}
P1=0xff;
}
}

IO直接作为循环条件即可,如下:

如果用户按下键不放会有问题,最好改为用户按下键再弹起为一次输入。

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答