当前位置:文档之家› 4独立按键控制led灯

4独立按键控制led灯

设计要求1)选择一个I/O口控制八只流水灯。
2)设置四个按键K1—K4,按下K1跑马灯,K2流水灯,K3鸳鸯戏水,K4则循环三种控制方式。
3)跑马灯:共8个LED逐次点亮,每隔100ms点亮一个LED,点亮100ms后关闭。
4)流水灯:共8个LED逐次点亮,每隔100ms点亮一个LED,点亮100ms后下一个LED点亮,当所有LED灯全部点亮后,延时100ms,然后全灭;然后继续上次操作。5)鸳鸯溪水灯:共8个LED,第一次1、3、5、7号灯点亮,延时100ms,关闭,延时100ms,2、4、6、8号灯点亮,延时100ms,关闭,延时100ms。然后继续上次操作。

#include
sbit key1=P3^0;
sbit key2=P3^1;
sbit key3=P3^2;
sbit key4=P3^3;

unsigned char code pao[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};
unsigned char code liu[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0xff};
unsigned char code yua[]={0x55,0xaa};
void delay(unsigned int x)//延时Xms
{unsigned int i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}


main()
{
unsigned int i,j;
while(1)
{
if(key1==0)//如果检测到低电平,说明按键按下
{
delay(10);//延时去抖,一般10-20ms
if(key1==0) //再次确认按键是否按下,没有按下则退出
{
while(key1==0)
{

}
j = 1;
}
}

if(key2==0)//如果检测到低电平,说明按键按下
{
delay(10);//延时去抖,一般10-20ms
if(key2==0) //再次确认按键是否按下,没有按下则退出
{
while(key2==0)
{

}
j = 2;
}
}

if(key3==0)//如果检测到低电平,说明按键按下
{
delay(10);//延时去抖,一般10-20ms
if(key3==0) //再次确认按键是否按下,没有按下则退出
{
while(key3==0)
{

}
j = 3;
}
}

if(key4==0)//如果检测到低电平,说明按键按下
{
delay(10);//延时去抖,一般10-20ms
if(key4==0) //再次确认按键是否按下,没有按下则退出
{
while(key4==0)
{

}
j = 4;
}
}

if(j==1)//如果检测到低电平,说明按键按下
{
for(i=0;i<9;i++)
{
P1=pao[i];
delay(100);
}

}

if(j==2)
{


for(i=0;i<9;i++)
{
P1=liu[i];
delay(100);
}

}
if(j==3)
{

for(i=0;i<2;i++)
{
P1=yua[i];
delay(100);
}

}
if(j==4)
{


for(i=0;i<9;i++)
{
P1=pao[i];
delay(100);
}
for(i=0;i<9;i++)
{
P1=liu[i];
delay(100);
}
for(i=0;i<2;i++)
{
P1=yua[i];
delay(100);
}
}
}
}

相关主题
文本预览
相关文档 最新文档