一个按键怎么实现两个Led灯切换,就是按下第一个灯亮松手灯灭,再按一下第二个灯亮松平灯灭。单片机C

单片机程机程序思路

/*
按键位置:P0.1;
功能:1,当第一次按键按下,第一个灯亮,按键放开灯灭
2,当第二次按键按下,第二个灯亮,按键放开灯灭
3,重复执行前面两个步骤
灯的位置:P2口;
*/
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit BUTTON=P0^1;//按键的位置
void DELAY(uint x)
{
uchar s,j;
for(s=0;s<x;s++)
for(j=0;j<114;j++);
}
void main()
{
uint led=0;
while(1)
{
if(BUTTON==0)
{
led++;
if(led==1)//第一次按键按下
{
P2=0XFE;//1111 1110 第一个灯亮
DELAY(500);//延时
while(BUTTON!=0)//等待按键放开
{
P2=0xff;/1111 1111灯灭
DELAY(500)//延时
}

}
if(led==2)//第二次按键按下
{
led=0;//要给次数初始化
P2=0XFC;//1111 1101第二个灯亮
DELAY(500);//延时
while(BUTTON!=0)//等待按键放开
{
P2=0xff;//1111 1111第二个灯灭
DELAY(500)//延时
}

}
}
}
温馨提示:答案为网友推荐,仅供参考
相似回答