LED_Port2 P1 define LED_Port3 P2 define LED_Port4 P3 define LED_AllOff LED_Port1=LED_Port2=LED_Port3=LED_Port4=0xff define LED_AllOn LED_Port1=LED_Port2=LED_Port3=LED_Port4=0 define LED_Status

define FLOWTIME 100//修改此值,改变流水速度 sbit KEY = P2^0;//按键 bit Start_flag =0;//流水灯控制 bit Flow_flag =0;//流水 unsigned char Cnt =0;//流水灯计数器 unsigned char KEY_Cnt=0;//按键

不用中断一样的实现,而且可以有多少个按键就可以有多少种流水灯方式。你使用的键盘函数直接调用流水灯函数就可以。比如使用独立键盘,if(P1.1==0) light_water(); 然后:void light_water(){ num=1;for(a=0;a<8;

=0xff)//接地了,有按下 { delayxms(10);//等键盘稳定,以确认不是误按、抖动 temp=P2;//再次检测 temp=temp&0xff;//防抖 ,确认是按下 if (temp!=0xff)//确认不是误按、抖动 { switch (temp)

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

1、选择4个端口作为输入端口连接按键(独立按键,按键一端接单片机端口,另一端接地)。 三路为抢答的按键KEY1、KEY2、KEY3,一路为抢答后复位按键KEY0。2、选择3个端口作为输出端口连接LED灯(高电平点亮还是低电平点

可以用外部中断计数,来实现流水灯的正转、暂停、以及反转和爆闪。。这是我前几天写的一个这样的程序,楼主可以结合protues 画图仿真,注意程序中所用到的IO端口就行了。include#include#define

{ switch(key){ case 0: LED0=!LED0;//你自己修改 delay_ms(200);break;case 1: LED1=!LED1;delay_ms(200);break;case 2:LED2=!LED2;delay_ms(200);break;default:break;} void 在这里按键获取函数(void

includesbit led1=P1^0;sbit led2=P1^1;sbit led3=P1^2;sbit key1=P1^4;sbit key2=P1^5;sbit key3=P1^6;main(){while(1) { led1=key1; led2=key2; led3=key3; }}

sbit K1 = P1^0;sbit K2 = P1^1;sbit K3 = P1^2;sbit LED1 = P2^0;sbit LED2 = P2^1;sbit LED3 = P2^2;/***///ÑÓʱº¯Êý///***/void Delay(UINT

MAIN2 CLR LED1 SJMP MAINMAIN2: SETB LED1 JB KEY2,MAIN3 CLR LED2 SJMP MAINMAIN3: SETB LED2 SJMP MAIN END

keyp3.11: jb p3.1,keyp3.2 ;如果p3.0 为高,则灭掉p2.1 setb p2.1 ;点亮 p2.1 ajmp keyp3.22 keyp3.2: clr p2.1 ;灭掉 p2.1 keyp3.22: jb p3.0,keyp3.0

单片机 三个按键独立控制三个led灯 汇编语言

是强电的灯可以通过此处控制继电器的合、闭来控制灯的亮灭)。参考程序:if(key==0){delayms(10);if(key==10){while(key==0);//等待按键释放,IO口恢复高电平led=!led;//按键控制程序}}

你没有松手监测呀!就是在按键处理程序后要加一个while(k1!=0);就是只有你松开按键后才认为本次按键执行完毕,不然就会一直重复执行按键按下的程序,那么你的d1一直就会执行亮灭操作!

4.上传程序:将编写好的程序上传到单片机中。将单片机通过USB线连接到计算机,选择正确的开发板和端口,然后点击上传按钮将程序烧录到单片机中。5.测试控制:完成上传后,单片机将开始执行程序。LED灯应该会按照程序中定义的亮灭

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

while(!S1);//等待按键抬起 delay();//引用延时几十ms,否则LED的亮灭没法控制 } }

STM8S003F3 单片机 用1个按键控制一个LED亮灭

wela=1;P0=0xc0;wela=0;dula=1;P0=table[a];//a在键盘函数引用 dula=0;delay(10);} void liushuideng() //流水灯 { b=0xc9;while(e>=0&&e<=80){ P1=b;delay(50);b=_crol_(b,1);e++;if(e=

if(KEY0_01 == 0) //检测按键是否按下 { Delay_1ms(10); //延时去抖动 if(KEY0_01 == 0) //确定按键按下 { LED1_01 = ~ LED1_01; //取反LED灯 [ 亮 . 灭 ]} while(KEY0_01 ==

C51独立按键的识别示例程序 每按一次独立键盘的S2键,与P1口相连的一个发光二极管往下移动一位。include sbit BY1=P3^4; //定义按键的输入端S2键 unsigned char count; //按键计数,每按一下,count加1

sbit LED = P3^6;void delay20ms(void){ unsigned char a,b;for(b=146;b>0;b--)for(a=67;a>0;a--);} main(){ KEY = 1;while(1){ if(KEY==0){ delay20ms(); //消除按键抖动 if(KEY==0){

KeyDownFlag=TRUE;//按键按下标志 置位 KeyReadyFlag=TRUE;//按键准备标志 置位 } else KeyDownFlag=FALSE;//若按键Key1 无按下,则清空 按键按下标志 if(!KeyDownFlag && KeyReadyFlag)//若 按键已准备,且按键无

sbit LED=P1^1;//接LED void main(void){ P1=oxff;//初始化P1 while(1){ LED=~K1;} }

LED = 1;//led亮 } else { LED = 0;//led灭 } } } }

独立键盘用一个按键,控制一个灯的亮灭,用C语言怎么写程序?

//先按下k3,然后按下 k1,灯亮灭交替。//--- //应该先检测二级开关 K1。//发现 K1 按下后,再检测 K3 是不是已经在按着。if(!k1) { //先检测二级开关 delay1(10); //消抖 if(!k1) { while(!

1、首先打开编程软件Keil uVision4,新建一个工程文件,在菜单栏中Project—— New uVision Project..。2、然后选择单片机型号是 Atmel 公司的 AT89c52,单击OK。3、再单击工具栏上新建按钮,新建一个文档,然后再点击保存,

{ if(K1 == 0) //如果K1按键被按下 delay_ms(20); //防抖,20ms的延时 if(K1== 0) //如果K1按键被按下 { LED1 = 1; //点亮4个LED灯 LED2 = 1;LED3 = 1;LED4 = 1;while(K1==0)

delay(50000); //大约延时450msled=0;if(k2==1)break;}led=0;}思路很简单,就是用检测的方法去扫描相应的按键是否被触发,然后执行相应的子程序。

if(k1==0)P2=0xee;else P2=0xff;if(k2==0)P2=0xfd;else P2=0xff;这是按住就亮,松开就灭的程序。如果想实现按一次亮,再按一次熄灭。程序如下:bit a=0,b=0;//做按键点亮熄灭标志 while(1){ if(k1==0

c51独立按键程序,按下k1按键后对应的灯亮,但松开k1按键后灯还亮,k2也是如此,求大侠!

单凭RC延迟电路+三极管(用作开关),除非按键是带自锁的,否则触发式的不好搞啊。这个用颗单片机 实现多省事啊。

pinMode(ledPin, OUTPUT);} void loop() { // 控制LED灯亮灭 digitalWrite(ledPin, HIGH); // 点亮LED delay(1000); // 延时1秒 digitalWrite(ledPin, LOW); // 熄灭LED delay(1000); // 延时1秒} 在上述示

这个电路简单,不用三极管和可控硅,就只要LED灯,电阻和开关就行了,重要的是考虑供电。

光敏电阻,控制芯片。1、光敏电阻:用于检测环境光照强度的传感器。光敏电阻的电阻值会随着光照强度的变化而变化,从而可以实现光控功能。2、控制芯片:用于控制LED灯的工作模式和亮度等参数的集成电路。控制芯片有单片机。

使用按键控制LED灯的亮和灭,用到哪些元器件?

是需要双控开关的接法吗【摘要】 两个按键控制一个LED灯的亮与灭【提问】 是需要双控开关的接法吗【回答】 【回答】 这是双控开关的接法图【回答】
LOOP: JNB K1,CASE1 JNB K2,CASE2 JNB K3,CASE3 JNB K4,CASE4 AJMP LOOP CASE1: MOV LED,#01111111 AJMP LOOP CASE2: MOV LED,#00111111 AJMP LOOP CASE3: MOV LED,#00011111 AJMP LOOP CASE4: MOV LED,#00001111 AJMP LOOP K1~K4对应按键输入口,LED对应LED输出,两者应为普通IO口
if(k1) { delay(10ms); if(k1) { led1 = 亮; //不知道你是0为亮还是1为亮 delay(1S) //延时1s led2 = 亮; } while(k1); led1 = 灭; led2 = 灭; } if(k2) { delay(10ms); if(k2) { led1 = 亮; //不知道你是0为亮还是1为亮 delay(1S) //延时1s led3 = 亮; } while(k1); led1 = 灭; led3 = 灭; } 思路就是这个样子。
你这个问题问的太笼统了,具体点,是做仿真还是控制实际电路,不管是怎样,都牵涉到电路设计连接的问题,其实控制灯的亮灭就是控制I/O口的逻辑1或0,从而控制I/O口的输出电平。至于是0还是1,就看你电路怎么连接了。
if(key1==0) { while(1) { P0=0x01; unsigned char t=0; P0=P0<<1; t++; if(t>=5) t=0; P0=0x01; } };
这个很简单吧 做一个变量然后取反不就行了嘛 这是最简单的基础知识了。
void main() { init(); while(1) { if (S1==0)//如果读取到按键为低电平取反后为高 则继续运行下面 { GPIO_WriteHigh(GPIOA, GPIO_PIN_3);//PA3为高电平 } if(S2==0) { GPIO_WriteLow(GPIOA, GPIO_PIN_3);//PA3为低电平 } } }
KEY0 BIT P1.0KEY1 BIT P1.1KEY2 BIT P1.2LED0 BIT P1.4LED1 BIT P1.5LED2 BIT P1.6ORG 0000HLJMP MAINORG 0030HMAIN: JB KEY0,MAIN1 CLR LED0 SJMP MAINMAIN1: SETB LED0 JB KEY1,MAIN2 CLR LED1 SJMP MAINMAIN2: SETB LED1 JB KEY2,MAIN3 CLR LED2 SJMP MAINMAIN3: SETB LED2 SJMP MAIN END
单片机的P1.0-P1.3接四个发光二极管L1-L4的阴极,P1.4-P1.7接四个开关K1-K4 程序: ORG 00H START: MOV A,P1 ANL A,#0F0H RR A RR A RR A RR A ORl A,#0F0H MOV P1,A SJMP START 可以检测单个按键,也可以同时检测多个按键 过程:开始——读P1口数据到A——A中的数据右移4次——A中的内容和F0H相或——A中的数据送到P1口——回到开始
while(1) { P1=aa; delayms(1000); aa=_crol_(aa,1); } 这前面的while(1)根本不会退出,也就是不会执行下面的if(key1 == 0)的语句了,所以按键按下去当然没有反应了 if(key1==0) { P1=0x7e;
参考: http://hi.baidu.com/do_sermon/item/ba6c010d009b7b324ac4a399