通过上面的接线方式,我们就可以实现三盏灯由一个开关同时控制,三盏灯同时亮和同时灭;这种接线方式除了地线以外只需要两根线就可以实现了。
led1 = 0;led2 = 1;
ORG 0000H ;复位启动 AJMP START ; ;主控程序=== START: SETB P1.7 ;P17 = 1 LOOP: JB P3.2,LOOP ;没有按键 LCALL DELAY ;延时消抖 JB P3.2,LOOP ;确认按键 CPL P1.7 ;取反 JB P3.2,LOOP ;检测按
while(1){ if(P3^1==0){ P1^3 =0;P1^4 =0;P2.3=0;delay_ms(500);P1^3 =1;P1^4 =1;P2.3=1;delay_ms(500);} else { P1^3 =0;delay_ms(500);P1^3 =1;P1^4 =0;delay_ms(500);P1^4
怎样使C51,3个LED闪烁控制。 开关闭合,三灯同时亮灭,开关断开,三个灯轮流点亮闪烁,汇编程序
2. 编制一个循环闪烁灯的程序。有8个发光二极管,每次其中某个灯闪烁点亮10次后,转到下一个闪烁10次,循环不止。画出电路图。(20分)本程序的硬件连接如图所示。当P1.0输出高电平时,LED灯亮,否则不亮。其程序如下
你要的急吗?我在上班,只能抽休息时间给你弄了,我尽快吧!
closelight();//关灯 亮灯和关灯在一起,组成一个闪烁动作 //当然如果有现成的闪烁函数可以替换着两个函数。}
while(1){ for(x=0;x<10;x++ ){ P1=k;delay10ms();P1=0xff;delay10ms();} k=_cror_(k,1);if(x==9)x=0;} }
其程序如下:MOV A,#01H ;灯亮初值 SHIFT: LCAIL FLASH ;调闪亮10次子程序 RR A ;右移一位 SJMP SHIFT ;循环 FLASH: MOV R2,#0AH 闪烁10次计数 FLASH1; MOV P1,
其程序如下:MOV A,#01H ;灯亮初值 SHIFT: LCAIL FLASH ;调闪亮10次子程序 RR A ;右移一位 SJMP SHIFT ;循环 FLASH: MOV R2,#0AH 闪烁10次计数 FLASH1; MOV P1,
编制一个循环闪烁灯的程序,每次其中某个灯闪烁10次后,转到下一个闪烁10次,循环不止(用汇编语言编制)
这个流水灯是很普通的一种花样,假设LED接P1口,程序如下:ORG 0000H LJMP MAIN 0RG 000BH LJMP T0ISR ORG 0030H MAIN:MOV TMOD,#01H MOV TH0,#HIGH(65536-50000) ;50毫秒定时 MOV TL0,#LOW(65536-50000)SET
} } //主程序 void main(){ uint s;while(1){ P0=0xfe;DelayMS(150);for(s=8;s>1;s--){ P0=_crol_(P0,1); //P0 的值向左循环移动 DelayMS(150);} P0=0x00;DelayMS(150);p0=0xff;DelayMS(150);
;定时器定时一秒,一个数码管秒个位加1,同时八个LED灯循环流动 很简单的题目,只能写很简单的程序:ORG 0000H JMP START ORG 000BH INC R2 RETI START:SETB TR0 MOV IE, #82H MOV R3, #127
LOOP1:MOV P0,LED JNB FLAG,MOV A,LED RL A MOV LED,A CLR FLAG DJNZ R2,LOOP1 MOV LED,#0FEH MOV R2,#8 LOOP2:MOV P0,LED JNB FLAG,MOV A,LED RL A RL A MOV LED,A CLR FLAG DJNZ R2,LOOP2 MOV
KEY1 EQU P1.0 KEY2 EQU P1.1 ORG 0000H LJMP MAIN ORG 0030H MAIN:MOV A,#0FEH MOV P2,A LOOP:JB KEY1,LOOP1 MOV P2,#0FFH LCALL DELAY RL A MOV P2,A LCALL DELAY SJMP LOOP LOOP1:JB KEY2,LOOP
;假设1:D1~D8八个彩灯接在P1口,输出低电平发光 ;假设2:系统晶振为12MHz ;假设3:N = 5 ;程序如下:ORG 0000H MOV R3, #5 ;N=5 LOOP0:MOV A, #0FFH MOV P1, #0FFH ;开始时全灭 ;---逐个
求汇编,八个led交替闪烁,汇编语言汇编语言 按下开关s1(开关是那种按下去不会弹回来的),led1.3.5.7和led2.4.6.8交替闪烁,按下s2,led1234和led5678交替闪烁,间隔都是0.5秒,按下s3全灭 --- 电路与程序
求汇编,八个led交替闪烁,汇编语言汇编语言
小问题,会要你什么命。给你程序 ,望好自为之。那就P1.0~P1.7各接一LED ORG 00H AJMP MAIN ORG 30H MAIN:MOV P1,#00H LCALL DELAY1S MOV P1,#0FFH LCALL DELAY1S AJMP MAIN DELAY
用汇编语言编写:实现LED灯的循环闪亮。 50 要求:每次亮一个灯,时间间隔0.1到0.5秒;亮的LED从左到右移,熄灭,再从右到左亮,熄灭;返回循环急!!! 要求:每次亮一个灯,时间间隔0.1到0.5秒;亮的LED从左到右移,熄灭,再从右到
ORG 0000H ; 闪烁 流水灯 AJMP MIN0 ORG 0050HMIN0: MOV R0,#00H MOV DPTR,#TABDD1: MOV A, R0 MOV R2, #10 ; 闪烁次数 MOVC A,@A+DPTRDD2: MOV
闪烁5次再移位,可以用循环来实现。程序如下:ORG 0000H LJMP MAIN ORG 0030H MAIN:MOV A,#0FCH ;LED灯初值,两个灯点亮 LOOP:MOV R2,#5 ;5次闪烁循环次数 LOOP1:MOV P0,A ;P0口送控制值 LCALL DELAY
SHIFT: LCAIL FLASH ;调闪亮10次子程序 RR A ;右移一位 SJMP SHIFT ;循环 FLASH: MOV R2,#0AH 闪烁10次计数 FLASH1; MOV P1,A ;点亮 LCALL DELAY ;延时 MOV
你这个程序错误太多了,用汇编时关键的几个程序段都未分清:主程序、定时器T0中断、定时器T1中断等,因MOV IE,#8AH语句说明用的是中断方式,显然漏了 ORG 0000H、ORG 000BH和ORG 001BH伪指令。要改时间可改 CJNE
CLR指令是清零指令,语法为:要么对累加器A清零,CLR A等效于MOV A,#00H;要么对位清零,如CLR C,CLR P1.0,都是合法的。如果你希望对P0清零,可使用MOV P0,#00H,如果希望P0的低三位置1,可使用MOV P0,#07H。
如何用汇编语言控制led灯闪烁?
给你个参考;void delay();main(){ while(1){ //设P1.0引脚去驱动LED,P1=0xff;delay(500);//延时500mS P1=0xfe; //P1.0引脚反复输出高电平,低电平,LED即闪烁;delay(500);//延时500mS }
1.准备材料:您需要准备以下材料:单片机(如Arduino、STM32等)LED灯 电阻(用于限流,防止LED过电流损坏)连接线 2.连接电路:将LED灯与单片机连接起来。一般情况下,将LED的正极连接到单片机的一个GPIO引脚,将LED的负极连
unsigned char i,j,m;unsigned char count=0;unsigned char minute=0;bit flag=1;bit flashbit=0;unsigned char a[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};sbit P27=P2^7;sbit P30=P3^
P0=0xff; //P1=1111 1111B, P0.0输出高电平。delay(); //延时一段时间。} } 单片机驱动LED灯的源程序:include
P0_0=1; //熄灭LED delay(100); //实参“100”用来调节延时时间。} }
在单片机P0.0口接一个LED,试着写一个闪烁程序。要求亮的时间大于灭的时间。
和我们的实验要求好像啊!/程序:ex1_1.c //功能:控制一个信号灯闪烁程序 #include //包含头文件REG51.H,定义了MCS-51单片机的特殊功能寄存器 sbit P1_0=P1^0; //定义位名称 void delay(unsigned char i); //延时函数声明 void main() //主函数 { while(1) { P1_0=0; //点亮信号灯 delay(10); //调用延时函数,实际变量为10 P1_0=1; //熄灭信号灯 delay(10); //调用延时函数,实际变量为10 } } //函数名:delay //函数功能:实现软件延时 //形式参数:unsigned char i; // i控制空循环的外循环次数,共循环i*255次 //返回值:无 void delay(unsigned char i) //延时函数,无符号字符型变量i为形式参数 { unsigned char j,k; //定义无符号字符型变量j和k for(k=0;k<i;k++) //双重for循环语句实现软件延时 for(j=0;j<255;j++); }
不会。。。。路过。。。。网络100分 专业人士也不会花那么多时间来 编这个题吧 应该把 手机 留下
/程序:ex1_1.c //功能:控制一个信号灯闪烁程序 #include //包含头文件REG51.H,定义了MCS-51单片机的特殊功能寄存器 sbit P1_0=P1^0; //定义位名称 void delay(unsigned char i); //延时函数声明 void main() //主函数 { while(1) { P1_0=0; //点亮信号灯 delay(10); //调用延时函数,实际变量为10 P1_0=1; //熄灭信号灯 delay(10); //调用延时函数,实际变量为10 } } //函数名:delay //函数功能:实现软件延时 //形式参数:unsigned char i; // i控制空循环的外循环次数,共循环i*255次 //返回值:无 void delay(unsigned char i) //延时函数,无符号字符型变量i为形式参数 { unsigned char j,k; //定义无符号字符型变量j和k for(k=0;k<i;k++) //双重for循环语句实现软件延时 for(j=0;j<255;j++); }
你要的急吗?我在上班,只能抽休息时间给你弄了,我尽快吧!
#include#define uchar unsigned charvoid delay(uchar a){uchar i;while(a--)for(i=0;i<120;i++);}main(){uchar i,j;j=0;while(1) { for(i=0;i<10;i++) { P0=~(1<<j); delay(100); P0=0xff; delay(100); } j++; j%=8; }}
ORG 0000H ;复位启动 AJMP START ; ;主控程序======================== START: SETB P1.7 ;P17 = 1 LOOP: JB P3.2,LOOP ;没有按键 LCALL DELAY ;延时消抖 JB P3.2,LOOP ;确认按键 CPL P1.7 ;取反 JB P3.2,LOOP ;检测按键 LCALL DELAY ;延时 LJMP LOOP ;死循环 ; DELAY: MOV R7,#0 ;延时子程序 MOV R6,#0 MOV R5,#128 ; LOOP1: DJNZ R7,KJYS ;延时约20毫秒 DJNZ R6,KJYS DJNZ R5,KJYS RET ;延时间到返回 END ;结束延时子程序数据可能因不同系统时钟需要调整。
#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; }}