51单片机,单个按键按下弹起后,控制LED状态
ledmod==0 长灭
ledmod==1常亮
ledmod==2 呼吸灯
代码,如下,当到mod2的时候,呼吸灯亮了,但再按下键的时候,无法切换模式,
各位学霸帮说一说具体问题,修改下代码能正常执行
#include <REGX52.H>
#include "Timer0.h"
void breath();
void Br_dy(unsigned int t)
{
while(t--);
}
unsigned char Time,Speed;
void Delay(unsigned int xms)
{
unsigned char i, j;
while(xms)
{
i = 2;
j = 239;
do
{
while (--j);
} while (--i);
xms--;
}
}
unsigned char ledmod=0,ledcount;
void main()
{
Timer0Init();
while(1)
{
if(P3_1==0)
{
Delay(50);
while(P3_1==0);
Delay(50);
ledmod++;
}
if(ledmod>=3)
{
ledmod=0;
}
}
}
void Timer0_Routine() interrupt 1
{
static unsigned int T0Count;
TL0 = 0x18;
TH0 = 0xFC;
T0Count++;
if(ledmod==0)
{
P2_0=1;
}
if(ledmod==1)
{
P2_0=0;
}
if(ledmod==2)
{
//ºôÎüµÆģʽ
unsigned char Time,Speed;
for(Time=0;Time<100;Time++)
{
for(Speed=0;Speed<20;Speed++)
{
P2_0=0;
Br_dy(Time);
P2_0=1;
Br_dy(100-Time);
}
}
for(Time=100;Time>0;Time--)
{
for(Speed=0;Speed<20;Speed++)
{
P2_0=0;
Br_dy(Time);
P2_0=1;
Br_dy(100-Time);
}
}
}
}