用单片机实现按下KEY1键三次后p1口的LED灯全部点亮再按一次K1键后LED灯全灭可反复

用汇编语言实现

第1个回答  2012-03-31
以51单片机为例,现场编写,没通过编译,大概原理是这样
#define LED P1
sbit key=P0.0;//定义按键与单片机接口,按下为低电平
unsigned char count=0;//定义全局变量,记录按键次数
void key_scan()
{
if(key==0)
{
delay(10ms);//延时函数消抖,
if(key==0)count++;
}
}
main()
{
while(1)
{
key_scan();
if(count==3) LED=255; //按下三次,全亮,高电平点亮
if(count==4) {LED=0; count=0}
}
}
第2个回答  2012-03-30
需要开启计数器

...p3.5)键三次后,P1口的LED灯全部点亮,再按1次key1
while(!key1); \/\/再次判断按键key1是否已松开 num++;} } if(num>2) \/\/按键按下3次,P1口灯亮 { num = 0;flag = 1;P1 = 0; \/\/P1口灯亮,为P1口输出低电平灯亮 } if((key1==0)&&(flag==1)){ delay40us(250);if(key1==0){ while(!key1);delay40us(250);while(!

51单片机LED按键延时3秒一次点亮,取反按键依次熄灭程序是怎么写的
现功能:按下按键三个全亮,在按下LED2灭,再按下三个LED全灭,如此循环,相当于三档,第三档是停止。第一档和第二档定时5S,5S终了,停止运行,如果此时再按1次则回到第一档。如果5S之内按下,则切换到下一档,实现功能:按下按键三个全亮,在按下LED2灭,再按下三个LED全灭,如此循环,相...

单片机ATc52,实现按下key1,led1亮,再按下key2,led2亮led1灭,求具体程序...
sbit key1=P1^1;sbit key2=P1^2;void main(){ led=1;\/\/初始化输出,可初始化=0 while(1){ if(key1==0){ led=0;\/\/亮 } if(key2==0){ led=1;\/\/灭 } } }

单片机51按下按键key1流水灯从上到下亮3次代码怎么写
当按键没有被按下时,按键输入口就处于低电平状态。3、在主函数中,使用一个无限循环,不断检查按键输入口是否被按下。按下按键,则点亮第一个灯,并延时一段时间。

...再按一下led灯灭如此反复循环 led接PC0脚 按键接PB0脚 (用_百度...
用状态机写:函数1:LED闪烁 main(){ while(1){ if(KEY)State = ~State;if(State)LED闪烁 else LED熄灭 } }

...LED灯灭。再按一下,LED亮,用C语言编程该怎么写
按键按一次LED灯灭,在按一次按键LED灯亮。程序如下:\/ include "REG52.H"sbit LED1_01 = P1^1; \/\/LED灯 sbit KEY0_01 = P1^2; \/\/按键 void Delay_1ms(unsigned int Time){ unsigned int x, y;for(x = Time; x > 0; x--)for(y = 120; y > 0; y--);} int ...

单片机按下按键1,灯亮,按下按键2,灯灭,按下按键3,灯闪烁,求代码
flag是用来记忆按键状态,按下key3,flag置1,程序中检测到flag是1才闪烁,松手后LED仍然闪烁,同时下一轮还可以检测另外两个按键 while(1){ if(key1==0)\/\/判断按键是否按下 { Delay1ms(10);\/\/延时消抖 if(key1==0){ while(key1==0);\/\/等待按键抬起 LED=1;flag=0;} } if(key2==...

...KEY1按一下LED1亮 再按一下LED1灭 KEY2按下LED2亮 LED1灭
sbit key2 = P1^1;sbit led1 = P1^2;sbit led2 = P1^3;void Delay(unsigned int x){ unsigned int i, j;for(i = 0; i < x; i++) for(j = 0; j <= 148; j++);} \/\/KEY1按一下LED1亮 再按一下LED1灭 \/\/KEY2按下LED2亮 LED1灭 main(){ while(1) { if (!key...

求51单片机c程序:用三个按键,kye1启动led1,key2启动led2 led1停止 在...
sbit key2=P1^1;sbit key3=P1^2;sbit led1=P1^4;sbit led2=P1^5;bit flag=0;main(){while(1) { if(flag==0 && key1==0) { led1=0; while(key1==0); } if(key2==0) { led1=1; led2=0; while(key2==0); flag=1; ...

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

相似回答