各位单片机达人帮个忙 用汇编语言做一个 发光二极管循环点亮的程序 要求 使八只发光二极管做循环点亮一次

2024-12-17 14:38:24
推荐回答(3个)
回答1:

ORG 00H
JMP MAIN
ORG 30H
MAIN: MOV A,#0FFH ;设置左移初值
CLR C ;C=0
MOV R2,#08H ;设置左移次数
LOOP: RLC A ;左移1位
MOV P1,A ;输出到P1
CALL DELAY ;延时
DJNZ R2,LOOP ;左移7次
MOV R2,#07H ;
LOOP1: RRC A ;右移1位
MOV P1,A ;输出到P1
CALL DELAY ;
DJNZ R2,LOOP1 ;右移7次
JMP MAIN
DELAY: MOV R3,#20 ;延时0.2s
D1: MOV R4,#20
D2: MOV R5,#248
DJNZ R5,$
DJNZ R4,D2
DJNZ R3,D1
RET
END

回答2:

发光二极管循环点亮

八只发光二极管左循环点亮一次、然后右循环点亮一次。

循环。

仿真试验成功。

回答3:

;
;
; LED单灯跑动

ORG 0000H
AJMP MAIN
ORG 0030H
MAIN:
MOV A,#0FEH
MOV R0,#9 ;循环九次,8个灯亮及1次灯全灭
START:
MOV P0,A ;输出到P0口连接的 LED灯上
SETB C ;置进位C
RLC A ;带进位左移
CALL DELAY ;延时一段时间
DJNZ R0,START ;反复循环
AJMP MAIN ;重新开始

;延时子程序
DELAY:
MOV R1,#15
D1: MOV R2,#100
D2: MOV R3,#100
DJNZ R3,$
DJNZ R2,D2
DJNZ R1,D1
RET

END
自己改改吧,不会的话,再说。