这个程序比较简单了。再精简,只能精简一句,将MOV P1,A 放在DELAY函数里。这样减少一行。简单介绍一下:首先就是你要轮流点亮,就是将1循环一圈,因为你要全灭一次,所以用到CY。RG 00H SJMP START ORG 30H START:MOV

试验成功的程序:ORG 0000H MOV 30H, #0 MOV 31H, #0 M_LOOP:MOV R2, #8 DISP1:CALL DL CALL SHIFT2 DJNZ R2, DISP1 MOV R2, #8 DISP2:CALL DL CALL SHIFT1 DJNZ R2, DISP2

程序1:ORG 0000H LJMP MAIN ORG 0030H MAIN:MOV SP,#5FH LOOP:MOV A,P2 MOV B,A MOV P0,A MOV P1,#0FFH LOOP1:LCALL DELAY MOV C,P1.7 MOV A,P0 RLC A MOV P0,A MOV A,P1 RLC A MOV P1,A MOV

51单片机是单片机接触最早的,下边这个程序希望能帮到你。(只有主函数,就不进行硬件什么定义以及头文件包含什么的了)void delay(int times){//延时函数,times控制延时时间 int i, j;for(i = 0; i < times; i++)

jmp start ;此处跳到开始 即 循环 ;延时子程序10秒=250usX2X200X100 t10s:mov r5,#100 lpr5:mov r6,#200 lpr6:mov r7,#250 djnz r7,djnz r6,lpr6 djnz r5,lpr5 ret end 把灯的正极接电源正极 即vcc

MAIN: JB P0.7,MAIN ;等待开始键按下 LCALL YS ;按键延时 JB P0.7,MAIN MOV A,#7FH ;是开始键按下 则跑马灯开始运行 LL: MOV P1,A LCALL YS ;显示延时 RR A

|P1口接8个发光二极管共阳 include unsigned char i;unsigned char temp;unsigned char a,b;void delay(void){ unsigned char m,n,s;for(m=20;m>0;m--)for(n=20;n>0;n--)for(s=248;s>0;

51单片机 跑马灯程序

一个开关,比如导通了1秒一个模式,3秒一个模式,5秒一个模式。要么在一定时间内,检测开关导通的次数 我觉得应该弄的直观点,从51上接4个led做指示用,一个灯表示待运行,还有3个灯,亮一个表示模式1,亮两个表示模式

/ /* 程序详细功能介绍:做单一灯的左移右移,八个发光二极管L0-L7分别接在单片机的P0.0-P0.7接口上,输出“0”时,发光二极管亮,开始时P0.0→P0.1→P0.2→P0.3→┅→P0.7→P0.6→┅→P0.0亮,重复

MOV P1,A SJMP MAIN ;转到程序开始处,等待开始键的按下 YS: MOV R7,#150 ;延时子程序 YL: MOV R6,#200 YY: NOP DJNZ R6,YY DJNZ R7,YL RET END 硬件接口电路如下:哈哈

假设开关接到P3.0,8个 LED灯 接到P1.0~P1.7,低电平 点亮。ms延时 子程序 书上都有例子,我就不再写出来了。include include define key P3^0 void main(){ unsigned char i,j,k;uns

怎么用MS-51单片机语言编写跑马灯程序

;延时子程序10秒=250usX2X200X100 t10s:mov r5,#100 lpr5:mov r6,#200 lpr6:mov r7,#250 djnz r7,djnz r6,lpr6 djnz r5,lpr5 ret end 把灯的正极接电源正极 即vcc 负极分别接p0.0-p0.5 此时 给p0

|P1口接8个发光二极管共阳 include unsigned char i;unsigned char temp;unsigned char a,b;void delay(void){ unsigned char m,n,s;for(m=20;m>0;m--)for(n=20;n>0;n--)for(s=248;s>0;

试验成功的程序:ORG 0000H MOV 30H, #0 MOV 31H, #0 M_LOOP:MOV R2, #8 DISP1:CALL DL CALL SHIFT2 DJNZ R2, DISP1 MOV R2, #8 DISP2:CALL DL CALL SHIFT1 DJNZ R2, DISP2

{ P1=LEDA[i]; delay(); }

MOV P1,A SJMP MAIN ;转到程序开始处,等待开始键的按下 YS: MOV R7,#150 ;延时子程序 YL: MOV R6,#200 YY: NOP DJNZ R6,YY DJNZ R7,YL RET END 硬件接口电路如下:哈哈

做单一灯的左移右移,八个发光二极管L0-L7分别接在单片机的P0.0-P0.7接口上,输出“0”时,发光二极管亮,开始时P0.0→P0.1→P0.2→P0.3→┅→P0.7→P0.6→┅→P0.0亮,重复循环。/ ORG 0000H LJMP

求个51单片机 汇编语言设计的LED跑马灯的程序

DJNZ R0, LOOP2 ;循环,点亮下一个灯 SJMP MAINLOOP ;循环,重新开始下一轮 如果你是管脚输出低LED才亮,只需将MOV A ,#00 和SETB C改为MOV A, #0FFH和CLR C即可。方案2:位寻址区00做标志,为0从左到右,

|P1口接8个发光二极管共阳 include unsigned char i;unsigned char temp;unsigned char a,b;void delay(void){ unsigned char m,n,s;for(m=20;m>0;m--)for(n=20;n>0;n--)for(s=248;s>0;

实验内容:用汇编指令对单片机I/O口进行编程,控制8个发光二极管的流水亮灭。/ /* 程序详细功能介绍:做单一灯的左移右移,八个发光二极管L0-L7分别接在单片机的P0.0-P0.7接口上,输出“0”时,发光二极管亮,开始时

org 0000h jmp start org 0030h start:mov p0,#11111110b ; 此时第一个灯亮 call t10s mov p0,#11111101b ;此时第二个灯亮 call t10s mov p0,#11111011b call t10s mov p0,#11110111b call t10s m

LCALL YS ;按键延时 JB P0.6,LL ;按下停止键 则停止跑马;否则继续跑马 MOV A,#0FFH MOV P1,A SJMP MAIN ;转到程序开始处,等待开始键的按下 YS: MOV R7,#150 ;延时子程

试验成功的程序:ORG 0000H MOV 30H, #0 MOV 31H, #0 M_LOOP:MOV R2, #8 DISP1:CALL DL CALL SHIFT2 DJNZ R2, DISP1 MOV R2, #8 DISP2:CALL DL CALL SHIFT1 DJNZ R2, DISP2

{ P1=LEDA[i]; delay(); }

求个单片机c51汇编语言 跑马灯过程如下图

跑马灯 ,一直循环255次MOV R0,#0FFH MOV A,#0 JX1:RLC A MOV P1,A LCALL DELAY500MS DJNE R0,JX1 SETB C MOV R0,#8 MOV A,#0 JX:RLC A ;P1.0>>>P1.7依次亮1S MOV P1,A LCALL DELAY1S DJNE

设LED驱动端口为 P1,输出高电平为LED亮,则建立一个数组,如下图;数组赋值:char LEDA[23]={0x18,0x3c,};输出:for(i=0;i<23;i++){ P1=LEDA[i]; delay(); }

给个你参考 /* 实验目的:初步了解单片机I/O口的工作原理,进一步掌握51单片机的汇编指令。实验内容:用汇编指令对单片机I/O口进行编程,控制8个发光二极管的流水亮灭。/ /* 程序详细功能介绍:做单一灯的左移右移,八个

把灯的正极接电源正极 即vcc 负极分别接p0.0-p0.5 此时 给p0 送0灯就亮 1灯就不亮 程序已经过调试 可用 仿真如下:

|P1口接8个发光二极管共阳 include unsigned char i;unsigned char temp;unsigned char a,b;void delay(void){ unsigned char m,n,s;for(m=20;m>0;m--)for(n=20;n>0;n--)for(s=248;s>0;

SJMP LOOP1 DELAY:MOV R2,#60 DELAY1:MOV R3,#250 DJNZ R3,DJNZ R2,DELAY1 RET END 程序2:ORG 0000H LJMP MAIN ORG 0030H MAIN:MOV SP,#5FH JNB P2.0,LOOP1 ;JNB P2.1,LOOP2 ;SJMP MAIN LOOP1

用51单片机(汇编语言写)写一个跑马灯程序??知道的帮个忙写写。

程序1: ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV SP,#5FH LOOP: MOV A,P2 MOV B,A MOV P0,A MOV P1,#0FFH LOOP1: LCALL DELAY MOV C,P1.7 MOV A,P0 RLC A MOV P0,A MOV A,P1 RLC A MOV P1,A MOV A,P2 CJNE A,B,LOOP SJMP LOOP1 DELAY: MOV R2,#60 DELAY1: MOV R3,#250 DJNZ R3,$ DJNZ R2,DELAY1 RET END 程序2: ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV SP,#5FH JNB P2.0,LOOP1 ; JNB P2.1,LOOP2 ; SJMP MAIN LOOP1: MOV P0,#0FEH MOV P1,#0FFH LOOP11: MOV C,P1.7 MOV A,P0 RLC A MOV P0,A MOV A,P1 RLC A MOV P1,A JNB P2.1,LOOP2 SJMP LOOP11 LOOP2: MOV P0,#0FCH MOV P1,#0FFH LOOP21: MOV C,P1.7 MOV A,P0 RLC A MOV P0,A MOV A,P1 RLC A MOV P1,A JNB P2.0,LOOP1 SJMP LOOP21 DELAY: MOV R2,#60 DELAY1: MOV R3,#250 DJNZ R3,$ DJNZ R2,DELAY1 RET END
给个你参考 ******* /* 实验目的:初步了解单片机I/O口的工作原理,进一步掌握51单片机的汇编指令。 * 实验内容:用汇编指令对单片机I/O口进行编程,控制8个发光二极管的流水亮灭。 */ /* 程序详细功能介绍: *做单一灯的左移右移,八个发光二极管L0-L7分别接在单片机的P0.0-P0.7接口上, *输出“0”时,发光二极管亮,开始时P0.0→P0.1→P0.2→P0.3→┅→P0.7→P0.6→┅→P0.0亮,重复循环。 */ ORG 0000H LJMP START ORG 0030H START: MOV R2,#8 ;左移次数 MOV A,#0FEH ;A的初始值,即 P0.0的L0 点亮 SETB C LOOP: MOV P0,A LCALL DELAY RLC A ;左移流水灯(带进位的左移),即亮点向P0口的高位移动 DJNZ R2,LOOP MOV R2,#8 ;右移次数 LOOP1: RRC A ;右移流水灯 MOV P0,A LCALL DELAY DJNZ R2,LOOP1 LJMP START DELAY: MOV R5,#10 ;延时子程序,改变R5,R6,R7 的值,可以改变延时的时间,从而改变流水灯移动速度 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET END
给个你参考 ******* /* 实验目的:初步了解单片机I/O口的工作原理,进一步掌握51单片机的汇编指令。 * 实验内容:用汇编指令对单片机I/O口进行编程,控制8个发光二极管的流水亮灭。 */ /* 程序详细功能介绍: *做单一灯的左移右移,八个发光二极管L0-L7分别接在单片机的P0.0-P0.7接口上, *输出“0”时,发光二极管亮,开始时P0.0→P0.1→P0.2→P0.3→┅→P0.7→P0.6→┅→P0.0亮,重复循环。 */ ORG 0000H LJMP START ORG 0030H START: MOV R2,#8 ;左移次数 MOV A,#0FEH ;A的初始值,即 P0.0的L0 点亮 SETB C LOOP: MOV P0,A LCALL DELAY RLC A ;左移流水灯(带进位的左移),即亮点向P0口的高位移动 DJNZ R2,LOOP MOV R2,#8 ;右移次数 LOOP1: RRC A ;右移流水灯 MOV P0,A LCALL DELAY DJNZ R2,LOOP1 LJMP START DELAY: MOV R5,#10 ;延时子程序,改变R5,R6,R7 的值,可以改变延时的时间,从而改变流水灯移动速度 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET END
查询方式: ORG 0000H AJMP MAIN MAIN: MOV P1,#01H MOV R0,#8 MOV A,P1 XU: RL A MOV P1,A ACALL DELAY DJNZ R0,XU AJMP MAIN DELAY: MOV R0,#0FFH ONE:MOV R1,#0FFH TWO:MOV R2,#02H THE:DJNZ R2,THE DJNZ R1,TWO DJNZ R0,ONE(将近1S) RET END 中断方式: org 0000h ;程序从0000开始运行 jmp init;跳到主程序 init: mov ie,#10000001b ;中断使能 mov ip,#00000001b ;中断优先 mov tcon,#0000000b ;中断为电平触发 main: ;主程序循环点亮 mov p1,#00h ;全亮 lcall delay ;延时一段时间 mov a,#0feh ;每次只亮一个灯。 loop: mov p1,a ;输出到p1 lcall delay ; 延时 rl a ;循环左移。 ajmp loop ; 跳转main继续循环 delay: mov r5,#20 ;延时子程序1闪烁灯调用 d1:mov r6,#20 d2: mov r7,#250 djnz r7,$ djnz r6,d2 djnz r5,d1(时间此处可自行设置)
查询方式: ORG 0000H AJMP MAIN MAIN: MOV P1,#01H MOV R0,#8 MOV A,P1 XU: RL A MOV P1,A ACALL DELAY DJNZ R0,XU AJMP MAIN DELAY: MOV R0,#0FFH ONE:MOV R1,#0FFH TWO:MOV R2,#02H THE:DJNZ R2,THE DJNZ R1,TWO DJNZ R0,ONE(将近1S) RET END 中断方式: org 0000h ;程序从0000开始运行 jmp init;跳到主程序 init: mov ie,#10000001b ;中断使能 mov ip,#00000001b ;中断优先 mov tcon,#0000000b ;中断为电平触发 main: ;主程序循环点亮 mov p1,#00h ;全亮 lcall delay ;延时一段时间 mov a,#0feh ;每次只亮一个灯。 loop: mov p1,a ;输出到p1 lcall delay ; 延时 rl a ;循环左移。 ajmp loop ; 跳转main继续循环 delay: mov r5,#20 ;延时子程序1闪烁灯调用 d1:mov r6,#20 d2: mov r7,#250 djnz r7,$ djnz r6,d2 djnz r5,d1(时间此处可自行设置)
关于五一单片机,16位LED灯跑马灯汇编语言程序可以和你共同分享
|P1口接8个发光二极管共阳 #include unsigned char i; unsigned char temp; unsigned char a,b; void delay(void) { unsigned char m,n,s; for(m=20;m>0;m--) for(n=20;n>0;n--) for(s=248;s>0;s--); } void main(void) { while(1) { temp=0xfe; P1=temp; delay(); for(i=1;i<8;i++) { a=temp<<i; b=temp>>(8-i); P1=a|b; delay(); } for(i=1;i<8;i++) { a=temp>>i; b=temp<<(8-i); P1=a|b; delay(); } } } 扩展资料: Proteus 自从有了单片机也就有了开发系统,随着单片机的发展开发系统也在不断发展。 keil是一种先进的单片机集成开发系统。它代表着汇编语言单片机开发系统的最新发展,首创多项便利技术,将开发的编程/仿真/调试/写入/加密等所有过程一气呵成,中间不须任何编译或汇编。 参考资料来源:百度百科-51单片机
答疑解难 跑马灯程序 ORG 0000H LJMP MAIN ORG 0100H MAIN: JB P0.7,MAIN ;等待开始键按下 LCALL YS ;按键延时 JB P0.7,MAIN MOV A,#7FH ;是开始键按下 则跑马灯开始运行 LL: MOV P1,A LCALL YS ;显示延时 RR A ;循环右移一位 JB P0.6, LL ;没有按下停止键 则继续跑马 LCALL YS ;按键延时 JB P0.6,LL ;按下停止键 则停止跑马;否则继续跑马 MOV A,#0FFH MOV P1,A SJMP MAIN ;转到程序开始处,等待开始键的按下 YS: MOV R7,#150 ;延时子程序 YL: MOV R6,#200 YY: NOP DJNZ R6,YY DJNZ R7,YL RET END 硬件接口电路如下: 哈哈 还满意吗 就请给俺选择(满意选项)吧
|P1口接8个发光二极管共阳 #include unsigned char i; unsigned char temp; unsigned char a,b; void delay(void) { unsigned char m,n,s; for(m=20;m>0;m--) for(n=20;n>0;n--) for(s=248;s>0;s--); } void main(void) { while(1) { temp=0xfe; P1=temp; delay(); for(i=1;i<8;i++) { a=temp<<i; b=temp>>(8-i); P1=a|b; delay(); } for(i=1;i<8;i++) { a=temp>>i; b=temp<<(8-i); P1=a|b; delay(); } } } 扩展资料: Proteus 自从有了单片机也就有了开发系统,随着单片机的发展开发系统也在不断发展。 keil是一种先进的单片机集成开发系统。它代表着汇编语言单片机开发系统的最新发展,首创多项便利技术,将开发的编程/仿真/调试/写入/加密等所有过程一气呵成,中间不须任何编译或汇编。 参考资料来源:百度百科-51单片机
答疑解难 跑马灯程序 ORG 0000H LJMP MAIN ORG 0100H MAIN: JB P0.7,MAIN ;等待开始键按下 LCALL YS ;按键延时 JB P0.7,MAIN MOV A,#7FH ;是开始键按下 则跑马灯开始运行 LL: MOV P1,A LCALL YS ;显示延时 RR A ;循环右移一位 JB P0.6, LL ;没有按下停止键 则继续跑马 LCALL YS ;按键延时 JB P0.6,LL ;按下停止键 则停止跑马;否则继续跑马 MOV A,#0FFH MOV P1,A SJMP MAIN ;转到程序开始处,等待开始键的按下 YS: MOV R7,#150 ;延时子程序 YL: MOV R6,#200 YY: NOP DJNZ R6,YY DJNZ R7,YL RET END 硬件接口电路如下: 哈哈 还满意吗 就请给俺选择(满意选项)吧