How to interface a Alcatel BE4 lcd with a PIC16F84A microcontroller


Alcatel BE4 lcd interface schematics. Click picture for details


Download the zip code.

Alcatel BE4 lcd library:

;kslib.inc
;====== LCD_Alcatel 311 driver library ============28/11/03==
;	driver SED1565 / KS0723
;	rb6,rb7     sclock,sdata
;	ra0,ra1,ra2,ra3	d/C,Reset,Vccmd,SCE
;     internal clock
;     standard crystal 4.000 MHz XT - 1us pe instructiune
;	Program realizat de Ing. Bergthaller Iulian 
;------------------------------------------------------------
;------------------------------------------------------------
count1	equ	0x0C
count2	equ	0x0D
count3	equ	0x0E
count4	equ	0x0F
afisaj	equ	0x10
linie	equ	0x11
#DEFINE sclk	PORTB,6
#DEFINE sdta	PORTB,7
#DEFINE dorc	PORTA,0
#DEFINE rset	PORTA,1
#DEFINE enab	PORTA,3
;------------------------------------------------------------
lcd_ini
	call	halte
	call	lcres	;resetare
	movlw	0xA6	; lcd in mod normal (0xA7 pt. negativ)
	call	lccmd
	movlw	0xA2	; bias
	call	lccmd
	movlw	0xA0	; corespondenta adrese DRAM coloane
	call	lccmd
	movlw	0xC8	; mod directie, adresare linii invers
	call	lccmd
	movlw	0x22	; setare tensiune V5 
	call	lccmd
	movlw	0x81	; mod setare volum electric
	call	lccmd
	movlw	0x2E	; mod booster+stabilizator tensiune on
	call	lccmd
	movlw	0x2F	; mod circuit "urmarire" on
	call	lccmd
	movlw	0xE3	; nop
	call	lccmd
	movlw	0x40	; setare adresa linie de start 
	call	lccmd
	movlw	0xAF	; lcd on (0xAE pt. lcd off)
	call	lccmd
	movlw	0xA5	; lcd all on
	call	lccmd
	call	halte
	call	halte
	movlw	0xA4	; lcd normal
	call	lccmd
	retlw	00
;------------------------------------------------------------
lcdta	bsf	dorc
	bcf	enab	;activare chip si start date
	call	varsa
	bsf	enab
	retlw	00
;------------------------------------------------------------
lccmd	bcf	dorc
	bcf	enab	;activare chip si start date
	call	varsa
	bsf	enab
	retlw	00
;------------------------------------------------------------
lcres	bsf	enab
	call	halte
	bsf	rset	;resetare
	call	halte
	retlw	00
;------------------------------------------------------------
varsa	movwf	afisaj
	movlw	0x08	
	movwf	count4
vbit	bcf	sclk
	bcf	sdta
	btfsc	afisaj,7
	bsf	sdta
	bsf	sclk
	rlf	afisaj,F
	decfsz	count4,F
	goto	vbit
	retlw	00
;------------------------------------------------------------
cbild	movlw	0xB0
	movwf	linie	; adresa linie
	movlw	0x09	; ultima linie face parte din pagina 9  
	movwf	count3
cline	movf	linie,0
	call	lccmd
	movlw	0x11	; doar 96 din 132 coloane conectate la driver 18+96+18= 132
	call	lccmd
	movlw	0x02	; 18 coloane in stanga si dreapta ecranului nefolosite
	call	lccmd
	bcf	sdta
	movlw	0x60	; 96 de coloane
	movwf	count1
c1	movlw	0x08	; 8 biti latime pagina
	movwf	count2
	bsf	dorc
	bcf	enab 
c2	bcf	sclk
	bsf	sclk
	decfsz	count2,F	
	goto	c2
	bsf	enab 		
	decfsz	count1,F	
	goto 	c1
	incf	linie,F
	decfsz	count3,F
	goto	cline	
    	retlw	00
;------------------------------------------------------------
halte	movlw	0x07
	movwf	count3
d3	movlw	0x32
	movwf	count1
d1	movlw	0xF0	  
	movwf	count2
d2	decfsz	count2,F	
	goto	d2		
	decfsz	count1,F	
	goto	d1		
	decfsz	count3,F    
	goto	d3          
	retlw	00
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
usaex	bsf	STATUS,RP0  ;switch to bank 1
	movlw	0x00	; PORTA set to out/inputs
	movwf	TRISA
	bcf	STATUS,RP0  ;switch back to bank 0
	return
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
usbex	bsf	STATUS,RP0  ;switch to bank 1
	movlw	0x00	; PORTB set to out/inputs
	movwf	TRISB
	bcf	STATUS,RP0  ;switch back to bank 0
	return	


Alcatel BE4 lcd test programm:

;main.asm
;=======LCD_Alcatel 311 =================================28/11/03==
;	driver SED1565 / KS0723
;     internal clock
;     standard crystal 4.000 MHz XT - 1us pe instructiune
;	Program realizat de Ing. Bergthaller Iulian 
;------------------------------------------------------------
;	configure programmer
	list	p=16f84;f=inhx8m
	__CONFIG       _CP_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC
;------------------------------------------------------------
;------------------------------------------------------------
 	org	0x00
	goto	init
	org	0x04
;------------------------------------------------------------
	#INCLUDE P16F84.INC
	#INCLUDE kslib.INC
;------------------------------------------------------------
init 	call	usaex
	call	usbex
	movlw	0x00
	movwf	PORTA
	movwf	PORTB
;------------------------------------------------------------
	call	lcd_ini
	call	cbild
	movlw	0xB0	; scrie pe prima linie
	call	lccmd	
	movlw	0x13	; (18+33+30+33+18= 132)
	call	lccmd
	movlw	0x03	; scrie icepand cu a 33-a coloana (33+18) 
	call	lccmd
	movlw	0x7F	;E
	call	lcdta
	movlw	0x49
	call	lcdta
	movlw	0x49
	call	lcdta
	movlw	0x49
	call	lcdta
	movlw	0x49
	call	lcdta
	movlw	0x00
	call	lcdta
	movlw	0x7F	;P
	call	lcdta
	movlw	0x09
	call	lcdta
	movlw	0x09	
	call	lcdta
	movlw	0x09
	call	lcdta
	movlw	0x06
	call	lcdta
	movlw	0x00
	call	lcdta
	movlw	0x26	;S
	call	lcdta
	movlw	0x49
	call	lcdta
	movlw	0x49
	call	lcdta
	movlw	0x49
	call	lcdta
	movlw	0x32
	call	lcdta
	movlw	0x00
	call	lcdta
	movlw	0x3E	;O
	call	lcdta
	movlw	0x41
	call	lcdta
	movlw	0x41
	call	lcdta
	movlw	0x41
	call	lcdta
	movlw	0x3E
	call	lcdta
	movlw	0x00
	call	lcdta
	movlw	0x7F	;N
	call	lcdta
	movlw	0x06
	call	lcdta
	movlw	0x08
	call	lcdta
	movlw	0x30
	call	lcdta
	movlw	0x7F
	call	lcdta
	movlw	0x00
	call	lcdta
	sleep
;------------------------------------------------------------
	end
;============================================================


Back to my home page
Last updated December, 2003
© Copyright 2003 Bergthaller Iulian-Alexandru