焊接资讯

您现在的位置是:首页 > led灯 > 正文

led灯

单片机独立按键控制led灯程序(单片机按键控制LED灯)

工品易达2022-10-22led灯19

单片机用c语言,按钮控制一个LED灯,要求按下松开,LED亮,按下松开,LED暗!循环

1、首先打开桌面上的keil软件,在进行对51单片机进行编程时最常用的就是keil软件。

2、编写相应的代码:#includereg52.h    //定义单片机的头文件sbit led=P2^0;           //定义单片机的管脚,void main(void)         //主函数{    while(1)                 //无限循环     {led=0x1f;         //点亮前面三个灯。这里是十六进制的换算,                                                    //不懂得可以查一下资料  }。

3、打开烧写软件,点击【打开文件】,寻找刚刚编写的程序。

4、找到相应的文件夹以后,寻找HEX文件。这是所能烧写软件识别的程序。

5、找到程序以后,将单片机连接到电脑,并点击程序下载,将程序烧写进单片机。

6、程序下载进单片机以后就能够看到八个led点亮了前面三个。

单片机 用C语言怎么编写用一个按钮,控制一盏灯的亮与灭的程序?

读取连接按键的IO口,判断是否为低电平,如果是,延时(十毫秒左右可以),再次读取IO口,判断是否为低电平,如果是则表示有有效的按键按下,接着用while判断等待按键释放,然后让连接led的IO口电平取反以控制其亮灭(是强电的灯可以通过此处控制继电器的合、闭来控制灯的亮灭)。参考程序:if(key==0){delayms(10);if(key==10){while(key==0);//等待按键释放,IO口恢复高电平led=!led;//按键控制程序}}

我为51单片机设计了一个用独立按键控制LED的程序,求大神看看程序有没有什么能够优化的地方。

#includereg51.h

#includeintrins.h

sbit k1=P3^1;

sbit k2=P3^0;

sbit k3=P3^2;

sbit k4=P3^3;

bit flag=0;

typedef unsigned char u8;

typedef unsigned int u16;

#define led P2

void delay(u16 i)

{

while(i--);

}//延时函数

u8 keyscan(void)

{

u8 keyval=0;

if(k1==0)

{

while(k1==0);

keyval=1;

}  

if(k2==0)

{

while(k2==0);

keyval=2;

}  

if(k3==0)

{

while(k3==0);

keyval=3;

flag=~flag;

}  

if(k4==0)

{

while(k4==0);

keyval=4;

}

return(keyval);  

}

main()

{

u8 key1,key2,num=0;

u8 led[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

while(1)

{

key1=keyscan();

if(key1!=0)key2=key1;

switch(key2)

{

case 1:P0=led[num];delay(10000);P0=0xff;delay(10000);num++;num%=8;break;

case 2:P0=led[num];delay(10000);P0=0xff;delay(10000);num--;if(num==0)num=7;break;

case 3:if(flag)P0=led[num];else P0=0xff;break;

case 4:P0=led[num];while((key1=keyscan())!=4);P0=0xff;key1=key2=0;num=0;break;

default:break;

}

}

}

52单片机独立按键控制LED流水灯

怎么个控制法,按一下,流水灯停下,再按一下开始,

还是按一下对应亮一个或亮下一个

还是想知道怎么用按键

教你用按键的方法,功能你自己去实现。把io口拉高电平后,接按键,如果按键按下,会接地,读出的io口电平会变为低,这样就可以判断说法按下按键,但要一直重复读取io口数据,而且要防抖动。

   unsigned int temp,k=9;

P2=0xff;//用P2检测键盘

temp=P2;

temp=temp0xff;

   if (temp!=0xff)//接地了,有按下

   {

     delayxms(10);//等键盘稳定,以确认不是误按、抖动

 temp=P2;//再次检测

 temp=temp0xff; //防抖 ,确认是按下

 if (temp!=0xff)//确认不是误按、抖动

 {

   switch (temp)

   {

     case 0xfe:k=0;break;

 case 0xfd:k=1;break;//不同情况做出不同处理,变为0的是按下的键

 case 0xfb:k=2;break;

 case 0xf7:k=3;break;

 case 0xef:k=4;break;

 case 0xdf:k=5;break;

 case 0xbf:k=6;break;

 case 0x7f:k=7;break;

   }

 }

     }

   }

单片机通过按钮控制一个LED小灯的亮灭,请问这个程序怎么写

led应该是一个变量,是代表led灯 亮或者灭的一个变量。 当你按下开关后,s1==0,就执行 led=!led 这条语句。 led=!led

的意思就是取反的意思,即原来led灯亮的话 执行该条语句后就变成灭;原来灭的话 执行该条语句后

就变成亮。按键按下就打控制灯的io取反就可以了。如:if(key1==1){while(key1==1); //

等待按键放开led1=~led1;}

关于单片机独立按键控制led灯程序和单片机按键控制LED灯的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。微信号:ymsc_2016

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~