📄 320240av1.asm
字号:
;**********************************************
W_R EQU P2.0
R_D EQU P2.1
CS EQU P2.2
A0 EQU P2.3
RST EQU P2.4
LCD_COUNT0 EQU 3AH
LCD_COUNT1 EQU 30H
LCD_COUNT2 EQU 31H
LCD_DATA1 EQU 32H
LCD_DATA2 EQU 33H
SAD2L EQU 34H
SAD2H EQU 35H
SAD2L1 EQU 36H
SAD2H1 EQU 37H
DPH_TEMP EQU 38H
DPL_TEMP EQU 39H
ORG 0000H
AJMP MAIN
ORG 0100H
MAIN: NOP
NOP
MOV SP,#5FH
SETB RST
CLR CS
;*******************初始化*********************
LGS: MOV A,#40H ;W_RITE SYSTEMSET 指令和参数
LCALL SEND_I
MOV DPTR,#TAB01
MOV LCD_COUNT1,#08H
LCALL LGS01
MOV A,#44H ;W_RITE SCROLL 指令和参数
LCALL SEND_I
MOV DPTR,#TAB02
MOV LCD_COUNT1,#0AH
LCALL LGS01
MOV A,#5AH ;显示画面水平移动量:00--07点
LCALL SEND_I
MOV A,#00H
LCALL SEND_D
MOV A,#5BH ;显示属性:DM1(DM2)=0,文本方式
LCALL SEND_I ;DM1(DM2)=1,图形方式
MOV A,#01H ;OV=1,三重合成;OV=0,两重合成
LCALL SEND_D
MOV A,#5DH
LCALL SEND_I
MOV A,#07H
LCALL SEND_D
MOV A,#8FH
LCALL SEND_D
MOV A,#4CH ;光标自动移动方向--向右
LCALL SEND_I
MOV A,#59H ;DISP ON
LCALL SEND_I
MOV A,#56H
LCALL SEND_D
LJMP LGS5
;!!!!!!!!!!!!!!!!!!!显示字符!!!!!!!!!!!!!!!!!!!
LGS1: LCALL CLRRAM
MOV A,#46H
LCALL SEND_I
MOV A,#00H
LCALL SEND_D
MOV A,#00H
LCALL SEND_D
MOV A,#42H
LCALL SEND_I
MOV DPTR,#TAB1
MOV LCD_COUNT1,#7
LGS11: MOV LCD_COUNT2,#40
LGS12: CLR A
MOVC A,@A+DPTR
LCALL SEND_D
INC DPTR
DJNZ LCD_COUNT2,LGS12
DJNZ LCD_COUNT1,LGS11
MOV LCD_DATA1,#10H
MOV LCD_COUNT1,#6
LGS13: MOV LCD_COUNT2,#40
LGS14: MOV A,LCD_DATA1
LCALL SEND_D
INC LCD_DATA1
DJNZ LCD_COUNT2,LGS14
DJNZ LCD_COUNT1,LGS13
LCALL DELAY1
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
LGS2: LCALL CLRRAM
MOV LCD_DATA1,#0CCH
MOV LCD_DATA2,#0CCH
LCALL LAT_DISP
LCALL DELAY1
MOV LCD_DATA1,#33H
MOV LCD_DATA2,#33H
LCALL LAT_DISP
LCALL DELAY1
MOV LCD_DATA1,#0FFH
MOV LCD_DATA2,#00H
LCALL LAT_DISP
LCALL DELAY1
MOV LCD_DATA1,#00H
MOV LCD_DATA2,#0FFH
LCALL LAT_DISP
LCALL DELAY1
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
LGS4: MOV A,#4CH ;光标自动移动方向--向右
LCALL SEND_I
MOV LCD_DATA1,#0CCH
MOV LCD_DATA2,#33H
LCALL LAT_DISP
LCALL DELAY1
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
LGS5: LCALL CLRRAM
MOV SAD2L,#0B0H
MOV SAD2H,#04H
MOV SAD2L1,#00H
MOV SAD2H1,#00H
LCALL ZB_W_R
MOV LCD_COUNT0,#2
LGS50: MOV DPTR,#TAB3 ;图形首地址
MOV LCD_COUNT1,#120
LGS51: MOV LCD_COUNT2,#40
LGS52: CLR A
MOVC A,@A+DPTR
LCALL SEND_D
INC DPTR
DJNZ LCD_COUNT2,LGS52
MOV SAD2L1,#28H
MOV SAD2H1,#00H
LCALL ZB_W_R
DJNZ LCD_COUNT1,LGS51
DJNZ LCD_COUNT0,LGS50
LCALL DELAY1
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
LJMP LGS1
;**********************************************
LGS01: CLR A
MOVC A,@A+DPTR
LCALL SEND_D
INC DPTR
DJNZ LCD_COUNT1,LGS01
RET
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
CLRRAM: MOV A,#46H ;显示光标地址
LCALL SEND_I
MOV A,#00H
LCALL SEND_D
MOV A,#00H
LCALL SEND_D
MOV A,#42H
LCALL SEND_I
MOV LCD_COUNT1,#87H
CLRRAM1: MOV LCD_COUNT2,#50H
CLRRAM2: CLR A
LCALL SEND_D
DJNZ LCD_COUNT2,CLRRAM2
DJNZ LCD_COUNT1,CLRRAM1
RET
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
LAT_DISP: MOV A,#46H
LCALL SEND_I
MOV A,#0B0H
LCALL SEND_D
MOV A,#04H
LCALL SEND_D
MOV A,#42H
LCALL SEND_I
MOV LCD_COUNT1,#60
LAT_DISP1: MOV LCD_COUNT2,#80
LAT_DISP2: MOV A,LCD_DATA1
LCALL SEND_D
DJNZ LCD_COUNT2,LAT_DISP2
MOV LCD_COUNT2,#80
LAT_DISP3: MOV A,LCD_DATA2
LCALL SEND_D
DJNZ LCD_COUNT2,LAT_DISP3
DJNZ LCD_COUNT1,LAT_DISP1
RET
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ZB_W_R: MOV A,SAD2L
ADD A,SAD2L1
MOV SAD2L,A
MOV A,SAD2H
ADDC A,#00H
ADD A,SAD2H1
MOV SAD2H,A
MOV A,#46H
LCALL SEND_I
MOV A,SAD2L
LCALL SEND_D
MOV A,SAD2H
LCALL SEND_D
MOV A,#42H
LCALL SEND_I
RET
;**********************************************
SEND_I: ;LCALL CHKBUSY ;Output Instuction
SETB A0
SETB R_D
MOV P1,A
CLR W_R
NOP
NOP
SETB W_R
RET
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
SEND_D: ;LCALL CHKBUSY ;Output Data
CLR A0
SETB R_D
MOV P1,A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -