hallo,

wij zijn voor school bezig met een onderzoek hoe een lcd display aangestuurd word.

wij hebben een LCD HD44780 die wij aansturen met een ATmega8515 atmel processor.

wij hebben de aansluiting al kunnen vinden maar zitten met het probleem dat er in de initialisatie iets fout gaat.
en wij kunnen dit probleem niet vinden.

wij gebruiken het software pakket avr studio.

als er iemand is die weet hoe wij dit op kunnen lossen en uitijdenlijk iets op het scherm kunnen weergeven horen wij het graag.

onze leraren weten het namelijk ook niet:S:S

MVG 2 hopelose studenten.

post de code is tussen [code ] [/code ] tags.. dat kijkt al makkelijker..

is het een error van avr studio zo ja.. geef even aan waar die staat..

is het een ander probleem probeer het is te omschrijven.

beetje meer input is nodig om het hele zootje aan de gang te krijgen hoor

in de datasheet staat iets zoals :

Initializing by Instruction

kijk daar eens bij. Dan moet je wel oplettel wat voor interface je gebruikt (4 of 8 bit datalijnen).

Ik heb eventueeel een heeeeeel erg simpel voorbeeld, maar dan voor een PIC. lijkt veel op elkaar, alleen moet je i.p.v. TRIS PORT gebruiken....

edit:
en kijk goed bij de timing diagrammen. Meestal moet je de enable hoog maken, data op de poort zetten, en vervolgens de enable laag maken.

[Bericht gewijzigd door Mitchell S op ]

Google stuk ?

2 sec, zoektermen: LCD HD44780 ATmega8515, 3de hit:

http://www.cappels.org/dproj/tlcd/tlcd.html

Op 22 mei 2007 11:11:26 schreef Roland van Leusden:
Google stuk ?

2 sec, zoektermen: LCD HD44780 ATmega8515, 3de hit:

http://www.cappels.org/dproj/tlcd/tlcd.html

tis idd zo dat er heel veel info te vinden is over de HD44780 driver gestuurde displays...

ja er is inderdaat veel over te vinden.

we krijgen ook wel iets op het display maar dat is maar voor heel kort.

we gebruiken de 8 bits mode

we hebben al een beetje gevonden over de initialisatie maar het lukt niet op iets op het scherm te krijgen het ligt aan het programma er zit geen fout in maar we krijgen gewoon niets op het display

Glazen bol is stuk.

Post eens wat je aan code hebt (zo is het lastig schieten) en hoe je LCD aan je AVR hangt (dat kan soms ook nog verhelderend werken). Wat voor een LCD is het? 1x8? Zo is het redelijk hopeloos met hopeloze studenten.

'Niets op het scherm' duidt op een hardware probleem. Bij een ongeinitialiseerde 44780 heb je blokjes op de bovenste regel.

heb je je contrast potmeter wel eens gedraaid. Dit is namelijk redelijk gevoelig. Dus draai eens aan de potmeter en kijk wat er gebeurd....

ik ben dan toch niet helemaal duidelijk geweest:S:S

het is een 1 regel display van 40 tekens.

maar ik heb wel beeld de standaard blokjes als ik aan de contrast draai.

maar zodra ik mijn programma start gebeurd er niets de zwarte blokken blijfen.

het lcd hangt rechtstreeks op de atmel op poort B voor de data bus (8 bit) en poort C voor de stuur sygnalen.
als initialisatie heb ik het volgende

init_lcd:
rcall delay
ldi temp,$FF ; temp :=00 hex
out portC,temp ; stuur temp naar poort C
ldi temp,$CF ; temp :=30 hex
out portB,temp ; stuur temp naar poort B
rcall delay
ldi temp,$FF ; temp :=00 hex
out portC,temp ; stuur temp naar poort C
ldi temp,$CF ; temp :=30 hex
out portB,temp ; stuur temp naar poort B
rcall delay
ldi temp,$FF ; temp :=00 hex
out portC,temp ; stuur temp naar poort C
ldi temp,$CF ; temp :=30 hex
out portB,temp ; stuur temp naar poort B
ldi temp,$FF ; temp :=00 hex
out portC,temp ; stuur temp naar poort C
ldi temp,$CF ; temp :=30 hex
out portB,temp ; stuur temp naar poort B
ldi temp,$FF ; temp :=00 hex
out portC,temp ; stuur temp naar poort C
ldi temp, $F7 ; temp :=08 hex
out portB,temp ; stuur temp naar poort B
ldi temp,$FF ; temp :=00 hex
out portC,temp ; stuur temp naar poort C
ldi temp,$FE ; temp :=00 hex
out portB,temp ; stuur temp naar poort B
ldi temp,$FF ; temp :=00 hex
out portC,temp ; stuur temp naar poort C
ldi temp,$F8 ; temp :=07 hex
out portB,temp ; stuur temp naar poort B

ik hoop dat het zo iets duidelijker te begrijpen is.

maar toch al vast bedankt voor de hulp:D:D

tering... wat een zooi..
[code ] tags gebruiken [/code ]

Post ook de rest van de code want dit is niet alles..
en hebben jullie nooit geleerd om bit benamingen te gebruiken.

.equ	E	= 	PB4	;LCD Enable
.equ	RW	=	PB6	;LCD Read Write
.equ	RS	=	PB5	;LCD Register Select
.equ    PWM	=	PB7	;LCD Contrast adjust using PWM
.equ	BF	=	PC7	;LCD Busy Flag
;button quicklinks
.equ 	btn_menu	=	PA0
.equ	btn_right	=	PA1
.equ	btn_left	=	PA2
.equ	btn_up		=	PA3
.equ	btn_down	=	PA4
;button port quicklinks
.equ	btn		=	PinA
.equ	DDRbtn		=	DDRA
.equ	btnPort		=	PortA
;data port quicklinks
.equ	dispdata	=	PortC
.equ	DDRdata		=	DDRC
.equ	Pindata		=	PinC
;control port quicklinks
.equ	dispcont	=	PortB
.equ	DDRcont		=	DDRB
.equ	Pincont		=	PinB
;register quicklinks
.def 	charactar	=	r0
.def	buffer		=	r16
.def	counter		=	r17
.def	temp		=	r18
.def	move		=	r19	;Move register to store data of line to write r20
.def	move2		=	r20	;Move register to store data of line to wirte r19

zoiets..

[Bericht gewijzigd door HBontekoe op ]

ik ken alleen c. dus waarschijnlijk ik kan jullie niet verder helpen...

Hela zeg, ik zie alleen Load immediates (ldi) en Out instructies. Zoek en lees eens een datasheet van een display dat op die Hitachi HD44780 gebaseerd is.

Het eerste wat dan opvalt is dat ALVORENS er iets gestuurd mag worden de BUSYBIT moet afgevraagd worden om te checken dat de displaycontroller wel op dat moment in staat is gegevens te ontvangen en verwerken.
Maar gewoon data blijven inproppen haalt niks uit.
En u houden aan de beschreven initialisatieroutines.

- - big bang - -

Jasper
Ik weet niet of je er nog mee bezig bent, maar ik vond deze link.
Je moet het een beetje aanpassen ivm de processor, maar in grote lijnen is het bruikbaar.

http://www.avrbeginners.net/interfacing/44780_lcd/m8_lcd_4bit.asm

Gr. Ernst