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

📄 tlcm101.asm

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