编程:使用单片机P1口控制8个LED。显示方式:自上而下逐个点亮,再自下而上逐个点亮,如此循环

编程:使用单片机P1口控制8个LED。显示方式:自上而下逐个点亮,再自下而上逐个点亮,如此循环
要单片机的汇编语言 不要各种C
给你个简单点的
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN: MOV P1,#01111111B ;P1口低电平 对应灯亮 点亮P1.7对应的LED
LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的知蔽亮灭情况
MOV P1,#10111111B
LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情况
MOV P1,#11011111B
LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情况
MOV P1,#11101111B
LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情况
MOV P1,#11110111B
LCALL DLY_500MS ;延时500ms 可以清纯罩晰看到每个LED的亮灭情况
MOV P1,#11111011B
LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情况
MOV P1,#11111101B
LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情况
MOV P1,#11111110B;点亮P1.0对应LED
LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情况
MOV P1,#11111110B
LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情况
MOV P1,#11111101B
LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情况
MOV P1,#11111011B
LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情况
MOV P1,#11110111B
LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情况
MOV P1,#11101111B
LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情况
MOV P1,#11011111B
LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情况
MOV P1,#10111111B
LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情搭裤州况
MOV P1,#01111111B
LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情况
SJMP MAIN
;延时250ms子程序
DLY_250MS:MOV R5,#5
DLY1: MOV R6,#100
DLY0: MOV R7,#250
DLY: DJNZ R7,DLY
DJNZ R6,DLY0
DJNZ R5,DLY1
RET
;延时500ms子程序
DLY_500MS:MOV R4,#2
DLY2: LCALL DLY_250MS
DJNZ R4,DLY2
RET
END
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN: MOV R1,#8
MOV A,#0FFH
MOV P1,A
ACALL DLY
MOV A,#0FEH
LED1: MOV P1,A
ACALL DLY
RL A
DJNZ R1,LED1
MOV R1,#8
MOV A,#0FFH
MOV P1,A
ACALL DLY
MOV A,#7FH
LED2: MOV P1,A
ACALL DLY
RR A
DJNZ R1,LED2
AJMP MAIN

DLY: MOV R7,#250
MOV R6,#200
DJNZ R6,$
DJNZ R7,$-4
RET

END
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN:MOV A,#01H
ZX:MOV P1,A
RL A
LCALL DLY_500MS
CNDE A,#80H,ZX

YX: MOV P1,A
RR A
LCALL DLY_500MS
CNDE A,#01H
DLY_500MS:MOV R4,#2
DLY2:LCALL DLY_250MS
DJNZ R4,DLY2
RET
END
呃,为什么不要C,现在C是主流,想往高端发展,汇编绝对不行的。
晕 头一次看到 要汇编的