📄 5366.asm
字号:
; WRITE THE ENTIRE RAM OF ALL PAGES
;***********************************************
WR_PAGE:
LCALL SET_PAGE
NOP
NOP
LCALL SET_COL
NOP
NOP
LCALL WRITE_RAM ; CLR THE O/P RAM
INC PAGE_CNT ; REPEAT TILL END OF PAGE
MOV R1,PAGE_CNT
CJNE R1,#MAX_PAGE,WR_PAGE
MOV PAGE_CNT,#8
LCALL SET_PAGE
MOV COL_CNT,#FIRST_SEG
LCALL SET_COL
; MOV DATA_TMP,#00H
LCALL WRITE_RAM
RET
;
WRITE_RAM: CLR A
MOV A,#MAX_COL ; max. 96 SEG O/P
MOV TEMPA,A ;
DISP_RAM: CLR A
MOV A,DATA_TMP
MOV R2,A
LCALL WDATA
NOP
NOP ;
DJNZ TEMPA,DISP_RAM ;
RET
;*****************************************
; SET THE PAGE NUMBER
;*****************************************
SET_PAGE: CLR A
MOV A,PAGE_CNT ; RETRIEVE THE PAGE #
ANL A,#PAGE_ADDR ;
ORL A,#10110000B ; D3 - D0
MOV R2,A
LCALL WCOM
RET
;*****************************************
; SET THE COLUMN ADDRESS
;*****************************************
SET_COL: MOV A,COL_CNT
RR A
RR A
RR A
RR A
ANL A,#COL_ADDR_H ; HIGH 4 BITS
ORL A,#00010000B ;D3 - D0
MOV R2,A
LCALL WCOM
CLR A
MOV A,COL_CNT ;
ANL A,#COL_ADDR_L ; LOW 4 BITS
MOV R2,A ;
LCALL WCOM ;
RET
;***************************************
; Border Line
;***************************************
OUTLINE: MOV A,#8
MOV PAGE_CNT,A
MOV A,#FIRST_SEG
MOV COL_CNT,A
LCALL SET_PAGE
NOP
NOP
LCALL SET_COL
NOP
NOP
TOPLINE: MOV A,#0FFH
MOV DATA_TMP,A
LCALL WRITE_RAM
BOTTOMLINE: MOV A,#LAST_PAGE
MOV PAGE_CNT,A
MOV A,#FIRST_SEG
MOV COL_CNT,A
LCALL SET_PAGE
NOP
NOP
LCALL SET_COL
NOP
NOP
LCALL DELAY20M
MOV B,#80H
MOV DATA_TMP,B
LCALL WRITE_RAM
CLR A
MOV PAGE_CNT,A
LCALL SET_PAGE
VERTLINE: MOV A,#FIRST_SEG
MOV COL_CNT,A
LCALL SET_COL
LCALL DELAY20M
VLINE: MOV A,#0FFH
MOV R2,A
LCALL WDATA
MOV A,#MAX_DOT
MOV COL_CNT,A
LCALL SET_COL
LCALL DELAY20M
MOV A,#0FFH
MOV R2,A
LCALL WDATA
INC PAGE_CNT
LCALL SET_PAGE
MOV R3,PAGE_CNT
CJNE R3,#MAX_PAGE,VERTLINE
;*
CLR A
MOV PAGE_CNT,A
LCALL SET_PAGE
VERTLINE1: MOV A,#0 ;#FIRST_SEG
MOV COL_CNT,A
LCALL SET_COL
LCALL DELAY20M
VLINE1: MOV A,#0FFH
MOV R2,A
LCALL WDATA
MOV A,#96 ;#MAX_DOT
MOV COL_CNT,A
LCALL SET_COL
LCALL DELAY20M
MOV A,#0FFH
MOV R2,A
LCALL WDATA
INC PAGE_CNT
LCALL SET_PAGE
MOV R3,PAGE_CNT
CJNE R3,#MAX_PAGE,VERTLINE1
RET
;***************************************
; SEND COMMAND
;***************************************
WCOM: CLR A0 ;A0=0,CS1=0
CLR CS1
WDATA11: MOV A,#8
MOV TEMPD,A
WD2: CLR C
MOV A,R2
RLC A
MOV SI,C
MOV R2,A
NOP
CLR CLK
NOP
NOP
SETB CLK
NOP
NOP
DJNZ TEMPD,WD2
RET
;***************************************
; SEND DATA
;***************************************
WDATA: SETB A0 ;A0=1
CLR CS1 ;CS1=0
WDATA1: MOV A,#8
MOV TEMPD,A
WD1: CLR C
MOV A,R2
RLC A
MOV SI,C
MOV R2,A
NOP
CLR CLK
NOP
NOP
SETB CLK
NOP
NOP
DJNZ TEMPD,WD1
RET
;****************************************
; DELAY SUB-ROUTINE
;****************************************
DELAY100: MOV R6,#12
LDELAY100: MOV R7,#63H ;
LDELAY10: DJNZ R7,LDELAY10 ; DELAY FOR 100 usec
DJNZ R6,LDELAY100
RET ;
DELAY101: MOV R6,#2
LDELAY101: MOV R7,#20H ;
LDELAY11: DJNZ R7,LDELAY11 ; DELAY FOR 100 usec
DJNZ R6,LDELAY101
RET ;
DELAY20M: MOV R5,#200 ;
LDELAY20M: ACALL DELAY100 ;
DJNZ R5,LDELAY20M ; DELAY FOR 20 msec
RET ;
DELAY1S: MOV R4,#10 ;
LDELAY1S: LCALL DELAY20M ;
DJNZ R4,LDELAY1S ; DELAY FOR 1 sec
RET ;
;************************************
; SLOWLY DISPLAY INTO
;************************************
INTO:
PUSH ACC
PUSH PSW
CLR RS1
SETB RS0
RT: JB P3.2,RT
POP PSW
POP ACC
RETI
;**********************************
; IDW MESSAGE
;**********************************
; TABLES
;********************************
INI_DATA: DB 0AFH ;DISPLAY ON
DB 0A2H ; LCD BIAS SETTING.
DB 0A0H ; ADC SELECTION.
DB 0CFH ; COMMON OUTPUT STATE SELECTION.
DB 22H ; Select internal resistor ratio(Rb/Ra) mode.
DB 81H
DB 0B0H ; Set the V5 output voltage electronic volume register.
DB 2FH ; Select internal power supply operating mode.
DB 7FH ; Sets the display RAM display start line address.
DB 0B0H ; Sets the display RAM page address.
DB 10H ; Sets the most significant 4 bits of the display
; RAM column address.
DB 00H ; Sets the least significant 4 bits of the display
; RAM column address.`
PTN_E: DB 0FFH,08H,08H,08H,08H,08H; E
PTN_H1: DB 0FFH,04H,04H,04H,0FFH ; H
PTN_H2: DB 0FFH,22H,22H,22H,0FFH
PTN_H3: DB 0FFH,02H,02H,02H,0FFH
PTN_H4: DB 0FFH,81H,81H,81H,0FFH
PTN_H5: DB 0FFH,40H,40H,40H,0FFH
PTN_H6: DB 0FFH,44H,44H,44H,0FFH
PTN_H7: DB 0FFH,20H,20H,20H,0FFH
PTN_H8: DB 0FFH,10H,10H,10H,0FFH
PTN_H9: DB 0FFH,00H,00H,00H,0FFH
PTN_I: DB 00H,41H,7FH,41H,00H,00H ; I
PTN_C: DB 14H,7FH,14H,7FH,14H,00H ; #
MODEL_NO: DB 1FH,20H,40H,20H,1FH,00H ; V
DB 7FH,08H,14H,22H,41H,00H ; K
DB 47H,45H,45H,45H,39H,00H ; 5
DB 41H,49H,4DH,4BH,31H,00H ; 3
DB 47H,45H,45H,45H,39H,00H ; 5
DB 3EH,41H,41H,41H,3EH,00H ; 0
VER_NO: DB 7FH,09H,09H,09H,76H,00H ; R
DB 7FH,49H,49H,49H,41H,00H ; E
DB 1FH,20H,40H,20H,1FH,00H ; V
DB 60H,60H,00H,00H,00H,00H ; .
DB 7CH,12H,11H,12H,7CH,00H ; A
IDW1_MESS: DB 00H,00H,00H,00H,00H,01H,01H,0FFH,01H,01H,00H,00H,00H,00H,00H,00H ; I
DB 00H,00H,01H,01H,0FFH,01H,01H,01H,01H,02H,04H,08H,0F0H,00H,00H,00H,00H,00H ; D
DB 00H,0FFH,00H,00H,00H,00H,00H,00H,0FFH,00H,00H,00H,00H,00H,00H,0FFH ; W
IDW2_MESS: DB 00H,00H,00H,00H,00H,80H,80H,0FFH,80H,80H,00H,00H,00H,00H,00H,00H ; I
DB 00H,00H,80H,80H,0FFH,80H,80H,80H,80H,40H,20H,10H,0FH,00H,00H,00H,00H,00H ; D
DB 00H,1FH,20H,40H,80H,80H,40H,20H,1FH,20H,40H,80H,80H,40H,20H,1FH ; W
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -