📄 io.asm
字号:
;*************************************************************
RS EQU P2.6
RW EQU P3.6
E EQU P2.7
PSB EQU P3.4
RST EQU P1.0
LCD_X EQU 30H
LCD_Y EQU 31H
COUNT EQU 32H
COUNT1 EQU 33H
COUNT2 EQU 34H
COUNT3 EQU 35H
LCD_DATA EQU 36H
LCD_DATA1 EQU 37H
LCD_DATA2 EQU 38H
STORE EQU 39H
;********************************************************
ORG 0000H
LJMP MAIN
ORG 0003H
; LJMP PAUSE
MAIN:
MOV SP,#60H
CLR p1.0
LCALL DELAY4 ;T=4084US=4MS
SETB p1.0
NOP
SETB PSB
INT:
;MOV A,#34H
;LCALL SEND_I
; MOV A,#30H
; LCALL SEND_I
; MOV A,#01H
; LCALL SEND_I
MOV A,#0FH
LCALL SEND_I
MOV A,#0CH
LCALL SEND_I
DISPLAY1A:
MOV DPTR,#TAB1A ;第1行
MOV COUNT,#10H
MOV A,#80H
LCALL SEND_I
LCALL QUSHU
DISPLAY1B:
MOV DPTR,#TAB1B ;第2行
MOV COUNT,#10H
MOV A,#90H
LCALL SEND_I
LCALL QUSHU
DISPLAY1C:
MOV DPTR,#TAB1C ;第3行
MOV COUNT,#10H
MOV A,#88H
LCALL SEND_I
LCALL QUSHU
DISPLAY1D:
MOV DPTR,#TAB1D ;第4行
MOV COUNT,#10H
MOV A,#98H
LCALL SEND_I
LCALL QUSHU
LCALL DELAY3
;****************************************************
DISP:
MOV COUNT3,#02H
MOV LCD_X,#80H
DISP1:
MOV LCD_Y,#80H
CLR F0
MOV COUNT2,#20H
DISP2:
MOV COUNT1,#10H
LCALL WR_ZB
DISP3:
JB F0,DISP32
MOV LCD_DATA,LCD_DATA1
AJMP DISP31
DISP32:
MOV LCD_DATA,LCD_DATA2
DISP31:
MOV A,LCD_DATA
LCALL SEND_D
DJNZ COUNT1,DISP31
INC LCD_Y
CPL F0
DJNZ COUNT2,DISP2
MOV LCD_X,#88H
DJNZ COUNT3,DISP1
MOV A,#36H
LCALL SEND_I
MOV A,#30H
LCALL SEND_I
RET
WR_ZB:
MOV A,#34H
LCALL SEND_I
MOV A,LCD_Y
LCALL SEND_I
MOV A,LCD_X
LCALL SEND_I
MOV A,#30H
LCALL SEND_I
RET
;*************************
QUSHU:
CLR A
MOVC A,@A+DPTR
LCALL SEND_D
INC DPTR
LCALL DELAY4
DJNZ COUNT,QUSHU
RET
;*************************
SEND_D:
LCALL CHK_BUSY
SETB RS
CLR RW
MOV P0,A
SETB E
NOP
NOP
CLR E
RET
;**************************
SEND_I:
LCALL CHK_BUSY
CLR RS
CLR RW
MOV P0,A
SETB E
NOP
NOP
CLR E
RET
;**************************
READ_D:NOP
NOP
LCALL CHK_BUSY
SETB RS
SETB RW
SETB E
NOP
MOV A,P0
CLR E
MOV STORE,A
RET
;*******************************
CHK_BUSY:
MOV P0,#0FFH
CLR RS
SETB RW
SETB E
JB P0.7,$
CLR E
RET
;*******************************
DELAY3:
MOV R5,#16H
DEL31: MOV R6,#100
DEL32: MOV R7,#0FFH
DEL33: DJNZ R7,DEL33
DJNZ R6,DEL32
DJNZ R5,DEL31
RET
DELAY4: ;延时80ms,
MOV R6,#100
DEL41: MOV R7,#200
DEL42: DJNZ R7,DEL42
DJNZ R6,DEL41
RET
TAB1A: DB 0C2H,0EDH,0BBH,0D4H,0A1H,0F9H,0B0H,0B2H,0D1H,0F4H,0B9H,0A4H,0D1H,0A7H,0D4H,0BAH; 1
TAB1B: DB 0C2H,0EDH,0BBH,0D4H,0A1H,0F9H,0B0H,0B2H,0D1H,0F4H,0B9H,0A4H,0D1H,0A7H,0D4H,0BAH; 2
TAB1C: DB 0C2H,0EDH,0BBH,0D4H,0A1H,0F9H,0B0H,0B2H,0D1H,0F4H,0B9H,0A4H,0D1H,0A7H,0D4H,0BAH; 3
TAB1D: DB 0C2H,0EDH,0BBH,0D4H,0A1H,0F9H,0B0H,0B2H,0D1H,0F4H,0B9H,0A4H,0D1H,0A7H,0D4H,0BAH; 4
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -