📄 短信ss1-16.asm
字号:
MOV DPH, #55H
MOV DPL, #55H
MOV A, #0AAH
MOVX @DPTR, A
MOV DPH, #2AH
MOV DPL, #0AAH
MOV A, #55H
MOVX @DPTR, A
MOV DPH, #55H
MOV DPL, #55H
MOV A, #10H
MOVX @DPTR, A
DCLR10:
MOVX A, @DPTR
MOV C, ACC.7
JC DCLR11
MOV C, ACC.5
MOV 71H, #200
JNC DCLR10
LJMP DCLR12
DCLR11:
MOV A, #0F0H
MOVX @DPTR, A
MOV A, #80H; 擦除成功
RET
DCLR12:
MOV A, #0F0H
MOVX @DPTR, A
MOV A, #81H; 擦除失败
RET
SAVEONE:
MOV A, R2
MOV P1,A;
MOV DPH, #55H
MOV DPL, #55H
MOV A, #0AAH
MOVX @DPTR, A
MOV DPH, #02H
MOV DPL, #0AAH
MOV A, #55H
MOVX @DPTR, A
MOV DPH, #55H
MOV DPL, #55H
MOV A, #0A0H
MOVX @DPTR, A
MOV DPH, R1
MOV DPL, R0
MOV A, R4
MOVX @DPTR, A
RET
SAVEONE1:
MOV A, R2
MOV P1,A;
MOV DPH, #55H
MOV DPL, #55H
MOV A, #0AAH
MOVX @DPTR, A
MOV DPH, #2AH
MOV DPL, #0AAH
MOV A, #55H
MOVX @DPTR, A
MOV DPH, #55H
MOV DPL, #55H
MOV A, #0A0H
MOVX @DPTR, A
MOV DPH, R1
MOV DPL, R0
MOV A, R4
MOVX @DPTR, A
RET
;SAVEONE:
; MOV P1,R2
; MOV DPH,R1
; MOV DPL,R0
; MOV A,R4
; MOVX @DPTR,A
; RET
TZD0: DJNZ 40H,TZD00
NOP
MOV DPTR,#TZD01
PUSH DPL
PUSH DPH
TZD00: RETI
TZD01: MOV DPTR,#0000H
PUSH DPL
PUSH DPH
RETI
NOP
DSPDATA16:
LCALL DSP1
CLR P3.5
SETB P3.5
LCALL DL10MS
LCALL DSP1
CLR P3.5
SETB P3.5
LCALL DL10MS
RET
DSPDATA32:
LCALL DZHZ1
CLR P3.5
SETB P3.5
LCALL DL10MS
LCALL DZHZ1
CLR P3.5
SETB P3.5
LCALL DL10MS
RET
;DSPL: JB P3.3, DSP1
; LJMP DZHZ1
DSP1:
MOV 6BH,#01H ; 8X16 点阵 每行1字节
MOV 6AH,#10H ;?16行
MOV 72H,68H ; 数字显示起始位置FPGA低8位地
MOV 73H,#00H ; 数字显示起始位置FPGA高8位地
NOP
MOV R4, 72H ;
MOV R7, 73H
MOV R0,#8DH ; ? 世纪十位单元
;加载数字
MOV R5,#04H ;?2003共4位数字
LCALL LJDATA2;? 加载XXXX年数字
LCALL ADINC2 ;
MOV R5,#02H;
LCALL LJDATA2; 加载XX月数字
LCALL ADINC2 ;
MOV R5,#02H
LCALL LJDATA2; 加载XX日数字
;字换行
LCALL AD7273 ; 73H72H+16行
MOV A,72H ; 右错位8个字节
ADD A,#03H
MOV 72H, A
MOV A, 73H
ADDC A, #00H
MOV 73H, A
MOV R4,72H
MOV R7,73H
MOV A, R4
ADD A, #05H
MOV R4, A
MOV A, R7
ADDC A,#00
MOV R7, A
MOV R5, #01H; 加载X星期1位数
MOV R0, #8EH;
LCALL LJDATA2;
;字换行
LCALL AD7273
MOV R4, 72H
MOV R7, 73H
MOV R5,#02;
MOV R0, #85H
LCALL LJDATA2; 加载XX时2位数字
LCALL ADINC2
MOV R5, #02;
LCALL LJDATA2; 加载XX分2位数字
;?加载汉字
MOV 6BH,#02H ; 16X16 点阵 每行2字节
MOV 6AH,#10H ;?16行
MOV A, 68H
ADD A,#04H
MOV 72H, A ; 汉字年显示起始位置FPGA低8位地
MOV 73H,#00H ; 汉字年显示起始位置FPGA高8位地
NOP
MOV R4, 72H
MOV R7, 73H
MOV DPTR,#tab1;汉字入口
MOV 3AH,DPL; 数据源
MOV 3BH,DPH
MOV R6,#03H ;?年月日 共3个汉字
DSP2: LCALL LJDATA20
LCALL ADINC2 ;
LCALL ADINC2 ;
DJNZ R6, DSP2
;字换行
LCALL AD7273
MOV R4, 72H
MOV R7, 73H
MOV R6,#02; 星期共2个汉字
DSP3: LCALL LJDATA20
LCALL ADINC2 ;
DJNZ R6, DSP3
;字换行
LCALL AD7273
MOV R4, 72H
MOV R7, 73H
INC R4
CJNE R4, #00, DSP30
INC R7
DSP30: MOV R6,#02 ; 时 分共2个汉字
DSP4: LCALL LJDATA20
LCALL ADINC2 ;
LCALL ADINC2 ;
DJNZ R6, DSP4
RET
DZHZ1:
MOV 6BH,#02H ; 16X32 点阵 每行1字节
MOV 6AH,#20H ; 32行
MOV 72H,68H ; 数字显示起始位置FPGA低8位地
MOV 73H,#00H ; 数字显示起始位置FPGA高8位地
NOP
MOV R4, 72H ;
MOV R7, 73H
MOV R0,#8DH ; 世纪十位单元
;加载数字
MOV R5,#04H ; 2003共4位数字
LCALL LJDATA3; 加载XXXX年数字
LCALL ADINC2 ;
LCALL ADINC2 ;
MOV R5,#02H;
LCALL LJDATA3; 加载XX月数字
LCALL ADINC2 ;
LCALL ADINC2 ;
MOV R5,#02H
LCALL LJDATA3; 加载XX日数字
;字换行
LCALL AD7273 ; 73H72H+16行
LCALL AD7273 ; 73H72H+16行
MOV A,72H ; 右错位6个字节
ADD A,#06H
MOV 72H, A
MOV A, 73H
ADDC A, #00H
MOV 73H, A
MOV R4,72H
MOV R7,73H
MOV A, R4
ADD A, #0AH; 右错位10个字节
MOV R4, A
MOV A, R7
ADDC A,#00
MOV R7, A
MOV R5, #01H; 加载X星期1位数
MOV R0, #8EH;
LCALL LJDATA3;
;字换行
LCALL AD7273
LCALL AD7273 ; 73H72H+16行
MOV R4, 72H
MOV R7, 73H
MOV R5,#02;
MOV R0, #85H
LCALL LJDATA3; 加载XX时2位数字
LCALL ADINC2
LCALL ADINC2
MOV R5, #02;
LCALL LJDATA3; 加载XX分2位数字
;加载汉字
MOV 6BH,#04H ; 32X32 点阵 每行4字节
MOV 6AH,#20H ; 32行
MOV A, 68H
ADD A,#08H
MOV 72H, A ; 汉字年显示起始位置FPGA低8位地
MOV 73H,#00H ; 汉字年显示起始位置FPGA高8位地
NOP
MOV R4, 72H
MOV R7, 73H
MOV DPTR,#tab4;汉字入口
MOV 3AH,DPL; 数据源
MOV 3BH,DPH
MOV R6,#03H ;?年月日 共3个汉字
DZHZ2: LCALL LJDATA20
LCALL ADINC2 ;
LCALL ADINC2 ;
LCALL ADINC2 ;
LCALL ADINC2 ;
DJNZ R6, DZHZ2
;字换行
LCALL AD7273
LCALL AD7273
MOV R4, 72H
MOV R7, 73H
MOV R6,#02; 星期共2个汉字
DZHZ3: LCALL LJDATA20
LCALL ADINC2 ;
LCALL ADINC2 ;
DJNZ R6, DZHZ3
;字换行
LCALL AD7273
LCALL AD7273
MOV R4, 72H
MOV R7, 73H
LCALL ADINC2
MOV R6,#02 ; 时 分共2个汉字
DZHZ4: LCALL LJDATA20
LCALL ADINC2 ;
LCALL ADINC2 ;
LCALL ADINC2 ;
LCALL ADINC2 ;
DJNZ R6, DZHZ4
RET
LJDATA2:
LCALL LJDATA100
DEC R0
LCALL ADINC1
DJNZ R5, LJDATA2
RET
LJDATA3:
LCALL LJDATA200
DEC R0
LCALL ADINC2
DJNZ R5, LJDATA3
RET
LJDATA200:
MOV DPTR, #tab3
MOV A,@R0
MOV B, #40H
MUL AB
ADD A,DPL
MOV 3AH,A; 源地址低8位
MOV A,DPH
ADDC A,B
MOV 3BH,A; 源地址高8位
LJMP LJDATA20
LJDATA100:
MOV DPTR,#tab
MOV A,@R0
MOV B,#10H;
MUL AB
ADD A,DPL
MOV 3AH,A; 源地址低8位
MOV A,DPH
ADDC A,B
MOV 3BH,A; 源地址高8位
LJDATA20:
MOV 39H, #18H; 目地址高8位
MOV 38H, R7 ; 中8位
MOV 37H, R4 ; 低8位
MOV 31H, R7; 目(pld)行首地址中8位
MOV 30H, R4;
MOV R2, 6BH;屏宽字节
MOV R3, 6AH;屏高像素
LJDATA101:
MOV DPL, 3AH
MOV DPH, 3BH
MOV A, #00H
MOVC A, @A+DPTR
INC DPTR
MOV 3BH, DPH
MOV 3AH, DPL
LJDATA102:
MOV P1, 39H
MOV DPH, 38H
MOV DPL, 37H
MOVX @DPTR, A
INC DPTR
MOV 38H, DPH
MOV 37H, DPL
DJNZ R2, LJDATA101
MOV R2, 6BH
LCALL HADD; 目指向下行首地址
DJNZ R3, LJDATA101
RET
ADINC1:
MOV A, R4
ADD A, #01
MOV R4, A
MOV A, R7
ADDC A, #00H
MOV R7, A
RET
ADINC2:
MOV A, R4
ADD A, #02
MOV R4, A
MOV A, R7
ADDC A, #00H
MOV R7, A
RET
AD7273:
MOV A, 69H
MOV B,#10H
MUL AB
ADD A,72H
MOV 72H,A
MOV A, B
ADDC A, 73H
MOV 73H,A
RET
DSPTIME:
LCALL DSP5
CLR P3.5
SETB P3.5
LCALL DL10MS
LCALL DSP5
CLR P3.5
SETB P3.5
LCALL DL10MS
RET
DSP5:
MOV 6BH,#01H ; 8X16 点阵 每行1字节
MOV 6AH,#10H ;?16行
MOV A, 67H
CLR C
SUBB A,#08H
MOV R4,A ; 数字时显示?起始位置FPGA低8位地
MOV R7,#00
MOV R0,#85H ; ? 时?十位单元
MOV R5,#02H ;?时? 分共2位数字
LCALL LJDATA2;?加载XX时2位数字
INC R4
INC R4
MOV R5, #02H
LCALL LJDATA2; 加载XX分2位数字
;?加载汉字
MOV 6BH,#02H
MOV A,67H
CLR C
SUBB A, #06H
MOV R4,A ;?FPGA低8位地址
MOV R7,#00H
MOV R6,#02H ;?? ? 共 2?个汉字
MOV DPTR,#tab2;汉字入口
MOV 3AH,DPL; 数据源
MOV 3BH,DPH
DSP6: LCALL LJDATA20
INC R4
INC R4
INC R4
INC R4
DJNZ R6, DSP6
RET
tab:
;0[8*16]横排
DB 00H, 00H, 00H, 00H, 18H, 24H, 42H, 42H
DB 42H, 42H, 42H, 42H, 42H, 24H, 18H, 00H
;1[8*16]横排
DB 00H, 00H, 00H, 00H, 10H, 70H, 10H, 10H
DB 10H, 10H, 10H, 10H, 10H, 10H, 7CH, 00H
;2[8*16]横排
DB 00H, 00H, 00H, 00H, 3CH, 42H, 42H, 42H
DB 04H, 04H, 08H, 10H, 20H, 42H, 7EH, 00H
;3[8*16]横排
DB 00H, 00H, 00H, 00H, 3CH, 42H, 42H, 04H
DB 18H, 04H, 02H, 02H, 42H, 44H, 38H, 00H
;4[8*16]横排
DB 00H, 00H, 00H, 00H, 04H, 0CH, 14H, 24H
DB 24H, 44H, 44H, 7FH, 04H, 04H, 1EH, 00H
;5[8*16]横排
DB 00H, 00H, 00H, 00H, 7EH, 40H, 40H, 40H
DB 58H, 64H, 02H, 02H, 42H, 44H, 38H, 00H
;6[8*16]横排
DB 00H, 00H, 00H, 00H, 1CH, 24H, 40H, 40H
DB 58H, 64H, 42H, 42H, 42H, 24H, 18H, 00H
;7[8*16]横排
DB 00H, 00H, 00H, 00H, 7EH, 44H, 44H, 08H
DB 08H, 10H, 10H, 10H, 10H, 10H, 10H, 00H
;8[8*16]横排
DB 00H, 00H, 00H, 00H, 3CH, 42H, 42H, 42H
DB 24H, 18H, 24H, 42H, 42H, 42H, 3CH, 00H
;9[8*16]横排
DB 00H, 00H, 00H, 00H, 18H, 24H, 42H, 42H
DB 42H, 26H, 1AH, 02H, 02H, 24H, 38H, 00H
tab1:
;年[16*16]横排
DB 08h, 00h, 08h, 08h, 1Fh, 0FCh, 11h, 00h
DB 21h, 00h, 41h, 10h, 1Fh, 0F8h, 11h, 00h
DB 11h, 00h, 11h, 04h, 0FFh, 0FEh, 01h, 00h
DB 01h, 00h, 01h, 00h, 01h, 00h, 01h, 00h
;月[16*16]横排
DB 00h, 10h, 0Fh, 0F8h, 08h, 10h, 08h, 10h
DB 08h, 10h, 0Fh, 0F0h, 08h, 10h, 08h, 10h
DB 08h, 10h, 0Fh, 0F0h, 08h, 10h, 08h, 10h
DB 10h, 10h, 10h, 10h, 20h, 50h, 40h, 20h
;日[16*16]横排
DB 00h, 10h, 1Fh, 0F8h, 10h, 10h, 10h, 10h
DB 10h, 10h, 10h, 10h, 10h, 10h, 1Fh, 0F0h
DB 10h, 10h, 10h, 10h, 10h, 10h, 10h, 10h
DB 10h, 10h, 1Fh, 0F0h, 10h, 10h, 00h, 00h
;星[16*16]横排
DB 00h, 08h, 3Fh, 0FCh, 20h, 08h, 3Fh, 0F8h
DB 20h, 08h, 3Fh, 0F8h, 01h, 00h, 21h, 08h
DB 3Fh, 0FCh, 21h, 00h, 41h, 10h, 0BFh, 0F8h
DB 01h, 00h, 01h, 04h, 0FFh, 0FEh, 00h, 00h
;期[16*16]横排
DB 22h, 04h, 22h, 7Eh, 22h, 44h, 7Fh, 44h
DB 22h, 44h, 3Eh, 7Ch, 22h, 44h, 3Eh, 44h
DB 22h, 44h, 22h, 7Ch, 0FFh, 0C4h, 00h, 44h
DB 24h, 44h, 22h, 84h, 41h, 14h, 82h, 08h
tab2:
;时[16*16]横排
DB 00h, 08h, 04h, 08h, 7Eh, 08h, 44h, 08h
DB 47h, 0FEh, 44h, 08h, 44h, 08h, 7Ch, 88h
DB 44h, 48h, 44h, 48h, 44h, 08h, 44h, 08h
DB 7Ch, 08h, 44h, 48h, 00h, 28h, 00h, 10h
;分[16*16]横排
DB 00h, 80h, 04h, 80h, 04h, 40h, 08h, 40h
DB 08h, 20h, 10h, 10h, 20h, 08h, 4Fh, 0EEh
DB 84h, 24h, 04h, 20h, 04h, 20h, 04h, 20h
DB 04h, 20h, 08h, 20h, 11h, 40h, 20h, 80h
tab3:
;0[16*32]
DB 00H, 00H, 00H, 00H
DB 00H, 00H, 00H, 00H
DB 00H, 00H, 00H, 00H
DB 03H, 0E0H, 06H, 30H
DB 0CH, 18H, 18H, 0CH
DB 18H, 0CH, 18H, 04H
DB 30H, 06H, 30H, 06H
DB 30H, 06H, 30H, 06H
DB 30H, 06H, 30H, 06H
DB 30H, 06H, 30H, 06H
DB 30H, 06H, 18H, 04H
DB 18H, 0CH, 18H, 0CH
DB 0CH, 18H, 06H, 30H
DB 03H, 0E0H, 00H, 00H
DB 00H, 00H, 00H, 00H
DB 00H, 00H, 00H, 00H
;1[16*32]
DB 00H, 00H, 00H, 00H
DB 00H, 00H, 00H, 00H
DB 00H, 00H, 00H, 80H
DB 01H, 80H, 1FH, 80H
DB 01H, 80H, 01H, 80H
DB 01H, 80H, 01H, 80H
DB 01H, 80H, 01H, 80H
DB 01H, 80H, 01H, 80H
DB 01H, 80H, 01H, 80H
DB 01H, 80H, 01H, 80
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -