LCD Display 4x20 an Digital Ports
Hallo,
ich habe wiedereinmal ein kleines Problem mit meiner C-Control(M-Unit 2.0). Es ist folgendes: Für eine Anwendung möchte ich ein 4x20 Punktmatrix Display mit dem KS0066 ansteuern. Das ganze soll über die Digitalports laufen, wie dass bereits angeschlossene Display auf dem Application Board. Nun habe ich das 4x20 parallel zu dem bereits vorhandenen Display auf die gleichen Leitungen angeschlossen (RS: Port 14, RW: Port 13, E: Port 15, DB7 - DB 4: Port 12 bis Port 9, Versorgung klappt alles) nun verwende ich ein Programm welches mir einfach in einer Schleife etwas in die Zeilen schreiben soll, auf dem integrierten Display sieht man alles nur dass 4x20 zeigt nichts an. Nach dem Internet ist der KS0066 kompatibel zum HD74880 und so denke ich mir sollte die Ansteuerung mit dem Basic ++ Programm eigentlich funktionieren.
Code:
define i as byte
i = 0
WITH LCD
.INIT
do
.CLEAR
.POS 1,1
.PRINT "Hallo"
.POS 2,1
.PRINT "HALLO"
.POS 3,1
.PRINT "HALLO HALLO"
.POS 4,1
.PRINT "HALLO HALLO HALLO"
loop until i = 1
END WITH
Ich habe mit dem Osziloskope nachgesehen, es kommen Signale zum Display, allerdings zeigt sich einfach nichts, hat jemand eventuell eine Idee wie ich mein Problem beheben könnte?
Danke schon im Vorraus für eventuelle Antworten.
Re: LCD Display 4x20 an Digital Ports
Zitat:
Zitat von Reth
Hallo,
ich habe wiedereinmal ein kleines Problem mit meiner C-Control(M-Unit 2.0). Es ist folgendes: Für eine Anwendung möchte ich ein 4x20 Punktmatrix Display mit dem KS0066 ansteuern. Das ganze soll über die Digitalports laufen, wie dass bereits angeschlossene Display auf dem Application Board. Nun habe ich das 4x20 parallel zu dem bereits vorhandenen Display auf die gleichen Leitungen angeschlossen (RS: Port 14, RW: Port 13, E: Port 15, DB7 - DB 4: Port 12 bis Port 9, Versorgung klappt alles) nun verwende ich ein Programm welches mir einfach in einer Schleife etwas in die Zeilen schreiben soll, auf dem integrierten Display sieht man alles nur dass 4x20 zeigt nichts an. Nach dem Internet ist der KS0066 kompatibel zum HD74880 und so denke ich mir sollte die Ansteuerung mit dem Basic ++ Programm eigentlich funktionieren.
Eigentlich könnte es so wie du schreibst funktionieren, allerdings muss der
Kontrast zum LCD jeweils separat zugeführt werden.
Was das KS066 betrifft, kann ich zur Kompatibilität nichts sagen, aber dafür
zum KS0073, was aber womöglich auch für das KS066 gilt.
Durch die andere Initialisierung geht aber das zweizeilige evtl. nicht
mehr. -> Ausprobieren
-----------------------------------------------------------------
LCD mit KS0073 (nahezu HD44780 kompatibel)
-----------------------------------------------------------------
LCDs mit dem KS0073 Controller (z.B. DIP204-4) benötigen im
4-Zeilen Modus eine zusätzliche Initialisierung und haben ausserdem
eine andere Zuordnung von Adresse zu Zeile.
define LCDPORT byteport[2]
define OUTBYTE byte[1]
define LCDDATA byte[2]
print "#ON_LCD#";"#INIT#";
LCDDATA=&h24:gosub LCD_WRITECMD:pause 2
LCDDATA=&h09:gosub LCD_WRITECMD:pause 2
LCDDATA=&h20:gosub LCD_WRITECMD:pause 2
print"#L101#";"Z1";
print"#L133#";"Z2";
print"#L165#";"Z3";
print"#L233#";"Z4";
#lp
goto lp
'--------- ------WRITE HI NIBBLE LCD COMMAND ------------
#LCD_WRITECMD
OUTBYTE=(LCDDATA shr 4)
LCDPORT=OUTBYTE or &B01000000:LCDPORT=OUTBYTE and &B10111111
'--------------- WRITE LO NIBBLE ------------------------
OUTBYTE=(LCDDATA and &H0F)
LCDPORT=OUTBYTE or &B01000000:LCDPORT=OUTBYTE and &B10111111
return