📄 tlcm101.asm
字号:
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 DPTR,#BM16064B
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
B16064_F2: MOVX A,@DPTR
JB ACC.7,B16064_F2
POP DPL
POP DPH
POP PSW
POP ACC
RET
CK16064B3: PUSH ACC
PUSH PSW
PUSH DPH
PUSH DPL
MOV DPTR,#B16064C3R
B16064_F3: MOVX A,@DPTR
JB ACC.7,B16064_F3
POP DPL
POP DPH
POP PSW
POP ACC
RET
;=============================================================================
TEST_GRA5: ; PROGRAM FOR 12864A GRAPHIC LCM TEST
; LCM CHIP : KS0108B
;=============================================================================
CLR RST
MOV DLYTIME,#2
LCALL DELAY
SETB RST
;--------------------------------------
LCALL CHKBFG1
LCALL CHKBFG2
MOV A,#00111110B ; turn OFF display (KS0108B or HD61202)
MOV DPTR,#KSC_CM1_W
MOVX @DPTR,A
MOV DPTR,#KSC_CM2_W
MOVX @DPTR,A
MOV DPTR,#BM12864A
LCALL SAMSUNG_BMP
LCALL CHKBFG1
LCALL CHKBFG2
MOV A,#00111111B ; turn ON display
MOV DPTR,#KSC_CM1_W
MOVX @DPTR,A
MOV DPTR,#KSC_CM2_W
MOVX @DPTR,A
MOV DLYTIME,#80
LCALL DELAY
JB PAUSE_FG,$ ; Pause_flag = 1 , Wait
;--------------------------------------
LCALL CHKBFG1
LCALL CHKBFG2
MOV A,#00111110B ; turn OFF display (KS0108B or HD61202)
MOV DPTR,#KSC_CM1_W
MOVX @DPTR,A
MOV DPTR,#KSC_CM2_W
MOVX @DPTR,A
MOV DPTR,#A1286401
LCALL SAMSUNG_BMP
LCALL CHKBFG1
LCALL CHKBFG2
MOV A,#00111111B ; turn ON display
MOV DPTR,#KSC_CM1_W
MOVX @DPTR,A
MOV DPTR,#KSC_CM2_W
MOVX @DPTR,A
MOV DLYTIME,#80
LCALL DELAY
JB PAUSE_FG,$ ; Pause_flag = 1 , Wait
;--------------------------------------
LCALL CHKBFG1
LCALL CHKBFG2
MOV A,#00111110B ; turn OFF display (KS0108B or HD61202)
MOV DPTR,#KSC_CM1_W
MOVX @DPTR,A
MOV DPTR,#KSC_CM2_W
MOVX @DPTR,A
MOV DPTR,#A1286402
LCALL SAMSUNG_BMP
LCALL CHKBFG1
LCALL CHKBFG2
MOV A,#00111111B ; turn ON display
MOV DPTR,#KSC_CM1_W
MOVX @DPTR,A
MOV DPTR,#KSC_CM2_W
MOVX @DPTR,A
MOV DLYTIME,#80
LCALL DELAY
JB PAUSE_FG,$ ; Pause_flag = 1 , Wait
;--------------------------------------
LCALL CHKBFG1
LCALL CHKBFG2
MOV A,#00111110B ; turn OFF display (KS0108B or HD61202)
MOV DPTR,#KSC_CM1_W
MOVX @DPTR,A
MOV DPTR,#KSC_CM2_W
MOVX @DPTR,A
MOV DPTR,#A1286403
LCALL SAMSUNG_BMP
LCALL CHKBFG1
LCALL CHKBFG2
MOV A,#00111111B ; turn ON display
MOV DPTR,#KSC_CM1_W
MOVX @DPTR,A
MOV DPTR,#KSC_CM2_W
MOVX @DPTR,A
MOV DLYTIME,#80
LCALL DELAY
JB PAUSE_FG,$ ; Pause_flag = 1 , Wait
;--------------------------------------
MOV DTREG1,#11111111B
MOV DTREG2,#00000000B
ACALL SAMSUNG_SCR
MOV DLYTIME,#60
LCALL DELAY
JB PAUSE_FG,$ ; Pause_flag = 1 , Wait
MOV DTREG1,#00000000B
MOV DTREG2,#11111111B
ACALL SAMSUNG_SCR
MOV DLYTIME,#60
LCALL DELAY
JB PAUSE_FG,$ ; Pause_flag = 1 , Wait
MOV DTREG1,#01010101B
MOV DTREG2,#01010101B
ACALL SAMSUNG_SCR
MOV DLYTIME,#60
LCALL DELAY
JB PAUSE_FG,$ ; Pause_flag = 1 , Wait
MOV DTREG1,#10101010B
MOV DTREG2,#10101010B
ACALL SAMSUNG_SCR
MOV DLYTIME,#60
LCALL DELAY
JB PAUSE_FG,$ ; Pause_flag = 1 , Wait
MOV DTREG1,#10101010B
MOV DTREG2,#01010101B
ACALL SAMSUNG_SCR
MOV DLYTIME,#40
LCALL DELAY
JB PAUSE_FG,$ ; Pause_flag = 1 , Wait
MOV DTREG1,#01010101B
MOV DTREG2,#10101010B
ACALL SAMSUNG_SCR
MOV DLYTIME,#60
LCALL DELAY
JB PAUSE_FG,$ ; Pause_flag = 1 , Wait
LJMP TEST_SEL
;--------------------------------------
SAMSUNG_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_WRKSD:
MOV A,PR
MOV DPTR,#KSC_CM1_W
MOVX @DPTR,A
LCALL CHKBFG1
MOV DPTR,#KSC_CM2_W
MOVX @DPTR,A
LCALL CHKBFG2
MOV A,VR ; ROW = 00
MOV DPTR,#KSC_CM1_W
MOVX @DPTR,A
LCALL CHKBFG1
MOV DPTR,#KSC_CM2_W
MOVX @DPTR,A
LCALL CHKBFG2
MOV A,HR ; Column = 00
MOV DPTR,#KSC_CM1_W
MOVX @DPTR,A
LCALL CHKBFG1
MOV DPTR,#KSC_CM2_W
MOVX @DPTR,A
LCALL CHKBFG2
MOV LOOPREG,#32 ; 64 Segments * 1/2
KS_CHIP:
MOV DPTR,#KSC_DT1_W
MOV A,DTREG1
MOVX @DPTR,A
LCALL CHKBFG1
MOV A,DTREG2
MOVX @DPTR,A
LCALL CHKBFG1
MOV DPTR,#KSC_DT2_W
MOV A,DTREG1
MOVX @DPTR,A
LCALL CHKBFG2
MOV A,DTREG2
MOVX @DPTR,A
LCALL CHKBFG2
DJNZ LOOPREG,KS_CHIP
DEC PR
DJNZ COUNTER,LP_WRKSD
RET
;--------------------------------------
SAMSUNG_BMP:
MOV LOOPREG,#64 ; 64 Segments * 1/2
MOV VR,#11000000B
MOV HR,#01000000B
LP1WRBMP: MOV PR,#0BFH
MOV COUNTER,#8 ; 8 Pages
PUSH DPH
PUSH DPL
MOV DPTR,#KSC_CM1_W
MOV A,VR ; ROW = 00
MOVX @DPTR,A
LCALL CHKBFG1
POP DPL
POP DPH
KS1WRPG:
PUSH DPL
PUSH DPH
MOV DPTR,#KSC_CM1_W
MOV A,PR
MOVX @DPTR,A
LCALL CHKBFG1
MOV A,HR ; Column = 00
MOVX @DPTR,A
LCALL CHKBFG1
POP DPH
POP DPL
MOV A,#0
MOVC A,@A+DPTR
INC DPTR
PUSH DPL
PUSH DPH
MOV DPTR,#KSC_DT1_W
MOVX @DPTR,A
LCALL CHKBFG1
POP DPH
POP DPL
DEC PR
DJNZ COUNTER,KS1WRPG
INC HR
DJNZ LOOPREG,LP1WRBMP
MOV LOOPREG,#64 ; 64 Segments * 1/2
MOV HR,#01000000B
LP2WRBMP: MOV PR,#0BFH
MOV COUNTER,#8 ; 8 Pages
PUSH DPH
PUSH DPL
MOV DPTR,#KSC_CM2_W
MOV A,VR ; ROW = 00
MOVX @DPTR,A
LCALL CHKBFG2
POP DPL
POP DPH
KS2WRPG:
PUSH DPL
PUSH DPH
MOV DPTR,#KSC_CM2_W
MOV A,PR
MOVX @DPTR,A
LCALL CHKBFG2
MOV A,HR ; Column = 00
MOVX @DPTR,A
LCALL CHKBFG2
POP DPH
POP DPL
MOV A,#0
MOVC A,@A+DPTR
INC DPTR
PUSH DPL
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -