led_delay();P3=0xfe;led_delay();} /*关闭所有LED*/ void stop(void){ P3=0xff; //关闭8个LED } /*闪烁点亮LED*/ void flash(void){ P3=0xff; //关闭8个LED led_delay();P3=0x00; //点亮
include
if(key1 == 0) //如果高电平按下按键就==1 { delay(200); //按键防抖 if(key1 == 0){ led1=1; //如果低电平亮就=0 led2=0;led3=0;led4=0;} } if(key2 == 0){ delay(200); //按键防
不用中断一样的实现,而且可以有多少个按键就可以有多少种流水灯方式。你使用的键盘函数直接调用流水灯函数就可以。比如使用独立键盘,if(P1.1==0) light_water(); 然后:void light_water(){ num=1;for(a=0;a<8;
include
求解读51单片机用四个按键独立控制四个led的c程序
SETB P1.0 START:JB P1.0,NEXT ;设按键为低电平有效。JNB P1.0,CPL P3.0 NEXT:SJMP START END
在四个灯循环点亮的状态下,每点亮一个灯需要延时,如果调用延时子程序,按键就显示不灵敏了,所以,采用定时器中断的方式控制延时,就不影响按键了。include
P01=1;//行线给1 if(P02)//如果P02也是1则说明接通 { delay(10);//去抖动10MS if(P02)//再次确定按键按下 { while(P02){flash=flash}//按住按键的动作 flash=~flash;//按键按下后执行动作 } } } void led
1、首先打开编程软件Keil uVision4,新建一个工程文件,在菜单栏中Project—— New uVision Project..。2、然后选择单片机型号是 Atmel 公司的 AT89c52,单击OK。3、再单击工具栏上新建按钮,新建一个文档,然后再点击保存,
按键点灯程序,按一下按键灯亮(一直亮),再按一下灭,51单片机。
PORTC = 0x00; //74HC138控制端口 while (1) //死循环,让数码管持续点亮 { PORTD=0b00000000; //点高发光管 delay();PORTD=0b11111111; //关掉发光管 也可以写成16位的 自己试一试吧 delay();} } /
按键按一次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;f
1、首先打开桌面上的keil软件,在进行对51单片机进行编程时最常用的就是keil软件。2、编写相应的代码:#include
CALL PRG1 ; 亮且发音 CALL PRG2 ; 灭且静音 SJMP 0 ;--- PRG1:MOV P0, #0 ; 8个led灯亮 MOV R2, #200 LP1:CPL P1.0 ; 蜂鸣器响 DJNZ R6,DJNZ R7, $ - 2 DJNZ R2, LP1 MOV P0
用单片机控制LED灯的亮灭,怎么写程序?
KEY EQU P1.0 LED EQU P1.4 ORG 0000H LJMP MAIN ORG 0030H MAIN: SETB LED LP: JB KEY,LP JNB KEY,$ CPL LED SJMP LP ENDLED BIT P1.0KEY BIT P1.1ORG 0000HLJMP MAINORG 0030HMAIN: CLR 00HMAIN1: JB KEY,LOOP JNB KEY,$ CPL 00HLOOP: JNB 00H,LOOP1 CPL LED LCALL DELAY SJMP MAIN1LOOP1: SETB LED SJMP MAIN1DELAY: MOV R2,#200DLY: MOV R3,#250 DJNZ R3,$ DJNZ R2,DLY RET END
这个找TB,很多的!如果是C语言的实物,可以搜:C语言 数码管 单片机 实物。如果是汇编语言的仿真,可以搜:汇编语言 数码管 单片机 仿真。根据类似的方式,很好找的!
要控制LED灯的亮度,应采用PWM方式,对实物控制可以实现,仿真效果出不来。