Aus RN-Wissen.de
Wechseln zu: Navigation, Suche
Laderegler Test Tueftler Seite

K (Text-Displays)
K
Zeile 12: Zeile 12:
 
==Text-Displays==
 
==Text-Displays==
  
Text-Displays kommen wegen der problemlosen Anbindung in Mikrocontroller Projekten wie Robotern am häufigsten zum Einsatz. Bei Text-LCDs kommen meistens HD44780 oder kompatible Controller zum Einsatz. Dieser Controller unterstützt Displays mit bis zu 80 Zeichen. Gängige Displaygrößen sind: 1 × 8, 2 × 8, 1 × 16, 2 × 16, 2 × 20, 4 × 20, 2 × 40 Zeichen Displays (Spalten × Zeilen). Hat das Display mehr als 80 Zeichen, dann besteht das Display aus 2 Controllern und verhält sich nach der Ansteuerung wie 2 Displays (zusätzliche Enable Leitung)     
+
Text-Displays kommen wegen der problemlosen Anbindung in Mikrocontroller Projekten wie Robotern am häufigsten zum Einsatz. Bei Text-LCDs kommen meistens der HD44780 von Hitachi oder ein quasi kompatibler Controller wie z.B der KS077 zum Einsatz. Dieser Controller unterstützt Displays mit bis zu 80 Zeichen. Gängige Displaygrößen sind: 1 × 8, 2 × 8, 1 × 16, 2 × 16, 2 × 20, 4 × 20, 2 × 40 Zeichen Displays (Spalten × Zeilen). Hat das Display mehr als 80 Zeichen, dann besteht das Display aus 2 Controllern und verhält sich nach der Ansteuerung wie 2 Displays (zusätzliche Enable Leitung)     
  
 
===Anschlußbelegung für 1×8 bis 4×20 Zeichen Displays===
 
===Anschlußbelegung für 1×8 bis 4×20 Zeichen Displays===
Zeile 78: Zeile 78:
 
|DB7
 
|DB7
 
|Datenbus Bit7 MSB
 
|Datenbus Bit7 MSB
|---
 
|15
 
|GND BL
 
|Masse Hintergrundbeleuchtung
 
|---
 
|16
 
|VCC BL
 
|Spannungsversorgung Hintergrundbeleuchtung, mit Vorwiderstand
 
 
|}
 
|}
 +
 +
===LCD Controller===
 +
 +
TODO...
  
 
===8-Bit Ansteuerung (Busmode)===
 
===8-Bit Ansteuerung (Busmode)===
Zeile 99: Zeile 95:
 
  $regfile = "8515def.dat"
 
  $regfile = "8515def.dat"
 
  $crystal = 4000000
 
  $crystal = 4000000
 +
$lcd = &HC000      'Adresse LCD Daten
 +
$lcdrs = &H8000    'Adresse LCD Register select
  
  TODO....
+
  Config Lcdbus = 8  'LCD im 8-Bit Bus Mode
 +
Config Lcd = 16 * 2 'wir verwenden ein 16 x 2 Zeichen Display
  
 +
Cls                'loesche das LCD Display
 +
Locate 1 , 1        'Cursor auf 1 Zeile, 1 Spalte
 +
Lcd "Hello world."  'String auf Display anzeigen
 
</pre>
 
</pre>
  
 
====AVR-GCC Programm====
 
====AVR-GCC Programm====
 +
 
Die lcdlibrary von Peter Fleury unterstützt den 8-Bit Bus Mode
 
Die lcdlibrary von Peter Fleury unterstützt den 8-Bit Bus Mode
  
Zeile 120: Zeile 123:
  
 
====BASCOM-AVR Programm====
 
====BASCOM-AVR Programm====
Das Programm zur Ansteuerung des Displays im 4-Bit Mode.
+
 
 +
Das Programm zur Ansteuerung des Displays im 4-Bit I/O Mode.
 
<pre>
 
<pre>
 
  $regfile = "m32def.dat"
 
  $regfile = "m32def.dat"
Zeile 126: Zeile 130:
  
 
  Config Lcd = 20 * 4  'wir verwenden ein 4 x 20 Zeichen Display
 
  Config Lcd = 20 * 4  'wir verwenden ein 4 x 20 Zeichen Display
 +
' Im I/O Mode wird jeder Prozessor Pin einzeln angegeben
 
  Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.5 , Rs = Portc.4
 
  Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.5 , Rs = Portc.4
Config Lcdbus = 4
 
 
   
 
   
  Cls               'loesche das LCD Display
+
  Cls                   'loesche das LCD Display
  Locate 1 , 1       'Cursor auf 1 Zeile, 1 Spalte  
+
  Locate 1 , 1         'Cursor auf 1 Zeile, 1 Spalte  
  Lcd "Hello world." 'String auf Display anzeigen
+
  Lcd "Hello world."   'String auf Display anzeigen
 
</pre>
 
</pre>
  
 
====AVR-GCC Programm====
 
====AVR-GCC Programm====
 +
 +
Die lcdlibrary von Peter Fleury unterstützt auch den 4-Bit I/O Mode.
  
 
<pre>
 
<pre>

Version vom 7. Juni 2006, 09:00 Uhr

Baustelle.gif An diesem Artikel arbeitet gerade Mitglied m_a_r_v_i_n.

Am besten momentan noch keine gravierenden Ergänzungen / Änderungen vornehmen.

Dieser Hinweis verschwindet wenn der Autor soweit ist. Sollte dieser Hinweis länger als drei Tage auf einer Seite sein, bitte beim Autor m_a_r_v_i_n per PM / Mail oder Forum nachfragen ob er vergessen wurde.

LCD-Modul

Einleitung

LCD ist eine Abkürzung und bedeutet Liquid Crystal Display. Übersetzt bedeutet dies Flüssigkristall-Anzeige. Flüssigkristalle sind organische Verbindungen, die Eigenschaften von Flüssigkeiten und Festkörpern besitzen. Zwischen zwei Glasplatten mit Polarisationsfiltern schwimmen die Flüssigkristalle. Durh Anlegen einer Wechselspannung ändert sich die Polarisationsebene der Flüssigkristalle und damit, ob das einfallende Licht reflektiert oder absorbiert wird.

Bei einem LCD-Modul befindet sich neben dem LCD auch ein Controller zur Ansteuerung des LCDs.


Text-Displays

Text-Displays kommen wegen der problemlosen Anbindung in Mikrocontroller Projekten wie Robotern am häufigsten zum Einsatz. Bei Text-LCDs kommen meistens der HD44780 von Hitachi oder ein quasi kompatibler Controller wie z.B der KS077 zum Einsatz. Dieser Controller unterstützt Displays mit bis zu 80 Zeichen. Gängige Displaygrößen sind: 1 × 8, 2 × 8, 1 × 16, 2 × 16, 2 × 20, 4 × 20, 2 × 40 Zeichen Displays (Spalten × Zeilen). Hat das Display mehr als 80 Zeichen, dann besteht das Display aus 2 Controllern und verhält sich nach der Ansteuerung wie 2 Displays (zusätzliche Enable Leitung)

Anschlußbelegung für 1×8 bis 4×20 Zeichen Displays

Text-Displays verfügen über einen über genormte 14 Anschluß Pins (LCD-Module mit Backlight über 16 Pins). Lediglich bei der Backlight Versorgungsspannung und Polung kann es Unterschiede geben. Im Zweifelsfall hilft hier der Blick ins Datenblatt. Entweder sind die Anschlüsse in einer Reihe (1 × 14(16)) oder zweireihig (2 × 7(8)) herausgeführt.

Pin Bezeichnung Beschreibung
1 GND Masse
2 VCC Spannungsversorgung +5V
3 VEE Kontrast Poti 0..0,5V
4 RS Register Select, 1=Daten schreiben / 0=Kommando senden.
5 R/W 1=Read / 0=Write zum lesen / schreiben in das Display RAM
6 Enable Fallende Flanke -> Übertragen des Kommandos oder der Daten, H-Pegel -> Lesen von Daten aus dem Display
7 DB0 Datenbus Bit0 LSB
8 DB1 Datenbus Bit1
9 DB2 Datenbus Bit2
10 DB3 Datenbus Bit3
11 DB4 Datenbus Bit4
12 DB5 Datenbus Bit5
13 DB6 Datenbus Bit6
14 DB7 Datenbus Bit7 MSB

LCD Controller

TODO...

8-Bit Ansteuerung (Busmode)

Für die 8-Bit Ansteuerung werden die meisten Prozessor-Ports benötigt. Da Prozessor-Ports normalerweise rar sind ist diese Anbindung sicher nicht die erste Wahl. Die Anbindung erfolgt dabei häufig im Bus Mode auch memory-mapped Mode genannt. Diesen Mode unterstützen allerdings nur die wenigsten Atmel AVR Prozessoren (mit externem Bus-Interface), z.B. der AT90S8515 und ATmega128.

8-Bit Ansteuerung. Quelle: Peter Fleury

BASCOM-AVR Programm

Das Programm zur Ansteuerung des Displays im 8-Bit Bus Mode.

 $regfile = "8515def.dat"
 $crystal = 4000000
 $lcd = &HC000       'Adresse LCD Daten
 $lcdrs = &H8000     'Adresse LCD Register select

 Config Lcdbus = 8   'LCD im 8-Bit Bus Mode
 Config Lcd = 16 * 2 'wir verwenden ein 16 x 2 Zeichen Display

 Cls                 'loesche das LCD Display
 Locate 1 , 1        'Cursor auf 1 Zeile, 1 Spalte 
 Lcd "Hello world."  'String auf Display anzeigen

AVR-GCC Programm

Die lcdlibrary von Peter Fleury unterstützt den 8-Bit Bus Mode


  TODO....

4-Bit Ansteuerung (I/O Mode)

Mit die häufigste Anbindungsart ist sicher die 4-Bit Ansteuerung. Dabei werden die Display-Daten Nibble-weise in den Display Speicher übertragen. Das ist zwar etwas langsamer als im 8-Bit Mode, das spielt aber kaum eine Rolle. Für diese Ansteuerung werden 6 Prozessor Ports benötigt. Die R/W Leitung des Displays kann man dabei einfach auf GND legen, dann ist aber keine Busy-Bit Abfrage möglich.

4-Bit Ansteuerung

BASCOM-AVR Programm

Das Programm zur Ansteuerung des Displays im 4-Bit I/O Mode.

 $regfile = "m32def.dat"
 $crystal = 16000000

 Config Lcd = 20 * 4   'wir verwenden ein 4 x 20 Zeichen Display
 ' Im I/O Mode wird jeder Prozessor Pin einzeln angegeben
 Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.5 , Rs = Portc.4
 
 Cls                   'loesche das LCD Display
 Locate 1 , 1          'Cursor auf 1 Zeile, 1 Spalte 
 Lcd "Hello world."    'String auf Display anzeigen

AVR-GCC Programm

Die lcdlibrary von Peter Fleury unterstützt auch den 4-Bit I/O Mode.


  TODO....

Ansteuerung über Porterweiterung

Mit einem Porterweiterungs Baustein wie dem 74HC595 lassen sich weitere Prozessor-Ports einsparen. Diese Lösung kommt mit 4 Prozessor Ports aus, läßt man die Abfrage des Busy-Bits (PC5) weg, sogar nur mit 3 Prozessor Ports. Trotzdem wird das Display im 8-Bit Mode betrieben.

Ansteuerung über Porterweiterung

BASCOM-AVR Programm

Das BASCOM Programm für diese Ansteuerung ist nicht ganz so einfach, da es nicht von der BASCOM Library unterstützt wird. Die Routinen zum Ansprechen des Displays muß man selbst coden.


  TODO....

AVR-GCC Programm


  TODO....

Ansteuerung über I²C

Nur 2 Prozessor Ports benötigt man bei der I²C-Ansteuerung. Dazu wird als I²C Porterweiterungs IC der PCF8574P benötigt.

I²C-Ansteuerung

BASCOM Programm

Diese Ansteuerung basiert auf der Application Note AN#118 von MCS electronics. Dazu gibt es auch eine fertige Library zu BASCOM-AVR. damit können die gleichen Befehle zur Ansteuerung verwendet werden. Das BASCOM Programm, um das LCD-Modul über I²C anzusprechen, sieht dann so aus.

 $lib "Lcd_i2c.lib"   'ersetzt die Standard LCD Library
 $regfile = "m32def.dat"
 $crystal = 16000000

 Const Pcf8574_lcd = &H40   'I2C Adresse 
 Config Scl = Portd.6       'I2C SCL Pin
 Config Sda = Portd.7       'I2C SDA Pin
 Dim _lcd_e As Byte
 _lcd_e = 128               'LCDim 4-Bit Mode betreiben

 Cls                'loesche das LCD Display
 Locate 1 , 1       'Cursor auf 1 Zeile, 1 Spalte 
 Lcd "Hello world." 'String auf Display anzeigen

AVR-GCC Programm


  TODO....

Ansteuerung über RS232

Ebenfalls nur 2 Pins zur Ansteuerung benötigt die Lösung. Allerdings ist die serielle Schnittstelle bei Mikrocontrollern oft schon mit anderen Aufgaben belegt. Deshalb befindet sich meistens noch zusätzlich eine I²C-Bus Schnittstelle zur Ansteuerung auf dem Modul.

Graphik-Displays

In Mikrocontroller Anwendungen seltener anzutreffen sind Grafik-Displays. Da der Aufwand hier um einiges höher ist (jeder Pixel ist einzeln anzusteuern), kommen in der Praxis nur Grafik-Displays mit RS232 oder I²C-Bus Ansteuerung zum Einsatz.

Siehe auch

Weblinks

Autore(en)

m a r v i n


LiFePO4 Speicher Test