Forum: Mikrocontroller und Digitale Elektronik KS0070B_V0 kompatibel zu HD44780?


von Harald (Gast)


Lesenswert?

Hi,

ist der HD44780 zu dem KS0070B kompatibel? Und kann ich dann die 
gleichen lcd-routines aus dem tutorial (die für einen HD44780 sind) 
nutzen?

Gruß
Harald

von 3366 (Gast)


Lesenswert?

Moeglicherweise. Was spricht dagegen, die Befehlssaetze zu vergleichen ? 
Zu finden im Datenblatt zu eben diesen chips.

von Karl B. (gustav)


Lesenswert?

Hallo Harald,
die Initialisierungsroutinen unterscheiden sich nicht wesentlich 
bezüglich der Befehle als solchen. Die sehen ziemlich gleich aus.
Nur die Abfolge und die Wartezeiten dazwischen können erheblich 
abweichen.
Zum Beispiel braucht der KS0066U  die dreimal Hex 30 nicht unbedingt.
Andere Displays haben Zeitverzögerungsvarianten von 160 ms bis 39 ys 
zwischen den einzelnen Befehlen zur Initialisierung.

von Harald (Gast)


Lesenswert?

Hallo,

das Problem ist, dass es nicht funktioniert und ich nicht herausfinde, 
wo mein Fehler liegt.
An meinem AVR (ATmega8) muss ich doch nur (er läuft mit internen Takt 
mit 1MHz) Reset (PC6) mit meiner Spannung (5V) über einen 10k Widerstand 
verbinden und eben das VCC und darunter das GND verbinden, oder?

Dann mal hier das Datenblatt : 
http://www.mikrocontroller.net/attachment/38753/KS0070B_V0.pdf
Auf Seite 32 stehen die Informationen zur gewünschten 4-bit 
Initialisierung

Das LCD ist folgendermaßen verbunden : DB4-DB7: PD0-PD3
RS: PD4
E: PD5
und RW ist dauerhaft low.

Das mit den Pausen sollte ja immer analog zum Tutorial gehen, ich 
vergrößer sie halt anfangs und geh, falls es irgendwann mal funktioniert 
schrittweise runter

So mal ein Bsp. Da steht bei Function Set im DB:
RS    R/W    DB7    DB6    DB5    DB4
0      0      0      0      1      0
0      0      0      0      1      0
0      0      N      F      X      X

N: 0 1-line mode, 1: 2-line mode
F: 0 5x7 Dots, 2: 5x10 Dots


Heißt das ich muss folgendes eingeben in das AVR Studio eingeben?
ldi r16, 0b00000010
rcall lcd_command
ldi r16, 0b00000010
rcall lcd_command
ldi r16, 0b000010xx  ; 2line, 5x7 Dots

Weil da steht ja auch nichts von E. An Bit6 liegt ja eigentlich E, ist 
das immer 0?

von Harald (Gast)


Lesenswert?

an Bit5 liegt E meinte ich, entschuldigung

von Michael U. (amiga)


Lesenswert?

Hallo,

dazu gibt es ja uch noch ein Timingdiagramm über das zeitliche 
Verhalten...

Seite 23, wenn meine Anzeige stimmt.

Wenn Daten/RS/RW passend anliegen muß E mindestens für xx µs auf H gehen 
und dann wieder auf L, dmit diese dann übernommen werden.

Für die nötigen Zeiten gibt es dann auch wieder eine Tabelle (bei mir 
auf Seite 40), wo E Cycle Time, also die minimale Zeit für einen 
kompletten L/H/L-Zyklus und E Pulse Width (High,Low), also die minimale 
Impulsbreite für L oder H, angegeben sind.

Für den Rest dann Taschenrechner usw. usw.

Gruß aus Berlin
Michael

von Harald (Gast)


Lesenswert?

lcd_enable:
sbi PORTD. 5
nop
nop
nop                 ; macht zusammen 1500ns
cbi PORTD, 5

also immer so?
ldi r16, 0b00000010
rcall lcd_command
rcall lcd_enable
ldi r16, 0b00000010
rcall lcd_command
rcall lcd_enable
ldi r16, 0b000010xx  ; 2line, 5x7 Dots
rcall lcd_command
rcall lcd_enable

aber stimmt das immer so mit den zahlen?
Im DB meines Displays 
(http://www.reichelt.de/?;ACTION=7;LA=6;OPEN=1;INDEX=0;FILENAME=A500%252FLCD162C%2523DIS.pdf;SID=28Nj3rMawQARwAADqIiC0c45e569ce8adb23cb9a1dbd43feb6ce4/LCD162C%23DIS.pdf+anzeigen) 
S. 5 steht ich müsse zuerst 0b00000011 in das Steuerregister schieben.

Ja was denn nun? :-(

von big (Gast)


Lesenswert?

Kann denn keiner helfen? :-(

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.