📄 lcd1.bak
字号:
MOV @R0,#0
INC R0
MOV @R0,#0
MOV MTD, #0AEH
MOV R5,MTD
MOV SLA,#SLAW0
MOV NUMBYT,#42H
LCALL RSTDOG
LCALL WRNBYT
;读出帧地址 tst
MOV 2EH,#00
MOV 2FH,#00H
MOV MTD, #2EH
MOV R5,MTD
MOV SLA,#SLAW0
MOV NUMBYT,#2
LCALL WRNBYT
MOV MRD,#0B0H
MOV R5,MRD
MOV SLA,#SLAR0 ;读帧地址
MOV NUMBYT,#40H
LCALL RDNBYT
LJMP SET_PLC
LOAD_BUF: MOV A,43H
DEC A
;MUL A,#02H
CLR CY
RLC A
MOV R0,#0F1H
MOV @R0,#0
INC R0
MOV @R0,A
INC R0
MOV @R0,41H
INC R0
MOV @R0,42H
MOV MTD, #0F1H
MOV R5,MTD
MOV SLA,#SLAW0
MOV NUMBYT,#04H
LCALL RSTDOG
LCALL WRNBYT
SET_PLC: MOV MTD, #041H
MOV R5,MTD
MOV SLA,#SLAW0
MOV NUMBYT,#42H ;82H
LCALL RSTDOG
LCALL WRNBYT
MOV 38H,43H
MOV 39H,43H
SETB F_PAGE
RET
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
;字节位置调整
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
LP_PLACE: LCALL RSTDOG
CJNE R2,#0, LP_PLACE1
AJMP RETURN_LP
LP_PLACE1: MOV A,R0
MOV R1,A
INC R1
INC R1
MOV A,@R1
MOV @R0,A
INC R0
INC R1
MOV A,@R1
MOV @R0,A
INC R0
INC R1
DJNZ R2,LP_PLACE
RETURN_LP: RET
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
;经纬度信息
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
WRBUF: MOV R0,#0A0H
MOV R2,#96D
MOV A,44H
CJNE A,#29H,RET_WRBUF
AJMP WR_DATA
RET_WRBUF: RET
WR_DATA: MOV @R0,#20H
INC R0
DJNZ R2,WR_DATA
MOV R0,#45H
MOV R1,#0A0H
MOV @R1,#0BEH ;经度
INC R1
MOV @R1,#0ADH
INC R1
MOV @R1,#0B6H
INC R1
MOV @R1,#0C8H
INC R1
MOV @R1,#58D
INC R1
INC R1
MOV R2,#03H
LCALL MOV_BY1
MOV @R1,#94D
INC R1
MOV R2,#07H
LCALL MOV_BY1
MOV @R1,#96D;#"`"
INC R1
MOV R1,#0A0H +20 ; 纬度
MOV @R1,#0CEH
INC R1
MOV @R1,#0B3H
INC R1
MOV @R1,#0B6H
INC R1
MOV @R1,#0C8H
INC R1
MOV @R1,#58D
INC R1
INC R1
MOV R2,#02H
LCALL MOV_BY1
MOV @R1,#94D
INC R1
MOV R2,#07H
LCALL MOV_BY1
MOV @R1,#96D;#"`"
INC R1
MOV R1,#0A0H +40 ;速度
MOV @R1,#0CBH
INC R1
MOV @R1,#0D9H
INC R1
MOV @R1,#0B6H
INC R1
MOV @R1,#0C8H
INC R1
MOV @R1,#58D
INC R1
INC R1
MOV R2,#05H
LCALL MOV_BY1
;MOV @R1,#41D
INC R1
INC R1
INC R1
MOV @R1,#107D
INC R1
MOV @R1,#109D
INC R1
MOV @R1,#47D
INC R1
MOV @R1,#104D ;小时
INC R1
;MOV @R1,#40D
;INC R1
MOV R1,#0A0H +60 ;方向
MOV @R1,#0B7H
INC R1
MOV @R1,#0BDH
INC R1
MOV @R1,#0CFH
INC R1
MOV @R1,#0F2H
INC R1
MOV @R1,#58D
INC R1
INC R1
MOV R2,#05H
LCALL MOV_BY1
MOV @R1,#94D
INC R1
INC R0
INC R0
INC R0
INC R0
INC R0
INC R0
MOV R1,#0A0H +80 ;时间
MOV @R1,#0CAH
INC R1
MOV @R1,#0B1H
INC R1
MOV @R1,#0BCH
INC R1
MOV @R1,#0E4H
INC R1
MOV @R1,#58D
INC R1
INC R1
MOV R2,#02H
LCALL MOV_BY1
MOV @R1,#58D
INC R1
MOV R2,#02H
LCALL MOV_BY1
MOV @R1,#58D
INC R1
MOV R2,#02H
LCALL MOV_BY1
MOV A,@R1
SUBB A,#0A0H
;MOV 44H,A
MOV 44H,#96D
MOV R1,#45H
MOV R0,#0A0H
MOV R2,44H
LCALL MOV_BY1
LCALL WRITEDATA
RET
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
;移位子程序
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
MOV_BY1: MOV A,@R0
MOV @R1,A
INC R0
INC R1
DJNZ R2,MOV_BY1
RET
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
;取得屏幕位置
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
NEXTSPACE: MOV A,R1
PUSH A
JB F_SHOWED,NOTFIRST
SETB F_SHOWED
MOV R0,#40H
CJNE @R0,#40H,SPACE_RET
LCALL CLEARSCR ;clear screen
SPACE_RET: JMP RETURN1
NOTFIRST: JB 07H,SPACEHANZI
MOV R1,ASCX
CJNE R1,#13H,NEXT1 ;不相等转移
MOV ASCX,#00H
ACALL GETHALF
INC HANZIY
ACALL MUL16 ;像素位置
JMP RETURN1
SPACEASC:
JMP RETURN1
SPACEHANZI: MOV R5,ASCX
CJNE R5,#14H,JW
AJMP SPCHANZI
JW: DEC HANZIX
SPCHANZI: MOV R1,HANZIX
CJNE R1,#09H,NEXT1 ;不相等转移
MOV ASCX,#00H
ACALL GETHALF
INC HANZIY
ACALL MUL16 ;像素位置
JMP RETURN1
;NEXT1: INC ASCX
; ACALL GETHALF
; JMP RETURN1
NEXT1: INC ASCX
INC ASCX
ACALL GETHALF
DEC ASCX
JMP RETURN1
RETURN1: POP A
MOV R1,A
RET
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
;除以2
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
GETHALF: PUSH A
CLR CY
MOV A,ASCX
RRC A
MOV HANZIX,A
POP A
RET
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
;乘以16
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
MUL16: PUSH A
CLR CY
MOV A,HANZIY
RLC A
RLC A
RLC A
RLC A
MOV ASCY,A
POP A
RET
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
;减1再乘2子程序 -- (x-1) * 2
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
DEC_MUL2: DEC R5
MOV A,R5
CLR CY
RLC A
MOV R6,A
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
;乘2子程序 --* 2
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
MUL2: MOV A,R5
CLR CY
RLC A
MOV R6,A
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
;发送命令和数据
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
SENDCMD: LCALL RSTDOG ;看门狗复位
JB FBUSY,SENDCMD ;确信模块空闲
MOV P2,A ;向总线送数
NOP
NOP
SETB FREQ ;向模块发请求
HE3: JNB FBUSY,HE3 ;等待摸块响应(显屏器内部响应,结束时自动把FBUSY设为1),然后清0并跳转
CLR FREQ ;撤消REQ请求信号,数据输入结束
RET ;返回
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
;对中断的操作
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
INTTM0: LCALL RSTDOG
PUSH ACC
PUSH PSW
MOV 29H,R1
PUSH 29H
MOV 29H,R0
PUSH 29H
LCALL KEYSTATE
MOV KEYCHKBUF,A ;保存按键状态
JZ KEYCHK0 ;A=0转
LCALL DELAY10 ;延时
LCALL KEYSTATE
CJNE A,KEYCHKBUF,KEYCHK0 ;两次不相等转
AJMP CHK0
KEYCHK0: LJMP RET_TTM0
;;ZZ按键检测
CHK0: CJNE A,#08H,CHK4 ;不相等转 ;(8,4,2,1--上翻,下翻,清屏,删除)
AJMP KEYUP
CHK4: LJMP KEYDW
KEYUP: LCALL RSTDOG ;上翻
NOP
JNB F_PAGE,SHOWMAX
MOV R0,#39H
CJNE @R0,#1,PREV1 ;到上一条
LJMP READMEM
PREV1: DEC @R0
;MOV R0,#39H
LJMP READMEM
SHOWMAX: SETB F_PAGE
;取出EEPROM已有的内容
MOV MTD,#41H
MOV MRD,#39H
MOV R5,MTD
MOV 41H,#0
MOV 42H,#78H
MOV SLA,#SLAW0
MOV NUMBYT,#2
LCALL WRNBYT
MOV SLA,#SLAR0
MOV NUMBYT,#1
MOV R5,MRD
LCALL RDNBYT ;读出帧地址
MOV R0,MRD
MOV 38H,@R0
READMEM: CJNE @R0,#0,READUP
LJMP KEYCHK0
READUP: DEC @R0 ;读记录地址
MOV A,@R0
CLR CY
RLC A
MOV 40H,#40H ;首字符
MOV 41H,#00
MOV 42H,A
INC @R0
MOV MTD, #41H
MOV R5,MTD
MOV SLA,#SLAW0
MOV NUMBYT,#2
LCALL WRNBYT
MOV MRD,#41H
MOV R5,MRD
MOV SLA,#SLAR0 ;读记录地址
MOV NUMBYT,#2
LCALL RDNBYT
MOV MTD, #41H
MOV R5,MTD
MOV SLA,#SLAW0
MOV NUMBYT,#2
LCALL WRNBYT
MOV MRD,#43H
MOV R5,MRD
MOV SLA,#SLAR0 ;读数据
MOV NUMBYT,#42H ;#82H
LCALL RDNBYT
LCALL CLEARSCR
NOP
NOP
LCALL WRITEDATA
NOP
;SETB EA
LJMP RET_TTM0
KEYDW: CJNE A,#04H,CHK2 ;下翻
AJMP KEYDW1
CHK2: LJMP KEYCLR
KEYDW1: JNB F_PAGE,SHOWMAX2
MOV R0,#39H
MOV A,@R0
CJNE A,38H,NXT1 ;到下一条
LJMP READMEM2
NXT1: INC @R0
LJMP READMEM2
SHOWMAX2: SETB F_PAGE
;取出EEPROM已有的内容
MOV MTD,#41H
MOV MRD,#39H
MOV R5,MTD
MOV 41H,#0
MOV 42H,#78H
MOV SLA,#SLAW0
MOV NUMBYT,#2
LCALL WRNBYT
MOV SLA,#SLAR0
MOV NUMBYT,#1
MOV R5,MRD
LCALL RDNBYT ;读出帧地址
MOV R0,MRD
MOV 38H,@R0
READMEM2: CJNE @R0,#0,READDW
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -