📄 biao.asm
字号:
CLR SCLI
DJNZ R7,WLPI
RET
WR1I: SETB SDAI
SETB SCLI
NOP
NOP
NOP
NOP
NOP
CLR SCLI
CLR SDAI
DJNZ R7,WLPI
RET
CACKI: SETB SDAI
SETB SCLI
NOP
NOP
NOP
MOV C,SDAI
MOV F0,C
CLR SCLI
NOP
NOP
NOP
RET
RDBI: MOV R7,#8
RLPI: SETB SDAI
SETB SCLI
MOV C,SDAI
MOV A,R6
RLC A
MOV R6,A
CLR SCLI
DJNZ R7,RLPI
RET
MACKI: CLR SDAI
SETB SCLI
NOP
NOP
NOP
NOP
NOP
CLR SCLI
SETB SDAI
RET
MNACKI: SETB SDAI
SETB SCLI
NOP
NOP
NOP
NOP
NOP
CLR SCLI
CLR SDAI
RET
;------------------------------------------------------------
;显示复位程序----------------
DIRRST: CLR A
MOV SEE09,A
MOV SEE08,A
MOV SEE07,A
MOV SEE06,A
MOV SEE05,A
MOV SEE04,A
MOV SEE03,A
MOV SEE02,A
MOV SEE01,A
MOV SEE00,A
MOV SEE17,A
MOV SEE16,A
MOV SEE15,A
MOV SEE14,A
MOV SEE13,A
MOV SEE12,A
MOV SEE11,A
MOV SEE10,A
LCALL LCDRESET ;执行液晶显示器复位程序
MOV A,#00H
LCALL LCDFILL
RET
;-------------------------------------------------------------------
;显示程序
DIR: MOV A,SEE
MOV B,#2
MUL AB
ADD A,SEE
MOV DPTR,#DIRR
JMP @A+DPTR
DIRR: LJMP DIR0
LJMP DIR1
LJMP DIR2
LJMP DIR3
LJMP DIR4
LJMP DIR5
LJMP DIR6
LJMP DIR7
LJMP DIR8
LJMP DIR9
LJMP DIR10
LJMP DIR11
LJMP DIR12
LJMP DIR13
DIR0: MOV DPTR,#STRING3
MOV XPOS,#20
MOV YPOS,#00H
MOV R1,#5
LCALL PUTSTR
MOV DPTR,#STRING6
MOV XPOS,#12
MOV YPOS,#02H
MOV R1,#7
LCALL PUTSTR
RET
DIR1: MOV DPTR,#STRING4
MOV XPOS,#00H
MOV YPOS,#00H
MOV R1,#5
LCALL PUTSTR
MOV XPOS,#8
MOV YPOS,#02H
MOV R0,#SEE09
MOV RE,#7
DIRR11: MOV A,@R0
MOV B,#2
MUL AB
MOV DPTR,#STRING1
CLR C
ADD A,DPL
MOV DPL,A
CLR A
ADDC A,DPH
MOV DPH,A
MOV R1,#1
LCALL PUTSTR
INC R0
DJNZ RE,DIRR11
MOV DPTR,#STRING23
MOV R1,#1
LCALL PUTSTR
MOV R0,#SEE02
MOV RE,#3
DIRR12: MOV A,@R0
MOV B,#2
MUL AB
MOV DPTR,#STRING1
CLR C
ADD A,DPL
MOV DPL,A
CLR A
ADDC A,DPH
MOV DPH,A
MOV R1,#1
LCALL PUTSTR
INC R0
DJNZ RE,DIRR12
MOV DPTR,#STRING2
MOV R1,#3
LCALL PUTSTR
RET
DIR2: MOV DPTR,#STRING5
MOV XPOS,#00H
MOV YPOS,#00H
MOV R1,#5
LCALL PUTSTR
MOV XPOS,#24
MOV YPOS,#02H
MOV R0,#SEE17
MOV RE,#5
DIRR21: MOV A,@R0
MOV B,#2
MUL AB
MOV DPTR,#STRING1
CLR C
ADD A,DPL
MOV DPL,A
CLR A
ADDC A,DPH
MOV DPH,A
MOV R1,#1
LCALL PUTSTR
INC R0
DJNZ RE,DIRR21
MOV DPTR,#STRING23
MOV R1,#1
LCALL PUTSTR
MOV R0,#SEE12
MOV RE,#3
DIRR22: MOV A,@R0
MOV B,#2
MUL AB
MOV DPTR,#STRING1
CLR C
ADD A,DPL
MOV DPL,A
CLR A
ADDC A,DPH
MOV DPH,A
MOV R1,#1
LCALL PUTSTR
INC R0
DJNZ RE,DIRR22
MOV DPTR,#STRING2
MOV R1,#3
LCALL PUTSTR
RET
DIR3: MOV DPTR,#STRING7
MOV XPOS,#32
MOV YPOS,#00H
MOV R1,#3
LCALL PUTSTR
MOV DPTR,#STRING8
MOV XPOS,#00H
MOV YPOS,#02H
MOV R1,#7
LCALL PUTSTR
RET
DIR4: MOV DPTR,#STRING9
MOV XPOS,#24
MOV YPOS,#00H
MOV R1,#4
LCALL PUTSTR
MOV DPTR,#STRING10
MOV XPOS,#24
MOV YPOS,#02H
MOV R1,#5
LCALL PUTSTR
RET
DIR5: MOV DPTR,#STRING11
MOV XPOS,#32
MOV YPOS,#00H
MOV R1,#3
LCALL PUTSTR
MOV DPTR,#STRING12
MOV XPOS,#24
MOV YPOS,#02H
MOV R1,#4
LCALL PUTSTR
RET
DIR6: MOV DPTR,#STRING13
MOV XPOS,#32
MOV YPOS,#00H
MOV R1,#3
LCALL PUTSTR
MOV DPTR,#STRING10
MOV XPOS,#24
MOV YPOS,#02H
MOV R1,#5
LCALL PUTSTR
RET
DIR7: MOV DPTR,#STRING14
MOV XPOS,#32
MOV YPOS,#00H
MOV R1,#4
LCALL PUTSTR
MOV DPTR,#STRING15
MOV XPOS,#16
MOV YPOS,#02H
MOV R1,#5
LCALL PUTSTR
RET
DIR8: MOV DPTR,#STRING16
MOV XPOS,#32
MOV YPOS,#00H
MOV R1,#3
LCALL PUTSTR
MOV DPTR,#STRING21
MOV XPOS,#00H
MOV YPOS,#2
MOV R1,#8
LCALL PUTSTR
RET
DIR9: MOV DPTR,#STRING17
MOV XPOS,#32
MOV YPOS,#00H
MOV R1,#3
LCALL PUTSTR
MOV DPTR,#STRING18
MOV XPOS,#16
MOV YPOS,#02H
MOV R1,#5
LCALL PUTSTR
RET
DIR10: MOV DPTR,#STRING19
MOV XPOS,#24
MOV YPOS,#00H
MOV R1,#4
LCALL PUTSTR
MOV DPTR,#STRING10
MOV XPOS,#24
MOV YPOS,#02H
MOV R1,#5
LCALL PUTSTR
RET
DIR11: MOV DPTR,#STRING20
MOV XPOS,#32
MOV YPOS,#00H
MOV R1,#4
LCALL PUTSTR
RET
DIR12: MOV DPTR,#STRING22
MOV XPOS,#32
MOV YPOS,#1
MOV R1,#3
LCALL PUTSTR
RET
DIR13: MOV DPTR,#STRING18
MOV XPOS,#24
MOV YPOS,#1
MOV R1,#5
LCALL PUTSTR
RET
DELAY400MS: MOV R0,#20 ;延时子程序(400MS)
DL4_PA: MOV R1,#100
DL4_PB: MOV R2,#100
DJNZ R2,$
DJNZ R1,DL4_PB
DJNZ R0,DL4_PA
RET
DELAY: MOV R6,#2
DLY_PA: MOV R5,#2H
DLY_PB: MOV R4,#2H
DJNZ R4,$
DJNZ R5,DLY_PB
DJNZ R6,DLY_PA
RET
GETSTRCHAR:
GSC_PA: CLR A
MOVC A,@A+DPTR
INC DPTR
MOV B,A
INC A
CLR C
JZ GSC_LAX
CLR A
MOVC A,@A+DPTR
INC DPTR
SETB C
GSC_LAX: RET
PUTSTR: LCALL DELAY
LCALL GETSTRCHAR
PUSH DPL
PUSH DPH
JNC PSR_LAX
JNB B.7,PSR_LBY
LCALL HZKPOS
LCALL PUTCHARDOT
LCALL PUTCHARDOT
LJMP PSR_LBX
PSR_LBY: LCALL HZKPOS
LCALL PUTCHARDOT
PSR_LBX: POP DPH
POP DPL
DJNZ R1,PUTSTR
RET
SR_LAX: POP DPH
POP DPL
RET
PUTCHARDOT: MOV R7,#8
PAC_PA: CLR A
MOVC A,@A+DPTR
LCALL LCDWRITE
INC YPOS
INC DPTR
CLR A
MOVC A,@A+DPTR
LCALL LCDWRITE
DEC YPOS
INC DPTR
LCALL CUSORNEXT
MOV A,XPOS
JNZ PAC_LAX
INC YPOS
PAC_LAX: DJNZ R7,PAC_PA
RET
HZKPOS: MOV R2,#5
HTP_PA: CLR C
RLC A
XCH A,B
RLC A
XCH A,B
DJNZ R2,HTP_PA
MOV DPTR,#HZKDOT
ADD A,DPL
MOV DPL,A
MOV A,B
ADDC A,DPH
MOV DPH,A
RET
LCDFILL: MOV R7,A ;LCD整屏显示A的内容
MOV YPOS,#0
LFL_PB: MOV XPOS,#0
LFL_PA: MOV A,R7
LCALL LCDWRITE ;定位并写数据
LCALL CUSORNEXT
MOV A,XPOS
JNZ LFL_PA
MOV A,YPOS
JNZ LFL_PB
RET
LCDWRITE: LCALL LCDPOS ;定位并写数据子程序,内部写数指针定位
LCALL LCDWD ;写数据
RET
CUSORNEXT: INC XPOS
MOV A,XPOS
CJNE A,#128,CNT_LAX
MOV XPOS,#0
INC YPOS
ANL YPOS,#3H
CNT_LAX: RET
LCDWD: MOV B,A
MOV A,YPOS
JNB ACC.1,LWD_LBX
MOV A,B
LCALL REVERSE
MOV B,A
LWD_LBX: MOV A,XPOS
CJNE A,#61,$+3
JNC LWD_LA1
MOV A,B
LCALL LCDWD1
JMP LWD_LAX
LWD_LA1: CJNE A,#122,$+3
JNC LWD_LA2
MOV A,B
LCALL LCDWD2
LJMP LWD_LAX
LWD_LA2:
LWD_LAX:
RET
LCDPOS: PUSH ACC
MOV A,YPOS
ANL A,#3
CJNE A,#0,LPS_LB1
MOV A,#2
LJMP LPS_LBX
LPS_LB1: CJNE A,#1,LPS_LB2
MOV A,#3
LJMP LPS_LBX
LPS_LB2: CJNE A,#2,LPS_LB3
MOV A,#1
LJMP LPS_LBX
LPS_LB3: MOV A,#0
LPS_LBX: ADD A,#0B8H
MOV B,A
MOV A,XPOS
CJNE A,#61,$+3
JNC LPS_LA1
ANL A,#3FH
ADD A,#13H
LCALL LCDWC1
MOV A,B
LCALL LCDWC1
LJMP LPS_LAX
LPS_LA1: CJNE A,#122,$+3
JNC LPS_LA2
CLR C
SUBB A,#61
ADD A,#13H
LCALL LCDWC2
MOV A,B
LCALL LCDWC2
LJMP LPS_LAX
LPS_LA2:
LPS_LAX: POP ACC
RET
REVERSE: PUSH B
MOV B,A
CLR A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -