📄 led广告_成功循环.asm
字号:
ORG 0000H
MOV R4,#08H ;一个字,八字节代码
MOV P2,#0A0H ;利用p2口第二功能
MOV R1,#00H
MOV A,#00H
MOVX @R1,A ;关显示
NEW_CODE:MOV 61H,#04H ;此程序有四个字
MOV DPTR,#DIS_CODE
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DIP: MOV 69H,#40H ;一个字停留的速度
RD_DISP:
MOV R3,#80H ;选通一行
MOV R2,#00H ;送出字码
RDISP1: MOV A,#00H ;;;;
MOVX @R1,A ;;;;关显示
MOV A,R3 ;;;;
ACALL SEND ;送出选通行代码
MOV A,R2 ;;;
MOVC A,@A+DPTR
MOVX @R1,A ;送出字码
ACALL DELAYT ;延时
INC R2
MOV A,R3
RR A
MOV R3,A
DJNZ R4,RDISP1 ;送完一个字代码吗?
MOV R4,#08H ;重新初始化r4
DJNZ 69H,RD_DISP ;速度系数没有循环完,继续
MOV R7,#08H ;指针dptr加8
DEC_CODE:INC DPTR ;指向下一个字代码
DJNZ R7,DEC_CODE ;四个字都循环了一遍了吗?
DJNZ 61H,DIP
MOV 61H,#02H
SJMP NEW_CODE
SEND: MOV PCON,#80H ;初始化串行口
MOV TMOD,#20H ;为方式0
MOV TH1,#98H
CLR ET1
SETB TR1
MOV SCON,#00H
CLR ES
MOV A,R3
MOV SBUF,A ;把选通行代码送出
W1: JNB TI,W1 ;等待数据送出
CLR TI ;数据送出后,中断标志清零
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DELAYT:MOV R7,#01H
DLY1: MOV R6,#0FFH
DLY2: DJNZ R6,DLY2
DJNZ R7,DLY1
RET
DIS_CODE: DB 10H,0FEH,92H,0FEH,92H,0FEH,11H,1FH
DIS_CODE1:DB 0FFH,0FFH,18H,18H,18H,18H,0FFH,0FFH
DIS_CODE2: DB 10H,0FEH,92H,0FEH,92H,0FEH,11H,1FH
DIS_CODE3: DB 3EH,04H,08H,0FFH,08H,04H,14H,08H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -