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

📄 tft_drv_4805.asm

📁 autftlcd 1.7 driver
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;	mov	r_cmddata,a
;	call	f_auopanelcmd
;	JMP	L_MODE_JMP
;	;
;L_CCIR656:
;	MOV	A,0FH
;	ANDM	A,R_FLIP
;	MOV	A,70H
;	ORM	A,R_FLIP
;	
;	mov	a,4
;	mov	r_cmdaddr,a
;	mov	a,R_FLIP
;	mov	r_cmddata,a
;	call	f_auopanelcmd
;	;
;	mov	a,6
;	mov	r_cmdaddr,a
;	mov	a,016H
;	mov	r_cmddata,a
;	call	f_auopanelcmd
;	;
;	mov	a,3			;3			;BRIGHT
;	mov	r_cmdaddr,a
;	mov	a,2eh			;R_BRIGHT
;	mov	r_cmddata,a
;	call	f_auopanelcmd
;	;
;	mov	a,13			;CONSTAST
;	mov	r_cmdaddr,a
;	mov	a,4bh
;	mov	r_cmddata,a
;	
;	
;	
;	JMP	L_MODE_COM
;;
;L_UPS051:
;	MOV	A,0FH
;	ANDM	A,R_FLIP
;	;MOV	A,70H
;	;ORM	A,R_FLIP
;	
;	mov	a,4
;	mov	r_cmdaddr,a
;	mov	a,R_FLIP
;	mov	r_cmddata,a
;	call	f_auopanelcmd
;	;
;	mov	a,7
;	mov	r_cmdaddr,a
;	mov	a,0F1H
;	mov	r_cmddata,a
;	call	f_auopanelcmd
;	;
;	JMP	L_MODE_COM
;;
;L_UPS052:
;	MOV	A,0FH
;	ANDM	A,R_FLIP
;	MOV	A,10H
;	ORM	A,R_FLIP
;	
;	mov	a,4
;	mov	r_cmdaddr,a
;	mov	a,R_FLIP
;	mov	r_cmddata,a
;	call	f_auopanelcmd
;	;
;	;
;	JMP	L_MODE_COM
;;
;
;	
;;
;
;L_MODE_COM:
;	;
;	mov	a,8
;	mov	r_cmdaddr,a
;	mov	a,0C0H
;	mov	r_cmddata,a
;	call	f_auopanelcmd
;	;
;	mov	a,5
;	mov	r_cmdaddr,a
;	mov	a,47H
;	mov	r_cmddata,a
;	call	f_auopanelcmd
;	;
;	mov	a,12			;CONSTAST
;	mov	r_cmdaddr,a
;	mov	a,00100110b
;	mov	r_cmddata,a
;	call	f_auopanelcmd	
;	
;	
;	;
;L_MODE_COM1:
;	;mov	a,14			;CONSTAST
;	;mov	r_cmdaddr,a
;	;mov	a,R_CONSTAST_R
;	;mov	r_cmddata,a
;	;call	f_auopanelcmd
;	;;		
;	;mov	a,15			;CONSTAST
;	;mov	r_cmdaddr,a
;	;mov	a,R_BRIGHT_R
;	;mov	r_cmddata,a
;	;call	f_auopanelcmd
;	;;
;	;mov	a,16			;CONSTAST
;	;mov	r_cmdaddr,a
;	;mov	a,R_CONSTAST_B
;	;mov	r_cmddata,a
;	;call	f_auopanelcmd
;	;;		
;	;mov	a,17			;CONSTAST
;	;mov	r_cmdaddr,a
;	;mov	a,R_BRIGHT_B
;	;mov	r_cmddata,a
;	;call	f_auopanelcmd
;	;
;	;mov	a,3			;3			;BRIGHT
;	;mov	r_cmdaddr,a
;	;mov	a,R_BRIGHT			;R_BRIGHT
;	;mov	r_cmddata,a
;	;call	f_auopanelcmd
;	;;
;	;mov	a,13			;CONSTAST
;	;mov	r_cmdaddr,a
;	;mov	a,R_CONSTAST
;	;mov	r_cmddata,a
;	;call	f_auopanelcmd		
;	;
;		
;	
;	
;	;set	b_first		
;			
;	JMP	L_CHKKEY_LOOP
;	;		

;****************************
;IMAGE FLIP SHIFT
;****************************
L_FLIP:
	CLR	R_PRESS_SEL
	CLR	R_PRESS_DELAY
	MOV	A,00000011B
	AND	A,R_FLIP
	XOR	A,00000011B
	SNZ	z
	JMP	L_FLIP1
	MOV	A,11111100B
	ANDM	A,R_FLIP
	JMP	L_FLIP2
	;
L_FLIP1:
	INC	R_FLIP	
	
L_FLIP2:
	mov	a,4
	mov	r_cmdaddr,a
	mov	a,R_FLIP
	mov	r_cmddata,a
	call	f_auopanelcmd	
	JMP	L_CHKKEY_LOOP
;	




;*****************************************************************************************************  


f_Tvp5150Cmd:
	MOV	A,2
	MOV	R_TIMES,A
f_Tvp5150Cmd_LOOP:
	CLR	WDT
    call    f_iicStart
	mov     a,TVP5150WrAddr
    call    f_iicTxByte
    mov     a,r_CmdAddr
    call    f_iicTxByte
    mov     a,r_CmdData
    call    f_iicTxByte
    set     pTvpSclC
    jmp     $+1
    snz	    pTvpScl
    jmp	    $-1
    set     pTvpScl
    clr	    pTvpSclC
    call    f_iicStop
    mov     a,1
    call    f_delay1ms
    SDZ		R_TIMES
    JMP	f_Tvp5150Cmd_LOOP
    ret

f_AuoPanelCmd:
	mov	a,2
	mov	r_times,a
	;
	;snz	b_first
	;jmp	l_panelcmd_loop
	;clr	wdt
	;sz	b_vsync
	;jmp	$-2
	;;
	;mov	a,1
	;call	f_delay1msa
	;nop
	;clr	wdt
	;snz	b_vsync
	;jmp	$-2
l_panelcmd_loop:
	clr	wdt
    clr     pTftCS
    jmp     $+1
    mov     a,r_CmdAddr
    call    f_PanelCmdByte
    mov     a,r_CmdData
    call    f_PanelCmdByte
    jmp     $+1
    set     pTftCS
    ;mov     a,1
    ;call    f_delay1ms
    ;jmp	$+1
    ;jmp	$+1
    jmp	$+1
    jmp	$+1
    jmp	$+1
    jmp	$+1
    jmp	$+1
    sdz	r_times
    jmp	l_panelcmd_loop
    ;clr	wdt
	;sz	b_vsync
	;jmp	$-2
    ;set     pTftCS
    ret

f_iicMnack:
	clr	pTvpSdaC
	set	pTvpSda
	jmp $+1
	set	pTvpScl
	jmp $+1
	jmp $+1
	jmp $+1
	jmp $+1
	clr	pTvpSCL
	jmp $+1
	jmp $+1
	jmp $+1
	jmp $+1
	ret
;读8位数据存入A中
f_iicRxbyte:
    mov     a,08h
    mov     r_Temp,a
    set     pTvpSdaC
    clr     acc
l_in_byte_loop:
    set     pTvpScl
    jmp     $+1
    sz      pTvpSda
    set     acc.0
    rl      acc
    jmp     $+1
    jmp     $+1
    jmp     $+1
    jmp     $+1
    clr     pTvpScl
    jmp     $+1
    jmp     $+1
    jmp     $+1
    jmp     $+1
    sdz     r_Temp
    jmp     l_in_byte_loop
    ret
;待写数据在A中
f_iicTxByte:
    clr     r_Temp
    set     r_Temp.3
    clr     pTvpSdaC
l_out_byte_loop:   
    clr     pTvpScl
    sz      acc.7   ;2
    set     pTvpSda
    snz     acc.7   ;2
    clr     pTvpSda
    rl      acc     ;1
    jmp     $+1     ;2
    jmp     $+1     ;2
    jmp     $+1     ;2
    jmp     $+1     ;2

    set     pTvpScl ;1
    jmp     $+1     ;2
    jmp     $+1     ;2   
    jmp     $+1     ;2
    jmp     $+1     ;2
    
    sdz     r_Temp  ;2
    jmp     l_out_byte_loop
    clr     pTvpScl
    jmp     $+1     ;2
    set     pTvpSdaC
    jmp     $+1     ;2
    jmp     $+1     ;2
    jmp     $+1     ;2
    jmp     $+1     ;2
    set     pTvpScl
l_out_byte_ack:
IFNDEF __DEBUG__
    sz      pTvpSda
    jmp     l_out_byte_ack
ENDIF
    jmp     $+1     ;2
    jmp     $+1     ;2
    jmp     $+1     ;2
    clr     pTvpScl
    clr     pTvpSdaC
    ret

;====================================================================
;iic start condition
;====================================================================
f_iicStart:
   	clr pTvpScl
   	clr	pTvpSclC

   	set pTvpSda
   	clr	pTvpSdaC
	jmp $+1
	jmp $+1
	jmp $+1

	set	pTvpScl
	jmp $+1
	jmp $+1
	jmp $+1
	jmp $+1
	clr	pTvpSda
	jmp $+1
	jmp $+1
	jmp $+1
	jmp $+1
	clr	pTvpScl
	ret

;====================================================================
;iic stop condition
;====================================================================
f_iicStop:
	clr	pTvpSda
	clr	pTvpSdaC
  	jmp $+1
	jmp $+1
	jmp $+1

	set	pTvpScl
	jmp $+1
	jmp $+1
	jmp $+1
	jmp $+1
	set	pTvpSda
	jmp $+1
	jmp $+1
	jmp $+1
	jmp $+1
	clr	pTvpScl
	jmp $+1
	ret

;********************************************************************
;AUO TFT panel command
;********************************************************************

f_PanelCmdByte:
    clr     r_temp
    set     r_temp.3
l_PanelCmdLoop:
    clr     pTftSCL
    sz      acc.7
    set     pTftSDA     ;1
    snz     acc.7       ;2
    clr     pTftSDA
    jmp     $+1
    jmp     $+1
    jmp     $+1
    jmp     $+1
    set     pTftSCL     ;1
    rl      acc
    jmp     $+1
    jmp     $+1
    jmp     $+1
    jmp     $+1
    sdz     r_temp
    jmp     l_PanelCmdLoop
    ret




	
;;****************************************************
;Delay 0.5ms*acc
;data=[(1ms*3.579mhz/4)/7]+256
;****************************************************
f_Delay1ms:
	mov	r_DelayTime,a
l_OuterLoop1:
	mov	a,07Fh				;FA
	mov	r_Counter0,a
	mov	a,001h		;high level	1
	mov	r_Counter1,a
	;
l_Loop1:
	clr	wdt
	;clr	wdt2
	nop
	dec	r_Counter0
	sz	z
	sdz	r_Counter1
	jmp	l_Loop1
	sdz	r_DelayTime
	jmp	l_OuterLoop1
	nop
	ret
;;

;;;****************************************************
;;Delay 0.5ms*acc
;;data=[(1ms*3.579mhz/4)/7]+256
;;****************************************************
;f_Delay1msa:
;	mov	r_DelayTime,a
;l_OuterLoop1a:
;	mov	a,07Fh				;FA
;	mov	r_Counter0,a
;	mov	a,001h		;high level	1
;	mov	r_Counter1,a
;	;
;l_Loop1a:
;	clr	wdt
;	snz	b_vsync
;	jmp	l_OuterLoop1a
;	nop
;	dec	r_Counter0
;	sz	z
;	sdz	r_Counter1
;	jmp	l_Loop1a
;	sdz	r_DelayTime
;	jmp	l_OuterLoop1a
;	nop
;	ret
;;
;****************************
;Scan PortA to get key code
;2 output(GND~pa7) 3 input(pB0~pB2)
;out:r_keycode(1~127),=0 no key,r_keycode.7=1 release r_keycode.7=0 press down
;****************************
F_GETKEY:
	CLR	WDT
	;CLR	WDT2
	SET	R_KEYCODE
	SNZ	B_DEBOUNCE
	JMP	L_SCAN_SCANKEY
	SZ	R_DEBOUNCETIME
	RET
	JMP	L_SCAN_SCANKEY
L_SCAN_SCANKEY:
	;MOV	A,0FFH
	;MOV	PB,A		;INPUT
	
	
	
	;clr	bp
	MOV	A,D_SCAN_KEYBUFFER
	MOV	MP0,A
	CLR	R_KEYCODE
	
	;MOV	A,R_PABUF	;SET PA7
	;OR	A,10000000B
	;MOV	R_PABUF,A
	;MOV	PA,A
	SET	PB0
	SET	PB1
	;SET	PB2
	
	CALL	L_CONTINUEWAIT
	
	MOV	A,R_PORT_TEMP
	XOR	A,R0
	SNZ	Z
	JMP	L_SCAN_DECODE
	;
	
	SZ	R0
	JMP	L_Scan_NoKeyEvent
	;
	INC	MP0			;SCAN PB0
	MOV	A,3
	ADDM	A,R_KEYCODE
	
;*********************
	set     t_Scan_Temp1
    	clr     t_Scan_Temp1.0
l_Scan_GetKeyLoop:
	MOV	A,11111100B
	ANDM	A,PB
	MOV	A,00000011B
    	AND     a,t_Scan_Temp1
    	ORM     A,PB
   	rl      t_Scan_Temp1


;*************	
	
	
	
	CALL	L_CONTINUEWAIT
	;
	;SET	PB0
	;
	MOV	A,R_PORT_TEMP
	XOR	A,R0
	SNZ	Z
	JMP	L_SCAN_DECODE
	;
	inc     mp0
    	mov     a,3
    	addm    a,r_KeyCode
    

    	sz      t_Scan_Temp1.2
    	jmp     l_Scan_GetKeyLoop
	
	
L_Scan_NoKeyEvent:
	SET		r_keycode

L_SCANKEYFIN:
	SET	PB0
	SET	PB1
	;SET	PB2
	;MOV	A,0FFH
	;MOV	PB,A		;INPUT
	
	clr		wdt
	;CLR	WDT2
	ret	
L_SCAN_DECODE:
	;MOV	A,R_PABUF
	;OR	A,10000000B
	;MOV	R_PABUF,A
	;MOV	PA,A		;SET	PA7
	
L_SCAN_INDEBOUNCEING:
	CLR	T_SCAN_TEMP1
	SET	T_SCAN_TEMP1.0
L_SCAN_NEXTBIT:
	CLR	WDT
	SZ	ACC.0
	JMP	L_SCAN_DEBOUNCEEND
	RR	ACC
	INC	R_KEYCODE
	RL	T_SCAN_TEMP1
	SNZ	T_SCAN_TEMP1.3
	JMP	L_SCAN_NEXTBIT
	JMP	L_SCAN_NOKEYEVENT
	;
L_SCAN_DEBOUNCEEND:
	SZ	B_DEBOUNCE
	JMP	L_SCAN_DEBOUNCEEND2
L_SCAN_INTODEBOUNCE:
	MOV	A,R_KEYCODE
	MOV	R_KEYCODEBK,A
	MOV	A,D_DEBOUNCETIME
	MOV	R_DEBOUNCETIME,A
	SET	B_DEBOUNCE
	JMP	L_Scan_NoKeyEvent
L_SCAN_DEBOUNCEEND2:
	CLR	B_DEBOUNCE
	MOV	A,R_KEYCODE
	XOR	A,R_KEYCODEBK
	SNZ	Z
	JMP	L_SCAN_NOKEYEVENT
	
L_SCAN_GETKEYCODE:
	;INC	R_KEYCODE
	
L_SCAN_GETKEYCODE6:	
	MOV	A,R_KEYCODE
	SUB	A,12
	SZ	C
	JMP	L_SCAN_NOKEYEVENT
	;
	;MOV	A,R_KEYCODE
	;ADD	A,LOW(T_KEYTAB)
	;CALL	L_READTAB
	;MOV	R_KEYCODE,A
	;
	MOV	A,T_SCAN_TEMP1
	AND	A,R0
	SZ	ACC
	SET	R_KEYCODE.7	;KEY RELEASE
	MOV	A,T_SCAN_TEMP1
	XORM	A,R0
	
	;
	SNZ	R_KEYCODE.7
	JMP	L_SCANKEYFIN
	CLR	R_PRESS_SEL
	CLR	R_PRESS_DELAY
	JMP	L_SCAN_NOKEYEVENT
	
	
	;JMP	L_SCANKEYFIN			
	
	
	
	
	
	
	
		
L_CONTINUEWAIT:
	CLR	WDT
	;CLR	WDT2
	;MOV	A,0FFH
	;MOV	PB,A		;INPUT
	MOV	A,PA
	CPL	ACC
	MOV	R_PORT_TEMP,A
	MOV	A,00000111B
	ANDM	A,R_PORT_TEMP
	
	MOV	A,5
	NOP
	SDZ	ACC
	JMP	$-2
	
	;MOV	A,0FFH
	;MOV	PB,A		;INPUT
	MOV	A,PA
	MOV	R_TEMP,A
	MOV	A,11111000B
	OR	A,R_TEMP
	CPL	ACC
	XOR	A,R_PORT_TEMP
	SNZ	Z
	JMP	L_CONTINUEWAIT
	RET
	;	
	
	ORG	300H
	
		
;
;reg address in r_CmdAddr
;f_ReadTvpReg:
;    call    f_iicStart
;    mov     a,TVP5150WrAddr
;    call    f_iicTxByte
;    mov     a,r_CmdAddr		;status register #5
;    call    f_iicTxByte
;    call    f_iicStop
;    mov     a,1
;    call    f_delay1ms
;    call    f_iicStart
;    mov     a,TVP5150RdAddr
;    call    f_iicTxByte
;    call    f_iicRxByte
;    call    f_iicMnack
;    jmp     f_iicStop

;tab_page .section page 'code'
f_GetPageData:
    tabrdc  acc
    ret
;T_PanelParam:   ;high byte only 6 bit valid when using ht48r05!!
;T_Saturation:
;T_Contrast:
;    dw  48+13*00+100h*0
;    dw  48+13*01+100h*1         ;0001(M) NTSC ITU-R BT.601
;    dw  48+13*02+100h*0
;    dw  48+13*03+100h*0         ;0011(B, G, H, I, N) PAL ITU-R BT.601
;    dw  48+13*04+100h*0
;    dw  48+13*05+100h*0         ;0101(M) PAL ITU-R BT.601
;    dw  48+13*06+100h*0
;    dw  48+13*07+100h*0         ;0111 PAL-N ITU-R BT.601
;    dw  48+13*08+100h*0
;    dw  48+13*09+100h*1         ;1001 NTSC 4.43 ITU-R BT.601
;    dw  48+13*10+100h*0
;    dw  48+13*11+100h*0         ;1011 SECAM ITU-R BT.601
;    dw  48+13*12+100h*0
;    dw  48+13*13+100h*0
;    dw  48+13*14+100h*0
;    dw  48+13*15+100h*0
T_Tvp5150Cmd:   ;addr,cmd
	dw  005h,001h		;RESET TVP5051

    dw  000h,000h
    dw  00fh,00ah
    dw  015h,015h
    dw  003h,06fh
    dw  0c3h,00ch
    ;dw  00ch,0b0h   ;contrast
    ;dw  00ah,0b0h   ;Color saturation
    ;dw  009h,0a5h   ;brightness
    ;2005-11-28 15:09 comment by John
    ;dw  00ch,08bh   ;contrast
    ;dw  00ah,0b0h   ;Color saturation
    ;dw  009h,0a5h   ;brightness
    ;2005-11-28 15:09 add by John
    ;dw  00ch,87   ;contrast
    ;dw  00ah,0b0h   ;Color saturation
    ;dw  009h,113   ;brightness
    
    
    ;dw	0dh,00000111b
    
    dw  005h,000h		;TVP5051
T_Tvp5150CmdEnd:
T_AuoPanelCmd: ;address+command
   
	
	dw  5,16h
	dw  4,7Bh		;7b
	dw  6,16h
	dw  3,2eh
	dw  13,4bh
	dw  8,0c0h
	dw  5,47h
	DW	12,11100110b
T_AuoPanleCmdEnd:
;;
;
;
;	;dw  5,16h
;	;dw  4,0ah		;
;T_UPS051:
;	dw  7,0F1h
;	dw  8,0C0h
;	dw  5,47h
;T_UPS051end:
;;
;
;	;dw  5,16h
;	;dw  4,1ah		;
;T_UPS052:
;	dw  8,0C0h
;	dw  5,47h
;T_UPS052end:
	
;if 0
;dw 
;endif

l_keyMap:
    mov     a,r_keyCode
    and     a,0fh
    addm    a,pcl
    JMP		L_ADJBRIGHTNESS_DEC
    jmp     	l_AdjBrightness_ADD
    jmp     	l_AdjConStast_DEC
    JMP		L_ADJCONSTAST_ADD
    ;JMP		L_MODE
    JMP		L_FLIP
    ;JMP		L_ADJBRIGHT_R
    ;JMP		L_ADJBRIGHT_B
    JMP		L_ADJCOLOR_DEC
    JMP		L_ADJCOLOR_ADD
    JMP		L_ADJHUE_DEC
    JMP		L_ADJHUE_ADD
    
    ;JMP		L_ADJCONSTAST_R
    ;JMP		L_ADJCONSTAST_B
    ;NOP
    ;NOP
    ;JMP	00H
;
;L_MODE_JMP:
;	MOV	A,R_MODE
;	ADDM	A,PCL
;	JMP	L_CCIR656
;	JMP	L_UPS051
;	JMP	L_UPS052
;	
	;NOP
	;JMP	00H    
L_PRESS_JMP:
	DECA	R_PRESS_SEL
	ADDM	A,PCL
	JMP	L_ADJBRIGHTNESS_DEC1
	JMP	L_ADJBRIGHTNESS_ADD1
	JMP	L_ADJCONSTAST_DEC1
	JMP	L_ADJCONSTAST_ADD1
	JMP		L_ADJCOLOR_DEC1
    JMP		L_ADJCOLOR_ADD1
    JMP		L_ADJHUE_DEC1
    JMP		L_ADJHUE_ADD1
	;JMP	L_ADJCONSTAST_R1
	;JMP	L_ADJCONSTAST_B1
	;NOP
	;JMP	00H
	
	NOP
	END

⌨️ 快捷键说明

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