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

📄 tlcm101.asm

📁 lcm测试程序,对LCM设计者有帮助,希望大家能用上.
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	   RET
;----------------------------------
LOAD_ADDR:
	   MOV	   LOOPREG,#2
	   MOV	   DPTR,#TABLE_AD
	   MOV	   R0,#DISPADR
LPLOADAD:  MOV	   A,#00
	   MOVC    A,@A+DPTR
	   MOV	   @R0,A
	   INC	   R0
	   INC	   DPTR
	   DJNZ    LOOPREG,LPLOADAD
	   RET
;---------------------------------------------------------------
;      Display Device Code and data BIT translate
;---------------------------------------------------------------
SEND_BIT:
	   CLR	   CS_		       ; CHIP ENABLE
  DTW:	   MOV	   ST2,#8
	   MOV	   A,@R0
	   CLR	   C
DW_CLK:
	   CLR	   WR_
	   RLC	   A

	   MOV	   MSG,C
	   NOP
	   SETB    WR_
	   NOP
	   DJNZ    ST1,CONT
	   RET
   CONT:   DJNZ    ST2,DW_CLK
	   INC	   R0
	   JMP	   DTW
;===============================================================
;      CODE and Digital CHAR module TABLE area
;---------------------------------------------------------------
TABLE_ID:
	   DB	   10000000B	       ; 1 Byte
	   DB	   00100000B	       ; Turn ON system oscillator
	   DB	   10000011B	       ; 3 Byte
	   DB	   00000000B	       ; On-chip RC oscillator
	   DB	   10000101B	       ; 5 Byte
	   DB	   00100000B	       ; 1/3 Bias, 1/4 Duty LCD type
	   DB	   10000000B	       ; 7 Byte
	   DB	   01100000B	       ; LCD ON

TABLE_AD:
	   DB	   10100000B	       ; Display first address is 00H
	   DB	   00000000B	       ; First Output is SEG0

TABLE_DD:
	   DB	   11101011B	       ; 0	       ; 0
	   DB	   01100000B	       ; 1	       ; 1
	   DB	   11000111B	       ; 2	       ; 2
	   DB	   11100101B	       ; 3	       ; 3
	   DB	   01101100B	       ; 4	       ; 4
	   DB	   10101101B	       ; 5	       ; 5
	   DB	   10101111B	       ; 6	       ; 6
	   DB	   11100000B	       ; 7	       ; 7
	   DB	   11101111B	       ; 8	       ; 8
	   DB	   11101101B	       ; 9	       ; 9
	   DB	   00010000B	       ; DOT	       ; 10
	   DB	   11101110B	       ; A	       ; 11
	   DB	   00101111B	       ; b	       ; 12
	   DB	   00000111B	       ; c	       ; 13
	   DB	   01100111B	       ; d	       ; 14
	   DB	   10001111B	       ; E	       ; 15
	   DB	   10001110B	       ; F	       ; 16
	   DB	   00000000B	       ; EMPTY	       ; 17
	   DB	   11111111B	       ; FULL	       ; 18
	   DB	   00000100B	       ; -	       ; 19
	   DB	   00100111B	       ; o	       ; 20
	   DB	   00000110B	       ; r	       ; 21
	   DB	   10101011B	       ; G	       ; 22
;=============================================================================
TEST_SEG2:			       ; Program for Telephone type LCM TEST
				       ; Chip type : HT1611/3/6/A
;=============================================================================
	   SETB    RST
	   SETB    HK_			       ; HK  =1
	   SETB    SK_			       ; SK  =1
	   SETB    DI			       ; DI  =1
	   CLR	   HK_			       ; HK  =0

	   MOV	   COUNTER,#16
;	   MOV	   LOOPREG,#10
;	   MOV	   DPTR,#TABLE_T
	   MOV	   DPTR,#TABLE

WR_CON:    CLR	   A
	   MOVC    A,@A+DPTR
	   MOV	   ST1,#4

	   CLR	   C
LOOP:
	   CPL	   SK_
	   RLC	   A
	   MOV	   DI,C
	   NOP
	   NOP
	   CPL	   SK_
	   DJNZ    ST1,LOOP
	   MOV	   DLYTIME,#1
	   LCALL   DELAY
	   INC	   DPTR
	   DJNZ    COUNTER,WR_CON
	   MOV	   DLYTIME,#25
	   LCALL   DELAY

;	   INC	   DPTR
;	   DJNZ    LOOPREG,WR_CON

	   LJMP    TEST_SEL
;--------------------------------------
TABLE_T:
DB	   0A0H,10H,20H,30H,40H,50H,60H,70H,80H,90H
TABLE:
DB	   0B0H,00H,0F0H,00H,50H,60H,70H,80H
DB	   90H,0A0H,10H,40H,80H,10H,10H,90H

;
;***** Chip type COMMON subroutine **********************************
;
T6963C_APPS:
	   MOV	   DLYTIME,#1
	   LCALL   DELAY
	   CLR	   RST		       ; Reset T6963C
	   NOP
	   NOP
	   SETB    RST
	   NOP
	   NOP

	   MOV	   IR,#90H	       ; Turn off Display
	   LCALL   COMMAND_WR

	   MOV	   R0,#00H	       ; Graphic Home Address set 0000H
	   MOV	   R1,#00H
	   LCALL   DT2
	   MOV	   IR,#42H	       ; GR_HOME SET_COM
	   LCALL   COMMAND_WR

	   MOV	   R0,COL_N	       ; Graphic area set COLUMNS = 20,30
	   MOV	   R1,#00H
	   LCALL   DT2
	   MOV	   IR,#43H	       ; GR_AREA SET_COM
	   LCALL   COMMAND_WR

	   MOV	   R0,#00H	       ; Set Cousor Pointer LOCATE 0000H
	   MOV	   R1,#00H
	   LCALL   DT2
	   MOV	   IR,#21H	       ; CS_PT SET_COM
	   LCALL   COMMAND_WR

	   MOV	   IR,#80H	       ; Mode Set (OR Internal CHR_Gen Mode)
	   LCALL   COMMAND_WR

	   MOV	   IR,#93H	       ; Display Mode Set (T_on,G_on,C_on)
	   LCALL   COMMAND_WR
;--------------------------------------; Only Graphic mode
	   MOV	   DATAREG,#0FFH
	   LCALL   ALLSCR
	   LCALL   DELAYL
	   JB	   PAUSE_FG,$		       ; Pause_flag = 1 , Wait
	   MOV	   DATAREG,#000H
	   LCALL   ALLSCR
	   MOV	   DATAREG,#0AAH
	   LCALL   ALLSCR
	   LCALL   DELAYL
	   JB	   PAUSE_FG,$		       ; Pause_flag = 1 , Wait
	   MOV	   DATAREG,#055H
	   LCALL   ALLSCR
	   LCALL   DELAYL
	   JB	   PAUSE_FG,$		       ; Pause_flag = 1 , Wait
	   MOV	   DATAREG,#000H
	   LCALL   ALLSCR
;--------------------------------------
	   MOV	   IR, #90H	       ; TURN OFF DISPLAY
	   LCALL   COMMAND_WR
	   MOV	   R0,#000H	       ; ADDRESS POINTER 0000H
	   MOV	   R1,#000H	       ; R1-->ADDR_H, R0-->ADDR_L
	   LCALL   DT2
	   MOV	   IR,#24H	       ; Write address
	   LCALL   COMMAND_WR
	   MOV	   R6,ROW_N
H1_LOOT:   MOV	   R7,COL_N
H1_LOO1:   MOV	   A,#0FFH
	   LCALL   DT1
	   MOV	   IR,#0C0H
	   LCALL   COMMAND_WR
	   DJNZ    R7,H1_LOO1
	   MOV	   R7,COL_N
H1_LOO2:   MOV	   A,#000H
	   LCALL   DT1
	   MOV	   IR,#0C0H
	   LCALL   COMMAND_WR
	   DJNZ    R7,H1_LOO2
	   DJNZ    R6,H1_LOOT
	   MOV	   IR,#98H
	   LCALL   COMMAND_WR

	   LCALL   DELAYL
	   JB	   PAUSE_FG,$		       ; Pause_flag = 1 , Wait
;--------------------------------------
	   MOV	   IR, #90H	       ; TURN OFF DISPLAY
	   LCALL   COMMAND_WR
	   MOV	   R0,#000H	       ; ADDRESS POINTER 0078H
	   MOV	   R1,#000H	       ; R1-->ADDR_H, R0-->ADDR_L
	   LCALL   DT2
	   MOV	   IR,#24H
	   LCALL   COMMAND_WR
	   MOV	   R6,ROW_N
H2_LOOT:   MOV	   R7,COL_N
H2_LOO1:   MOV	   A,#000H
	   LCALL   DT1
	   MOV	   IR,#0C0H
	   LCALL   COMMAND_WR
	   DJNZ    R7,H2_LOO1
	   MOV	   R7,COL_N
H2_LOO2:   MOV	   A,#0FFH
	   LCALL   DT1
	   MOV	   IR,#0C0H
	   LCALL   COMMAND_WR
	   DJNZ    R7,H2_LOO2
	   DJNZ    R6,H2_LOOT
	   MOV	   IR,#98H
	   LCALL   COMMAND_WR

	   LCALL   DELAYL
	   JB	   PAUSE_FG,$		       ; Pause_flag = 1 , Wait
;--------------------------------------
	   MOV	   IR, #90H	       ; TURN OFF DISPLAY
	   LCALL   COMMAND_WR
	   MOV	   R0,#000H	       ; ADDRESS POINTER 0078H
	   MOV	   R1,#000H	       ; R1-->ADDR_H, R0-->ADDR_L
	   LCALL   DT2
	   MOV	   IR,#24H
	   LCALL   COMMAND_WR
	   MOV	   R6,ROW_N
X1_LOOT:   MOV	   R7,COL_N
X1_LOO1:   MOV	   A,#0AAH
	   LCALL   DT1
	   MOV	   IR,#0C0H
	   LCALL   COMMAND_WR
	   DJNZ    R7,X1_LOO1
	   MOV	   R7,COL_N
X1_LOO2:   MOV	   A,#055H
	   LCALL   DT1
	   MOV	   IR,#0C0H
	   LCALL   COMMAND_WR
	   DJNZ    R7,X1_LOO2
	   DJNZ    R6,X1_LOOT
	   MOV	   IR,#98H
	   LCALL   COMMAND_WR

	   LCALL   DELAYL
	   JB	   PAUSE_FG,$		       ; Pause_flag = 1 , Wait
;--------------------------------------
	   MOV	   IR, #90H	       ; TURN OFF DISPLAY
	   LCALL   COMMAND_WR
	   MOV	   R0,#000H	       ; ADDRESS POINTER 0078H
	   MOV	   R1,#000H	       ; R1-->ADDR_H, R0-->ADDR_L
	   LCALL   DT2
	   MOV	   IR,#24H
	   LCALL   COMMAND_WR
	   MOV	   R6,ROW_N
X2_LOOT:   MOV	   R7,COL_N
X2_LOO1:   MOV	   A,#055H
	   LCALL   DT1
	   MOV	   IR,#0C0H
	   LCALL   COMMAND_WR
	   DJNZ    R7,X2_LOO1
	   MOV	   R7,COL_N
X2_LOO2:   MOV	   A,#0AAH
	   LCALL   DT1
	   MOV	   IR,#0C0H
	   LCALL   COMMAND_WR
	   DJNZ    R7,X2_LOO2
	   DJNZ    R6,X2_LOOT
	   MOV	   IR,#98H
	   LCALL   COMMAND_WR
	   LCALL   DELAYL
	   JB	   PAUSE_FG,$		       ; Pause_flag = 1 , Wait

	   LCALL   DISP_BMP
	   JB	   PAUSE_FG,$		       ; Pause_flag = 1 , Wait

	   LJMP    TEST_SEL
;----------------------------------------------------------
;					   Display Bitmap
;----------------------------------------------------------
DISP_BMP:
	   MOV	   A,TESTPRG
	   XRL	   A,#1
	   JZ	   GRA240128
	   MOV	   A,TESTPRG
	   XRL	   A,#2
	   JZ	   GRA24066A
	   MOV	   A,TESTPRG
	   XRL	   A,#3
	   JZ	   GRA24064A
	   MOV	   A,TESTPRG
	   XRL	   A,#4
	   JZ	   GRA16064A
	   MOV	   A,TESTPRG
	   XRL	   A,#7
	   JZ	   GRA12864B
	   AJMP    EXITBMP
GRA240128:
	   MOV	   DPTR,#BM240128
	   AJMP    WR_BMP
GRA24066A:
	   MOV	   DPTR,#BM24066A
	   AJMP    WR_BMP
GRA24064A:
	   MOV	   DPTR,#BM24064A
	   AJMP    WR_BMP
GRA16064A:
	   MOV	   DPTR,#BM16064A
	   AJMP    WR_BMP
GRA12864B:
	   MOV	   DPTR,#BM12864B
   WR_BMP:
	   MOV	   IR, #90H	       ; TURN OFF DISPLAY
	   LCALL   COMMAND_WR
	   MOV	   R0,#00H	       ; ADDRESS POINTER 0000H
	   MOV	   R1,#00H
	   LCALL   DT2
	   MOV	   IR,#24H
	   LCALL   COMMAND_WR
	   MOV	   R6,ROW_N
   LOP1:   MOV	   R7,COL_N
   LOP2:   CLR	   A
	   MOVC    A,@A+DPTR
	   LCALL   DT1
	   MOV	   IR,#0C0H
	   LCALL   COMMAND_WR
	   INC	   DPTR
	   DJNZ    R7,LOP2
	   JB	   SMALL_SCR,SJNEXT
	   INC	   DPTR
	   INC	   DPTR
   SJNEXT: DJNZ    R6,LOP1
	   MOV	   IR,#98H
	   LCALL   COMMAND_WR
	   LCALL   DELAYL
	   CLR	   SMALL_SCR
EXITBMP:   RET
;----------------------------------------------------------
ALLSCR:
	   MOV	   IR, #90H	       ; Turn off Display
	   LCALL   COMMAND_WR
;------------------------------------------------
	   MOV	   R0,#00H	       ; Address pointer 0000H
	   MOV	   R1,#00H
	   LCALL   DT2
	   MOV	   IR,#24H
	   LCALL   COMMAND_WR
;------------------------------------------------
	   MOV	   R6, ROW_N	       ; R6*R7*8 Dots
  SLOOP1:  MOV	   R7, COL_N	       ; R6*R7 DDRAM Units
  SLOOP2:  MOV	   A,DATAREG
	   LCALL   DT1
	   MOV	   IR,#0C0H
	   LCALL   COMMAND_WR
	   DJNZ    R7,SLOOP2
	   DJNZ    R6,SLOOP1
;------------------------------------------------
	   MOV	   IR,#98H
	   LCALL   COMMAND_WR
;------------------------------------------------
	   RET

;----------------------------------------------------------
;SubRoutine:COMMMAND WRITE,1&2-BYTE DATA WRITE,AUTO WRITE MODE,DELAY&DELAYA
;----------------------------------------------------------
COMMAND_WR:
	   PUSH    ACC
	   PUSH    DPH
	   PUSH    DPL
	   MOV	   DPTR,#TSC_COM_W
	   MOV	   A,IR
	   MOVX    @DPTR,A
	   POP	   DPL
	   POP	   DPH
	   POP	   ACC
	   RET

DT1:				       ; Data WR ( 1 Byte )
	   PUSH    ACC
	   PUSH    DPH
	   PUSH    DPL
	   MOV	   DPTR,#TSC_DAT_W
	   MOVX    @DPTR,A
	   POP	   DPL
	   POP	   DPH
	   POP	   ACC
	   RET

DT2:				       ; Data WR ( 2 Byte )
	   PUSH    ACC
	   PUSH    DPH
	   PUSH    DPL
	   MOV	   DPTR,#TSC_DAT_W
	   MOV	   A,R0
	   MOVX    @DPTR,A

	   MOV	   A,R1
	   MOVX    @DPTR,A
	   POP	   DPL
	   POP	   DPH
	   POP	   ACC
	   RET
;----------------------------------------------------------
;      Clear screen		       ; T6963C
;----------------------------------------------------------
CLRSCR:
	   MOV	   R0,#00H
	   MOV	   R1,#00H	       ; SET ADDRESS POINTER TO 0000H
	   LCALL   DT2		       ; (GRAPHIC HOME ADDRESS)
	   MOV	   IR,#24H	       ; ADPSET
	   LCALL   COMMAND_WR

	   MOV	   IR,#0B0H	       ; (Data Auto WR Set)
	   LCALL   COMMAND_WR

	   MOV	   R2,#01FH	       ; Clear ALL 8K
CLR1:	   MOV	   R3,#0FFH
CLR2:	   MOV	   A,#DATAREG	       ; DATA WRITE
	   LCALL   ADT		       ; (BLANK CODE WRITE)
	   DJNZ    R3,CLR2
	   DJNZ    R2,CLR1

	   MOV	   IR,#0B2H	       ; (Auto Reset)
	   LCALL   COMMAND_WR
	   RET

ADT:				       ; Auto WR Mode
	   PUSH    ACC
	   PUSH    DPH
	   PUSH    DPL
	   MOV	   DPTR,#TSC_DAT_W
	   MOVX    @DPTR,A
	   POP	   DPL
	   POP	   DPH
	   POP	   ACC
	   RET
;********************************************************************
;		 Display Data Area (BITMAP)
;********************************************************************

;----------------------------
	   ORG	   3000H
A1286401:
	   ORG	   3400H
A1286402:
	   ORG	   3800H
A1286403:
	   ORG	   3C00H
;----------------------------
	   ORG	   4000H
BM240128:
	   ORG	   5000H
BM24066A:
	   ORG	   5840H
BM24064A:
	   ORG	   6040H
BM16064A:
	   ORG	   6540H
BM16064B:
	   ORG	   6A40H
BM12864A:
	   ORG	   6E40H
BM12864B:
	   ORG	   7240H
BM12232A:
	   ORG	   7428H
BM12232B:
	   ORG	   7610H
CHRTABLE:
	   ORG	   7C50H
SEGTABLE:

;
;********************************************************************
	   END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -