📄 短信ss1-16.asm
字号:
CLR P3.5
SETB P3.5
LCALL DL10MS
LCALL YZ100
CLR P3.5
SETB P3.5
LCALL DL10MS
LCALL SAONE
DJNZ R6,YZ1
RET
NOP
YZ100:
MOV 3CH,3FH
MOV 3BH,3EH
MOV 3AH,3DH
MOV 39H,45H
MOV 38H,44H
MOV 37H,43H
MOV R3, 32H; 右拉垂直行数
CLR 0D1H
LCALL YZ101
MOV R1, 70H
CJNE R1, #00H, YZG
RET
YZG: MOV 3CH,42H
MOV 3BH,41H
MOV 3AH,40H
MOV 39H,48H
MOV 38H,47H
MOV 37H,46H
MOV R3, 32H; 右拉垂直行数
SETB 0D1H
LCALL YZ101
RET
YZ101:
MOV P1, 3CH
MOV DPH, 3BH
MOV DPL, 3AH
MOVX A, @DPTR
MOV 51H,A
MOV A,3AH
ADD A,33H;
MOV 3AH,A
MOV A,3BH
ADDC A,#00H
MOV 3BH,A
MOV A,3CH
ADDC A,#00H
MOV 3CH,A
YZ102:
MOV P1, 39H
MOV DPH, 38H
MOV DPL, 37H
MOV A,51H
MOVX @DPTR, A
MOV A,37H
ADD A,69H;
MOV 37H,A
MOV A,38H
ADDC A,#00H
MOV 38H,A
MOV R1, 70H
CJNE R1, #01H, YZ103
JB 0D1H, YZ104
CJNE A, #40H, YZ103
MOV 38H, #00H
MOV 39H, #20H
YZ103: DJNZ R3, YZ101
RET
YZ104: CJNE A, #80H,YZ105
MOV 38H, #40H
MOV 39H, #20H
YZ105: DJNZ R3,YZ101
RET
JRSET:
MOV 3FH,36H
MOV 3EH,35H
MOV 3DH,34H
MOV R7,32H
MOV 40H, 34H
MOV 41H, 35H
MOV 42H, 36H
JRSET1: MOV A, 40H
ADD A, 33H
MOV 40H, A
MOV A, 41H
ADDC A, #00H
MOV 41H, A
MOV A, 42H
ADDC A, #00H
MOV 42H, A
DJNZ R7, JRSET1 ; 42H41H40H绿色数据行首地址
NOP
MOV 45H, #18H;红目地址高8位
MOV 44H, #00H;中8位
MOV 43H, 65H;低8位
MOV 48H, #18H;绿目地址高8位
MOV 47H, #40H;中8位
MOV 46H, 65H;低8位
RET
SYR:
LCALL JRSET
MOV R7,32H ; 上移动行数
DEC R7
MOV 74H, 32H ; 消隐行
DEC 74H
MOV 75H, #01H ; 显示行
SYR101: LCALL SYR102
CLR P3.5
SETB P3.5
LCALL DL10MS;延迟
LCALL SYR102
CLR P3.5
SETB P3.5
LCALL DL10MS;延迟
; LCALL SADD; 源,目行地址加1
DEC 74H
INC 75H
DJNZ R7, SYR101
RET
NOP
SYR102:
MOV 3CH,3FH
MOV 3BH,3EH
MOV 3AH,3DH
MOV 39H,45H
MOV 38H,44H
MOV 37H,43H
MOV 31H, 44H
MOV 30H, 43H
MOV R2, 33H;屏宽字节
MOV R3, 74H;
MOV R4, 75H
CLR 0D1H
LCALL SYR103
MOV R1, 70H
CJNE R1, #00H, SYR102G
RET
SYR102G: MOV 3CH, 42H; 源绿色
MOV 3BH, 41H
MOV 3AH, 40H
MOV 39H, 48H;目绿色首地址8高位
MOV 38H, 47H;中8位
MOV 37H, 46H;低8位
MOV 31H, 47H
MOV 30H, 46H
MOV R2, 33H;屏宽字节
MOV R3, 74H;
MOV R4, 75H
SETB 0D1H
LCALL SYR103
RET
SYR103:
MOV A, #00H
MOV P1, 39H
MOV DPH, 38H
MOV DPL, 37H
MOVX @DPTR, A
INC DPTR
MOV 38H, DPH
MOV 37H, DPL
DJNZ R2, SYR103
MOV R2, 33H
LCALL HADD
DJNZ R3, SYR103
MOV R3, 74H
SYR104:
MOV P1, 3CH
MOV DPH, 3BH
MOV DPL, 3AH
MOVX A, @DPTR
INC DPTR
MOV 3BH, DPH
MOV 3AH, DPL
MOV R0, DPH
CJNE R0, #00H, SYR105
MOV R0, DPL
CJNE R0, #00H, SYR105
INC 3CH
SYR105:
MOV P1, 39H
MOV DPH, 38H
MOV DPL, 37H
MOVX @DPTR, A
INC DPTR
MOV 38H, DPH
MOV 37H, DPL
DJNZ R2, SYR104
MOV R2, 33H
LCALL HADD
DJNZ R4, SYR104
MOV R4, 75H
RET
;/////////////////////////
SY:
LCALL JRSET
MOV R7, 32H; 上移行数
SY101: LCALL SY102
CLR P3.5
SETB P3.5
LCALL DL10MS;延迟
LCALL SY102
CLR P3.5
SETB P3.5
LCALL DL10MS;延迟
LCALL SADD
DJNZ R7, SY101
RET
NOP
SY102:
MOV 3CH, #18H; 连续上移第二行 红色
MOV 3BH, #00H;
MOV A, 65H
ADD A, 69H
MOV 3AH, A;
MOV 1EH, 3BH
MOV 1DH, 3AH
MOV 39H, #18H; 连续上移第一行 红色
MOV 38H, #00H;
MOV 37H, 65H;
MOV 31H, 38H
MOV 30H, 37H
MOV R2, 33H;屏宽字节
MOV R3, 32H;
DEC R3
CLR 0D1H
LCALL SY105; 一幕内容全部向上移动一行
MOV 45H, 3FH; 红色源指针
MOV 44H, 3EH;
MOV 43H, 3DH;
LCALL SY103; 新数据写到最后一行
MOV R1, 70H
CJNE R1, #00H, SY102G
RET
SY102G: MOV 3CH, #18H; 连续上移第二行 绿色
MOV 3BH, #40H
MOV A, 65H
ADD A, 69H
MOV 3AH, A
MOV 1EH, 3BH
MOV 1DH, 3AH;
MOV 39H, #18H; 连续上移第一行 绿色
MOV 38H, #40H;
MOV 37H, 65H
MOV 31H, 38H
MOV 30H, 37H
MOV R2, 33H;屏宽字节
MOV R3, 32H;
DEC R3
SETB 0D1H
LCALL SY105;
MOV 45H, 42H;
MOV 44H, 41H;
MOV 43H, 40H;
LCALL SY103
RET
SY103:
MOV P1, 45H
MOV DPH, 44H
MOV DPL, 43H
MOVX A, @DPTR;
INC DPTR
MOV 44H, DPH;
MOV 43H, DPL
MOV R0, DPH
CJNE R0, #00H, SY104
MOV R0, DPL
CJNE R0, #00H, SY104
INC 45H
SY104: MOV P1, 39H; 目
MOV DPH, 38H
MOV DPL, 37H
MOVX @DPTR, A
INC DPTR
MOV 38H, DPH
MOV 37H, DPL
DJNZ R2, SY103
MOV R2, 33H
RET
;;;;;;;;;;;;;;
SY105:
MOV P1, 3CH; 读 第二行
MOV DPH, 3BH
MOV DPL, 3AH
MOVX A, @DPTR
INC DPTR
MOV 3BH, DPH;
MOV 3AH, DPL
SY106:
MOV P1, 39H; 写第一行
MOV DPH, 38H
MOV DPL, 37H
MOVX @DPTR, A
INC DPTR
MOV 38H, DPH
MOV 37H, DPL
DJNZ R2, SY105
MOV R2, 33H
LCALL HADD;
LCALL SY107
DJNZ R3, SY105
RET
SY107:
MOV A, 1DH; 第二行指针加一行
ADD A, 69H
MOV 1DH, A
MOV A, 1EH
ADDC A, #00H
MOV 1EH, A
MOV R1, 70H
CJNE R1, #01H, SY108
RET
JB 0D1H, SY109
CJNE A, #40H, SY108
MOV 1EH, #00H
MOV 3CH, #20H
SY108: MOV 3BH, 1EH
MOV 3AH, 1DH
RET
SY109: CJNE A, #80H, SY110
MOV 1EH, #40H
MOV 3CH, #20H
SY110: MOV 3BH, 1EH
MOV 3AH, 1DH
RET
;//////////////////////
SYC:
MOV R7, 32H; 上移行数
SYC101: LCALL SYC102
CLR P3.5
SETB P3.5
LCALL DL10MS;延迟
LCALL SYC102
CLR P3.5
SETB P3.5
LCALL DL10MS;延迟
DJNZ R7, SYC101
RET
NOP
SYC102:
MOV 3CH, #18H; 连续上移第二行 红色
MOV 3BH, #00H;
MOV A, 65H
ADD A, 69H
MOV 3AH, A;
MOV 1EH, 3BH
MOV 1DH, 3AH
MOV 39H, #18H; 连续上移第一行 红色
MOV 38H, #00H;
MOV 37H, 65H;
MOV 31H, 38H
MOV 30H, 37H
MOV R2, 33H;屏宽字节
MOV R3, 32H;
DEC R3
CLR 0D1H
LCALL SY105; 一幕内容全部向上移动一行
LCALL SYC103; 00写到最后一行
MOV R1, 70H
CJNE R1, #00H,SYC102G
RET
SYC102G: MOV 3CH, #18H; 连续上移第二行 绿色
MOV 3BH, #40H
MOV A, 65H
ADD A, 69H
MOV 3AH, A
MOV 1EH, 3BH
MOV 1DH, 3AH;
MOV 39H, #18H; 连续上移第一行 绿色
MOV 38H, #40H;
MOV 37H, 65H
MOV 31H, 38H
MOV 30H, 37H
MOV R2, 33H;屏宽字节
MOV R3, 32H;
DEC R3
SETB 0D1H
LCALL SY105;
LCALL SYC103
RET
SYC103:
MOV A, #00H;
SYC104: MOV P1, 39H; 目
MOV DPH, 38H
MOV DPL, 37H
MOVX @DPTR, A
INC DPTR
MOV 38H, DPH
MOV 37H, DPL
DJNZ R2, SYC103
MOV R2, 33H
RET
;/////////////////////
ZY:
LCALL JRSET
MOV R7, 33H; 左移字节
ZY100: LCALL ZYDATA; 红色绿色数据加载到: 80H-->
MOV R6, #08H;
ZY101: LCALL ZY102
CLR P3.5
SETB P3.5
LCALL DL10MS;延迟
LCALL ZY102
CLR P3.5
SETB P3.5
LCALL DL10MS;延迟
MOV R0, #80H
MOV A, 32H
MOV R1, 70H
CJNE R1, #01, ZY1010G
RL A
ZY1010G: MOV R4, A
ZY1010: MOV A, @R0
CLR C
RLC A
MOV @R0, A
INC R0
DJNZ R4, ZY1010
DJNZ R6, ZY101
MOV R6, #08H
LCALL SAONE ; 红 绿源指针加一
DJNZ R7, ZY100
RET
NOP
ZY102:
MOV R0, #80H
MOV 39H, #18H; 红色
MOV 38H, #00;
MOV 37H, 69H
DEC 37H
MOV 31H, 38H
MOV 30H, 37H
MOV R2, 33H;屏宽字节
MOV R3, 32H;
CLR 0D1H
LCALL ZY105; 一幕内容全部向左移动一列
MOV R1, 70H
CJNE R1, #00H, ZY102G
RET
ZY102G: MOV 39H, #18H; 绿色
MOV 38H, #40H;
MOV 37H, 69H
DEC 37H
MOV 31H, 38H
MOV 30H, 37H
MOV R2, 33H;屏宽字节
MOV R3, 32H;
SETB 0D1H
LCALL ZY105;
RET
;;;;;;;;;;;;;;
ZY105: MOV A, @R0
RLC A
MOV 0F0H, C
ZY106:
MOV P1, 39H; 写第一行
MOV DPH, 38H
MOV DPL, 37H
MOVX A, @DPTR
MOV C, 0F0H
RLC A
MOV 0F0H, C
MOVX @DPTR, A
DEC 37H
MOV A, 37H
CJNE A, #0FFH, ZY1060
DEC 38H
ZY1060: DJNZ R2, ZY106
MOV R2, 33H
INC R0
LCALL HADD
DJNZ R3, ZY105
RET
ZYDATA:
MOV R0, #80H
MOV 45H, 3FH; 红色
MOV 44H, 3EH
MOV 43H, 3DH
LCALL ZYDATA1
MOV R1, 70H
CJNE R1, #00H, ZYDATAG
RET
ZYDATAG: MOV 45H, 42H; 绿色
MOV 44H, 41H
MOV 43H, 40H
LCALL ZYDATA1
RET
ZYDATA1:
MOV R3, 32H
ZYDATA2: MOV P1, 45H
MOV DPH, 44H
MOV DPL, 43H
MOVX A, @DPTR
MOV @R0, A
MOV A, 43H
ADD A, 33H
MOV 43H, A
MOV A, 44H
ADDC A, #00H
MOV 44H, A
MOV A, 45H
ADDC A, #00H
MOV 45H, A
INC R0
DJNZ R3, ZYDATA2
RET
;/////////////////////
ZYC:
MOV R7, 33H; 左移字节
MOV R6, #08H;
ZYC101: LCALL ZYC102
CLR P3.5
SETB P3.5
LCALL DL10MS;延迟
LCALL ZYC102
CLR P3.5
SETB P3.5
LCALL DL10MS;延迟
DJNZ R6, ZYC101
MOV R6, #08H
DJNZ R7, ZYC101
RET
NOP
ZYC102:
MOV 39H, #18H; 红色
MOV 38H, #00;
MOV 37H, 69H
DEC 37H
MOV 31H, 38H
MOV 30H, 37H
MOV R2, 33H;屏宽字节
MOV R3, 32H;
CLR 0D1H
LCALL ZYC105; 一幕内容全部向左移动一列
MOV R1, 70H
CJNE R1, #00H, ZYC102G
RET
ZYC102G: MOV 39H, #18H; 绿色
MOV 38H, #40H;
MOV 37H, 69H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -