单片机一道编程题

2024-11-22 06:11:05
推荐回答(2个)
回答(1):

ORG 0000H
AJMP START
START: MOV P1, #0EFH ;EFH=11101111B,相当于将P1.4的灯点亮
ACALL DELAY ;调用延时程序
MOV P1, #0DFH ;DFH=11011111B,相当于将P1.5的灯点亮
ACALL DELAY
MOV P1, #0BFH ;BFH=10111111B,相当于将P1.6的灯点亮
ACALL DELAY
MOV P1, #7FH ;7FH=01111111B,相当于将P1.7的灯点亮
ACALL DELAY
AJMP START ;返回到START处,构成循环
DELAY: MOV R3, #09H ;1s 延迟
DL3: ACALL DELAY1
DJNZ R3, DL3
RET
DELAY1: MOV R1, #0FFH ;130ms延迟 属于DELAY的子程序
MOV R2, #0FFH
DL2: DJNZ R2, DL1
DL1: DJNZ R2, DL1
DJNZ R1, DL2
RET
END

这种循环不提倡,不过在这里就简单了。
特别说明,电路图画的时候,是二极管正极接电源,负极接P1.4-P1.7,中间串上220欧姆的电阻。

回答(2):

哇好高深,宏编程。。