Problem mit Bascom und HD4478

Gast #59394
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! :)
Gast #59397
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.