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

📄 lcdt232.asm

📁 i2c lcd test for Ericsson T230 CSTN
💻 ASM
字号:
;=====i2c lcd test for Ericsson T230 CSTN ======02/09/2007==
;	iic lcd driver: UC1682
;	ra0,ra1     sdata,sclock
;	rb0 to rb7	led outputs
;	internal clock
;	standard crystal 4.000 MHz XT - 1us pe instructiune
;	Program realizat de Ing. Bergthaller Iulian-Alexandru 
;------------------------------------------------------------
;------------------------------------------------------------
     LIST P=16F627;f=inhx8m
        #include "P16F627.INC"  ; Include header file
	__CONFIG	_PWRTE_ON  & _WDT_OFF & _INTRC_OSC_NOCLKOUT & _BODEN_OFF & _LVP_OFF & _CP_OFF & _MCLRE_OFF
;------------------------------------------------------------
	cblock 0x20	; Beginn General Purpose-Registerstatus	
	count1	
	count2	
	count3	
	transo	
	count4
	count5
	count6
	endc
;------------------------------------------------------------
#DEFINE sclk	PORTA,1
#DEFINE sdta	PORTA,0
#DEFINE led	PORTA,2
;------------------------------------------------------------
	org	0x00
	goto	init
	org	0x04
;------------------------------------------------------------
init	nop
	bcf	STATUS,RP0	; Bank 0
	movlw	0x07		; Turn comparators off and enable pins for I/O 
	movwf	CMCON	
	bsf	STATUS,RP0	; Bank 1
	movlw	0x00
	movwf	TRISA
	movlw	0x00	; output
	movwf	TRISB
	bcf	STATUS,RP0	; Bank 0
;***************************************************
start	movlw	0xFF
	movwf	PORTB
	call	pause
	movlw	0x00
	movwf	PORTB
	movlw	0xFF
	movwf	PORTB
	call	pause	
	bcf	led
;***************************************************
;* Lcd init commands                               *
;***************************************************
scrie	call	iict	; i2c start
	movlw	0x78	; device write cmd address
	call	act	; i2c send subroutine
	movlw	0x29	; c=10nF	
	call	act
	call	iicp	; i2c stop 
	call	pause
	call	iict	; i2c start
	movlw	0x78	; device write cmd address
	call	act	; i2c send subroutine
	movlw	0xEA	; Vbias rate	
	call	act
	call	iicp	; i2c stop 
	call	pause
	call	iict	; i2c start
	movlw	0x78	; device write cmd address
	call	act	; i2c send subroutine
	movlw	0x81	; Vbias pot	
	call	act
	movlw	0xA8	;  pot value	
	call	act
	call	iicp	; i2c stop 
	call	pause
	call	iict	; i2c start
	movlw	0x78	; device write cmd address
	call	act	; i2c send subroutine
	movlw	0x27	; temp.	
	call	act
	call	iicp	; i2c stop 
	call	pause
	call	iict	; i2c start
	movlw	0x78	; device write cmd address
	call	act	; i2c send subroutine
	movlw	0xAF	; lcd enable	
	call	act
	call	iicp	; i2c stop 
	call	pause
	call	iict	; i2c start
	movlw	0x78	; device write cmd address
	call	act	; i2c send subroutine
	movlw	0xD4	; 
	call	act
	call	iicp	; i2c stop 
	call	pause
	call	pause
	call	iict	; i2c start
	movlw	0x78	; device write cmd address
	call	act	; i2c send subroutine
	movlw	0xA1	; line rate	
	call	act
	call	iicp	; i2c stop 
	call	pause


;***************************************************
	movlw	0x50	; 
	movwf	count6
	call	iict	; i2c start
	movlw	0x7A	; device write cmd address
	call	act	; i2c send subroutine
rep	movlw	0x04	; 
	movwf	count5
line	movlw	0x07	;  ram data
	call	act
	movlw	0x07	;  ram data
	call	act
	movlw	0x07	;  ram data
	call	act
	movlw	0x07	;  ram data
	call	act
	movlw	0x38	;  ram data
	call	act
	movlw	0x38	;  ram data
	call	act
	movlw	0x38	;  ram data
	call	act
	movlw	0x38	;  ram data
	call	act
	movlw	0x38	;  ram data
	call	act
	movlw	0xC0	;  ram data
	call	act
	movlw	0xC0	;  ram data
	call	act
	movlw	0xC0	;  ram data
	call	act
	movlw	0xC0	;  ram data
	call	act
	movlw	0xC0	;  ram data
	call	act
	movlw	0xC0	;  ram data
	call	act
	movlw	0xC0	;  ram data
	call	act
	movlw	0xC0	;  ram data
	call	act
	movlw	0xC0	;  ram data
	call	act
	movlw	0xC0	;  ram data
	call	act
	movlw	0xC0	;  ram data
	call	act
	movlw	0xC0	;  ram data
	call	act
	movlw	0xC0	;  ram data
	call	act
	movlw	0x1F	;  ram data
	call	act
	movlw	0x1F	;  ram data
	call	act
	movlw	0x1F	;  ram data
	call	act
	movlw	0x1F	;  ram data
	call	act
	decfsz	count5,F   
	goto	line
    	;movlw	0x1F	;  ram data
	;call	act
	decfsz	count6,F   
	goto	rep        
	call	iicp	; i2c stop 
homa	goto	homa
;***************************************************
act	movwf	transo	; iic data transmission 
	call	oled	
	movlw	0x08
	movwf	count3
vbit	bcf	sclk
	call	pause
	btfsc	transo,7	
	bsf	sdta
	btfss	transo,7
	bcf	sdta
	call	pause
	bsf	sclk
	call	pause
	bcf	sclk
	call	pause
	rlf	transo,F
	decfsz	count3,F
	goto	vbit
	call	ackp
	retlw	0x00
;***************************************************
iicp	bcf	sdta	; stop condition module
	call	pause
	bsf	sclk
	call	pause
	bsf	sdta	; stop command
	call	pause
	bcf	sclk
	call	pause
	retlw	0x00
;***************************************************	
iict	bsf	sdta	; start condition module 
	bsf	sclk
	call	pause
	bcf	sdta	; start command
	call	pause
	bcf	sclk
	call	pause
	retlw	0x00
;***************************************************
ackp	call	s_in
	bsf	sclk	; one clock step for acknowledge (not read)
	call	pause
	btfss	sdta	;sda=0 ?
	bsf	led
	call	halta
	bcf	led
	bcf	sclk
	call	pause
	call	s_out
	retlw	0x00
;***************************************************
oled	call	halta	; iic data before transmission displayed on portb
	movlw	0x00
	movwf	PORTB
	movf	transo,W
	movwf	PORTB
	call	halta
	movlw	0x00
	movwf	PORTB
	retlw	0x00
;***************************************************
s_out	bsf	STATUS,RP0	; Bank 1
	movlw	0x00
	movwf	TRISA
	bcf	STATUS,RP0	; Bank 0
	retlw	0x00
;***************************************************
s_in	bsf	STATUS,RP0	; Bank 1
	movlw	0x01
	movwf	TRISA
	bcf	STATUS,RP0	; Bank 0
	retlw	0x00
;***************************************************
pause	movlw	0x02	; cca. 6ms delay
	movwf	count1
d1	movlw	0x10	  
	movwf	count2
d2	decfsz	count2,F	
	goto 	d2		
	decfsz	count1,F
	goto 	d1		
 	retlw	0x00
;***************************************************
halta	movlw	0x02	;  delay
	movwf	count3
r3	movlw	0x02
	movwf	count1
r1	movlw	0x02	  
	movwf	count2
r2	decfsz	count2,F	
	goto 	r2		
	decfsz	count1,F	
	goto 	r1		
	decfsz	count3,F   
	goto  r3          
	retlw	0x00
;------------------------------------------------------------
	end
;============================================================

⌨️ 快捷键说明

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