LCDs und GLCDs anschließen und ansteuern (BASCOM)

Hallo Jürgen!

Recht hast du! :)
Danke, für den Hinweis!

Da schaut man selbst sooo oft auf den Schaltplan und.....

Habe den Plan natürlich gleich geändert und im Beitrag ausgewechselt!

Gruß,
Cassio


PS: Habe das Zitat in deinen Beitrag mal etwas eingekürzt. ;)
 
Hallo Casio, hallo Jürgen,

das mit dem Bild geht plötzlich, kann nicht sagen warum?
Hat e.v. etwas mit den Häkchen (SED, Unkompressed) zu tun, kann's jetzt aber nicht mehr nachvollziehen.

Hallo Cassio, in deinem Schaltplan für das Grafikdisplay hat sich ein
Fehler eingeschlichen. Das 10K-Poti für den Kontrast wird nicht nach Masse sondern nach VDD angeschlossen. Sehe ich jedenfalls so im Datenblatt und ich werde das Display die Tage mit dieser Beschaltung testen.

Gruß Jürgen

Ich hab das Display nach Deinem Plan Verdrahtet.
Das erste mal übrigens Spiegelverkehrt, die Beschriftung ist von Hinten.
Hat mir das Display aber nicht übel genommen, ist ziemlich robust.
Das Poti liegt bei mir, wie in deiner alten Zeichnung, an Masse und funktioniert einwandfrei.
Hier ein paar Messwerte, falls jemand nachmessen will:
Vee > Masse = -9,7V
Vee > Vdd = -14,7V

Vo > Masse auf -4,6V eingestellt
Vo >Vdd 9,6 V (typ. 9V)

Danke an Cassio, auch für dein Code, hat mir sehr geholfen.

Gruß an alle Siggi
 
Das Poti liegt bei mir, wie in deiner alten Zeichnung, an Masse und funktioniert einwandfrei.

Hallo Siggi!

Stimmt! ;)

Ich habe es eben noch mal schnell ausprobiert...
Einmal das Poti an Masse und einmal an +5V.
In beiden Fällen lässt sich der Kontrast so einstellen, dass die Anzeige ordentlich zu lesen ist!

Da aber das Datenblatt sagt, dass Kontrastpoti soll an +5V habe ich es nun geändert.
Nicht das es mal zu Problemen oder Defekten führt, wenn man das Poti von einem Endanschlag zum anderen dreht. ;)

Außerdem hatte ich hier kein 10k bzw. 20k Poti zur Verfügung und verwende dewegen ein 50k....... funktioniert aber damit auch einwandfrei an beiden Anschlüssen. :)



Gruß,
Cassio
 
Glcd 240*128

Hi,

habe jetzt ein Display ( 240*128 ) mit einem internen T6369C Controller unter Bascom zum laufen bekommen. Ich hänge noch ein paar Fotos an. Bei dem Adapter muss man bloß aufpassen, weil die Belegung nicht ganz mit der Pinkonfiguration übereinstimmt. Ich stell da aber nochwas rein.
Achso... die Platine ist mit einer CNC gefräßt worden... Saugeil :D :D :D :D
Gruß
Jens
 

Anhänge

  • DSC00291.JPG
    DSC00291.JPG
    20,9 KB · Aufrufe: 428
  • DSC00287.JPG
    DSC00287.JPG
    34,1 KB · Aufrufe: 367
  • DSC00285.JPG
    DSC00285.JPG
    41,8 KB · Aufrufe: 309
  • glcd240x128a.pdf
    125,4 KB · Aufrufe: 190
  • glcd240x128_adapter.pdf
    67,7 KB · Aufrufe: 128
Hi Jens,

schade, die Bilder sind unscharf. Hätte gern mal das gefräste PCB gesehen.
Wie wär's mit 'ner extra Makroaufnahme?


Grüsse,

Michael
 
Moin Jens!

Sehr fein, dann hätten wir auch ein großes Grafik-Display mit 240x128 Pixel in der Sammlung. :)

Scheint so, als hätten wir fast zeitgleich an einem identischen Display-Controller "gearbeitet". ;)
Mein Display ist allerdings nur halb so groß.... 240x64 Pixel, hat aber auch einen T6963C Controller.

Ich habe seit gestern Abend alle Unterlagen soweit fertig und werde die Bilder, den Anschlussplan, das Beispielprogramm und die Bezugsquelle hier in den nächsten Tagen ebenfalls einstellen.


Es wäre schön, wenn du zu deinen neuen Bildern auch gleich einen Schaltplan, ein Beispielprogramm und die Bezugsquelle mit einstellen würdest..... analog zu meinen vorherigen Beiträgen.


Schöne Grüße,
Cassio
 
Hi Cassio,

hast du auch den modischen Adapter für dein Display, so wie ich den habe.... :D

gruß
jens
 
Hallo zusammen!

Ich habe mal wieder ein Display für alle BASCOM-User getestet und stelle die wichtigsten Unterlagen zur Inbetriebnahme hier mit ein.


Das Display besitzt 2 x 20 Zeichen und eine blaue Anzeige mit weißer Hintergrundbeleuchtung.
Der Controller ist ein KS0070 und funktioniert unter BASCOM ohne Probleme!

Unter BASCOM kann man zwar die Option "Chipset = KS077" angeben, allerdings habe ich auch ohne den Zusatz keine Probleme mit dem Betrieb des Displays gehabt .
Sicherheitshalber sollte man aber immer den Zusatz unter BASCOM mit angeben!

Dank des unheimlich günstigen Preises, für ein blau/weißes Display, finde ich es sehr attraktiv...... und darum möchte ich es euch auch nicht vorenthalten. ;)

Darum habt ihr auch H I E R wieder den Link zum Bezug des Displays.
EDIT Mai 2010: Das Display ist nun leider nicht mehr verfügbar! Schade eigentlich!


Natürlich habe ich auch wieder Bilder vom funktionierenden Display gemacht.....

LCD-bl+ws_1.jpg und LCD-bl+ws_2.jpg


Nun noch ein Auszug von den wichtigsten Code-Segmenten zum Betrieb des Displays.....

Code:
' Configuriere das LCD
Config Lcd = 20 * 2 , Chipset = Ks077
Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.5 , Rs = Portc.4
Config Lcdbus = 4

Cursor Off

....


Locate 1 , 1
Lcd Time$ ; " " ; Wtag ; " " ; Date$

Locate 2 , 1
If Sync = 1 Then
Lcd "Sync: " ; Chr(2)
Else
Lcd "Sync: " ; Chr(3)
End If

Locate 2 , 10
Lcd "Temp: " ; Ist_temp ; Chr(0)


Wie im Code zu sehen ist, muss nichts besonderes beachten werden! ;)

Und hier noch der Anschlussplan---> lcd-20x2-ks0070.gif


Schöne Grüße,
Cassio
 
Hallo zusammen!

Seit einigen Wochen (Monaten) hatte ich hier noch ein Grafikdisplay mit 240 x 64 Pixel Auflösung liegen.

Nun habe ich es endlich aus zeitlichen Gründen geschafft, dieses größere Display auch einmal zu testen. :)

Es hat einen T6963C Controller und dieser wird von BASCOM auch tadellos unterstützt!
Das Besondere an dem Controller ist, dass man die Zeichenauflösung von 8x8 Pixel zu 8x6 Pixel "umschalten" kann!
Auf diese Weise hat man 8 x 30 bzw. 8 x 40 Zeichen Text zur Verfügung. :eek:

Obendrein muss man zum Darstellen von alphanummerischen Zeichen keine separate Font-Datei benutzen, sondern kann mit den Standardanweisungen für ganz normale LCDs arbeiten. :)

"Leider" wird für den Kontrast eine negative Spannung benötigt, die ihr euch aber mit einem ICL7660 recht einfach erzeugen könnt (siehe Anschlussplan).


Begeistert hatte mich neben der recht "großen" Auflösung natürlich auch der Preis.
Allerdings hat das Display einen gravierenden Nachteil.... :eek:
Die grüne Hintergrundbeleuchtung benötigt in Betrieb gut 500mA ! :eek:

Wen die hohe Stromaufnahme der Beleuchtung nicht stört, oder ggf. sogar darauf verzichten kann,
der findet H I E R wieder die Bezugsquelle. ;)
(Das Display ist inzwischen auch leider ausverkauft! Oktober 2010)


Auch von diesem Display habe ich Fotos gemacht....

GLCD24064_1.jpg und GLCD24064_2.jpg


Ausnahmsweise stelle ich heute Mal den kompletten Code mit ein.... :)

Code:
' DCF77 - Testprogramm
' GLCD T6963C Controller
' 240 x 64 Pixel !

$regfile = "m16def.dat"
$crystal = 4433619

$hwstack = 128
$swstack = 128
$framesize = 128


'First we define that we use a graphic LCD
' Only 240*64 supported yet

Config Graphlcd = 240 * 128 , Dataport = Portc , Controlport = Portd , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 4 , Fs = 5 , Mode = 6

'The dataport is the portname that is connected to the data lines of the LCD

'The controlport is the portname which pins are used to control the lcd

'CE, CD etc. are the pin number of the CONTROLPORT.
'For example CE =2 because it is connected to PORTD.2

'mode 8 gives 240 / 8 = 30 columns
'mode=6 gives 240 / 6 = 40 columns


' Bestimme die Ein und Ausgänge
Ddra = &B0000_0000                                          '1 ist Ausgang 0 ist Eingang
Porta = &B1111_1111                                         'auf Hi oder Low setzen

Ddrb = &B1_1101                                             '1 ist Ausgang 0 ist Eingang
Portb = &B0_0010                                            'auf Hi oder Low setzen


' Uhreinstellungen
Config Dcf77 = Pina.0 , Timer = 1 , Timer1sec = 1 , Debug = 1 , Update = 0 , Check = 1 , Inverted = 1 , Gosub = Sectic
Config Date = Dmy , Separator = .

Enable Interrupts

Time$ = "00:30:00"
Date$ = "01.01.07"

Dim Puls As Bit , Sync As Bit , Sec_z As Byte


'---------------------------------------------------
' 1-Wire Temperaturmessung mit DS1820
Config 1wire = Pina.2
Config Single = Scientific , Digits = 1
Dim Ist_temp As Single                                      ' Ist-Temperatur
Dim Temp As Word                                            '
Dim Temp1 As Integer                                        '
Dim Scratch(9) As Byte                                      '
Dim I1w As Byte                                             '


' Displayangaben
Cls
Cursor Off
Wait 1


Gosub Grafik
Line(119 , 3) -(119 , 60) , 0                               'Linie mitte löschen
' #############################################################################
' Arbeitsschleife
Do

Gosub Anzeige


Portb.0 = Puls

If Sec_z > 10 Then
Gosub Get_1wire
Sec_z = 0
End If

' ----------------------------------------
If _sec > 1 Then Reset Dcf_status.7


If _sec < 2 Then
   If Dcf_status.7 = 1 Then
      Sync = 1
   Else
      Sync = 0
   End If
Else
End If

If Sync = 1 Then
Portb.0 = Puls
Locate 5 , 11 : Lcd "erfolgt"
   If Puls = 1 Then
   Line(119 , 3) -(119 , 60) , 255                          'Linie mitte
   Else
   Line(119 , 3) -(119 , 60) , 0                            'Linie mitte löschen
   End If
Else
Portb.0 = 1
Locate 5 , 11 : Lcd " fehlt "
Line(119 , 3) -(119 , 60) , 0                               'Linie mitte löschen
End If

Loop

End

' ------------------------------------------------------------------------------
Sectic:
Toggle Puls
Incr Sec_z
Return

' ------------------------------------------------------------------------------
Grafik:
'Koordinaten X1 + Y1 zu X2 + Y2
Line(0 , 0) -(239 , 0) , 255                                'Linie außen oben
Line(3 , 3) -(236 , 3) , 255                                'Linie innen oben

Line(3 , 60) -(236 , 60) , 255                              'Linie innen unten
Line(0 , 63) -(239 , 63) , 255                              'Linie außen unten

Line(0 , 0) -(0 , 63) , 255                                 'Linie außen links
Line(3 , 3) -(3 , 60) , 255                                 'Linie innen links

Line(239 , 1) -(239 , 62) , 255                             'Linie außen rechts
Line(236 , 3) -(236 , 60) , 255                             'Linie innen rechts

Line(118 , 3) -(118 , 60) , 255                             'Linie mitte links
Line(120 , 3) -(120 , 60) , 255                             'Linie mitte rechts


Locate 2 , 2 : Lcd "--Reale Uhrzeit--"
Locate 3 , 2 : Lcd "Uhrzeit:"
Locate 4 , 2 : Lcd "Datum  :"
Locate 5 , 2 : Lcd "Sync.  :"
Locate 7 , 2 : Lcd "In-Temp:"

Locate 2 , 22 : Lcd "---DCF-77 Zeit---"
Locate 3 , 22 : Lcd "DCF_sec:"
Locate 4 , 22 : Lcd "DCF_day:"
Locate 6 , 28 : Lcd "Cassio"
Locate 7 , 24 : Lcd "AVR-Praxis.de"

Return


' ------------------------------------------------------------------------------
Anzeige:
Locate 3 , 11 : Lcd Time$
Locate 4 , 11 : Lcd Date$
Locate 7 , 11 : Lcd Ist_temp ; "Cel."

Locate 3 , 31 : Lcd Time(dcf_sec)
Locate 4 , 31 : Lcd Date(dcf_day)

Return



' ------------------------------------------------------------------------------
Get_1wire:
1wreset
1wwrite &HCC
1wwrite &H44

Do
 Temp = 1wread()                                            ' Ende der Temperaturmessung abwarten
Loop Until Temp = &HFF

1wreset
1wwrite &HCC
1wwrite &HBE

For I1w = 1 To 9
Scratch(i1w) = 1wread()
Next

Temp = Scratch(2)
Shift Temp , Left , 8

Temp = Temp + Scratch(1)
Temp1 = Temp
Temp1 = Temp1 / 2
Ist_temp = Scratch(8) - Scratch(7)
Ist_temp = Ist_temp / Scratch(8)
Ist_temp = Ist_temp + Temp1
Ist_temp = Ist_temp - 0.25
Return



Den Anschlussplan findet ihr natürlich auch wieder hier---> glcd-240x64.gif

Schöne Grüße,
Cassio
 
Hi Cassio,

mal wieder Klasse.:flowers: So langsam muss ich mich mal ernsthaft mit Displays beschäftigen.
:offtopic:
Doch vorerst gibt's ein kleines Ärgernis: Ich hatte heute den Platz eingerichtet, alles angeschlossen - kein ISP- Kabel da. Keine Stecker zum Neu- konfektionieren gefunden.:mad::mad::mad: Höchst ärgerlich. Also alles nochmal ' rauskramen. Wird aber, früher oder später...


Grüsse,

Michael
 
LCDs von Pollin

Hi Cassio,

so wie das aussieht ist das so ein Solomon-Display wie ich zuhause rumfliegen
hab. Auch von Pollin und so 5..7Stk ;)

Grad mal in den Mails nachgesehen ... Jau ! Ist eins davon. :D Freu !

Problem ... Wenn die von Pollin ankommen sind da gerne auskristallisierte
Stellen auf dem Display. Also schwarzer "Fliegendreck" wo das Flüssigkristall
auskristallisiert ist. Entweder durch zu harte Stöße oder was weiß ich ...
Ich schätze mal, das ich beinahe jedes Display 2x bekommen habe. Einmal
defekt und dann nach der Reklamation nochmal heile :eek: :( Irgendwie
haben die das bei Pollin nicht so mit ner vernünftigen Verpackung.

Das härteste war mal folgendes ...
Pollin-Paket.jpg
Da waren unter anderem auch Bohrkronen in dem Paket ( bis 125mm !! ).
Auf den Sachen lagen zwei Alibi-Packpapiere gegen verrutschen und Stoß.
In diesem Paket-Gewusel lag auch nen LiPo-Akku in ner Plastiktüte (ohne
Noppen). Wenn da was eingeschlagen hätte, wär das Paket bei DHL/Post
auf dem Fließband abgefackelt :D :eek: :rolleyes:

Das eine LCD in dem Paket hat den Transport auch nur mit sehr viel Glück
überlebt. Man beachte die Einschläge in den Schutzfolien ...
Pollin-LCD.jpg
Zum Glück war direkt auf dem LCD nichts zu sehen. Sonst wär das auch
wieder ne Reklamation geworden. Ich hab teilweise schon dran gedacht,
empfindliche Sachen extra zu bestellen. Aber andererseits hab ich keine
Lust für die Blödheit von Pollin extra Porto zu bezahlen :(

Gruß
Dino
 
Hi Dino!

Ich kann dir schon zustimmen, was die mangelnde Verpackung bei Pollin betrifft....

Allerdings habe ich bis jetzt noch nichts defektes erhalten, auch wenn mehrere Displays mit anderen "schweren" Artikeln im Paket gewesen sind.

Bis jetzt habe ich nur einmal einen falschen Artikel bekommen..... durfte den sogar behalten und Sie haben mir kostenfrei den richtigen Artikel nachgesendet.

Alles in Allem bin ich mit Pollin schon recht zu frieden und bestelle dort ganz gern mal das ein oder andere Schnäppchen! :)


Vielleicht sind die Displays auch nicht die wahnsinns "Neuheiten", aber sie funktionieren, waren immer in einem tadellosen Zustand und sind sehr günstig.
Für meine Hobbyzwecke sind sie daher absolut Perfekt! ;)


Bist du denn mit deinem "Touch-Display" schon weiter gekommen?

Schöne Grüße,
Cassio
 
Hi Cassio,

Allerdings habe ich bis jetzt noch nichts defektes erhalten, auch wenn mehrere Displays mit anderen "schweren" Artikeln im Paket gewesen sind.
ging bei mir bis jetzt auch so halbwegs. Der LiPo wäre allerdings beinahe
abgefackelt und bei den großen Solomons waren echt 90% der gelieferten
mit "Fliegendreck". Zum Glück waren die Nachsendungen dann ok. Ich durfte
die defekten zwar auch behalten aber was nutzt es, wenn man mitten auf
dem Display nen Krebsgeschwür hat ? :( Kann man höchstens zum testen
verwenden aber für Wirk-Anwendungen ist das Grütze. Die kleinen LCDs
sind bis jetzt immer heil angekommen. Die konnten sich wohl bei Verschiebungen
im Paket schnell genug dünne machen :D

Alles in Allem bin ich mit Pollin schon recht zu frieden und bestelle dort ganz gern mal das ein oder andere Schnäppchen! :)
Also für Schnäppchen sind die ganz ok. Ist halt nur nervig wenn man die
großen LCDs so oft reklamieren muß. Dabei wäre es so einfach ...

Vielleicht sind die Displays auch nicht die wahnsinns "Neuheiten", aber sie funktionieren, waren immer in einem tadellosen Zustand und sind sehr günstig.
Für meine Hobbyzwecke sind sie daher absolut Perfekt! ;)
Ich benutz die Teile auch gerne. Wenn sie funktionieren ist mir das auch egal.
Warum soll ich wo anders das doppelte oder dreifache ausgeben ?

Bist du denn mit deinem "Touch-Display" schon weiter gekommen?
Leider nicht. Ich hoffe mal, das im Oktober dann wieder etwas mehr Zeit da
ist. Ich will dann mal wieder etwas mehr Zeit fürs Hobby einsetzen. Die
Renovierung ist gut voran gekommen. Ich bin mit dem aktuellen Status
recht zufrieden. Flur ist zZt in Arbeit und Wohnzimmer fehlt noch.

Gruß
Dino
 
Was Dino...Touchdisplay??? meins kommt nächste Woche... Ich programmiere zwar das ganze mit Bascom, aber wir können uns da ja mal kurzschließen....

Gruß
jens
 
Hi Jens,

Was Dino...Touchdisplay??? meins kommt nächste Woche... Ich programmiere zwar das ganze mit Bascom, aber wir können uns da ja mal kurzschließen....
mach dir da mal keinen Streß, die Dinger sind bei mir noch in der CMOS-Tüte :D

noch kein einziges Bit an Code dafür erstellt ;)

Gruß
Dino
 
Hi,

der Touch ist Gestern angekommen. Eben angeschlossen und er läuft prima:) :) . Wenn nur der AD-Wandler nicht so am flippen wäre, wäre es um einiges besser. Wenn ich alles in der Kiste eingebaut habe werde ich die einzelnen Codes mit Bilder ins Netz stellen.

Gruß

Technicus
 
Grafik Display vom NIBO2 ROBO mit Bascom ansteuern

Hallo zusammen!
Hier bin ich glaube ich richtig. Ich versuche seit Tagen das Grafikdisplay am NIBO
mit Bascom anzusteuern. Mit C gehts, da ich lieber mit BASCOM programmiere, würde ich das lieber damit machen.
==>
http://www.nibo-roboter.de/wiki/Grafikdisplay?db91111_2_nwde__session=92bfadaeb93d274e6a5f6eb4d3053632

So ist es angeschlossen und mit Bascom angesteuert:
Könnte mal bitte einer draufschauen was ich falsch mache.
Oder gehts so nicht wie es angeschlossen ist?

Code:
'---------------------------------------------------------------------
$regfile = "m128def.dat"
$crystal = 16000000
$lib "glcdKS108.lbx"
$lib "glcdKS108.lib"          'Display mit KS0108/ KS0107

$hwstack = 40
$swstack = 20
$framesize = 40

'******************************************************
'Display
'
'1     = +5V
'2     = GND
'3     = Contrast Adjust
'4     = DB0      => PA0
'5     = DB1      => PA1
'6     = DB2      => PA2
'7     = DB3      => PA3
'8     = DB4      => PA4
'9     = DB5      => PA5
'10    = DB6      => PA6
'11    = DB7      => PA7
'12    = CS1      => PG0
'13    = CS2      => PG1
'14    = Reset    => PB0 ?
'15    = RW/RD    => PG4 Read/Write
'16    = RS/CD    => PG3
'17    = Enable   => PG2
'18    = VD/+5V
'19    = Powersupply for Led
'20    = VLED- => PB6=1 Displaybeleuchtung

Ddra = &B11111111             'PortA als OUTPUT  für Daten Display
Ddrg = &B00011111             'PortG als Output für Controllport
Ddrb = &B01000001

Set Portb.0                   'Reset Display
Wait 1
Reset Portb.0.0
Set Portb.6                   '1 für Displaybeleuchtung



Dim X As Byte , Y As Integer

Config Graphlcd = 128 * 64sed , Dataport = Porta , Controlport = Portg , Ce = 0 , Ce2 = 1 , Cd = 3 , Rd = 4 , Reset = Portb.0 , Enable = 2

Setfont Font8x8

Cls
Waitms 600

Lcdat 3 , 34 , "Test 123" , 0
Waitms 200

End
$include "font8x8.font"
 
hi olli55,

lass mal den set portb.0 weg. auserdem hast du an einer stelle reset portb.0.0 stehen. da würde ich eine 0 entfernen. Ist jetzt mal aber egal. wenn du in bascom den coltrollport auf den port g programmiert hast, würde ich auch den reset auf port g legen. also leg mal alle steuerleitungen auf port g und versuche es nochmal.

gruß
technicus123
 

Ü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)