📄 tlcm101.asm
字号:
PUSH DPH
MOV DPTR,#KSC_DT2_W
MOVX @DPTR,A
LCALL CHKBFG2
POP DPH
POP DPL
DEC PR
DJNZ COUNTER,KS2WRPG
INC HR
DJNZ LOOPREG,LP2WRBMP
RET
;--------------------------------------
CHKBFG1: PUSH ACC
PUSH PSW
PUSH DPH
PUSH DPL
MOV DPTR,#KSC_CM1_R
LP_C1F: MOVX A,@DPTR
JB ACC.7,LP_C1F
POP DPL
POP DPH
POP PSW
POP ACC
RET
CHKBFG2: PUSH ACC
PUSH PSW
PUSH DPH
PUSH DPL
MOV DPTR,#KSC_CM2_R
LP_C2F: MOVX A,@DPTR
JB ACC.7,LP_C2F
POP DPL
POP DPH
POP PSW
POP ACC
RET
;=============================================================================
TEST_GRA6: ; PROGRAM FOR 12864B GRAPHIC LCM TEST
; LCM CHIP : T6963C
;=============================================================================
MOV ROW_N,#64
MOV COL_N,#16
SETB SMALL_SCR
LJMP T6963C_APPS
;=============================================================================
TEST_GRA7: ; Program for LCM 12232A
; LCM CHIP : SED1520F0A ( INT OSC )
;=============================================================================
MOV PR,#0B8H ; SET PAGE VALUE
MOV VR,#0C0H ; SET COM0
MOV HR,#000H ; SET SEG0
; CLR RST ;
; MOV DLYTIME,#2 ; Device Reset
; LCALL DELAY ;
; SETB RST ;
MOV DPTR,#EPC_COM_W
MOV A,#0E2H ; SET RESET
MOVX @DPTR,A
LCALL CHKBFS
MOV A,#0A4H ; Select Dynamic Driving
MOVX @DPTR,A
LCALL CHKBFS
MOV A,#0A9H ; Select 1/32 Duty
MOVX @DPTR,A
LCALL CHKBFS
MOV A,#0AFH ; Display On
MOVX @DPTR,A
LCALL CHKBFS
MOV A,#0A0H ; Select ADC=0
MOVX @DPTR,A
LCALL CHKBFS
;-----------------------------------------------------------------
MOV DPTR,#BM12232A
LCALL WR12232BMP
MOV DLYTIME,#120
LCALL DELAY
JB PAUSE_FG,$ ; Pause_flag = 1 , Wait
; LCALL STEP12232
LJMP STEP12232
; LJMP TEST_SEL
;=============================================================================
TEST_GRA8: ; Program for LCM 12232B
; LCM CHIP : SED1520FAA ( EXT OSC )
;=============================================================================
MOV TL1,#11110000B
MOV TH1,#11111110B
ORL TMOD,#00010000B
SETB ET1
SETB TR1
SETB EA
MOV PR,#0B8H ; SET PAGE VALUE
MOV VR,#0C0H ; SET COM0
MOV HR,#000H ; SET SEG0
; CLR RST ;
; MOV DLYTIME,#1 ; Device Reset
; LCALL DELAY ;
; SETB RST ;
MOV DPTR,#EPC_COM_W
MOV A,#0E2H ; SET RESET
MOVX @DPTR,A
LCALL CHKBFS
MOV A,#0A4H ; Select Dynamic Driving
MOVX @DPTR,A
LCALL CHKBFS
MOV A,#0A9H ; Select 1/32 Duty
MOVX @DPTR,A
LCALL CHKBFS
MOV A,#0AFH ; Display On
MOVX @DPTR,A
LCALL CHKBFS
MOV A,#0A0H ; Select ADC=0
MOVX @DPTR,A
LCALL CHKBFS
;--------------------------------------
MOV DPTR,#BM12232B
LCALL WR12232BMP
MOV DLYTIME,#120
LCALL DELAY
JB PAUSE_FG,$ ; Pause_flag = 1 , Wait
;-----------------------------------------------------------------
; LCALL STEP12232
LJMP STEP12232
; CLR TR1
; CLR ET1
; LJMP TEST_SEL
;=================================================================
STEP12232:
MOV DTREG1,#0FFH
MOV DTREG2,#0FFH
LCALL EPSON_SCR
MOV DLYTIME,#40
LCALL DELAY
JB PAUSE_FG,$ ; Pause_flag = 1 , Wait
MOV DTREG1,#0FFH
MOV DTREG2,#000H
LCALL EPSON_SCR
MOV DLYTIME,#40
LCALL DELAY
JB PAUSE_FG,$ ; Pause_flag = 1 , Wait
MOV DTREG1,#000H
MOV DTREG2,#0FFH
LCALL EPSON_SCR
MOV DLYTIME,#40
LCALL DELAY
JB PAUSE_FG,$ ; Pause_flag = 1 , Wait
MOV DTREG1,#055H
MOV DTREG2,#055H
LCALL EPSON_SCR
MOV DLYTIME,#40
LCALL DELAY
JB PAUSE_FG,$ ; Pause_flag = 1 , Wait
MOV DTREG1,#0AAH
MOV DTREG2,#0AAH
LCALL EPSON_SCR
MOV DLYTIME,#40
LCALL DELAY
JB PAUSE_FG,$ ; Pause_flag = 1 , Wait
MOV DTREG1,#055H
MOV DTREG2,#0AAH
LCALL EPSON_SCR
MOV DLYTIME,#40
LCALL DELAY
JB PAUSE_FG,$ ; Pause_flag = 1 , Wait
MOV DTREG1,#0AAH
MOV DTREG2,#055H
LCALL EPSON_SCR
MOV DLYTIME,#40
LCALL DELAY
; RET
LJMP TEST_SEL
;--------------------------------------
EPSON_SCR:
MOV COUNTER,#4 ; 4 Pages
MOV PR,#0B8H ; Page = 00
LOOP_W_D0: MOV A,PR
MOV DPTR,#EPC_COM_W
MOVX @DPTR,A
LCALL CHKBFS
MOV A,#0C0H ; ROW = 00
MOVX @DPTR,A
LCALL CHKBFS
MOV A,#000H ; Column = 00
MOVX @DPTR,A
LCALL CHKBFS
MOV LOOPREG,#31 ; 61 Segments * 1/2
EP_CHIP1:
MOV A,DTREG1
MOV DPTR,#EPC_DT1_W
MOVX @DPTR,A
LCALL CHKBFS
MOV A,DTREG2
MOVX @DPTR,A
LCALL CHKBFS
DJNZ LOOPREG,EP_CHIP1
MOV LOOPREG,#31 ; 61 Segments * 1/2
EP_CHIP2:
MOV A,DTREG2
MOV DPTR,#EPC_DT2_W
MOVX @DPTR,A
LCALL CHKBFS
MOV A,DTREG1
MOVX @DPTR,A
LCALL CHKBFS
DJNZ LOOPREG,EP_CHIP2
INC PR
DJNZ COUNTER,LOOP_W_D0
RET
;--------------------------------------
WR12232BMP:
MOV LOOPREG,#61 ; 64 Segments * 1/2
MOV HR,#00000000B
ES1WRBMP: MOV PR,#0BBH
MOV COUNTER,#4 ; 8 Pages
PUSH DPH
PUSH DPL
MOV DPTR,#EPC_COM_W
MOV A,VR ; ROW = 00
MOVX @DPTR,A
LCALL CHKBFS
POP DPL
POP DPH
EP1WRPG:
PUSH DPL
PUSH DPH
MOV DPTR,#EPC_COM_W
MOV A,PR
MOVX @DPTR,A
LCALL CHKBFS
MOV A,HR ; Column = 00
MOVX @DPTR,A
LCALL CHKBFS
POP DPH
POP DPL
MOV A,#0
MOVC A,@A+DPTR
INC DPTR
PUSH DPL
PUSH DPH
MOV DPTR,#EPC_DT1_W
MOVX @DPTR,A
LCALL CHKBFS
POP DPH
POP DPL
DEC PR
DJNZ COUNTER,EP1WRPG
INC HR
DJNZ LOOPREG,ES1WRBMP
MOV LOOPREG,#61 ; 61 Segments
MOV HR,#00000000B
ES2WRBMP: MOV PR,#0BBH
MOV COUNTER,#4 ; 8 Pages
PUSH DPH
PUSH DPL
MOV DPTR,#EPC_COM_W
MOV A,VR ; ROW = 00
MOVX @DPTR,A
LCALL CHKBFS
POP DPL
POP DPH
EP2WRPG:
PUSH DPL
PUSH DPH
MOV DPTR,#EPC_COM_W
MOV A,PR
MOVX @DPTR,A
LCALL CHKBFS
MOV A,HR ; Column = 00++
MOVX @DPTR,A
LCALL CHKBFS
POP DPH
POP DPL
MOV A,#0
MOVC A,@A+DPTR
INC DPTR
PUSH DPL
PUSH DPH
MOV DPTR,#EPC_DT2_W
MOVX @DPTR,A
LCALL CHKBFS
POP DPH
POP DPL
DEC PR
DJNZ COUNTER,EP2WRPG
INC HR
DJNZ LOOPREG,ES2WRBMP
RET
;--------------------------------------
CHKBFS:
PUSH DPH
PUSH DPL
PUSH ACC
MOV DPTR,#EPC_COM_R
LP_EPCRD: MOVX A,@DPTR
JB ACC.7,LP_EPCRD
POP ACC
POP DPL
POP DPH
RET
;=============================================================================
TEST_SEG0: ; PROGRAM FOR OLL1002A
; LCM CHIP : HD44100
;=============================================================================
CLR SDA
CLR LAT
CLR SCL
MOV DPTR,#SEG1002T
MOV DTREG1,#12
LOOP_ADR:
MOV COUNTER,#8
LOOP_SCR:
MOV A,#0
MOVC A,@A+DPTR
MOV DATAREG,A
MOV LOOPREG,#8
MOV A,DATAREG
LOOP_SD8:
RRC A
SETB SCL
NOP
MOV SDA,C
NOP
CLR SCL
DJNZ LOOPREG,LOOP_SD8
DJNZ COUNTER,LOOP_SCR
SETB LAT
MOV DLYTIME,#1
LCALL DELAY
CLR LAT
MOV DLYTIME,#25
LCALL DELAY
INC DPTR
DJNZ DTREG1,LOOP_ADR
LCALL DISP_CLR
LJMP TEST_SEL
;------------------------------------------------
SEG1002T: ; OLL1002 DIGITAL MODULE
; BAFGEDCH
DB 00000000B ; EMPTY
DB 11101110B ; 0
DB 10000010B ; 1
DB 11011100B ; 2
DB 11010110B ; 3
DB 10110010B ; 4
DB 01110110B ; 5
DB 01111110B ; 6
DB 11000010B ; 7
DB 11111110B ; 8
DB 11110110B ; 9
DB 00000001B ; DOT
;=============================================================================
TEST_SEG1: ; PROGRAM FOR OLL1001A TESTING
; Chip Type : HT1621
;=============================================================================
LCALL CLR_DDRAM
MOV DLYTIME,#1
LCALL DELAY
;---------------------------------------------------------------
; Initialize Display Device
;---------------------------------------------------------------
LCALL LOAD_CODE
LCALL LOAD_ADDR
MOV R0,#CODERAM
MOV ST1,#12
LCALL SEND_BIT
SETB CS_
INC R0
MOV ST1,#12
LCALL SEND_BIT
SETB CS_
INC R0
MOV ST1,#12
LCALL SEND_BIT
SETB CS_
INC R0
MOV ST1,#12
LCALL SEND_BIT
SETB CS_
;---------------------------------------------------------------
; FULL Disp And Sound, WDT output --> IRQ
;---------------------------------------------------------------
NORMAL:
MOV DPTR,#TABLE_DD
MOV R0,#DISPRAM
MOV LOOPREG,#16
MOV TEPOINT,#18 ; Full display
MOV A,TEPOINT
MOVC A,@A+DPTR
LOOP_ADD:
MOV @R0,A
INC R0
DJNZ LOOPREG,LOOP_ADD
LCALL DISPLAY
MOV DLYTIME,#25
LCALL DELAY
;-------------------------------------------
MOV DPTR,#TABLE_DD
MOV LOOPREG,#11
MOV A,#0
MOV TEPOINT,A
EX_LOOP:
MOV COUNTER,#16
MOV R0,#DISPRAM
MOV A,TEPOINT
MOVC A,@A+DPTR
IN_LOOP:
MOV @R0,A
INC R0
DJNZ COUNTER,IN_LOOP
LCALL DISPLAY
MOV DLYTIME,#25
LCALL DELAY
INC TEPOINT
DJNZ LOOPREG,EX_LOOP
;----------------------------------
LJMP TEST_SEL
;---------------------------------------------------------------
; Clear Display Data area
;---------------------------------------------------------------
CLR_DDRAM:
MOV R0,#DISPRAM
MOV LOOPREG,#16
LOOPCLR:
MOV @R0,#0
INC R0
DJNZ LOOPREG,LOOPCLR
RET
;---------------------------------------------------------------
; Write Display Data to Display at Spacery address
;---------------------------------------------------------------
DISPLAY:
MOV R0,#DISPADR
MOV ST1,#9
LCALL SEND_BIT
MOV R0,#DISPRAM
MOV ST1,#128
LCALL SEND_BIT
SETB CS_ ; Reset Display, De-select Display
RET
;---------------------------------------------------------------
; Display Command_Code Restore into RAM area
;---------------------------------------------------------------
LOAD_CODE:
MOV LOOPREG,#16
MOV DPTR,#TABLE_ID
MOV R0,#CODERAM
LPLOADID: MOV A,#00
MOVC A,@A+DPTR
MOV @R0,A
INC R0
INC DPTR
DJNZ LOOPREG,LPLOADID
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -