K (→8-Bit Ansteuerung) |
K |
||
Zeile 1: | Zeile 1: | ||
{{Baustelle|m_a_r_v_i_n}} | {{Baustelle|m_a_r_v_i_n}} | ||
− | [[Bild:lcdmodul_2.jpg|right|thumb|LCD-Modul]] | + | [[Bild:lcdmodul_2.jpg|right|thumb|350px|LCD-Modul]] |
==Einleitung== | ==Einleitung== | ||
Zeile 100: | Zeile 100: | ||
Das Programm zur Ansteuerung des Displays im 4-Bit Mode. | Das Programm zur Ansteuerung des Displays im 4-Bit Mode. | ||
− | + | <pre> | |
$regfile = "m32def.dat" | $regfile = "m32def.dat" | ||
$crystal = 16000000 | $crystal = 16000000 | ||
− | Config Lcd = 20 * 4 | + | Config Lcd = 20 * 4 'wir verwenden ein 4 x 20 Zeichen Display |
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 | Config Lcdbus = 4 | ||
− | Cls | + | Cls 'loesche das LCD Display |
− | Locate 1 , 1 | + | Locate 1 , 1 'Cursor auf 1 Zeile, 1 Spalte |
− | Lcd "Hello world." | + | Lcd "Hello world." 'String auf Display anzeigen |
− | + | </pre> | |
===Ansteuerung über Porterweiterung=== | ===Ansteuerung über Porterweiterung=== | ||
Zeile 125: | Zeile 125: | ||
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. | 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. | ||
+ | <pre> | ||
+ | $lib "Lcd_i2c.lib" 'ersetzt die Standard LCD Library | ||
+ | $regfile = "m32def.dat" | ||
+ | $crystal = 16000000 | ||
− | + | Const Pcf8574_lcd = &H40 'I2C Adresse | |
− | Const Pcf8574_lcd = &H40 | + | Config Scl = Portd.6 'I2C SCL Pin |
− | Config Scl = Portd.6 | + | Config Sda = Portd.7 'I2C SDA Pin |
− | Config Sda = Portd.7 | + | |
Dim _lcd_e As Byte | Dim _lcd_e As Byte | ||
− | _lcd_e = 128 | + | _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 | ||
+ | </pre> | ||
===Ansteuerung über RS232=== | ===Ansteuerung über RS232=== | ||
Version vom 5. Juni 2006, 20:23 Uhr
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. |
Inhaltsverzeichnis
Einleitung
LCD ist eine Abkürzung und bedeutet Liquid Crystal Display. Übersetzt bedeutet dies Flüssig-Kristall-Anzeige.
Text-Displays
Text-Displays kommen wegen der problemlosen Anbindung in Mikrocontroller Projekten wie Robotern am häufigsten zum Einsatz.
Anschlußbelegung
Die meisten Text-Display verfügen über eine identisch belegte Anschlußbelegung und verfügen über 16 Anschluß Pins (LCD-Module ohne Backlight über 14 Pins). Lediglich bei der Backlight Versorgungsspannung und Polung kann es Unterschiede geben. Im Zweifelsfall hilft hier der Blick ins Datenblatt.
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 |
15 | GND BL | Masse Hintergrundbeleuchtung |
16 | VCC BL | Spannungsversorgung Hintergrundbeleuchtung, mit Vorwiderstand |
8-Bit Ansteuerung
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. Bei dieser Ansteuerung werden 10 Prozessor Ports benötigt. Die Anbindung erfolgt dabei im memory-mapped Mode. Diesen Mode unterstützen allerdings nur die wenigsten Atmel AVR Prozessoren, z.B. der AT90S8515 und ATmega128.
4-Bit Ansteuerung
Mit die häufigste Anbindungsart sit sicher die 4-Bit Ansteuerung. Man spart gegenüber der 8-Bit Ansteuerung 4 Prozessor-Ports und kommt ohne zusätzliche Bauteile aus (abgesehen vom Poti zur Kontrastregelung). Bei dieser Ansteuerung werden 6 Prozessor Ports benötigt. Die R/W Leitung des Displays kann man einfach auf GND legen, man will das Display schließlich nur schreiben, niemals lesen.
Das Programm zur Ansteuerung des Displays im 4-Bit Mode.
$regfile = "m32def.dat" $crystal = 16000000 Config Lcd = 20 * 4 'wir verwenden ein 4 x 20 Zeichen Display 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 Locate 1 , 1 'Cursor auf 1 Zeile, 1 Spalte Lcd "Hello world." 'String auf Display anzeigen
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 weg, sogar nur mit 3 Prozessor Ports. Trotzdem wird das Display im 8-Bit Mode betrieben.
Ansteuerung über I²C
Die wenigsten Prozessor Ports benötigt man bei der I²C-Ansteuerung. Dazu wird als I²C Porterweiterungs IC der PCF8574P benötigt.
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
Ansteuerung über RS232
Displays mit RS232 Ansteuerung sind teuerer als Displays mit Parallel Ansteuerung. Dafür bieten sie meistens noch
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 serieller Ansteuerung zum Einsatz.
Siehe auch
Weblinks
- MCS electronics AN #118 - I²C LCD and Keyboard library