Conrad LCD (KS0066 or Equivalent)

Richard

Neues Mitglied
16. Sep. 2008
21
0
0
Sprachen
Moin oin allerseits.

Ich versuche gerade seit etlichen Stunden das oben benannte
4X16 Lcd mit Bascom zum Leben zu erwecken. Leider ohne Erfolg. :-(

Außer, ich kann den Kontrast regeln, tut sich NIX. Ich habe in Bascom/Optionen/LCD die Pinbelegung für die von mir verwedeten Port.X Eingetragen. Nur es bewegt sich
alsolut nichts!

Frage: Unter optionen/Compiler/LCD/ gibt es auch Feler wo
die LCD Aresse...Angegeben werden muß/soll ????? was
wird dort von mir erwartet? Ich habe da jetzt mal den
vorgegebenen Wert so stehen lassen weil mir das jetzt halt
nichts "sagt". :-(

Das LCD hängt an einen STK500, falls das von Bedeutung ist.

Es währe wirklich sehr sher nett, wenn mir da jemand meine Hirnblockade lösen helfen möchte.

Danke schon einmal, Guß Richard
 
Hallo Richard,

ich muss zu meiner Schande gestehen, dass ich noch gar nie die Optionen und Einstellungen für ein LCD-Display unter BASCOM/Optionen/Copiler/LCD festgelegt habe.

Du bist der erste der mich auf solch eine Idee bringt :cheers:

Denn:
Üblicherweise wird die Configuration und Einstellung des LCD-Display im Code gemacht. Dazu gibt es einige Funktionen / Befehle welche dazu dienen.

Einen klassische LCD-Initialisierung, z.B. für ein DOG-M 16x3 Display sieht wie folgt aus:
Code:
' ----- Konfiguration LCD Display -----
Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.4 , Rs = Portc.5
Config Lcd = 16 * 3 , Chipset = Dogm163v5
'Config Portc = Output                                       ' nicht zwingend erforderlich
'Config Lcdbus = 4                                           ' nicht zwingend erforderlich
Initlcd
Waitms 100
Cursor Off Noblink
Cls


Mit dem KS0066 hast Du Dir natürlich nicht gerade den leichtesten LCD-Typ rausgesucht. Mir sind hier einige Probleme bekannt und soweit ich weiß gibt es unter BASCOM keinen passende Treiber für das LCD-Display. Ich vermute also, Du wirst das Datenblatt zur Hand nehmen müssen und den treiber selbst programmieren :D

Schau Dir hierzu mal die Diskussion im Roboter-Netz unter
http://www.roboternetz.de/phpBB2/printview.php?t=10766&start=0
an. Hier ist beschrieben wie so etwas aussehen könnte.

Du kannst Dir auch auf der Hompage des Herstellers von BASCOM-AVR (MCS Electronics) direkt mal die beiden Threads zum Thema LCD-Display ansehen:
http://www.mcselec.com/index2.php?option=com_forum&Itemid=59&page=viewtopic&t=1805&highlight=ks0066
http://www.mcselec.com/index2.php?option=com_forum&Itemid=59&page=viewtopic&t=842&highlight=ks0066

Ich würde sagen, das Wochenende ist gerettet :cool:

Grüße,
Markus
 
Hallo Richard,

ich muss zu meiner Schande gestehen, dass ich noch gar nie die Optionen und Einstellungen für ein LCD-Display unter BASCOM/Optionen/Copiler/LCD festgelegt habe.

Du bist der erste der mich auf solch eine Idee bringt :cheers:

Denn:
Üblicherweise wird die Configuration und Einstellung des LCD-Display im Code gemacht.

Moin moin Markus.

Ich wußte auch nicht das man das unter Optionen
einstellen kann und habe es auch im code gemacht.
Allerdings habe ich dazu eine vorhandene Demo
/lcd/lcd4.bas genommen und mein Display passend
verdratet. Leider aber ohne Erfolg. :-( Das kann (?)
aber daran liegen das in der Demo ein anderer Chip
eingestellt war, ich habe dann Chip und Frequenz auf
m16/16 MHz geändert...aber das Programm fügt eine
$lib "lcd4.lbx" die könnte natürlich Chip bezogen sein?

Immerhin, ich kann den Kontrast regeln....Ein Datenblatt
habe ich hier, die Frage ist nur ob sich das überhaupt
in Basic umsetzen läßt. Ich bin/war (vor ~20 Jahren)
Assemblererfahren aber bis ich jetzt die ganzen Register
wieder in den alten grauen Zellen bekomme????? Bis
zur Rente mit reichlich Zeit dauert es auch noch 10 Jahre.

Ich fürchte es ist günstiger wenn ich das Teil in die
Tonne klopp und mir etwas besorge was nicht so exotisch
ist, zur Rente kann ich das dann ausmotten. :)

Ich habe jetzt einen 16 MHz Quarz im STK500, seit dem
klappt es auch mit der Seriellen Schnittstelle, bei den
internen RC ozzilator ging es nur bei 1 MHz und 2400
Baud. :-( Ich muß zugeben, das STK500 und auch die
Amtel Chips können ganz gut was ab. Ich hatte von 8515
auf M16 gewechselt weil beim M16 die 2 PWM Signale
an einem Port zu finden sind. Es hat etwas gedauert
bis ich bemerkt habe das ich den M16 im 8515 Sockel
Programmieren wollte.....beide haben überlebt. :)

Grenzgenial ist die Parallel Programmierung wenn man
einmal derart müll programmiert hat das der Chip sich
nicht mehr meldet, hilft das quasi immer. :)

Danke und guten Gruß, Richard
 
Moin moin,

Ich habe mir mal das von RN angesehen und getestet,
klappt allerdings nicht so richtig, immerhin werden jetzt
4 Zeilen angezeigt und gelegentlich auch irgendwelcher
Müll?

Allerdings schein der Code auch nicht so gut zu sein...

Code:
Config Pind.5 = Output                                      'E
E Alias Portd.5
Config Pinb.0 = Output                                      'RS
Rs Alias Portb.0
Config Pinc.0 = Output                                      'D4
D1 Alias Portc.0
Config Pinc.1 = Output                                      'D3
D2 Alias Portc.1
Config Pinc.2 = Output                                      'D2
D3 Alias Portc.2
Config Pinc.3 = Output                                      'D1
D4 Alias Portc.3

Sub Rn_writelcdcode(byval Zeichen As Byte)
   Rs = 0

   If Zeichen.4 = 1 Then D1 = 1 Else D1 = 0
   If Zeichen.5 = 1 Then D2 = 1 Else D2 = 0
   If Zeichen.6 = 1 Then D3 = 1 Else D3 = 0
   If Zeichen.7 = 1 Then D4 = 1 Else D4 = 0
   E = 1
   Waitus 2
   E = 0
   If Zeichen.0 = 1 Then D1 = 1 Else D1 = 0
   If Zeichen.1 = 1 Then D2 = 1 Else D2 = 0
   If Zeichen.2 = 1 Then D3 = 1 Else D3 = 0
   If Zeichen.3 = 1 Then D4 = 1 Else D4 = 0

.....irgendwie vermisse ich da z.b. die Zuortnung von
Zeichen.x, außerdem sollten laut Datenblatt D4..D7
und nicht D1...D4 im 4 Bit Modus arbeiten? Ich bin
ein wenig von der Rolle????

Gruß Richard
 
Hallo Richard,
das Anag-Vision-Display von Conrad hat "Macken", das dürfte mittlerweile sich rumgesprochen haben, siehe Thread oben.
Habe mir schlußendlich eins von DisplayTech (Reichelt) gekauft.

http://www.avr-praxis.de/forum/showthread.php?t=107&page=2

Das nur nebenbei.

Versuch mal testweise den Code unten.

Was tut sich?

Beim Anag-Vision-Display zeigte sich erst was, wenn der Text in einer Schleife oder mindestrens dreimal hintereinander gesendet wurde.



Würde mich echt interessieren.


Gruß von Oskar01

Update:
Man kommt nicht umhin, die LCDs mal daraufhin abzuklopfen.
Hier der Link zu der "Grundsatz"-Diskussion:

http://www.kbra01.de/lcd_2.htm
 

Anhänge

  • Groschengrab2.txt
    7,1 KB · Aufrufe: 101
LCD ANAG VISION AV2040GFBW-W mit Bascom

Hallo Richard,

Immerhin, ich kann den Kontrast regeln....Ein Datenblatt
habe ich hier, die Frage ist nur ob sich das überhaupt
in Basic umsetzen läßt.

Zu diesem Thema habe 2 Datenblätter gefunden - eines von Samsung
(das hat Oskar01 auszugsweise bereitgestellt) und eines über die
Conradhomepage Art. Nr.181671 -die etwas unterschiedlich. Das Datenblatt von Conrad
führte zum Erfolg. Hier der BASCOM Code, der mit einem ATmega32 (16 MHz) funktioniert:

Code:
$regfile = "m32def.dat"
'Taktfrequenz 16MHz
 $crystal = 16000000
'Baudrate für UART
 $baud = 19200

 'LCD Anschluesse
   Lcd_db4 Alias Portc.4
   Lcd_db5 Alias Portc.5
   Lcd_db6 Alias Portc.6
   Lcd_db7 Alias Portc.7
   Lcd_e Alias Portc.2
   Lcd_rs Alias Portc.3

   'Displayansteuerung und 2x digital OUT
   Ddrc = &B11111111
  'Pull up einschalten
   Portc = 255
  declare sub Lcdwritehh(byval Zeichen As Byte)
   initlcd
  Config Lcdpin = Pin , Db4 = Lcd_db4 , Db5 = Lcd_db5 , Db6 = Lcd_db6 , Db7 = Lcd_db7 , E = Lcd_e , Rs = Lcd_rs


   Waitms 40

   Call Lcdwritehh(&B00110000)                              'laut Datenblatt
   Waitms 15
   Call Lcdwritehh(&B00110000)                              'laut Datenblatt
   Waitms 5
   Call Lcdwritehh(&B00110000)                              'laut Datenblatt
   Waitms 2

   Call Lcdwritehh(&B00100000)                              'laut Datenblatt
   Waitms 2
   Call Lcdwritehh(&B00100000)                              'laut Datenblatt
   Waitms 2

   Call Lcdwritehh(&B11000000)                              'Select Font, 2 lines
   Waitms 2
   Call Lcdwritehh(&B00000000)                              'Display on
   Waitms 2
   Call Lcdwritehh(&B10000000)                              'Display on
   Waitms 5
   Call Lcdwritehh(&B00000000)                              'Clear display
   Waitms 2
   Call Lcdwritehh(&B00000001)                              'Clear display
   Waitms 2
   Call Lcdwritehh(&B00000000)                              'Entry mode: Cursor increment, no display shift
   Waitms 2
   Call Lcdwritehh(&B01100000)                              'Entry mode: Cursor increment, no display shift
   Waitms 2
'###########
 Do
Waitms 1000
Locate 1 , 1
Lcd "1111111111"
print "123123"
Waitms 100
Locate 2 , 1
Lcd "222222222222"
Waitms 100
Locate 3 , 1
Lcd "33333333333333"
Waitms 100
Locate 4 , 1
Lcd "4444444444"
Wait 3
cls

Loop

  Sub Lcdwritehh(byval Zeichen As Byte)
      Reset Portc.3
        ' hihg Nibble
     If Zeichen.4 = 1 Then Set Portc.4 Else Reset Portc.4
     If Zeichen.5 = 1 Then Set Portc.5 Else Reset Portc.5
     If Zeichen.6 = 1 Then Set Portc.6 Else Reset Portc.6
     If Zeichen.7 = 1 Then Set Portc.7 Else Reset Portc.7
     ' Niederwertiges Nibble übertragen
       'Waitms 1
     Set Lcd_e
     Waitus 123
     Reset Lcd_e
       If Zeichen.0 = 1 Then Portc.4 = 1 Else Portc.4 = 0
     If Zeichen.1 = 1 Then Portc.5 = 1 Else Portc.5 = 0
     If Zeichen.2 = 1 Then Portc.6 = 1 Else Portc.6 = 0
     If Zeichen.3 = 1 Then Portc.7 = 1 Else Portc.7 = 0
      Set Lcd_e
     Waitus 123
     Reset Lcd_e
   End Sub

Nach vielen Versuchen habe ich festgestellt, daß das Timing nicht ganz so kritisch ist wie vermutet,
sondern die größten Probleme darin liegen das Datenblatt im 4Bit Modus richtig zu interpretieren
--> d.h. ich hatte das Problem zwischen meinen Ohren .... :)

Gruss
Georg1
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)