51单片机8路流水灯! 用三个按键控制三个程序!每个按键对应一个程序!按键一个键死循环一个程序!
51单片机8路流水灯!用三个按键控制三个程序!每个按键对应一个程序!按键一个键死循环一个程序!只有按下一个键!跳到下一个程序死循环...
51单片机8路流水灯!
用三个按键控制三个程序!每个按键对应一个程序!按键一个键死循环一个程序!只有按下一个键!跳到下一个程序死循环 展开
用三个按键控制三个程序!每个按键对应一个程序!按键一个键死循环一个程序!只有按下一个键!跳到下一个程序死循环 展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励20(财富值+成长值)
1个回答
展开全部
#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;
}
}
}
#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;
}
}
}
更多追问追答
追问
flag是代表1还是啥意思
flag是定义循环跳出是不?
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询