⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd1.bak

📁 使用C51单片机
💻 BAK
📖 第 1 页 / 共 3 页
字号:
             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 + -