EW32FA3FLW 320*240 LCD

Csiffary Zsolt csifi at vnet.hu
Mon Dec 4 19:22:50 CET 2006


Sziasztok!

Ujra elovettem az EW32FA3FLW 320*240 LCD-t, ennek a felelesztesevel
probalkozom. Persze most sem indul el. Tudna Valaki segiteni benne? Hol
rontom el? A lenti programnak kellen inicializalni az LCD-t es kiirni hogy
EPSON. Minta program, egy doksiban talaltam...

Van valakinek valamilyen mukodo programja (PIC, AVR vagy barmi mas
kontroller) ami bekapcsolja az LCD-t, kiir ra valamit? Legyszi kuld el
nekem!

Elore is koszi, Zsolt


Szerintem a BEKOTESE???

1- VSS
2- VDD
3- N.C.
4- A0
5- WR
6- RD
7-14- D0-D7
15- CS
16- RST
17- VEE
18- SEL1
19- VLED
20- VLSS

Ezt talaltam hozza.

PIC-cel probalom eleszteni, eddig nem sok sikerrel.
Parancs es adat irast a kovetkezo rutin vegezne:

; ---
;       LCDWRCOM- Write Command to LCD
;       Input  : W- Command
;       Output : None
; ---
LCDWRCOM
movwf TEMPLCDDATA
bcf LCDCS

GOTO $+ 1
GOTO $+ 1

CALL LCDBUSY

bsf LCDA0
bcf LCDWR

GOTO $+ 1
GOTO $+ 1

movf TEMPLCDDATA, W
movwf LCDDATA

GOTO $+ 1
GOTO $+ 1

bsf LCDWR
bsf LCDCS

GOTO $+ 1
GOTO $+ 1
GOTO $+ 1
GOTO $+ 1
GOTO $+ 1
GOTO $+ 1
RETURN

; ---
;       LCDWRDATA- Write Data to LCD
;       Input  : W- Data
;       Output : None
; ---
LCDWRDATA
movwf TEMPLCDDATA
bcf LCDCS

GOTO $+ 1
GOTO $+ 1

CALL LCDBUSY

bcf LCDA0
bcf LCDWR

GOTO $+ 1
GOTO $+ 1

movf TEMPLCDDATA, W
movwf LCDDATA

GOTO $+ 1
GOTO $+ 1

bsf LCDWR
bsf LCDCS

GOTO $+ 1
GOTO $+ 1
GOTO $+ 1
GOTO $+ 1
GOTO $+ 1
GOTO $+ 1
RETURN

CS- Chip Select L Aktiv
BUSY flag olvasas
Register kivalasztas
WR aktivalas
Adat kiiras
WR torles
CS- Chip Select H

A busy flag olvasa, D6 H- belso ciklusban van. Uresen tesztelve az LCDBUSY
rutint, mindig 00-t olvas vissza. Nem kerul a controller belso ciklusba.

btfsc TEMPLCDDATA, 6
nop
nop

Az elso nop-nal nem all meg. Mindig szabad ?????

; ---
;       LCDBUSY- Wait for LCD Busy flag
;       Input  : None
;       Output : None
; ---
LCDBUSY
BANK1
movlw 0xFF
movwf LCDDATA

BANK0
bcf LCDA0

LCDBUSY001
bcf LCDRD

GOTO $+ 1
GOTO $+ 1
GOTO $+ 1
GOTO $+ 1
GOTO $+ 1

movf LCDDATA, W
movwf TEMPLCDDATA
bsf LCDRD

btfsc TEMPLCDDATA, 6
nop
nop

btfsc TEMPLCDDATA, 6
GOTO LCDBUSY001

BANK1
clrf LCDDATA
BANK0
RETURN

Az inicializalas a kovetkezo lenne:

; ---
;       LCDINIT- Initial Graphic LCD
;       Input  : None
;       Output : None
; ---
LCDINIT
movlw SYSTEMSET
CALL LCDWRCOM ; 0010 0000- 0x40
movlw 0x30 ; P1- 0 0 IV 1 W/S M2 M1 M0
CALL LCDWRDATA ; IV:  Screen origin compensation
; W/S: 0 = dual panel drive, 1 = single panel
; M2: height of character bitmap 0 = 8 pixel, 1 = 16 pixel
; M1: D6 Correction , 1 = On , 0 = Off
; M0: Character generator ROM, 0 = internal, 1 = external

movlw 0x87 ; P2- FX: Horizontal character size = 8 pixels
CALL LCDWRDATA
movlw 0x07 ; P3- FY: Vertical character size = 8 pixels
CALL LCDWRDATA
movlw 0x3F ; P4- C/R: 64 display addresses per line, C/R 320/8-1= 39 =0x27
CALL LCDWRDATA
movlw 0x49 ; P5- Tc/ R: Total Address Range Per Line = 90
CALL LCDWRDATA
movlw 0x7F ; P6- L/F: 128 display lines
CALL LCDWRDATA
movlw 0x80 ; P7- Apl- Virtual screen horizontal size is 128 addresses
CALL LCDWRDATA
movlw 0x00 ; P8- Aph  ???
CALL LCDWRDATA

; ---
movlw SCROLL
CALL LCDWRCOM

movlw 0x00 ; P1- 00H First screen block start address
CALL LCDWRDATA
movlw 0x00 ; P2- 00H Set to 0000H
CALL LCDWRDATA
movlw 0x40 ; P3- 40H Display lines in first screen block = 64 - 1
CALL LCDWRDATA
movlw 0x00 ; P4- 00H Second screen block start address
CALL LCDWRDATA
movlw 0x10 ; P5- 10H Set to 1000H
CALL LCDWRDATA
movlw 0x40 ; P6- 40H Display lines in second screen block = 64
CALL LCDWRDATA
movlw 0x00 ; P7- 00H Third screen block start address
CALL LCDWRDATA
movlw 0x04 ; P8- 04h Set To 0400h
CALL LCDWRDATA
movlw 0x00 ; P9- 00H Fourth screen block start address
CALL LCDWRDATA
movlw 0x30 ; P10- 30h Set To 3000h
CALL LCDWRDATA

; ---
movlw HDOTSCR
CALL LCDWRCOM

movlw 0x00 ; P1- Set Horizontal Pixel Shift To Zero
CALL LCDWRDATA

; ---
movlw OVLAY
CALL LCDWRCOM

movlw 0x01 ; 0 0 0 OV DM2 DM1 MX1 MX0
CALL LCDWRDATA
; DM 1: First screen block is text mode
; Dm 2 : Third Screen Block Is Text Mode

; ---
movlw CSRW
CALL LCDWRCOM

movlw 0x00 ; P1- Set cursor to start of first screen block
CALL LCDWRDATA
movlw 0x00
CALL LCDWRDATA

; ---
movlw CSRFORM
CALL LCDWRCOM

movlw 0x04 ; P1- CRX: Horizontal cursor size = 5 pixels
CALL LCDWRDATA
movlw 0x86 ; P2- CRY: Vertical cursor size = 7 pixels
CALL LCDWRDATA

; ---
movlw DISPON
CALL LCDWRCOM

; ---
movlw MWRITE
CALL LCDWRCOM
movlw 0x20 ; P1- ' '
CALL LCDWRDATA
movlw 0x45 ; P2- 'E'
CALL LCDWRDATA
movlw 0x50 ; P3- 'P'
CALL LCDWRDATA
movlw 0x53 ; P4- 'S'
CALL LCDWRDATA
movlw 0x4F ; P5- 'O'
CALL LCDWRDATA
movlw 0x4E ; P6- 'N'
CALL LCDWRDATA
RETURN


----------------------------------------------------------------------------
----
I am using the free version of SPAMfighter for private users.
It has removed 785 spam emails to date.
Paying users do not have this message in their emails.
Try SPAMfighter for free now!



More information about the Elektro mailing list