怎么用C语言实现51单片机独立按键跳出while(1)死循环 执行其他循环
这是我自己写的利用51单片机上的三个独立按键控制流水灯三个状态,但是不能实现按相应的按键控制相应的状态。#include<reg52.h>#include<intrins...
这是我自己写的利用51单片机上的三个独立按键控制流水灯三个状态,但是不能实现按相应的按键控制相应的状态。
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
void Delay(uint);
sbit K1=P1^0;
sbit K2=P1^1;
sbit K3=P1^2;
void Delay(uint t)
{
uint i,j;
for(;t>0;t--)
for(i=130;i>0;i--)
for(j=76;j>0;j--);
}
void K1_LED()
{
uint i;
P2=0x1;
while(1)
{
for(i=7;i>0;i--)
{
Delay(5);
P2=_crol_(P2,1);
}
for(i=7;i>0;i--)
{
Delay(5);
P2=_cror_(P2,1);
}
}
}
void K2_LED()
{
uint i;
P2=0x3;
while(1)
{
for(i=7;i>0;i--)
{
Delay(5);
P2=_crol_(P2,1);
}
for(i=7;i>0;i--)
{
Delay(5);
P2=_cror_(P2,1);
}
}
}
void K3_LED()
{
uint i;
P2=0x7;
while(1)
{
for(i=7;i>0;i--)
{
Delay(5);
P2=_crol_(P2,1);
}
for(i=7;i>0;i--)
{
Delay(5);
P2=_cror_(P2,1);
}
}
}
main()
{
while(1)
{
if(K1==0)
K1_LED();
else if(K2==0)
K2_LED();
else if(K3==0)
K3_LED();
}
} 展开
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
void Delay(uint);
sbit K1=P1^0;
sbit K2=P1^1;
sbit K3=P1^2;
void Delay(uint t)
{
uint i,j;
for(;t>0;t--)
for(i=130;i>0;i--)
for(j=76;j>0;j--);
}
void K1_LED()
{
uint i;
P2=0x1;
while(1)
{
for(i=7;i>0;i--)
{
Delay(5);
P2=_crol_(P2,1);
}
for(i=7;i>0;i--)
{
Delay(5);
P2=_cror_(P2,1);
}
}
}
void K2_LED()
{
uint i;
P2=0x3;
while(1)
{
for(i=7;i>0;i--)
{
Delay(5);
P2=_crol_(P2,1);
}
for(i=7;i>0;i--)
{
Delay(5);
P2=_cror_(P2,1);
}
}
}
void K3_LED()
{
uint i;
P2=0x7;
while(1)
{
for(i=7;i>0;i--)
{
Delay(5);
P2=_crol_(P2,1);
}
for(i=7;i>0;i--)
{
Delay(5);
P2=_cror_(P2,1);
}
}
}
main()
{
while(1)
{
if(K1==0)
K1_LED();
else if(K2==0)
K2_LED();
else if(K3==0)
K3_LED();
}
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询