⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tb16064.asm

📁 lcm测试程序,对LCM设计者有帮助,希望大家能用上.
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;--------------------------------------------------------------------
; 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 + -