编程:使用单片机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追问

你来坑我的吧

追答

老兄坑你对我有好处吗,上面的程序是我直接打出来的,没有帮你编译,所以里面的逗号打成中文的了,所以你编译就有错误啊, 好吧你只要把所有逗号 换成英文的,就可以了, 我这个程序你要是看不懂 下面的你能看懂,我就服了你了 就向下面一样 把逗号全部换成英文的,编译就能通过了,另外延时程序里面的逗号 不用换 ,那是我提前编译通过的,希望能帮到你,有什么不懂得可以问我
MAIN: MOV P1 , #01111111B ;P1口低电平 对应灯亮 点亮P1.7对应的LED
LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情况
MOV P1 , #10111111B

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-06
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追问

你这几个灯啊?

追答

8 个

第2个回答  2011-09-07
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
第3个回答  2011-09-06
呃,为什么不要C,现在C是主流,想往高端发展,汇编绝对不行的。追问

汇编是根

第4个回答  2011-09-06
晕 头一次看到 要汇编的
相似回答