📄 短信ss1-16.asm
字号:
DEC 37H
MOV 31H, 38H
MOV 30H, 37H
MOV R2, 33H;屏宽字节
MOV R3, 32H;
SETB 0D1H
LCALL ZYC105;
RET
;;;;;;;;;;;;;;
ZYC105: CLR 0F0H
ZYC106:
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, ZYC1060
DEC 38H
ZYC1060: DJNZ R2, ZYC106
MOV R2, 33H
INC R0
LCALL HADD
DJNZ R3, ZYC105
RET
;///////////////////
XYD:
MOV R7, #08H
MOV R6, #80H
XYD10: LCALL BRCA100
CLR P3.5
SETB P3.5
LCALL DL10MS
LCALL BRCA100
CLR P3.5
SETB P3.5
LCALL DL10MS
MOV A, R6
RR A
MOV R6, A
DJNZ R7, XYD10
;
MOV R7, #08H
MOV R6, #55H
XYD20: LCALL BRCA100
CLR P3.5
SETB P3.5
LCALL DL10MS
LCALL BRCA100
CLR P3.5
SETB P3.5
LCALL DL10MS
MOV A, R6
SETB C
RLC A
MOV R6, A
DJNZ R7, XYD20
RET
;//////////////////
BRCA:
MOV R7, #08H
MOV R6, #80H
BRCA10: LCALL BRCA100
CLR P3.5
SETB P3.5
LCALL DL10MS
LCALL BRCA100
CLR P3.5
SETB P3.5
LCALL DL10MS
MOV A, R6
SETB C
RRC A
MOV R6, A
DJNZ R7, BRCA10
RET
BRCA100:
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;屏高像素
BRCA101:
MOV P1, 3CH
MOV DPH, 3BH
MOV DPL, 3AH
MOVX A, @DPTR
ANL A, R6
INC DPTR
MOV 3BH, DPH
MOV 3AH, DPL
MOV R0, DPH
CJNE R0, #00H, BRCA102
MOV R0, DPL
CJNE R0, #00H, BRCA102
INC 3CH
BRCA102:
MOV P1, 39H
MOV DPH, 38H
MOV DPL, 37H
MOVX @DPTR, A
INC DPTR
MOV 38H, DPH
MOV 37H, DPL
DJNZ R2, BRCA101
MOV R2, 33H
CLR 0D1H
LCALL HADD; 指向下行首地址
DJNZ R3, BRCA101
MOV R3, 32H
MOV R1, 70H
CJNE R1, #00H, B102G
RET
B102G: MOV 39H, #18H;目绿色首地址高位
MOV 38H, #40H;中8位
MOV 37H, 65H;低8位
MOV 31H, #40H;行首地址中8位
MOV 30H, 65H;低8位
BRCA103:
MOV P1, 3CH
MOV DPH, 3BH
MOV DPL, 3AH
MOVX A, @DPTR
ANL A, R6
INC DPTR
MOV 3BH, DPH
MOV 3AH, DPL
MOV R0, DPH
CJNE R0, #00H, BRCA104
MOV R0, DPL
CJNE R0, #00H, BRCA104
INC 3CH
BRCA104:
MOV P1, 39H
MOV DPH, 38H
MOV DPL, 37H
MOVX @DPTR, A
INC DPTR
MOV 38H, DPH
MOV 37H, DPL
DJNZ R2, BRCA103
MOV R2, 33H
SETB 0D1H
LCALL HADD
DJNZ R3, BRCA103
RET
;//////////////////////
TLSJ:
MOV A, 61H
CJNE A, #00H, TLSJ1
RET
TLSJ1:
CJNE A, #01H, TLSJ2
LJMP TLSJ1S
TLSJ2:
CJNE A, #02H, TLSJ3
LJMP TLSJ5S
TLSJ3:
CJNE A, #03H, TLSJ4
LJMP TLSJ10S
TLSJ4:
CJNE A, #04H, TLSJ5S
LJMP TLSJ30S
;;//////////////
TLSJ1S:
MOV 50H, #220
MOV A, 64H
CJNE A, #00H, L1S10
LJMP TLSJ1S1
L1S10: CJNE A, #01H, L1S11
LJMP FLASH
L1S11: CJNE A, #02H, TLSJ1S1
LJMP FLASH
TLSJ1S1:
MOV 50H, #220
TLSJ1S10: LCALL DL5MS
DJNZ 50H, TLSJ1S10
RET
FLASH:
LCALL LJXY
MOV 50H, #50
FLASH1: LCALL DL5MS
DJNZ 50H, FLASH1
LCALL LJ
MOV 50H, #20
FLASH2: LCALL DL5MS
DJNZ 50H, FLASH2
RET
;;///////////////////
TLSJ5S:
MOV 78H, #05H
TLSJ5S1:
LCALL TLSJ1S
DJNZ 78H, TLSJ5S1
RET
TLSJ10S:
MOV 78H, #0AH
TLSJ10S1:
LCALL TLSJ1S
DJNZ 78H, TLSJ10S1
RET
TLSJ30S:
MOV 78H, #30
TLSJ30S1:
LCALL TLSJ1S
DJNZ 78H, TLSJ30S1
RET
DL10MS:
MOV 51H, 63H;
MOV 6CH,#250
MOV 6DH, #06H
DL10MS1:
NOP
NOP
MOV 71H, #200
DJNZ 6CH,DL10MS1
MOV 6CH,#250
DJNZ 6DH,DL10MS1
MOV 6DH, #06H
DJNZ 51H, DL10MS1
RET
NOP
DL5MS:
MOV 6CH,#250
MOV 6DH, #08H
DL5MS1:
NOP
NOP
MOV 71H, #200
DJNZ 6CH,DL5MS1
MOV 6CH,#250
DJNZ 6DH,DL5MS1
RET
;//////////////红源,绿源加一行
SADD:
MOV A, 3DH;红源
ADD A, 33H
MOV 3DH, A
MOV A,3EH
ADDC A,#00H
MOV 3EH,A
MOV A,3FH
ADDC A,#00H
MOV 3FH,A
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
SADD1:
MOV A, 43H;目行指针加一行
ADD A, 69H
MOV 43H, A
MOV A,44H
ADDC A,#00H
MOV 44H,A
MOV R1, 70H
CJNE R1, #00H,SADD1G
RET
SADD1G: CJNE A, #40H, SADD2
MOV 44H, #00H
MOV 45H, #20H
SADD2:
MOV A, 46H;目行指针加一行
ADD A, 69H
MOV 46H, A
MOV A,47H
ADDC A,#00H
MOV 47H,A
CJNE A, #80H, SADD3
MOV 47H, #40H
MOV 48H, #20H
SADD3: RET
NOP
MADD:
MOV A, 33H;源数据指针36H35H34H加一屏
MOV B, 32H
MUL AB
MOV 40H, A
MOV A, 70H; 双色屏*2; 单色屏*1
JZ MADD1
MOV A, 40H
CLR C
RLC A
MOV 40H, A
MOV A, B
RLC A
MOV B, A
MADD1: MOV A, 40H
ADD A, 34H
MOV 34H, A
MOV A, B
ADDC A, 35H
MOV 35H, A
MOV A, 36H
ADDC A, #00H
MOV 36H, A
RET
NOP
NOP
NOP
NOP
TUNTIME:
CJNE A,#0A0H,LA000 ; A0H: 校时命令
MOV R0,#90H;
MOV R2,#08H
TUNTIME1:MOV TH0,#00H
MOV 40H,#30H
JNB RI,$
CLR RI
MOV 71H, #200
MOV A,SBUF
MOV @R0,A
INC R0
DJNZ R2, TUNTIME1; 接收秒,分,时,日,月, 年 ,世纪, 星期 8个字节数据
LCALL WRITE ; 写到DS12C887
LJMP DL1
NOP
NOP
LA000: LJMP GO
LA1A00: CLR RI;
PUSH ACC;
PUSH PSW;
SETB RS0;
MOV A, SBUF;
CJNE A, 66H,LA000; 比较分机号
CLR SM2
MOV SBUF,A
JNB TI,$
CLR TI
MOV 71H, #200
CLR RI
LA1B00:
JNB RI,$
MOV 71H, #200
CLR RI
MOV A,SBUF
CJNE A,#90H,TUNTIME; 90H: 擦除命令
MOV P1, #00H; 29F040-1
LCALL DCLR ;整片擦除
; LCALL DCLR1
CJNE A,#80H,LA000 ;擦除不成功返回
; MOV P1, #08H; 29F040-2
;LCALL DCLR1
; CJNE A,#80H,LA000
MOV A,#80H
MOV SBUF,A
JNB TI,$
CLR TI
MOV 71H, #200
MOV R0,#00H; 起始地址000000H
MOV R1,#00H
MOV R2,#00H
; SETB TR0
LA100: JNB RI,$
MOV 71H, #200
CLR RI
MOV A,SBUF
MOV R4,A
MOV 41H,A
LCALL SAVEONE; 保存总屏数
; MOV TH0,#00H
; MOV 40H,#30H
LA101: NOP
JNB RI,$
MOV 71H, #200
CLR RI
MOV A,SBUF
MOV R4,A
INC R0; 低8位地址加1
LCALL SAVEONE; 屏幕类型
; MOV TH0,#00H
; MOV 40H,#30H
LA102: JNB RI,$
MOV 71H, #200
CLR RI
MOV A,SBUF; 屏宽字节
MOV R4,A
INC R0
LCALL SAVEONE
; MOV TH0,#00H
; MOV 40H,#30H
LA103: JNB RI,$
MOV 71H, #200
CLR RI
MOV A,SBUF; 屏高像素
MOV R4,A
INC R0
LCALL SAVEONE
MOV R3,#06H; 方式头6字节/屏
MOV R5,41H; 总屏
NOP
LA200:
; MOV TH0,#00H
; MOV 40H,#30H
JNB RI,$
MOV 71H, #200
CLR RI
MOV A,SBUF;
MOV R4,A
MOV A,R0
ADD A,#01H
MOV R0,A
MOV A,R1
ADDC A,#00H
MOV R1,A
LCALL SAVEONE
DJNZ R3,LA200
MOV R3,#06H
DJNZ R5,LA200;
; MOV TH0,#00H
; MOV 40H,#30H
NOP
LA800: JNB RI, LA800
MOV 71H, #200
CLR RI
MOV A, SBUF
MOV 43H, A;数据字节数高8位/屏
; MOV TH0,#00H
;MOV 40H,#30H
LA900: JNB RI, LA900
MOV 71H, #200
CLR RI
MOV A, SBUF
MOV 42H, A;数据字节数抵8位/屏
NOP
MOV R0,#00H; 数据存放首地址000100H
MOV R1,#01H
MOV R2,#00H
MOV R5,41H; 总屏
LA901: MOV R6,42H; 字节数/屏(43H42H)
MOV R7,43H;
DEC R6
CJNE R6, #255, LA1000
DEC R7
LA1000: ; MOV TH0,#00H
;MOV 40H,#30H
JNB RI,$
MOV 71H, #200
CLR RI
MOV A, SBUF
MOV R4,A
LCALL SAVEONE
MOV A,R0 ;地址R2R1R0加1
ADD A,#01H
MOV R0,A
MOV A,R1
ADDC A,#00H
MOV R1,A
MOV A,R2
ADDC A,#00H
MOV R2,A
CJNE R6, #0, LA1A61
CJNE R7, #0, LA1A64
DJNZ R5,LA901
MOV A,#82H; 通信成功
MOV SBUF,A
JNB TI,$
MOV 71H, #200
CLR TI
NOP
DL1: SETB SM2
; CLR TR0
; CLR ET0
MOV DPTR,#0000
PUSH DPL
PUSH DPH
RETI
GO: LJMP DL1
NOP
NOP
LA1A61: DEC R6
SJMP LA1000
LA1A64: DEC R6
DEC R7
SJMP LA1000
NOP
DCLR:
MOV DPH, #05H ;芯片擦除
MOV DPL, #55H
MOV A, #0AAH
MOVX @DPTR, A
MOV DPH, #02H
MOV DPL, #0AAH
MOV A, #55H
MOVX @DPTR, A
MOV DPH, #05H
MOV DPL, #55H
MOV A, #80H
MOVX @DPTR, A
MOV DPH, #05H
MOV DPL, #55H
MOV A, #0AAH
MOVX @DPTR, A
MOV DPH, #02H
MOV DPL, #0AAH
MOV A, #55H
MOVX @DPTR, A
MOV DPH, #05H
MOV DPL, #55H
MOV A, #10H
MOVX @DPTR, A
L0D29H:
MOVX A, @DPTR
MOV C, ACC.7
JC L0D34H
MOV C, ACC.5
MOV 71H, #200
JNC L0D29H
LJMP L0D42H
L0D34H:
MOV A, #0F0H
MOVX @DPTR, A
MOV A, #80H; 擦除成功
RET
L0D42H:
MOV A, #0F0H
MOVX @DPTR, A
MOV A, #81H; 擦除失败
RET
DCLR1:
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, #80H
MOVX @DPTR, A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -