📄 短信ss1-16.asm
字号:
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ZD
ORG 0023H
LJMP LA1A00
; ORG 002BH
; LJMP T2ZD
NOP
ORG 0030H
MAIN:
MOV R0,#20H
DDL: LCALL DL5MS
DJNZ R0, DDL
MOV SP, #1FH
MOV IE, #92H
MOV IP, #02H
MOV TMOD, #21H
MOV TH1, #0F3H; 24MHZ 9600波特率
MOV TL1, #0F3H;
MOV PCON, #80H;
; MOV TH1, #0FBH; 18.432MHZ 9600波特率
;MOV TL1, #0FBH
MOV SCON, #0F0H
SETB TR1
;MOV RCAP2H, #0E0H ;T2 初值
;MOV RCAP2L, #00H;
MOV TH0, #0C8H
MOV TL0, #00H
SETB TR0
MOV 0A6H, #1EH ; 启动WDT
MOV 0A6H, #0E1H
MOV 71H, #200
; 12C887 FORMAT
MOV P1,#10H
MOV DPTR,#000DH
MOVX A,@DPTR
MOV DPTR,#000AH
MOV A,#32
MOVX @DPTR,A
INC DPTR
MOV A,#02H
MOVX @DPTR,A
LCALL READ
LCALL COD
NOP
MAIN00: MOV 36H, #00H
MOV 35H, #01H
MOV 34H, #00H
MOV 66H,#01H; 分机号
MOV 69H, #80H; FPGA 最大宽度
MOV 67H,#80H; FPGA 固定传送97字节
; 29F040-2 RESET
MOV P1, #08H ;
MOV A, #0F0H
MOVX @DPTR, A
; 29F040-1 RESET
MOV P1, #00H ;
MOV A, #0F0H
MOVX @DPTR, A
MOV DPTR, #0000H
MOVX A, @DPTR; 总屏数
MOV 7BH, A
MOV 7CH, A
;SJMP $
CJNE A,#00H,MAIN01
LCALL LJTC
LJMP MAIN00
MAIN01: INC DPTR
MOVX A, @DPTR;屏幕类型
MOV 70H, A
INC DPTR
MOVX A,@DPTR
MOV 33H, A ;屏宽字节
MOV A,67H ; FPGA 固定传送字节
CLR C
SUBB A,33H
MOV 65H,A ;FPGA-RAM 起始存储位置
;居中位置
MOV A, 33H
CLR C
JB P3.3, MAIN02
SUBB A,#28; 32X32点阵
SJMP MAIN03
MAIN02: SUBB A,#14; 16X16点阵
MAIN03: RR A
ADD A, 65H
MOV 68H,A; 时间显示 首行,首字节起始位置
INC DPTR
MOVX A, @DPTR; 屏高字数
MOV B,#10H
MUL AB
MOV 32H, A ; 屏高像素
MOV 6FH, #00H
MOV 6EH, #04H
MAIN1:
MOV P1,#00H
MOV DPH, 6FH
MOV DPL, 6EH
MOVX A, @DPTR
MOV 60H, A;?进入方式
INC DPTR
MOVX A,@DPTR;?进入速度
INC A
MOV 63H, A
INC DPTR
MOVX A, @DPTR; 停留方式
MOV 64H, A
INC DPTR
MOVX A,@DPTR;
MOV 61H, A;? 停留时间
INC DPTR
MOVX A,@DPTR;
MOV 62H,A; 退出方式
INC DPTR
MOVX A, @DPTR;?退出速度
INC DPTR
MOV 6FH, DPH
MOV 6EH, DPL
LCALL JR;进入方式
LCALL TLSJ;停留显示时间
LCALL TC ;退出方式
LCALL MADD;加一幕
DJNZ 7BH, MAIN1
LJMP MAIN
T0ZD:
MOV TH0, #0C8H
MOV TL0, #00H
PUSH ACC
PUSH PSW
MOV A, 71H
CJNE A, #00H, T0ZD1
POP PSW
POP ACC
RETI
T0ZD1: DEC 71H
MOV 0A6H, #1EH
MOV 0A6H, #0E1H
POP PSW
POP ACC
RETI
READ:
MOV P1,#10H
MOV DPTR,#000AH
MOVX A,@DPTR
JB ACC.7,READ
MOV R0,#90H
MOV R2,#03H
MOV DPTR,#0000H
READ1: MOVX A,@DPTR
MOV @R0,A
INC R0
INC DPTR
INC DPTR
DJNZ R2,READ1
MOV R2,#03H
MOV DPTR,#0007H
READ2: MOVX A,@DPTR
MOV @R0,A
INC R0
INC DPTR
DJNZ R2,READ2
MOV DPTR,#0032H ;世纪
MOVX A,@DPTR
MOV @R0,A
INC R0
MOV DPTR,#0006H
MOVX A,@DPTR
MOV @R0, A
RET
WRITE:
MOV R0,#90H
MOV P1,#10H
MOV DPTR,#0000H
MOV R2,#03H
WRITE1: MOV A,@R0
MOVX @DPTR,A
INC R0
INC DPTR
INC DPTR
DJNZ R2,WRITE1
MOV R2,#03H
MOV DPTR,#0007H
WRITE2: MOV A,@R0
MOVX @DPTR,A
INC R0
INC DPTR
DJNZ R2,WRITE2
MOV DPTR,#0032H
MOV A,@R0
MOVX @DPTR,A
INC R0
MOV DPTR, #0006H
MOV A, @R0
MOVX @DPTR, A
RET
COD:
MOV R0,#80H
MOV R1,#90H
MOV R2,#07H
COD1: MOV A,@R1
ANL A,#0FH
MOV @R0,A
INC R0
MOV A,@R1
SWAP A
ANL A,#0FH
MOV @R0,A
INC R0
INC R1
DJNZ R2,COD1
MOV A,@R1
MOV @R0,A
RET
TORNT: JB P3.4, TORNT1
LCALL READ
LCALL COD
LCALL DSPTIME
TORNT1: NOP
RET
JR:
MOV A,7CH
CJNE A,7BH,JR0
JB P3.3 , JR00
LCALL LJ
LCALL READ ;读时钟
LCALL COD
LCALL DSPDATA32
RET
JR00: JB P3.2, JR0
LCALL LJ
LCALL READ ;读时钟
LCALL COD
LCALL DSPDATA16
RET
JR0: MOV A, 60H
CJNE A, #00H, JR1
JR01: LCALL LJ
LCALL TORNT
RET
JR1:
CJNE A, #01H, JR2
LCALL XL
LCALL TORNT
RET
JR2:
CJNE A, #02H, JR3
LCALL YL
LCALL TORNT
RET
JR3:
CJNE A, #04H, JR4
LCALL JXL
LCALL TORNT
RET
JR4:
CJNE A, #06H, JR5
LCALL JYL
LCALL TORNT
RET
JR5:
CJNE A, #03H, JR6
LCALL SYR
LCALL LJ
LCALL TORNT
RET
JR6:
CJNE A, #05H, JR7
LCALL YZ
LCALL TORNT
RET
JR7:
CJNE A, #07H, JR8
LCALL SY
RET
JR8: CJNE A, #08H, JR9
MOV A, 32H
CLR C
SUBB A, #65
JNC JR01
LCALL ZY
RET
JR9: CJNE A, #09H, JR10
LCALL BRCA
LCALL TORNT
RET
JR10: CJNE A, #0AH, JR01
LCALL XYD
LCALL TORNT
RET
TC:
MOV A,62H
CJNE A,#00H,TC1
LJMP LJTC
TC1: CJNE A,#01H,TC2
LJMP XB
TC2: CJNE A,#02H,TC3
LJMP YB
TC3: CJNE A,#04,TC4
LJMP LJXY
TC4: CJNE A,#05H,TC5
LJMP SYC
TC5: CJNE A,#06H,TC6
LJMP ZYC
TC6: LJMP LJXY
LJTC:
RET
LJXY:
LCALL LJXY1
CLR P3.5
SETB P3.5
LCALL DL10MS
LCALL LJXY1
CLR P3.5
SETB P3.5
LCALL DL10MS
RET
LJXY1:
MOV P1,#18H
MOV DPTR, #0000H
MOV R2,69H
MOV R3,#80H
LJXY2: MOV A,#00H
LJXY3: MOVX @DPTR,A
INC DPTR
DJNZ R2,LJXY3
MOV R2,69H
DJNZ R3,LJXY3
MOV R3,#80H
MOV DPTR,#4000H
LJXY4: MOVX @DPTR,A
INC DPTR
DJNZ R2,LJXY4
MOV R2,69H
DJNZ R3,LJXY4
MOV R3, #80H
;下一块控制板
MOV P1,#20H
MOV DPTR, #0000H
MOV R2,69H
MOV R3,#80H
MOV A,#00H
LJXY5: MOVX @DPTR,A
INC DPTR
DJNZ R2,LJXY5
MOV R2,69H
DJNZ R3,LJXY5
MOV R3,#80H
MOV DPTR,#4000H
LJXY6: MOVX @DPTR,A
INC DPTR
DJNZ R2,LJXY6
MOV R2,69H
DJNZ R3,LJXY6
RET
NOP
NOP
LJ:
LCALL LJ100
CLR P3.5
SETB P3.5
LCALL DL10MS
LCALL LJ100
CLR P3.5
SETB P3.5
LCALL DL10MS
RET
LJ100:
MOV 3CH, 36H;源地址高8位
MOV 3BH, 35H;中8位
MOV 3AH, 34H;低8位
MOV 39H, #18H;目地址高8位
MOV 38H, #00H;中8位
MOV 37H, 65H;低8位
MOV 31H, #00H;目(pld)行首地址中8位
MOV 30H, 65H;低8位
MOV R2, 33H;屏宽字节
MOV R3, 32H;屏高像素
LJ101:
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, LJ102
MOV R0, DPL
CJNE R0, #00H, LJ102
INC 3CH
LJ102:
MOV P1, 39H
MOV DPH, 38H
MOV DPL, 37H
MOVX @DPTR, A
INC DPTR
MOV 38H, DPH
MOV 37H, DPL
DJNZ R2, LJ101
MOV R2, 33H
CLR 0D1H ;d1h=0 第一 块 控制板
LCALL HADD; 指向下行首地址
DJNZ R3, LJ101
MOV R3, 32H
MOV R1, 70H
CJNE R1, #00H, LJG
RET
LJG: MOV 39H, #18H;目绿色首地址高位
MOV 38H, #40H;中8位
MOV 37H, 65H;低8位
MOV 31H, #40H;行首地址中8位
MOV 30H, 65H;低8位
LJ103:
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, LJ104
MOV R0, DPL
CJNE R0, #00H, LJ104
INC 3CH
LJ104:
MOV P1, 39H
MOV DPH, 38H
MOV DPL, 37H
MOVX @DPTR, A
INC DPTR
MOV 38H, DPH
MOV 37H, DPL
DJNZ R2, LJ103
MOV R2, 33H
SETB 0D1H
LCALL HADD
DJNZ R3, LJ103
RET
HADD:
MOV A, 30H;目行指针加一行
ADD A, 69H
MOV 30H, A
MOV A, 31H
ADDC A, #00H
MOV 31H, A
MOV R1, 70H;
CJNE R1, #01H, HADD1
JB 0D1H, HADD2
CJNE A, #40H, HADD1
MOV 31H, #00H
MOV 39H, #20H
HADD1: MOV 38H, 31H
MOV 37H, 30H
RET
HADD2: CJNE A, #80H, HADD3
MOV 31H, #40H
MOV 39H, #20H
HADD3: MOV 38H, 31H
MOV 37H, 30H
RET
XL:
LCALL JRSET
MOV R7,32H
XL101: LCALL XL102
CLR P3.5
SETB P3.5
LCALL DL10MS;延迟
LCALL XL102
CLR P3.5
SETB P3.5
LCALL DL10MS;延迟
LCALL SADD; 源,目行地址加1
DJNZ R7,XL101
RET
NOP
XL102:
MOV 3CH,3FH
MOV 3BH,3EH
MOV 3AH,3DH
MOV 39H,45H
MOV 38H,44H
MOV 37H,43H
MOV R2, 33H;屏宽字节
MOV R3, #01H;下拉行数
XL103:
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, XL104
MOV R0, DPL
CJNE R0, #00H, XL104
INC 3CH
XL104:
MOV P1, 39H
MOV DPH, 38H
MOV DPL, 37H
MOVX @DPTR, A
INC DPTR
MOV 38H, DPH
MOV 37H, DPL
DJNZ R2, XL103
MOV R2, 33H
DJNZ R3, XL103
MOV R3, #01H
MOV R1, 70H
CJNE R1, #00H,XLG
RET
XLG: MOV 3CH, 42H; 源绿色
MOV 3BH, 41H
MOV 3AH, 40H
MOV 39H, 48H;目绿色首地址8高位
MOV 38H, 47H;中8位
MOV 37H, 46H;低8位
MOV R2, 33H
MOV R3, #01H
XL105:
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, XL106
MOV R0, DPL
CJNE R0, #00H, XL106
INC 3CH
XL106:
MOV P1, 39H
MOV DPH, 38H
MOV DPL, 37H
MOVX @DPTR, A
INC DPTR
MOV 38H, DPH
MOV 37H, DPL
DJNZ R2, XL105
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -