8051汇编语言8只LED左右来回点亮

P1 和P5 先亮然后 P2 P6 ,接着P3 P7然后循环

第1个回答  2015-05-23
ORG 0000H
LCALL XHCS
MOV P1,#0FFH //初始化,灯全灭
MOV A,#77H
MOV P1,A //先亮P0,P4

XUNHUAN1: RL A //左循环
MOV P1,A //P1,P5亮
MOV A,P1

DJNZ 30H,XUNHUAN1 //循环三次
LCALL XHCS //为右循环次数赋值

XUNHUAN2:RR A //右循环
MOV P1,A //P6,P2亮
MOV A,P1

DJNZ 30H,XUNHUAN2 //循环三次

SJMP XUNHUAN1 //重复循环

XHCS: MOV 30H,#04H //循环次数赋值子程序
RET
END追问

我记得老师说运算很快 中间不需要延迟吗 我是新手 刚学的 对了 灯要亮一秒

追答

需要延迟
延迟时间需要用到循环嵌套

追问

你可以给个QQ吗 好多好多问题 大神。。。

追答

这个已测试过,可以满足要求

忘了还有手机端了

本回答被提问者和网友采纳
第2个回答  2015-05-24
;如下即可:

ORG 0000H
MOV P1, #11011101B ;P1和P5先亮
CALL DL
MOV P1, #10111011B ;然后 P2 P6
CALL DL
MOV P1, #01110111B ;接着P3 P7
CALL DL
SJMP 0000H ;然后循环

DL: MOV R5, #2
DJNZ R7, $
DJNZ R6, $ - 2
DJNZ R5, $ - 4
RET
END
相似回答