单片机闪烁灯

来源:百度知道 编辑:UC知道 时间:2024/05/18 06:43:01
刚学单片机,请问此程序能让p1.1和p1.3灯持续亮,p1.2和p1.4闪烁吗?若有错,请指点,最好有详细一些的注释,谢谢!
ORG 00H
START:CLR P1.2
CLR P1.4
LCALL DELAY
CLR P1.1
CLR P1.3
DELAY:MOV R5,#20
D1:MOV R6,#20
D2:MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
END

肯定不会。
下面是修改好并通过测试的程序

ORG 0000H
LJMP START
ORG 0040H

;;;;下面假设你高电平亮;;;
START:
CLR P1.2
CLR P1.4
LCALL DELAY
SETB P1.2
SETB P1.4
LCALL DELAY
AJMP START

DELAY:MOV R5,#20
D1:MOV R6,#20
D2:MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET

END

肯定不会的,有几个问题

低电平亮灯就用:CLR P1.4
闪烁就用取反: CPL P1.4

用下面这些的试试:

ORG 00H
START:
CLR P1.1
CLR P1.3
MAINLOOP:
CPL P1.2
CPL P1.4
LCALL DELAY
AJMP MAINLOOP

DELAY:MOV R5,#20
D1:MOV R6,#20
D2:MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
END

ORG 0000H
LJMP START
ORG 0040H

;;;;下面假设你高电平亮;;;
START:
SETB P1.1
SETB P1.3
SETB P1.2
SETB P1.4
LCALL DELAY
XUNHUAN:CPL P1.2
CPL P1.4
LCALL DELAY
SJMP XUNHUAN