汇编依次点亮小灯,然后再依次熄灭的程序
不知道怎么让他亮完8个然后再从八返回来1个灯亮,2个灯亮。。。直到第8个灯全部亮了,然后再从第8个灯开始灭。。...
不知道怎么让他亮完8个然后再从八返回来
1个灯亮,2个灯亮。。。直到第8个灯全部亮了,然后再从第8个灯开始灭。。 展开
1个灯亮,2个灯亮。。。直到第8个灯全部亮了,然后再从第8个灯开始灭。。 展开
1个回答
展开全部
3FMOV P2,#00H
MOV R3,#08H
MOV DPTR,#DAT:1
DV1:MOV A,R3
MOVC A,@A+DPTR
MOV P2,A
ACALL DELAY
DJNZ R3,DV1
MOV R3,#08H
MOV DPTR,#DAT2
DV2:MOV A,R3
MOVC A,@A+DPTR
MOV P2,A
ACALL DELAY
DJNZ R3,DV2
DAT1:DB 01H,03H,07H,0FH,1FH,3FH,7FH,0FFH
DAT2:DB 7FH,3FH,1FH,0FH,07H,03H,01H,00H
这是使用查表的方法,还有一种不太好理解但是程序段短了,就是用左移右移的方法
3FMOV P2,#00H
MOV R3,#08H
DV1:MOV A,#00H
SETB C
RLC A
MOV P2,A
ACALL DELAY
DJNZ R3,DV1
MOV R3,#08H
DV2:MOV A,#00H
CLR C
RRC A
MOV P2,A
ACALL DELAY
DJNZ R3,DV2
你自己多试试吧
MOV R3,#08H
MOV DPTR,#DAT:1
DV1:MOV A,R3
MOVC A,@A+DPTR
MOV P2,A
ACALL DELAY
DJNZ R3,DV1
MOV R3,#08H
MOV DPTR,#DAT2
DV2:MOV A,R3
MOVC A,@A+DPTR
MOV P2,A
ACALL DELAY
DJNZ R3,DV2
DAT1:DB 01H,03H,07H,0FH,1FH,3FH,7FH,0FFH
DAT2:DB 7FH,3FH,1FH,0FH,07H,03H,01H,00H
这是使用查表的方法,还有一种不太好理解但是程序段短了,就是用左移右移的方法
3FMOV P2,#00H
MOV R3,#08H
DV1:MOV A,#00H
SETB C
RLC A
MOV P2,A
ACALL DELAY
DJNZ R3,DV1
MOV R3,#08H
DV2:MOV A,#00H
CLR C
RRC A
MOV P2,A
ACALL DELAY
DJNZ R3,DV2
你自己多试试吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询