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

📄 lcd1.bak

📁 使用C51单片机
💻 BAK
📖 第 1 页 / 共 3 页
字号:
             LJMP KEYCHK0

READDW:      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

KEYCLR:      CJNE A,#02H,KEYDEL    ;清屏
             LCALL CLEARSCR
             CLR F_PAGE
             ;SETB EA

RET_KEY:     LJMP RET_TTM0

KEYDEL:      CJNE A,#01H,RET_KEY     ;删除
             JNB F_PAGE,DELRET
             NOP
             MOV A,38H
             CJNE A,#0,DELDATA
DELRET:      LCALL CLEARSCR
             LJMP RET_TTM0
DELDATA:     MOV 41H,#00
             MOV 42H,#00H
             MOV MTD, #41H
             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


             MOV R5,39H
             LCALL DEC_MUL2
             MOV A,R6

             ADD A,MRD          ;得出该帧地址
             MOV R0,A

             MOV R1,#0F2H      ;保存空白的空间
             MOV A,@R0
             MOV @R1,A
             INC R1
             INC R0
             MOV A,@R0
             MOV @R1,A
             DEC R0

             MOV A,38H
             SUBB A,39H
             MOV R2,A
             LCALL LP_PLACE

             ;写入所有帧地址
             MOV R0,#0AEH
             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 41H,#00
             MOV 42H,#00H
             MOV MTD, #41H
             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


             ;调整EEPROM
             MOV MTD,#41H
             MOV MRD,#0B0H
             MOV R5,MTD
             MOV 41H,#00
             MOV 42H,#40H
             MOV SLA,#SLAW0
             MOV NUMBYT,#2
             LCALL WRNBYT
             MOV SLA,#SLAR0
             MOV NUMBYT,#42H
             MOV R5,MRD
             LCALL RDNBYT

             DEC 38H
             MOV R0,#0E8H
             MOV @R0,38H

             MOV R0,#0B0H
             MOV A,@R0
             MOV R5,A      ;空白空间地址
             LCALL MUL2
             MOV A,R6
             INC A
             ADD A,#0B0H

             MOV R0,A
             MOV R1,#0F2H
             MOV A,@R1
             MOV @R0,A
             INC R0
             INC R1
             MOV A,@R1
             MOV @R0,A

             MOV R0,#0B0H
             INC @R0

             MOV MTD, #0AEH
             MOV R5,MTD
             MOV R0,#0AEH
             MOV @R0,#0
             INC R0
             MOV @R0,#40H
             MOV SLA,#SLAW0
             MOV NUMBYT,#42H
             LCALL RSTDOG
             LCALL WRNBYT


             ;显示记录
             INC 38H
             MOV A,38H
	     DEC 38H
             CJNE A,39H,TONEWREC
             DEC 39H

TONEWREC:    MOV A,39H
             CJNE A,#0,NEWREC1
             LCALL CLEARSCR
             LJMP RET_TTM0
NEWREC1:     MOV R5,39H
             LCALL DEC_MUL2
             MOV 40H,#40H       ;首字符
             MOV 41H,#00
             MOV 42H,R6

             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,#42  ;#82H
             LCALL RDNBYT

             LCALL CLEARSCR
             NOP
             NOP
             LCALL WRITEDATA
             NOP

             ;SETB EA

RET_TTM0:    SETB EA
             POP 29H
             MOV R0,29H
             POP 29H
             MOV R1,29H
             POP PSW
             POP ACC
             RETI
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$


;取得按键状态
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
KEYSTATE:    MOV A,P0
             SWAP A
             CPL A
             ANL A,#0FH
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

;延时10 ms
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
DELAY10:     LCALL RSTDOG

MOV          R7,#100
D1:          MOV R6,#90
             DJNZ R6,$
             DJNZ R7,D1
             RET

;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

;启动 IIC总线
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

STA:         SETB VSDA
             ;NOP
             SETB VSCL
             NOP
             NOP
             NOP
             NOP
             CLR VSDA
             NOP
             NOP
             NOP
             NOP
             CLR VSCL
             RET
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

;停止IIC数据总线传送
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

STOP:        CLR VSDA
             ;NOP
             ;NOP
             SETB VSCL
             NOP
             NOP
             NOP
             NOP
             SETB VSDA
             NOP
             NOP
             NOP
             NOP
             NOP
             CLR VSDA
             NOP
             NOP
             CLR VSCL
             RET
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

;发送应答位
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

MACK:        CLR VSDA
             ;NOP
             SETB VSCL
             NOP
             NOP
             NOP
             NOP
             CLR VSCL
             NOP
             NOP
             SETB VSDA
             RET
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

;发送非应答位
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

MNACK:       LCALL RSTDOG
             SETB VSDA
             NOP
             NOP
             SETB VSCL
             NOP
             NOP
             NOP
             NOP
             CLR VSCL
             NOP
             NOP
             CLR VSDA
             RET
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

;应答位检查
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

CACK:        LCALL RSTDOG
             SETB VSDA
	     NOP
	     NOP

             SETB VSCL
	     NOP
	     NOP
             CLR  F0
             MOV C,VSDA
             JNC CEND            ;C=0转
             SETB F0
CEND:        NOP
	     CLR VSCL
             NOP
	     RET
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

;向VSDA线上发送一个数据字节
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

WRBYT:       LCALL RSTDOG
             MOV R0,#08H
WLP:         RLC A
             JC WR1
             AJMP WR0
WLP1:        DJNZ R0,WLP
             RET
WR1:         SETB VSDA
             NOP
             NOP
             NOP
             NOP
             SETB VSCL
             NOP
             NOP
             NOP
             NOP
             NOP
             NOP
             CLR VSCL
             NOP
             NOP
             CLR VSDA
             AJMP WLP1
WR0:         CLR VSDA
             NOP
             NOP
             NOP
             NOP
             SETB VSCL
             NOP
             NOP
             NOP
             NOP
             NOP
             NOP
             CLR VSCL
             AJMP WLP1
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

;从VSDA线上读取一个字节数据
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

RDBYT:       MOV R0,#08H
RLP:         ;LCALL RSTDOG
             SETB VSDA
             NOP
             NOP
             NOP
             NOP
             NOP
             NOP
             SETB VSCL
             MOV C,VSDA
             MOV A,R2
             RLC A
             MOV R2,A
             CLR VSCL
             DJNZ R0,RLP
             RET
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

;虚拟IIC总线发送N个字节数据
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

WRNBYT:      LCALL RSTDOG
             MOV R3,NUMBYT    ;虚拟IIC总线发送N个字节数据
             LCALL STA
             MOV A,SLA
             LCALL WRBYT
             LCALL CACK
             JB F0,WRNBYT
             MOV A,R5
             MOV R1,A
WRDA:        MOV A,@R1
             LCALL WRBYT
             LCALL CACK
             JB F0,WRNBYT
             INC R1
             DJNZ R3,WRDA
             LCALL STOP

             LCALL DELAY10

             RET
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

;模拟IIC总线接收N个字节数据
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

RDNBYT:      LCALL RSTDOG
             MOV R3,NUMBYT    ;模拟IIC总线接收N个字节数据
             LCALL STA
             MOV A,SLA
             LCALL WRBYT
             LCALL CACK
             JB F0,RDNBYT
RDN:         MOV A,R5
             MOV R1,A
RDN1:        LCALL RDBYT
             MOV @R1,A
             DJNZ R3,ACK
             LCALL MNACK
             LCALL STOP

             LCALL DELAY10

             RET

ACK:         LCALL MACK
             INC R1
             SJMP RDN1

;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

;看门狗复位
;################################
RSTDOG:      NOP
             NOP
             NOP
             CLR FDOG
             NOP
             NOP
             NOP
             NOP
             NOP
             NOP
             SETB FDOG
             RET
;################################

;清屏
;@@@@@@@@@@@@@@@@@@@@@@@@@@
CLEARSCR:    MOV A,#0F4H
             LCALL SENDCMD
             RET
;@@@@@@@@@@@@@@@@@@@@@@@@@@

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -