📄 tb16064.asm
字号:
;--------------------------------------------------------------------
; PROGRAM FOR TESTING OLL16064B Ver 1.00
; 2001.03.12
;
; MCU TYPE : 80C31 or 89C51
; EPROM : 27C256
; PCB FILE : TEST_LCM.PCB
; SCH FILE : TEST_LCM.S01
;
; ZN1 : Vss Vdd Vo WR RD A12 A13 E D0 D1 D2 D3 D4 D5 D6 D7 CLK A14 A11 RST
;============================================================================
LOOPREG EQU 33H ; Main Common
COUNTER EQU 34H ; Main Common
DLYTIME EQU 35H ; Main Common
DLY0 EQU 36H ; Main Common
DLY1 EQU 37H ; Main Common
;----------------------------------------------------------
RST BIT P3.5 ; Reset Signal
PR EQU 3DH ; KS0108B & SED1520
VR EQU 3EH ; KS0108B & SED1520
HR EQU 3FH ; KS0108B & SED1520
DTREG1 EQU 41H ; KS0108B & SED1520 & T6963C
DTREG2 EQU 42H ; KS0108B & SED1520 & T6963C
;----------------------------------------------------------
B16064C1W EQU 07FFH ; KS0108B_APPS : 16064B
B16064C2W EQU 0FFFH ; KS0108B_APPS : 16064B
B16064C3W EQU 47FFH ; KS0108B_APPS : 16064B
B16064C1R EQU 27FFH ; KS0108B_APPS : 16064B
B16064C2R EQU 2FFFH ; KS0108B_APPS : 16064B
B16064C3R EQU 67FFH ; KS0108B_APPS : 16064B
B16064D1W EQU 17FFH ; KS0108B_APPS : 16064B
B16064D2W EQU 1FFFH ; KS0108B_APPS : 16064B
B16064D3W EQU 57FFH ; KS0108B_APPS : 16064B
;****************************************************************************
ORG 0000H
LJMP MAIN
;--------------------------------------
ORG 0030H
MAIN:
MOV SP,#50H
;--------------------------------------
ORG 0050H
TEST_SEL:
LJMP DEMO16064B ; KS0108B
;----------------------------------------------------------
DELAY: ; DLYTIME *
MOV DLY0,#100 ; 1uS At 12MHz
DLYLOOP: MOV DLY1,#56 ; 1uS
DJNZ DLY1,$ ; 2uS * (DLY1)
DJNZ DLY0,DLYLOOP ; 2uS
DJNZ DLYTIME,DELAY ; 2uS
RET
;----------------------------------------------------------
ORG 0150H
DEMO16064B:
CLR RST
MOV DLYTIME,#2
LCALL DELAY
SETB RST
LCALL DISP_OFF
MOV DPTR,#BM16064B1
LCALL B16064_BMP
LCALL DISP_ON
MOV DLYTIME,#100
LCALL DELAY
LCALL DISP_OFF
MOV DPTR,#BM16064B2
LCALL B16064_BMP
LCALL DISP_ON
MOV DLYTIME,#100
LCALL DELAY
LCALL DISP_OFF
MOV DPTR,#BM16064B3
LCALL B16064_BMP
LCALL DISP_ON
MOV DLYTIME,#100
LCALL DELAY
LCALL DISP_OFF
MOV DPTR,#BM16064B4
LCALL B16064_BMP
LCALL DISP_ON
MOV DLYTIME,#100
LCALL DELAY
LJMP TEST_SEL
;========================================
DISP_OFF:
LCALL CK16064B1
LCALL CK16064B2
LCALL CK16064B3
MOV A,#00111110B ; turn OFF display (KS0108B or HD61202)
MOV DPTR,#B16064C1W
MOVX @DPTR,A
MOV DPTR,#B16064C2W
MOVX @DPTR,A
MOV DPTR,#B16064C3W
MOVX @DPTR,A
RET
DISP_ON:
LCALL CK16064B1
LCALL CK16064B2
LCALL CK16064B3
MOV A,#00111111B ; turn ON display (KS0108B or HD61202)
MOV DPTR,#B16064C1W
MOVX @DPTR,A
MOV DPTR,#B16064C2W
MOVX @DPTR,A
MOV DPTR,#B16064C3W
MOVX @DPTR,A
RET
; MOV DTREG1,#11111111B
; MOV DTREG2,#00000000B
; ACALL B16064_SCR
; MOV DLYTIME,#60
; LCALL DELAY
; MOV DTREG1,#00000000B
; MOV DTREG2,#11111111B
; ACALL B16064_SCR
; MOV DLYTIME,#60
; LCALL DELAY
; MOV DTREG1,#01010101B
; MOV DTREG2,#01010101B
; ACALL B16064_SCR
; MOV DLYTIME,#60
; LCALL DELAY
; MOV DTREG1,#10101010B
; MOV DTREG2,#10101010B
; ACALL B16064_SCR
; MOV DLYTIME,#60
; LCALL DELAY
; MOV DTREG1,#10101010B
; MOV DTREG2,#01010101B
; ACALL B16064_SCR
; MOV DLYTIME,#40
; LCALL DELAY
; MOV DTREG1,#01010101B
; MOV DTREG2,#10101010B
; ACALL B16064_SCR
; MOV DLYTIME,#60
; LCALL DELAY
;--------------------------------------
B16064_SCR:
MOV COUNTER,#8 ; 8 Pages Counter
MOV VR,#11000000B ; set start line (X address)
MOV HR,#01000000B ; set start columns (Y address)
MOV PR,#0BFH ; Page = 08
LP_PGDWR:
MOV A,PR
MOV DPTR,#B16064C1W
MOVX @DPTR,A
LCALL CK16064B1
MOV DPTR,#B16064C2W
MOVX @DPTR,A
LCALL CK16064B2
MOV DPTR,#B16064C3W
MOVX @DPTR,A
LCALL CK16064B3
MOV A,VR
MOV DPTR,#B16064C1W
MOVX @DPTR,A
LCALL CK16064B1
MOV DPTR,#B16064C2W
MOVX @DPTR,A
LCALL CK16064B2
MOV DPTR,#B16064C3W
MOVX @DPTR,A
LCALL CK16064B3
MOV A,HR
MOV DPTR,#B16064C1W
MOVX @DPTR,A
LCALL CK16064B1
MOV DPTR,#B16064C2W
MOVX @DPTR,A
LCALL CK16064B2
MOV DPTR,#B16064C3W
MOVX @DPTR,A
LCALL CK16064B3
MOV LOOPREG,#32 ; 64 Segments * 1/2
WR_CHIP:
MOV DPTR,#B16064D1W
MOV A,DTREG1
MOVX @DPTR,A
LCALL CK16064B1
MOV A,DTREG2
MOVX @DPTR,A
LCALL CK16064B1
MOV DPTR,#B16064D2W
MOV A,DTREG1
MOVX @DPTR,A
LCALL CK16064B2
MOV A,DTREG2
MOVX @DPTR,A
LCALL CK16064B2
MOV DPTR,#B16064D3W
MOV A,DTREG1
MOVX @DPTR,A
LCALL CK16064B3
MOV A,DTREG2
MOVX @DPTR,A
LCALL CK16064B3
DJNZ LOOPREG,WR_CHIP
DEC PR
DJNZ COUNTER,LP_PGDWR
RET
;--------------------------------------
B16064_BMP:
MOV LOOPREG,#64 ; 64 Segments * 1/2
MOV VR,#11000000B
MOV HR,#01000000B
GRA4_WR1: MOV PR,#0BFH
MOV COUNTER,#8 ; 8 Pages
PUSH DPH
PUSH DPL
MOV DPTR,#B16064C1W
MOV A,VR ; ROW = 00
MOVX @DPTR,A
LCALL CK16064B1
POP DPL
POP DPH
GRA4_WRP1:
PUSH DPL
PUSH DPH
MOV DPTR,#B16064C1W
MOV A,PR
MOVX @DPTR,A
LCALL CK16064B1
MOV A,HR ; Column = 00
MOVX @DPTR,A
LCALL CK16064B1
POP DPH
POP DPL
MOV A,#0
MOVC A,@A+DPTR
INC DPTR
PUSH DPL
PUSH DPH
MOV DPTR,#B16064D1W
MOVX @DPTR,A
LCALL CK16064B1
POP DPH
POP DPL
DEC PR
DJNZ COUNTER,GRA4_WRP1
INC HR
DJNZ LOOPREG,GRA4_WR1
MOV LOOPREG,#64 ; 64 Segments * 1/2
MOV HR,#01000000B
GRA4_WR2: MOV PR,#0BFH
MOV COUNTER,#8 ; 8 Pages
PUSH DPH
PUSH DPL
MOV DPTR,#B16064C2W
MOV A,VR ; ROW = 00
MOVX @DPTR,A
LCALL CK16064B2
POP DPL
POP DPH
GRA4_WRP2:
PUSH DPL
PUSH DPH
MOV DPTR,#B16064C2W
MOV A,PR
MOVX @DPTR,A
LCALL CK16064B2
MOV A,HR ; Column = 00
MOVX @DPTR,A
LCALL CK16064B2
POP DPH
POP DPL
MOV A,#0
MOVC A,@A+DPTR
INC DPTR
PUSH DPL
PUSH DPH
MOV DPTR,#B16064D2W
MOVX @DPTR,A
LCALL CK16064B2
POP DPH
POP DPL
DEC PR
DJNZ COUNTER,GRA4_WRP2
INC HR
DJNZ LOOPREG,GRA4_WR2
MOV LOOPREG,#32 ; 16064B IC3 SEGMENTS NUM.= 32
MOV HR,#01000000B
GRA4_WR3: MOV PR,#0BFH
MOV COUNTER,#8 ; 8 Pages
PUSH DPH
PUSH DPL
MOV DPTR,#B16064C3W
MOV A,VR ; ROW = 00
MOVX @DPTR,A
LCALL CK16064B3
POP DPL
POP DPH
GRA4_WRP3:
PUSH DPL
PUSH DPH
MOV DPTR,#B16064C3W
MOV A,PR
MOVX @DPTR,A
LCALL CK16064B3
MOV A,HR ; Column = 00
MOVX @DPTR,A
LCALL CK16064B3
POP DPH
POP DPL
MOV A,#0
MOVC A,@A+DPTR
INC DPTR
PUSH DPL
PUSH DPH
MOV DPTR,#B16064D3W
MOVX @DPTR,A
LCALL CK16064B3
POP DPH
POP DPL
DEC PR
DJNZ COUNTER,GRA4_WRP3
INC HR
DJNZ LOOPREG,GRA4_WR3
RET
;--------------------------------------
CK16064B1: PUSH ACC
PUSH PSW
PUSH DPH
PUSH DPL
MOV DPTR,#B16064C1R
B16064_F1: MOVX A,@DPTR
JB ACC.7,B16064_F1
POP DPL
POP DPH
POP PSW
POP ACC
RET
CK16064B2: PUSH ACC
PUSH PSW
PUSH DPH
PUSH DPL
MOV DPTR,#B16064C2R
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -