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

📄 tft_drv_4805.asm

📁 autftlcd 1.7 driver
💻 ASM
📖 第 1 页 / 共 2 页
字号:
.nolist	
include HT48R06A-1.INC
;#define OV7930

.list
.listmacro
#define pTvpSCL     pC.0
#define pTvpSDA     pC.1
#define pOnOff      pa.2
#define pPower      pa.3
#define pTftCs      pa.4
#define pTftScl     pa.5
#define pTftSda     pa.6
#define pTvpRst     pa.7

#define pTvpSCLC    pCc.0
#define pTvpSDAC    pCc.1
#define pOnOffC     pac.2
#define pPowerC     pac.3
#define pTftCsC     pac.4
#define pTftSclC    pac.5
#define pTftSdaC    pac.6
#define pTvpRstC    pac.7
#define	b_vsync		pb.2

#define PKEY0C    pAc.0
#define PKEY1C    pAc.1
#define PKEY2C    pAc.2

;#define pStdSel     pb.0
;#define pStdSelC    pbc.0

#define TVP5150WrAddr   0BAh
#define TVP5150RdAddr   0BBh

#define	D_SCAN_KEYBUFFER	7aH
#define	D_DEBOUNCETIME		38
#define	D_PRESS_DELAY		28
#define	D_UNIT			1

    data .section 'data'
    r_Temp          db  ?
    r_CmdAddr       db  ?
    r_CmdData       db  ?

    ;r_contrast      db  ?
    ;r_saturation    db  ?
    ;r_brightness    db  ?

    r_keybuf        db  ?
    r_keyCode       db  ?
    R_KEYCODEBK		DB	?
    r_DebounceTime  db  ?
    R_PORT_TEMP		DB	?
    r_flags         db  ?
    
    r_counter0		db	?
    r_counter1		db	?
    r_DelayTime		db	?
    
    R_MODE		DB	?
    R_BRIGHT		DB	?
    R_CONSTAST		DB	?
    R_COLOR		DB	?
    R_HUE		DB	?
    ;R_BRIGHT_R		DB	?
    ;R_BRIGHT_B		DB	?
    ;R_CONSTAST_R	DB	?
    ;R_CONSTAST_B	DB	?
    R_FLIP		DB	?
    
    T_SCAN_TEMP1	DB	?
    R_PRESS_DELAY	DB	?
    R_PRESS_SEL		DB	?
    r_times		db	?
#define b_Debounce  	 r_flags.7
#define b_PowerKey1st  	 r_flags.6
#define	b_color		r_flags.5
#define	b_hue		r_flags.4
;#define B_BRIGHT_R	R_FLAGS.5		;0 +,1 -
;#define B_BRIGHT_B	R_FLAGS.4		;0 +,1 -
;#define B_CONSTAST_R	R_FLAGS.3		;0 +,1 -
;#define B_CONSTAST_B	R_FLAGS.2		;0 +,1 -
#define	b_first		r_flags.1

;#define __DEBUG__
code .section at 0 'code'
    org 00h
	nop
	nop
	nop
    jmp     v_reset
    org 04h
    ret    ;v_extint
    org 08h
    ret    ;v_timer0
    ;org 0ch
    ;ret    ;v_timer1
v_reset:
	;nop
	;nop
	nop
    clr     pb
	clr     pbc
	;mov	a,00000100b
	;mov	pbc,a
	;set	pb2
	clr     pc
	clr     pcc

    clr     intc  
	mov		a,7
    mov     wdts,a
	clr		wdt
	;clr		wdt2
    ;clr ram
    mov     a,40h
    mov     mp0,a
    clr     [00h]
    siz     mp0
    jmp     $-2
    ;standart banding option check
    ;set     pStdSelC
    ;jmp     $+1
    ;jmp     $+1
    ;clr     b_VideoStdPal
    ;snz     pStdSel             ;default NTSC
    ;set     b_VideoStdPal       ;Low PAL
    ;clr     pStdSel
    ;clr     pStdSelC
;set     b_VideoStdPal
    
    ;init io
    mov     a,11111111b         ;tvp_rst,tft_sda,tft_scl,tft_cs,PwrCtrl,OnoffKey,TvpSda,TvpScl
    mov     pa,a
    mov     a,00000111b
    mov     pac,a

;
	MOV	A,3
	MOV	R_TEMP,A
	;
L_DELLOOP:
	MOV	A,100
	CALL	F_DELAY1MS
	SDZ	R_TEMP
	JMP	L_DELLOOP
	clr		pTvpRst
	
    ;mov     a,(7+12)%16     ;3
    ;mov     r_contrast,a
    ;mov     r_saturation,a
    ;mov     a,(9+12)%16     ;5
    ;mov     r_brightness,a

    mov     a,10
    call    f_delay1ms
    ;reset Tvp5150
    set     pTvpRst             ;reset Tvp5150 end
    
    mov     a,60
    call    f_delay1ms          ;wait tvp5150 init end

    ;init TVP5150A/AM
    mov     a,low(T_Tvp5150Cmd)
    mov     tblp,a
l_Tvp5150InitLoop:
    clr     wdt
    ;clr     wdt2
    call    f_GetPageData
    mov     r_CmdAddr,a
    inc     tblp
    call    f_GetPageData
    mov     r_CmdData,a
    call    f_Tvp5150Cmd
    inc     tblp
    mov     a,tblp
    sub     a,low(T_Tvp5150CmdEnd)  ;if >= c=1
    snz     c
    jmp     l_Tvp5150InitLoop
    ;init AUO panel
;
;**************************
;INIT LCD
	MOV	A,7bH	
	MOV	R_FLIP,A		;CCIR656
	MOV	A,128			;2EH
	MOV	R_BRIGHT,A
	MOV	A,128			;4BH
	MOV	R_CONSTAST,A
	mov	a,128
	mov	r_color,a
	mov	r_hue,a
;	CLR	R_MODE
;	JMP	L_MODE1
    mov     a,52
    call    f_delay1ms 
;init AUO panel
    mov     a,low(T_AuoPanelCmd)
    mov     tblp,a
l_AuoInitLoop:
    call    f_GetPageData
    mov     r_CmdAddr,a
    inc     tblp
    call    f_GetPageData
    mov     r_CmdData,a    
    call    f_AuoPanelCmd
    inc     tblp
    mov     a,tblp
    sub     a,low(T_AuoPanleCmdEnd)  ;if >= c=1
    snz     c
    jmp     l_AuoInitLoop    
    
   
    
    
    
 	
    
    
   
;************************************************************************************************ 
L_CHKKEY_LOOP:
	CLR	WDT
	;CLR	WDT2
	MOV	A,1
	CALL	F_DELAY1MS
	SZ	R_PRESS_DELAY
	DEC	R_PRESS_DELAY
	
	SZ	R_DEBOUNCETIME
	DEC	R_DEBOUNCETIME
	;
	
	
	
	CALL	F_GETKEY
	SZ	R_KEYCODE.7
	JMP	L_ENTERSLEEP_RE
	;
	JMP	L_KEYMAP
	JMP	L_CHKKEY_LOOP
;
L_ENTERSLEEP_RE:
	SZ	R_PRESS_SEL
	JMP	L_PRESS_SEL

L_ENTERSLEEP:
	SZ	R_DEBOUNCETIME
	JMP	L_CHKKEY_LOOP
	;SZ	R_PRESS_SEL
	;JMP	L_CHKKEY_LOOP
	;SZ	[7DH]
	;JMP	L_CHKKEY_LOOP
	;SZ	[7EH]
	;JMP	L_CHKKEY_LOOP
	;
	CLR	[7aH]
	CLR	[7bH]
	CLR	[7cH]
	CLR	PB0
	CLR	PB1
	;CLR	PB2
	SET	PKEY0C
	SET	PKEY1C
	SET	PKEY2C
	
	NOP
	HALT
	NOP
	NOP
	CLR	WDT
	;CLR	WDT2
	CLR	R_PRESS_DELAY
	;SET	PB0
	JMP	L_CHKKEY_LOOP
;
;********
L_PRESS_SEL:
	SZ	R_PRESS_DELAY
	JMP	L_CHKKEY_LOOP
	;
	JMP	L_PRESS_JMP
;*****************************************************************
;*************
;BRIGHT DEC
;*************
L_ADJBRIGHTNESS_DEC:
	MOV	A,1
	MOV	R_PRESS_SEL,A
	
	MOV	A,250
	MOV	R_PRESS_DELAY,A
	JMP	L_ADJBRIGHTNESS_DEC2
L_ADJBRIGHTNESS_DEC1:
	MOV	A,D_PRESS_DELAY
	MOV	R_PRESS_DELAY,A
L_ADJBRIGHTNESS_DEC2:	
	MOV	A,R_BRIGHT
	SUB	A,D_UNIT
	MOV	R_BRIGHT,A
	SZ	C
	JMP	L_BRIGHT_COM
	CLR	R_BRIGHT
	
L_BRIGHT_COM:	
	mov	a,9			;BRIGHT
	mov	r_cmdaddr,a
	mov	a,R_BRIGHT
	mov	r_cmddata,a
	call    f_Tvp5150Cmd
	JMP	L_CHKKEY_LOOP
;	
;****************
;BRIGHT ADD
;****************	
L_ADJBRIGHTNESS_ADD:
	MOV	A,2
	MOV	R_PRESS_SEL,A
	
	MOV	A,250
	MOV	R_PRESS_DELAY,A
	JMP	L_ADJBRIGHTNESS_ADD2
L_ADJBRIGHTNESS_ADD1:
	MOV	A,D_PRESS_DELAY
	MOV	R_PRESS_DELAY,A
L_ADJBRIGHTNESS_ADD2:	
	MOV	A,D_UNIT
	ADDM	A,R_BRIGHT
	SNZ	C
	JMP	L_BRIGHT_COM
	SET	R_BRIGHT
	JMP	L_BRIGHT_COM
;;
;*************
;CONSTAST DEC
;*************
L_ADJCONSTAST_DEC:
	MOV	A,3
	MOV	R_PRESS_SEL,A
	
	MOV	A,250
	MOV	R_PRESS_DELAY,A
	JMP	L_ADJCONSTAST_DEC2
L_ADJCONSTAST_DEC1:
	MOV	A,D_PRESS_DELAY
	MOV	R_PRESS_DELAY,A
L_ADJCONSTAST_DEC2:	
	MOV	A,R_CONSTAST
	SUB	A,D_UNIT
	MOV	R_CONSTAST,A
	SZ	C
	JMP	L_CONSTAST_COM
	CLR	R_CONSTAST
	
L_CONSTAST_COM:	
	mov	a,0ch			;CONSTAST
	mov	r_cmdaddr,a
	mov	a,R_CONSTAST
	mov	r_cmddata,a
	call    f_Tvp5150Cmd
	JMP	L_CHKKEY_LOOP
;	
;****************
;CONSTAST ADD
;****************	
L_ADJCONSTAST_ADD:
	MOV	A,4
	MOV	R_PRESS_SEL,A
	
	MOV	A,250
	MOV	R_PRESS_DELAY,A
	JMP	L_ADJCONSTAST_ADD2
L_ADJCONSTAST_ADD1:
	MOV	A,D_PRESS_DELAY
	MOV	R_PRESS_DELAY,A
L_ADJCONSTAST_ADD2:	
	MOV	A,D_UNIT
	ADDM	A,R_CONSTAST
	SNZ	C
	JMP	L_CONSTAST_COM
	SET	R_CONSTAST
	JMP	L_CONSTAST_COM
	
;
;*************
;COLOR DEC
;*************
L_ADJCOLOR_DEC:
	MOV	A,5
	MOV	R_PRESS_SEL,A
	
	MOV	A,250
	MOV	R_PRESS_DELAY,A
	JMP	L_ADJCOLOR_DEC2
L_ADJCOLOR_DEC1:
	MOV	A,D_PRESS_DELAY
	MOV	R_PRESS_DELAY,A
L_ADJCOLOR_DEC2:	
	MOV	A,R_COLOR
	SUB	A,D_UNIT
	MOV	R_COLOR,A
	SZ	C
	JMP	L_COLOR_COM
	CLR	R_COLOR
	
L_COLOR_COM:	
	mov	a,0AH			;BRIGHT
	mov	r_cmdaddr,a
	mov	a,R_COLOR
	mov	r_cmddata,a
	call    f_Tvp5150Cmd
	JMP	L_CHKKEY_LOOP
;	
;****************
;BRIGHT ADD
;****************	
L_ADJCOLOR_ADD:
	MOV	A,6
	MOV	R_PRESS_SEL,A
	
	MOV	A,250
	MOV	R_PRESS_DELAY,A
	JMP	L_ADJCOLOR_ADD2
L_ADJCOLOR_ADD1:
	MOV	A,D_PRESS_DELAY
	MOV	R_PRESS_DELAY,A
L_ADJCOLOR_ADD2:	
	MOV	A,D_UNIT
	ADDM	A,R_COLOR
	SNZ	C
	JMP	L_COLOR_COM
	SET	R_COLOR
	JMP	L_COLOR_COM
;;
;*************
;HUE DEC
;*************
L_ADJHUE_DEC:
	MOV	A,7
	MOV	R_PRESS_SEL,A
	
	MOV	A,250
	MOV	R_PRESS_DELAY,A
	JMP	L_ADJHUE_DEC2
L_ADJHUE_DEC1:
	MOV	A,D_PRESS_DELAY
	MOV	R_PRESS_DELAY,A
L_ADJHUE_DEC2:	
	MOV	A,R_HUE
	SUB	A,D_UNIT
	MOV	R_HUE,A
	SZ	C
	JMP	L_HUE_COM
	CLR	R_HUE
	
L_HUE_COM:	
	mov	a,0Bh			;CONSTAST
	mov	r_cmdaddr,a
	mov	a,R_HUE
	add	a,80h
	mov	r_cmddata,a
	call    f_Tvp5150Cmd
	JMP	L_CHKKEY_LOOP
;	
;****************
;HUE ADD
;****************	
L_ADJHUE_ADD:
	MOV	A,8
	MOV	R_PRESS_SEL,A
	
	MOV	A,250
	MOV	R_PRESS_DELAY,A
	JMP	L_ADJHUE_ADD2
L_ADJHUE_ADD1:
	MOV	A,D_PRESS_DELAY
	MOV	R_PRESS_DELAY,A
L_ADJHUE_ADD2:	
	MOV	A,D_UNIT
	ADDM	A,R_HUE
	SNZ	C
	JMP	L_HUE_COM
	SET	R_HUE
	JMP	L_HUE_COM




;;***************************
;;***************
;;adj COLOR
;;***************
;L_ADJCOLOR:
;	MOV	A,5
;	MOV	R_PRESS_SEL,A
;	
;
;
;L_ADJCOLOR1:
;	MOV	A,D_PRESS_DELAY
;	MOV	R_PRESS_DELAY,A
;	;
;	SZ	B_COLOR
;	JMP	L_ADJCOLOR_DEC
;L_ADJCOLOR_ADD:
;	mov	a,D_UNIT
;	ADDM	A,R_COLOR
;	
;
;	;MOV	A,COLOR
;	;SUB	A,0FFH
;	SNZ	C
;	JMP	L_COLOR_COM
;L_ADJCOLOR_ADD1:
;	SET	B_COLOR
;	MOV	A,0FFH
;	MOV	R_COLOR,A
;	JMP	L_COLOR_COM
;;
;L_ADJCOLOR_DEC:
;	MOV	A,R_COLOR
;	SUB	A,D_UNIT
;	MOV	R_COLOR,A
;	SZ	C
;	JMP	L_COLOR_COM
;
;	CLR	B_COLOR
;	CLR	R_COLOR
;	
;L_COLOR_COM:
;	MOV	A,0AH	
;	mov     r_CmdAddr,a
;	MOV	A,R_COLOR
;    mov     r_CmdData,a
;    call    f_Tvp5150Cmd
;	JMP	L_CHKKEY_LOOP
;;	
;;***************
;;adj HUE
;;***************
;L_ADJHUE:
;	MOV	A,6
;	MOV	R_PRESS_SEL,A
;	
;
;
;L_ADJHUE1:
;	MOV	A,D_PRESS_DELAY
;	MOV	R_PRESS_DELAY,A
;	;
;	SZ	B_HUE
;	JMP	L_ADJHUE_DEC
;L_ADJHUE_ADD:
;	mov	a,D_UNIT
;	ADDM	A,R_HUE
;	
;
;	;MOV	A,HUE
;	;SUB	A,0FFH
;	SNZ	C
;	JMP	L_HUE_COM
;L_ADJHUE_ADD1:
;	SET	B_HUE
;	MOV	A,0FFH
;	MOV	R_HUE,A
;	JMP	L_HUE_COM
;;
;L_ADJHUE_DEC:
;	MOV	A,R_HUE
;	SUB	A,D_UNIT
;	MOV	R_HUE,A
;	SZ	C
;	JMP	L_HUE_COM
;
;	CLR	B_HUE
;	CLR	R_HUE
;	
;L_HUE_COM:	
;	MOV	A,0AH	
;	mov     r_CmdAddr,a
;	MOV	A,R_HUE
;    mov     r_CmdData,a
;    call    f_Tvp5150Cmd
;	JMP	L_CHKKEY_LOOP
;;		

;;*******************
;;***************
;;adj BRIGHT RED
;;***************
;L_ADJBRIGHT_R:
;	MOV	A,5
;	MOV	R_PRESS_SEL,A
;	
;
;
;L_ADJBRIGHT_R1:
;	MOV	A,D_PRESS_DELAY
;	MOV	R_PRESS_DELAY,A
;	;
;	SZ	B_BRIGHT_R
;	JMP	L_ADJBRIGHT_R_DEC
;L_ADJBRIGHT_R_ADD:
;	mov	a,D_UNIT
;	ADDM	A,R_BRIGHT_R
;	
;
;	MOV	A,R_BRIGHT_R
;	SUB	A,7FH
;	SNZ	C
;	JMP	L_BRIGHT_R_COM
;L_ADJBRIGHT_R_ADD1:
;	SET	B_BRIGHT_R
;	MOV	A,7FH
;	MOV	R_BRIGHT_R,A
;	JMP	L_BRIGHT_R_COM
;;
;L_ADJBRIGHT_R_DEC:
;	MOV	A,R_BRIGHT_R
;	SUB	A,D_UNIT
;	MOV	R_BRIGHT_R,A
;	SZ	C
;	JMP	L_BRIGHT_R_COM
;
;	CLR	B_BRIGHT_R
;	CLR	R_BRIGHT_R
;	
;L_BRIGHT_R_COM:	
;	mov	a,15			;BRIGHT RED
;	mov	r_cmdaddr,a
;	mov	a,R_BRIGHT_R
;	mov	r_cmddata,a
;	call	f_auopanelcmd
;	JMP	L_CHKKEY_LOOP
;;	
;;***************
;;adj BRIGHT BLUE
;;***************
;L_ADJBRIGHT_B:
;	MOV	A,6
;	MOV	R_PRESS_SEL,A
;	
;
;
;L_ADJBRIGHT_B1:
;	MOV	A,D_PRESS_DELAY
;	MOV	R_PRESS_DELAY,A
;	;
;	SZ	B_BRIGHT_B
;	JMP	L_ADJBRIGHT_B_DEC
;L_ADJBRIGHT_B_ADD:
;	mov	a,D_UNIT
;	ADDM	A,R_BRIGHT_B
;	
;
;	MOV	A,R_BRIGHT_B
;	SUB	A,7FH
;	SNZ	C
;	JMP	L_BRIGHT_B_COM
;L_ADJBRIGHT_B_ADD1:
;	SET	B_BRIGHT_B
;	MOV	A,7FH
;	MOV	R_BRIGHT_B,A
;	JMP	L_BRIGHT_B_COM
;;
;L_ADJBRIGHT_B_DEC:
;	MOV	A,R_BRIGHT_B
;	SUB	A,D_UNIT
;	MOV	R_BRIGHT_B,A
;	SZ	C
;	JMP	L_BRIGHT_B_COM
;
;	CLR	B_BRIGHT_B
;	CLR	R_BRIGHT_B
;	
;L_BRIGHT_B_COM:	
;	;JMP	L_MODE_COM1
;
;	mov	a,17			;BRIGHT RED
;	mov	r_cmdaddr,a
;	mov	a,R_BRIGHT_B
;	mov	r_cmddata,a
;	call	f_auopanelcmd
;	JMP	L_CHKKEY_LOOP
;;
;;***************
;;adj CONSTAST RED
;;***************
;L_ADJCONSTAST_R:
;	MOV	A,7
;	MOV	R_PRESS_SEL,A
;	
;
;
;L_ADJCONSTAST_R1:
;	MOV	A,D_PRESS_DELAY
;	MOV	R_PRESS_DELAY,A
;	;
;	SZ	B_CONSTAST_R
;	JMP	L_ADJCONSTAST_R_DEC
;L_ADJCONSTAST_R_ADD:
;	mov	a,D_UNIT
;	ADDM	A,R_CONSTAST_R
;	
;
;	MOV	A,R_CONSTAST_R
;	SUB	A,7FH
;	SNZ	C
;	JMP	L_CONSTAST_R_COM
;L_ADJCONSTAST_R_ADD1:
;	SET	B_CONSTAST_R
;	MOV	A,7FH
;	MOV	R_CONSTAST_R,A
;	JMP	L_CONSTAST_R_COM
;;
;L_ADJCONSTAST_R_DEC:
;	MOV	A,R_CONSTAST_R
;	SUB	A,D_UNIT
;	MOV	R_CONSTAST_R,A
;	SZ	C
;	JMP	L_CONSTAST_R_COM
;
;	CLR	B_CONSTAST_R
;	CLR	R_CONSTAST_R
;	
;L_CONSTAST_R_COM:	
;	mov	a,14			;CONSTAST RED
;	mov	r_cmdaddr,a
;	mov	a,R_CONSTAST_R
;	mov	r_cmddata,a
;	call	f_auopanelcmd
;	JMP	L_CHKKEY_LOOP
;;	
;;***************
;;adj CONSTAST BLUE
;;***************
;L_ADJCONSTAST_B:
;	MOV	A,8
;	MOV	R_PRESS_SEL,A
;	
;
;
;L_ADJCONSTAST_B1:
;	MOV	A,D_PRESS_DELAY
;	MOV	R_PRESS_DELAY,A
;	;
;	SZ	B_CONSTAST_B
;	JMP	L_ADJCONSTAST_B_DEC
;L_ADJCONSTAST_B_ADD:
;	mov	a,D_UNIT
;	ADDM	A,R_CONSTAST_B
;	
;
;	MOV	A,R_CONSTAST_B
;	SUB	A,7FH
;	SNZ	C
;	JMP	L_CONSTAST_B_COM
;L_ADJCONSTAST_B_ADD1:
;	SET	B_CONSTAST_B
;	MOV	A,7FH
;	MOV	R_CONSTAST_B,A
;	JMP	L_CONSTAST_B_COM
;;
;L_ADJCONSTAST_B_DEC:
;	MOV	A,R_CONSTAST_B
;	SUB	A,D_UNIT
;	MOV	R_CONSTAST_B,A
;	SZ	C
;	JMP	L_CONSTAST_B_COM
;
;	CLR	B_CONSTAST_B
;	CLR	R_CONSTAST_B
;	
;L_CONSTAST_B_COM:	
;	mov	a,16			;CONSTAST RED
;	mov	r_cmdaddr,a
;	mov	a,R_CONSTAST_B
;	mov	r_cmddata,a
;	call	f_auopanelcmd
;	JMP	L_CHKKEY_LOOP
;
;










	



;;*******************
;;MODE SHIFT
;;*******************
;L_MODE:
;	CLR	R_PRESS_SEL
;	CLR	R_PRESS_DELAY
;	INC	R_MODE
;	MOV	A,R_MODE	
;	SUB	A,3
;	SZ	C
;	CLR	R_MODE
;	;
;L_MODE1:
;	MOV	A,52
;	CALL	F_DELAY1MS
;	;
;	mov	a,5
;	mov	r_cmdaddr,a
;	mov	a,016h

⌨️ 快捷键说明

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