51单片机 2个独立按键控制一个led
#include
sbit led = P1^0;
sbit key1 = P2^0;
sbit key2 = P2^1;
void delay(unsigned int cnt) //简单的延时
{
while(--cnt);
}
/*------------------------------------------------
MAIN C Function
------------------------------------------------*/
void main (void)
{
while (1)
{
if(key1 == 0)/*按键1按下*/
{
led = 0; /*灯亮*/
delay(1000);
while(!key1); /*消抖*/
}
else if(key2 == 0) /*按键2按下*/
{
led = 1; /*灯灭*/
delay(1000);
while(!key2);
}
}
}
#include
#define uint unsigned int
#define uchar unsigned char
#define LED P0
sbit S1=P1^0; 按键1
void delay(uint i)
{
uchar x,j;
for(j=0;j<i;j++)
for(x=0;x<=148;x++);
}
void main()
{
if(s1==0)
{
delay(2);
if(s1==0)
{
LED=0;
}
}
}
这是个按键控制P0 口 当按键按下后P0口的灯会全部点亮,你的题目是控制多个led灯,太笼统了 都大同小异,你自己在看看吧。。。。。。希望能帮到你。
//先按下k3,然后按下 k1,灯亮灭交替。
//--------------------------------------
//应该先检测二级开关 K1。
//发现 K1 按下后,再检测 K3 是不是已经在按着。
if(!k1) { //先检测二级开关
delay1(10); //消抖
if(!k1) {
while(!k1); //等待松开
//松开后,再检测 k3:
if(!k3) { //再检测总开关
delay1(10); //消抖
if(!k3) {
while(!k3);//等待松开
LED = ~LED;//亮灭交替
}
}
}
}
加一个qq吧,你的单片机要好好学习了!