51单片机8路流水灯! 用三个按键控制三个程序!每个按键对应一个程序!按键一个键死循环一个程序!
发布网友
发布时间:2022-05-18 01:33
我来回答
共1个回答
热心网友
时间:2023-10-03 06:21
#include<reg51.h>
#define uchar unsigned char
sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^2;
uchar led1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
uchar led2[]={0xe7,0xdb,0xbd,0x7e};
bit flag;
void delay(uchar a)
{
uchar i;
while(a--)for(i=0;i<120;i++);
}
void prog1(void)
{
uchar i;
while(flag)
{
P0=led1[i];
i++;
i%=8;
delay(200);
}
}
void prog2(void)
{
uchar i;
while(flag)
{
P0=led2[i];
i++;
i%=4;
delay(200);
}
}
viud prog3{void)
{
uchar i=7;
while(flag)
{
P0=led1[i];
i--;
if(i>7)i=7;
delay(200);
}
}
main()
{
flag=0;
while(1)
{
if(key1==0)
{
flag=0;
while(key1==0);
flag=1;
}
if(key2==0)
{
flag=0;
while(key2==0);
flag=1;
}
if(key3==0)
{
flag=0;
while(key3==0);
flag=1;
}
}
}