怎么用51单片机实现用一个键盘控制3个LED灯
用一个全局变量控制第几次按下键盘,从而控制是第几个灯亮。
单片机学的太烂了,能有完整的程序就好了
自己好好想想 肯定能想到的
用循环语句,在用位移函数
sbit KEY=P1^0;
sbit LED0= P1^1;
sbit LED1= P1^2;
sbit LED2= P1^3;
uchar led_flag=0;
P1=0xff;
while(1)
{
if(KEY==0)
{
delay_ms(50);
if(KEY==0)
{
led_flag++;
if(led_flag==3)
led_flag=1;
}
while(!KEY);
}
if(led_flag==1)
{ LED0=0;LED2=1;}
else if(led_flag==2)
{LED1=0;LED0=1;}
else if(led_flag==3)
{LED2=0;LED1=1;}
}
大概这样就能实现吧
了然,我试试,不过程序最后变成控制两个灯了
你是相当得水啊
额,,,,,,,,,,,,
if(led_flag==3)
led_flag=1;
}
这段程序中,将ed_flag==3改成flag==4。
hao taihaole
#include<reg52.h>
#define uchar unsigned char
sbit key1=P3^4;
uchar num;
void delay(uchar a)
{
uchar i,j;
for(i=a;i>0;i++)
for(j=110;j>0;j++);
}
void led_display()
{
if(key1==0)
{
delay(5);
if(key1==0)
{
while(!key1);
delay(5);
while(!key1);
num++;
if(num==4)
num=1;
}
switch(num)
{
case 1:P1=0xfe;break;
case 2:P1=0xfd;break;
case 3:P1=0xfb;break;
default:break;
}
}
}
void main()
{
num=0;
while(1)
{
led_display();
}
}
谢了谢了谢了谢了谢了谢了
还行吧,继续努力还行吧,继续努力