delay(50000);LED4 = 1;delay(50000);LED4 = 0;delay(50000);LED3 = 0;delay(50000);LED2 = 0;delay(50000);LED1 = 0;delay(50000);} } 上述代码实现了四个 LED 灯逐个亮起来然后再逐个灭掉的效果。其中,
L2=1; //第二盏灯亮 delay(100); //调用延时子程序 L3=1; //第三盏灯亮 delay(100); //调用延时子程序 L4=1; //第四盏灯亮 delay(100); //调用延时子程序 while(1); //这里我用了个
1、布尔型控件具有两种状态,首先打开Labview创建一个空的项目。2、首先在前面板选择布尔控件,选择按钮和一个指示灯,都在布尔控件中。3、接着将选择好的控件拖动到前面板,双击单个控件进入对应的程序面板。4、接着进入到程
i++;} 定时器, LED灯
更改程序实现四盏LED灯依次轮流亮起,即流水灯的效果?
程序到这里就停住了, 所以一直亮,因为你设置外部中断1 最高优先,所以 不妨碍 S2 控制灯灭,把i改成 unsigned int 的就可以修改一直亮的问题,但是因为你程序问题,会出现,按一下S1 小灯闪烁一次,按一下,小灯闪烁
在四个灯循环点亮的状态下,每点亮一个灯需要延时,如果调用延时子程序,按键就显示不灵敏了,所以,采用定时器中断的方式控制延时,就不影响按键了。include
case 0x38:P1^0 = 1;while(!P3^2);P1^0 = 0;break;//按键K1按下灯灭,等待按键松开D1亮 case 0x34:P1^1 = 1;while(!P3^3);P1^1 = 0;break;//k2 case 0x2C:P1^2 = 1;while(!P3^4);P1^2 =
unsigned char Q=0;switch (Q){case 0:if(KEY==0){L1=1;Q=1;}break;//KEY==0;按下case 1:if(KEY==1){L1=0;Q=2;}break;//KEY==1;松开case 2:if(KEY==0){L2=1;Q=3;}break;case 3:if(KEY=
LED1 = 1; //点亮4个LED灯 LED2 = 1;LED3 = 1;LED4 = 1;while(K1==0) //等待K1键被抬起 { ;} } LED1 = 1; //平时没按下K1按键时,熄灭4个LED灯 LED2 = 1;LED3 = 1;LED4 = 1;}
单片机编程当k1按下时四个灯亮,松开则四个灯不亮
START:MOV P1,#01111111B ;最下面的LED点亮 LCALL DELAY ;延时60秒 LCALL DELAY ;延时60秒 MOV P1,#10111111B ;最下面第二个的LED点亮 LCALL DELAY ;延时60秒 LCALL DELAY ;延时60秒 MOV P1,#1
没分的话就不答具体的了,你随便找本书都有模块,你要是P1口接LED再接限流电阻,最后把所有电阻都连在5V电压的话,那就先给11111110给P1,用RR来循环,再写一个用计数器做延时的子程序就行了。一般书都有这几个模块
//以下是四个LED灯循环亮的程序,看看,可以吗?include
;假定:P1口0~3脚依次接4个LED ;假定:晶振为12M ;假定:P1口低电平有效,LED点亮 ORG 00H AJMP MAIN ORG 0BH AJMP JT0 MAIN:NOP MOV SP,#40H MOV A,#0FEH MOV R0,A MOV P1,A ;初始化LED灯,第1灯点
跪求用汇编语言编程,要求如下,P1口的四个LED等循环点亮,点亮时间为一秒,用定时计数器实现延时一秒的编
简单编了一下程序,,,include
在四个灯循环点亮的状态下,每点亮一个灯需要延时,如果调用延时子程序,按键就显示不灵敏了,所以,采用定时器中断的方式控制延时,就不影响按键了。include
i++;} 定时器, LED灯
LED1 = 1; //点亮4个LED灯 LED2 = 1;LED3 = 1;LED4 = 1;while(K1==0) //等待K1键被抬起 { ;} } LED1 = 1; //平时没按下K1按键时,熄灭4个LED灯 LED2 = 1;LED3 = 1;LED4 = 1;}
LED3 = 1;delay(50000);LED4 = 1;delay(50000);LED4 = 0;delay(50000);LED3 = 0;delay(50000);LED2 = 0;delay(50000);LED1 = 0;delay(50000);} } 上述代码实现了四个 LED 灯逐个亮起来然后再逐个灭掉的
DEL1:MOV R6,#0 DEL2:DJNZ R6,DEL2 DJNZ R7,DEL1 SETB C RLC A DJNZ R0,LOOP AJMP LOOP0 END
51单片机的题目: 依次点亮四个Led灯
我求求你了,别用汇编了。C51多简单明了!现在的单片机不需要考虑容量和速度问题,如果不够可以选择大容量高速单片机。51系列有100MHz,128K ROM。 #include// 头文件,定义寄存器等 main(void) { char i=0,j,k;//初始化变量, while(1) { i++; if(i>8)// i从0~8,一共9种状态 { i=0; } j=0x00; for(k=0;k<i;k++)//循环,类似于汇编的DJNZ { j>>=1;// 类似汇编的RR A j|=0x80;//ANL A,#80H } P2=j; } } 真的想要汇编语句,编译后仿真时看吧。在四个灯循环点亮的状态下,每点亮一个灯需要延时,如果调用延时子程序,按键就显示不灵敏了,所以,采用定时器中断的方式控制延时,就不影响按键了。 #include #include 仿真图效果。
ORG 0000H start: AJMP MAIN ;转主程序 ORG 000BH AJMP CTC0 ;转中断服务程序 ORG 0030H MAIN: MOV TMOD,#01H ;设置T0为方式1 MOV TL0,#0B0H ;送初值,定时50ms,晶振为12MHz时 MOV TH0,#3CH MOV B, #0FEH MOV R0,#00H SETB EA ;CPU开中断 SETB ET0 ;T0中断允许 SETB TR0 ;启动定时 HERE: SJMP HERE ;等待中断 ;中断服务程序 ORG 0120H CTC0: MOV TL0,#0B0H ;重新装如初值 MOV TH0,#3CH INC R0 MOV A,R0 CJNE A,#14H,NEXT MOV R0,#00H MOV A,B RL A MOV B,A NEXT: RETI
http://blog.163.com/asm_c/blog/static/248203113201063540886/ 参考。
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口
在四个灯循环点亮的状态下,每点亮一个灯需要延时,如果调用延时子程序,按键就显示不灵敏了,所以,采用定时器中断的方式控制延时,就不影响按键了。 #include #include 仿真图效果。
;实验目的:本程序主要实现一个简单的流水灯程序 ;即轮流点亮C口的8个灯(先点亮RC0,再熄灭RCO点亮RC1。。。。) ;硬件要求:拨码开关S2全部置ON。 #include ;调用头文件 __CONFIG _DEBUG_OFF&_CP_ALL&_WRT_HALF&_CPD_ON&_LVP_OFF&_BODEN_OFF&_PWRTE_ON&_WDT_OFF&_HS_OSC ;芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振荡 ;**********************用户寄存器定义******************** count equ 20h ;移位次数寄存器 del_va1 equ 0ffh ;外层延时参数 del_va2 equ 0ffh ;内层延时参数 org 00h ;程序人口地址 ; addlw 0ffh ;**********************主程序开始*********************** main nop ;ICD所需要的一条空指令 clrf PORTC ;先清楚C口所有显示 banksel TRISC ;选择I/O口方向寄存器所在的体 clrf TRISC ;设置C口全为输出 clrf STATUS ;返回体0 movlw .8 movwf count ;装载循环次数8(C口共8位) bsf STATUS,C ;置进位标志位为1,因循环移位是带进位循环的 loop rlf PORTC,1 ;C口左移1位 call delay call delay CALL delay ;调用三次延时程序(保证亮度,以及流水灯闪烁速度) bcf STATUS,C ;清0进位标志位(永远只有一只LED亮) DECFSZ count,1 ;判断是否一轮循环结束 goto loop ;否,继续循环移位 GOTO main ;是,程序重头开始 ;***********************延时程序************************* delay movlw del_va1 ;延时程序外层参数 movwf 30h movlw del_va2 ;延时程序内层参数 movwf 31h decfsz 31h,1 goto $-1 decfsz 30h,1 goto $-4 return ;********************程序结束**************************** end
四个灯按规律轮流亮灭?