Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

LCD-Modul vom Typ HD44780 mit dem LPT1 ansteuern

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Profi-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
eeg-grimm



Anmeldungsdatum: 19.04.2006
Beiträge: 52
Wohnort: Herzogenaurach

BeitragVerfasst am: 04.01.2009, 09:16    Titel: LCD-Modul vom Typ HD44780 mit dem LPT1 ansteuern Antworten mit Zitat

Hallo Jungs,

habe da eine Idee, möchte eine LCD-Modul vom Typ HD44780 (2 X 16 Zeichen) mit dem LPT1 Ausgang ansteuern (z.B. D0 bis Dcool.
Dachte so an eine Eingabe von 2 X 16 Zeichen (Variablen A1 bis A16 und B1 bis B16).
Die Eingaben A werden in der oberen Zeile angezeigt und B in der Unteren.


Die Belegung des LCD-Moduls ist.

Pin # Bezeichnung# Funktion
1# Vss# GND
2# Vcc# 5V
3# Vee# Kontrastspannung (0V bis 5V)
4# RS# Register Select (Befehle/Daten)
5# RW# Read/Write
6# E# Enable
7# DB0# Datenbit 0
8# DB1# Datenbit 1
9# DB2# Datenbit 2
10# DB3# Datenbit 3
11# DB4# Datenbit 4
12# DB5# Datenbit 5
13# DB6# Datenbit 6
14# DB7# Datenbit 7
15# A# LED-Beleuchtung, Anode
16# K# LED-Beleuchtung, Kathode



Ich möchte den 4-Bit-Modus verwenden!!!!!!

Der 4-Bit-Modus hat den Vorteil, dass man 4 IO-Pins weniger benötigt als beim 8-Bit-Modus.
Neben den vier Datenleitungen (DB4, DB5, DB6 und DB7) werden noch die Anschlüsse RS, RW und E benötigt.

•Der 4-Bit-Modus verwendet nur die oberen vier Datenleitungen (DB4-DB7). Um ein Byte zu übertragen braucht man somit zwei Zugriffe, wobei zuerst das höherwertige "Nibble" (= 4 Bits), also Bit 4 bis Bit 7 übertragen wird und dann das niederwertige, also Bit 0 bis Bit 3. Die unteren Datenleitungen des LCDs, die beim Lesezyklus Ausgänge sind, lässt man offen (siehe Datasheets, z.B. vom KS0070).


Hat von euch einer so was bereits gemacht oder hat jemand einen Programmvorschlag.
lächeln lächeln
Gruß aus Erlangen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 04.01.2009, 17:47    Titel: Antworten mit Zitat

Gute Anlaufstelle:
http://www.franksteinberg.de/progss.htm
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1837
Wohnort: [JN58JR]

BeitragVerfasst am: 05.01.2009, 07:01    Titel: Antworten mit Zitat

http://mln.ath.cx/fb/project/lcd_dotmatrix/
http://mln.ath.cx/user/thepuppetmaster/hard/lcd_xyy/


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]


Zuletzt bearbeitet von ThePuppetMaster am 04.02.2013, 10:53, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
mad23



Anmeldungsdatum: 03.02.2013
Beiträge: 8

BeitragVerfasst am: 03.02.2013, 16:21    Titel: Antworten mit Zitat

... soll win xp sein, ich schaue mir mal die links an
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1236
Wohnort: Ruhrpott

BeitragVerfasst am: 27.02.2013, 19:28    Titel: Parallelport bei Windows XP Antworten mit Zitat

Anders als frühere Windowsversionen bis einschließlich ME verhindert XP den Direktzugriff auf den Parallelport. Zur Lösung dieses Problems gibt es einen Freeware-Treiber namens "inpout32.dll".

http://logix4u.net/index.php?option=com_content&task=view&id=16&Itemid=1
http://www.highrez.co.uk/Downloads/InpOut32/default.htm

Die dll wird nach "C:\Windows\System32" kopiert und mit

Code:
'parallelporttreiber für Windows XP einbinden
 
'[Data Port]    Addres:  0x378H
'[Status Port]  Addres:  0x379H
'[Control Port] Addres:  0x37AH
'
'   *note these port address are in HEX
'Data Pins          Status Pins            Control Pins
'Pin 9: D7            Pin 10: S6               Pin 1  : C0
'Pin 8: D6            Pin 11: S7               Pin 14: C1   
'Pin 7: D5            Pin 12: S5               Pin 16: C2   
'Pin 6: D4            Pin 13: S4               Pin 17: C3   
'Pin 5: D3            Pin 15: S3                 
'Pin 4: D2                               
'Pin 3: D1                               
'Pin 2: D0                                 

Dim parallelport As Any Ptr
Dim Shared OUT32 As Sub (Adresse As integer, Wert As Integer)
Dim Shared INP32 As Function (Adresse As Integer ) As Integer

parallelport = DylibLoad("inpout32.dll") 'treiber laden

If parallelport Then 'neue befehle deklarieren
   Out32 = DylibSymbol(parallelport, "Out32") 'byte ausgeben
   Inp32 = DylibSymbol(parallelport, "Inp32") 'byte einlesen
Else 'fehler
   Print "INPOUT32.dll nicht gefunden."
  Sleep
  'End
EndIf


in das freeBasic-Programm eingebunden. Die Originalbefehle "Inp" und "Out" werden dann jeweils durch "INP32" bzw. "OUT32" ersetzt.

MfG
grindstone
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 27.02.2013, 23:53    Titel: Antworten mit Zitat

Hallo grindstone,

willkommen im Forum und danke für das informative Posting! Ich habe mal die angegebene Download-Adresse (eine der üblichen DLL-Sammelseiten) durch spezielle Downloadlinks zur InpOut32.dll ersetzt. Auf diesen Seiten gibt es neben dem bloßen Download auch noch weitere Informationen.

Viele Grüße!
Sebastian
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1236
Wohnort: Ruhrpott

BeitragVerfasst am: 02.03.2013, 18:53    Titel: Antworten mit Zitat

Vielen Dank für die nette Begrüßung!
Für den Link hatte ich nur einmal kurz gegoogelt und die erste Adresse genommen, die nach einem seriösen Download aussah. Meine eigene inpout32.dll fährt schon seit eingen Jahren auf meiner Festplatte Karussell, und ich weiß beim besten Willen nicht mehr, von wo ich sie heruntergeladen habe. Sie ist wahrscheinlich inzwischen total veraltet, aber sie funktioniert.

Falls es jemanden interessiert: Ich steuere über die Parallelschnittstelle einen Plotter an, den ich mir Mitte der 80er gebaut und seitdem ca. 30- bis 40mal umgebaut habe, heute bohre ich damit Platinen und schneide mit einem heißen Lötkolben als "Zeichenstift" (Lackier-) Schablonen aus Klebefolie aus.

Außerdem programmiere ich über die Parallelschnittstelle gelegentlich einen AVR-Controller, dazu braucht man kein teures Programmiergerät.
Die Treiberprogramme dafür habe ich -Ehrensache- selbst geschrieben, früher in QBasic, heute in freeBasic.

Einen HD44780 habe ich allerdings noch nicht angesteuert, obwohl ich 3 Stück davon hier liegen habe (irgendwann mal von der Hobbytronic mitgebracht), aber allzu schwer dürfte es nicht sein. Der Rechner macht schließlich nichts anderes, als en paar Bytes in der richtigen Reihenfolge über das Kabel zu schicken zwinkern
Welche Bytes in welcher Reihenfolge das sein müssen, steht im Datenblatt...

Gruß
grindstone
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1837
Wohnort: [JN58JR]

BeitragVerfasst am: 03.03.2013, 00:21    Titel: Antworten mit Zitat

@grindstone ... ganz wichtig ist allerdings die einhaltung der timings beim init. Leider findet sich allerdings in kaum einem datenblatt etwas zum CGRAM und dessen Ansteuerung. nur auf einigen wenigen seiten im inet findet man was dazu.

diesbezüglich gibts allerdings hier, ganz unten, hilfe: http://mln.ath.cx/user/thepuppetmaster/hard/lcd_xyy/


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Profi-Forum Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz