Problem mit LCD Modul (HD44780)

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 25 11 2024  20:22:08      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte


Autor
Problem mit LCD Modul (HD44780)
Suche nach: lcd (4684)

    







BID = 126684

fenterhannes

Stammposter



Beiträge: 312
Wohnort: Osnabrück
 

  


Hallo zusammen!

Ich versuche hier seit mehreren Tagen ein 4x20 zeichen Display (Displaytech 204B)an einem Atmel mega16 Controller zum laufen zu bringen. Das einzige was das Ding anzeigt sind diese blöden schwarzen Balken in der 1. und 3. Zeile. Den Controller programmiere ich mit C. Nach einigen eigenen Versuchen das LCD anzusteuern hab ich mittlererweile 4 verschiedene ansteuerprogramme runtergeladen und getestet....geht alles nicht....immer das gleiche Bild
Nach den ganzen Überlegungen könnte ich mir vorstellen das ich evtl. beim ersten Anschließen, an VDD statt 5V, kurzzeitig 12V liegen hatte.....
Würde dieses den Fehler (mit den Balken) erklären? Oder würde nach so einer Überspannung überhaupt nichts mehr angezeigt?

BID = 126685

Her Masters Voice

Inventar


Avatar auf
fremdem Server !
Hochladen oder
per Mail an Admin

Beiträge: 5308
Wohnort: irgendwo südlich von Berlin

 

  

Moin Moin.

Klar kann es sein das du das Teil gehimmelt hast. Hast du zu dem Modul noch nähere Daten? Könnte es sich unter Umständen um ein HT Display handeln? In dem Fall bräuchtest du eine negative Kontrastspannung statt der Positiven. Ich teste deshalb unbekannte Displays am Druckerport des PC auf Funktion. Hierfür gibts diverse kostenlose Software im Netz und die Anschaltung ist in wenigen Minuten zusammengelötet. Wenn man dann sicher weiss, dass das Display OK ist, kann man sichin Ruhe um den Microcontroller kümmern.

_________________
Tschüüüüüüüs

Her Masters Voice
aka
Frank

***********************************
Der optimale Arbeitspunkt stellt sich bei minimaler Rauchentwicklung ein...
***********************************

BID = 126691

Benedikt

Inventar

Beiträge: 6241

Ein Balken in der ersten und dritten Zeile zeigt, dass der Kontrast mehr oder weniger OK ist, aber das LCD noch nicht initialisiert wurde.
Überprüf mal die Leitungen und schau dir nochmal die Initialisierungssequenz für ein 2 zeiliges LCD im Datenblatt an.

BID = 127139

Dracos-Carazza

Gesprächig



Beiträge: 185
Zur Homepage von Dracos-Carazza ICQ Status  

normaler weise haben die hochsprachen compiler fuer Atm. bzw PIC schon alle eine initialisierungs routine eingebaut, die man zu anfang durh führen muss, ist dies nicht der fall muss man es halt per hand machen. wie das geht steht im datenblatt des hd44780.

da der controller aber ziemlich empfindlich ist, denke ich mal das du ihn mit den 12 V zerschossen hast, ich glaub der kann nur max 7 V ab. und da er sich auch nicht über die ansteuerungs programme initialisieren lässt, ist entweder dies der fall, oder du hast glück und es sind nur die leitungen.

greetz Carazza

_________________
Es ist nicht deine Schuld, dass die Welt ist wie sie ist, es ist nur deine Schuld wenn sie so bleibt !



Wer seinen Trieb verleugnet, verleugnet das was ihm zum Menschen macht !

BID = 127448

Jornbyte

Moderator



Beiträge: 7178


Zitat :
Ein Balken in der ersten und dritten Zeile zeigt, dass der Kontrast mehr oder weniger OK ist, aber das LCD noch nicht initialisiert wurde.


So isses.

Bei mir geht es so:

;**** Definierung der Befehle und Adressen im Display ****

.equ lcdon = 0b00001110 ; LCD einschalten Bit0 und 1 = 0 (Cursor off Blink off)
.equ lcdmode = 0b00111000 ; LCD Mode 8 Bit, 2 Zeilen
.equ lcdclear = 0b00000001 ; LCD löschen
.equ lcdentry = 0b00000110 ; bei eingabe eines Zeichen den Cursor um 1 erhöhen
.equ zeile1 = 0b10000000 ; Adr 0H Zeile 1 Spalte 1
.equ zeile1a = 0b10010100 ; Adr 14H Zeile 1 Spalte 2
.equ zeile2 = 0b11000000 ; Startadresse der zweiten Display Zeile
.equ zeile2a = 0b11010100 ; Adr 53H Zeile 2 Spalte 2

; **** Initialisierung des LCD Displays ******************

initlcd: rcall wait15ms ; 15ms auf Display warten
ldi temp1,lcdmode ; LCD-Mode setzten
rcall sendebefehl ; Befehl senden
rcall wait15ms ; 15ms warten
ldi temp1,lcdmode ; LCD-Mode setzten
rcall sendebefehl ; Befehl senden
rcall wait5ms ; 5ms warten
ldi temp1,lcdmode ; LCD-Mode setzten
rcall sendebefehl ; Befehl senden
rcall wait5ms ; 5ms warten
ldi temp1,lcdon ; LCD einschalten
rcall sendebefehl ; Befehl senden
rcall wait150us ; 150us warten
ldi temp1,lcdclear ; LCD löschen
rcall sendebefehl ; Befehl senden
rcall wait150us ; 150us warten
ldi temp1,lcdentry ; Entrymode setzten
rcall sendebefehl ; Befehl senden
rcall wait5ms ; 5ms warten

;weiter im Programm


;**** Senden von Befehlen und Daten an Display ***********

sendebefehl:
rcall busyflag
cbi portd,RS ; lösche BIT RS
cbi portd,RW ; lösche BIT RW
rcall ausgabe ; Befehl ausgeben
ret

sendedaten:
rcall busyflag ; Busyflag abfragen
sbi portd,RS ; setzten BIT RS
cbi portd,RW ; lösche BIT RW
rcall ausgabe ; Daten ausgeben
ret

ausgabe: out portb,temp1 ; Daten aus Register ausgeben
sbi portd,E ; setzten BIT E
nop ; kein Operation (warten)
nop
nop
cbi portd,E ; lösche BIT E
ret

busyflag:
push temp2
clr temp2 ; lösche Register temp2
out ddrb,temp2 ; Port B als Eingänge setzten
cbi portd,RS ; lösche BIT RS
sbi portd,RW ; setzte BIT RW
wb1: sbi portd,E ; setzten BIT E
nop ; keine Operation (warten)
nop
in temp2,pinb ; lese Port B in Register temp2 ein
cbi portd,E ; lösche BIT E
nop
sbrc temp2,Busy ; überspringe nächsten Befehl falls Busy flag
rjmp wb1 ; gelöscht ist
cbi portd,RW ; lösche BIT RW
ser temp2 ; setzte alle BITs im Register temp2
out ddrb,temp2 ; setzte Port B als Ausgang
pop temp2
ret


;**** Zeitschleifen **************************************

wait50us:ldi tim1,65 ; 50us warten bei 4MHz Taktfrequenz
; 50us / 750ns = 65
wait51: dec tim1 ; 250ns für DEC Befehl und 500ns für BRNE
brne wait51 ; Befehl = 750ns
ret ; 750ns * 65 Durchläufe = 50us

wait150us:rcall wait50us
rcall wait50us
rcall wait50us
ret

wait5ms: ldi tim2,100

wait5: rcall wait50us
dec tim2
brne wait5
ret

wait15ms:rcall wait5ms
rcall wait5ms
rcall wait5ms
ret

_________________
mfg Jornbyte

Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.

[ Diese Nachricht wurde geändert von: Jornbyte am 13 Nov 2004 22:13 ]

BID = 127964

fenterhannes

Stammposter



Beiträge: 312
Wohnort: Osnabrück

Hey....! vielen Dank für die schnellen Antworten!
Da wahren schon einige Inreressante Tips für mich bei. Ich werde das Display jetzt erstmal am PC Parallelport testen...
Danke an anlle die sich die Mühe gemacht haben!

BID = 128095

Dracos-Carazza

Gesprächig



Beiträge: 185
Zur Homepage von Dracos-Carazza ICQ Status  

an sich ist die ansteuerung ziemlich easy, nur die teile sind echt extrem empfindlich, was spannung bzw verpolung angeht

@ her master voice ich hab meinen fehler übrigens gefunden und hätte mich innen arsch beißen können...

@jornbyte an wen muss ich eigentlich mein avatar schicken ?

@fenterhannes gibt nen paar nette programme wie LCDhype oder JALCDs, falls du probleme mit dem selber schreiben hast

greetz carazza

_________________
Es ist nicht deine Schuld, dass die Welt ist wie sie ist, es ist nur deine Schuld wenn sie so bleibt !



Wer seinen Trieb verleugnet, verleugnet das was ihm zum Menschen macht !

BID = 128337

Jornbyte

Moderator



Beiträge: 7178


Zitat :
an wen muss ich eigentlich mein avatar schicken ?

an den Admin


_________________
mfg Jornbyte

Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.


Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 20 Beiträge im Durchschnitt pro Tag       heute wurden bisher 11 Beiträge verfasst
© x sparkkelsputz        Besucher : 182399235   Heute : 6433    Gestern : 7548    Online : 523        25.11.2024    20:22
7 Besucher in den letzten 60 Sekunden        alle 8.57 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0442798137665