Forum: Mikrocontroller und Digitale Elektronik Problem mit Bascom und HD4478


von Aleksej Kiselev (Gast)


Lesenswert?

Hallo zusammen! Ich hab hier ein Problem mit der Steuerung von einer
LCD-Anzeige mit dem HD44780A00. Die Anzeige hat nicht 14-pin-connector,
sondern nur 10 pins. Irgendwo hab ich gesehen, dass da alles im Prinzip
ähnlich ist und fehlen nur DB0-DB3, also die Anzeige kann man nur im
4-bit-Modus betreiben. Ich vermute, dass die Pinbelegung von dem
Connector so aussieht: GND-VCC-Kontrast-RS-R/W-E-DB4-DB5-DB6-DB7, aber
100%-sicher bin ich auch nicht. Ich hab den ganzen Tag lang damit
gespielt und festgestellt, dass die Anzeige initialisiert wird, einige
Befehle werden auch ausgeführt, aber ich bin nicht in der Lage was
vernünftiges auszugeben.  So wie es zur Zeit aussieht, kommen da nur
die Zeichen mit dem XXXX1111-Kode (ich hab es mit der Hilfe von der
Charset-Tabelle festgestellt). Und nach dem Start kriege ich statt
"Hello" nur ein Zeichen mit dem 10111111-Kode. Wenn ich versuche was
zu schiften, dann klappt es, aber nur bis 8 Position der Anzeige (die
ist eigentlich 16*1 gross), dann verschwindet das Zeichen. Mit dem
Bascom-Simulator wird ja alles richtig dargestellt, da hab ich keine
Probleme. Was könnte ich falsch machen? Stimmt irgendwas mit der
Pinbelegung nicht oder funktioniert ja diese Anzeige irgendwie anders?
Oder klappt es wegen dem Bascom nicht? Hier ist das Programm:

Config LCDMODE = PORT
Config Lcdbus = 4
Config Portb = Output
Config Portd = Output
Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 ,
Db7 = Portb.3 , E = Portd.1 , Rs = Portd.0
Dim A As Byte
Config Lcd = 16 * 1
Cls
Lcd "Hello"
Wait 1
Cursor Off
Cls
Lcd "Shift"
Wait 1
For A = 1 To 5
   Shiftlcd Right
   Wait 1
Next
Cls
Home
End

Für jede Art der Hilfe würde ich sehr dankbar sein! :)

von Elch (Gast)


Lesenswert?

Wie brennst du denn deinen MCU?

von Werder (Gast)


Lesenswert?

Klingt ja ziemlich interessant. Und was genau wird im Bascom-Simulator
angezeigt?

von Kalle (Gast)


Lesenswert?

Hi Aleksej Kiselev

der Hinweis "...schiften, dann klappt es, aber nur bis 8 Position der
Anzeige ..." läßt auf ein LCD 16x1a vermuten. Ein solches Problem
hatte ich auch schon mal mit einme älteren 16x1 aus einem Scanner.

Habe dann mit
'Config Lcd = 16 * 1a'
gearbeitet und hat funktioniert. Nur bei shift oder Locate musst du
etwas spielen, da dann dass Display wie 8x2 angestuert wird. S. auch
hierzu die Hilfe zu CONFIG LCD
" LCDtype  The type of LCD display used. This can be :
40 * 4,16 * 1, 16 * 2, 16 * 4, 16 *  4, 20  2 or 20  4 or 16 * 1a
Default 16 * 2 is assumed.
When you have a 16 * 2 display, you don't have to use this statement.
The 16 * 1a is special. It is used for 2 * 8 displays that have the
address of line 2, starting at location &H8."

mfg Kalle

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.