请单片机高手进来帮一下忙,谢谢了,急需,用89C51单片机语言编写跑马灯程序
用89C51单片机语言编写程序,1.用P1口8个灯实现跑马灯,2.从左到右依次亮1秒,38个灯同时亮一秒4偶数个灯亮一秒5奇数灯闪烁2次.就是这个条件....
用89C51单片机语言编写程序,1.用P1口8个灯实现跑马灯,2.从左到右依次亮1秒,38个灯同时亮一秒4偶数个灯亮一秒5奇数灯闪烁2次.就是这个条件.
展开
展开全部
以12MHz晶振为例
ORG 000H
AJMP START
START:
SETB C ;跑马灯,一直循环255次...
MOV R0,#0FFH
MOV A,#0
JX1:RLC A
MOV P1,A
LCALL DELAY500MS
DJNE R0,JX1
SETB C
MOV R0,#8
MOV A,#0
JX:RLC A ;P1.0>>>P1.7依次亮1S
MOV P1,A
LCALL DELAY1S
DJNE R0,JX
;灯全亮,1S
MOV P1,#0FFH
LCALL DELAY1S
MOV P1,#0
MOV P1,#01010101B ;偶数灯亮1S
LCALL DELAY1S
MOV P1,#0
MOV P1,#10101010B ;奇数灯闪2次
LCALL DELAY500MS
MOV P1,#0
LCALL DELAY500MS
MOV P1,#10101010B
LCALL DELAY500MS
MOV P1,#0
AJMP $
DEALY500MS:
MOV R7,#4
D1S1:MOV R6,#250
D1S:MOV R5,#250
DJNZ R5,$
DJNZ R6,D1S
DJNZ R7,D1S1
RET
DELAY1S:
MOV R7,#8
D1S1:MOV R6,#250
D1S:MOV R5,#250
DJNZ R5,$
DJNZ R6,D1S
DJNZ R7,D1S1
RET
差不多应该是这样的..试试看吧...:)
ORG 000H
AJMP START
START:
SETB C ;跑马灯,一直循环255次...
MOV R0,#0FFH
MOV A,#0
JX1:RLC A
MOV P1,A
LCALL DELAY500MS
DJNE R0,JX1
SETB C
MOV R0,#8
MOV A,#0
JX:RLC A ;P1.0>>>P1.7依次亮1S
MOV P1,A
LCALL DELAY1S
DJNE R0,JX
;灯全亮,1S
MOV P1,#0FFH
LCALL DELAY1S
MOV P1,#0
MOV P1,#01010101B ;偶数灯亮1S
LCALL DELAY1S
MOV P1,#0
MOV P1,#10101010B ;奇数灯闪2次
LCALL DELAY500MS
MOV P1,#0
LCALL DELAY500MS
MOV P1,#10101010B
LCALL DELAY500MS
MOV P1,#0
AJMP $
DEALY500MS:
MOV R7,#4
D1S1:MOV R6,#250
D1S:MOV R5,#250
DJNZ R5,$
DJNZ R6,D1S
DJNZ R7,D1S1
RET
DELAY1S:
MOV R7,#8
D1S1:MOV R6,#250
D1S:MOV R5,#250
DJNZ R5,$
DJNZ R6,D1S
DJNZ R7,D1S1
RET
差不多应该是这样的..试试看吧...:)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询