51单片机怎么设计程序让led保持亮灭状态?

如题,我想每个独立按键单独控制一个灯:按下k1是led1亮,按下k2时led2亮,之间互不干涉,并且保持住状态,然后按下k3时不管亮几盏灯全部熄灭,自己写的程序只有按键按下不松手才亮,而且亮led1就不能亮led2,求解答!

你设定一个标志,按下,这个标志变化,然后根据这个标志的变化对应着灯亮就OK了。追问

怎么设定啊?

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-08-14
if(k1==1)
led1=1;

if(k2==1)
led2=1;

if(k3==1)
{
led1=0;
led2=0;
}
我不知道你电路图,所以我用高电平控制led。追问

可是这样,led不能保持常亮,还有1亮的时候,2就不能亮了吧

追答

这是常亮的。除非k3按下了。把你程序给我看下。我看什么原因。

追问

能留个联系方式吗?程序放不下....

追答

就把main函数截屏就可以了。

本回答被提问者采纳

怎样让51单片机的led灯一灭一亮
在上述代码中,我们首先将P1口设置为全灭状态,然后使用一个循环将P1口设置为全亮状态,并延时1秒钟。接着,我们将P1口设置为全灭状态,并再次延时1秒钟。这样,LED灯就会一亮一灭间隔1秒。需要注意的是,上述代码中的延时时间可以根据实际情况进行调整,以获得更精确的间隔时间。此外,如果使用的是STM...

51单片机的按键控制小灯亮灭的问题(程序类型:c语言)怎么解决?
KEY1) \/\/检测到按键按下 { LED = ~LED; \/*LED取反,此时LED = 0,灯亮。当松手时,KEY1 = 1,不满足if语句不 进入循环,LED继续保持当前状态即LED = 0,如果再次按下按键,此时检测到KEY1 = 0,进入循环,LED取反得到LED = 0,灯亮。*\/ delay(500); \/*此处延迟,保...

如何用8051流水灯程序?
具体来说,使用for循环来控制LED灯的亮灭顺序。在每次循环中,通过给P1端口赋值来控制LED灯的亮灭状态。例如,给P1端口赋值为0x01,那么第一个LED灯就会亮起,其他LED灯则熄灭。然后使用delay函数来延迟一段时间,以便观察到LED灯的亮灭变化。接着再给P1端口赋值为0x02,第二个LED灯就会亮起,其他LE...

单片机如何控制LED灯的亮与灭?
LED_D1 =1;\/\/=1亮灯 ,=0灭灯当也要看电路,完善的电路还会有驱动电路如三极管点了,也要看LED固定的那端是接地还是接VCC。最终无非就是通过单片机的IO口输出一个0或1来是LED二极管电路正向导通形成发光。

51单片机的按键控制小灯亮灭的问题(程序类型:c语言)
LED = 1; \/\/初始化LED熄灭 KEY1 = 1; \/\/赋值KEY1高电平 while(1){ if(!KEY1) \/\/检测到按键按下 { LED = ~LED; \/*LED取反,此时LED = 0,灯亮。当松手时,KEY1 = 1,不满足if语句不 进入循环,LED继续保持当前状态即LED = 0,如果再次按下按键,此时检测到KEY1 = 0...

51单片机用汇编语言如何编写LED灯逐渐变亮在逐渐变暗啊
首先,要做一个软件三角波发生器子程序,频率自己定,就是变亮变暗的周期。此函数的返回值作为pwm的输入值。再做一个pwm的模拟程序,占空比(0-100)是三角波发生器的输出,pwm模拟程序控制某个端口输出1和0的占空比来控制灯 的明暗。pwm的思路是:检查设置值是否不等于0,是则端口置1,程序开始加1...

怎么用51单片机的c程序编写led灯变化亮度的程序?求大神给程序.
void InitTimer0(void){ TMOD = 0x01;TH0 = 0x0FF;TL0 = 0x0a4;EA = 1;ET0 = 1;TR0 = 1;} void main(void){ InitTimer0();qq=50; \/\/修改这个值就能调节LED亮度 while(1){ } } void Timer0Interrupt(void) interrupt 1 { static uint tt;TH0 = 0x0FF;TL0 = 0x0a4;tt...

单片机控制LED灯常亮30秒后闪烁怎么编程?
假设用的是51单片机的P1口,LED灯是低电平点亮,连接P1.0,那么可以参考如下思路:初始化:P1 =0xFF;P1.0=0;点亮 delay_s(30);延时30秒 P1.0=1;熄灭 while(1){ delay_s(1);延时1秒 P1.0=0;点亮 delay_s(1);延时1秒 P1.0=1;熄灭 } ...

用51单片机写一个C程序,红外线反射管开关程序控制一个LED的亮灭
红外反射管 高低电平输出接P1.0 led接P1.1 程序如下:include"regc51.h"sbit IR=P1^0;sbit led=P1^1;main(){ while(1) { led=IR; }}

51单片机控制led灯点亮与熄灭
\/\/ 51单片机控制八个发光二极管 左右循环。include<reg52.h> define uchar unsigned char define uint unsigned int unsigned char TAB[]= {0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff}; \/\/ 改变这里 LED 各种花样 uchar t...

相似回答