xmega_tutorial.jpg

Bewertung:  / 1
SchwachSuper 

Diese Biblitothek von Peter Fleury ermöglicht eine Ansteuerung von einem Text, bzw. alphanumeric Display über einen parallelen 4- oder 8-Bit Bus durch einen Microcontroller von Atmel. Die Library ist in der Sprache C mit dem avr-gcc Compiler erstellt. Die Library unterstützt den 4-Bit Modus der Displays wodurch nur ein Port, bzw. 8 Pins für die Ansteuerung benötigt werden. Die Library eignet sich für alle Controller der Reihe ATmeg.

Display Controller

Die meisten Text-LCDs mit einer 5x8-Zeichenmatrix verwenden einen HD44780 oder einen kompatiblen Controller (z. B. KS0070) und haben 14 oder 16 Pins. Die Ansteuerung erfolgt über einen parallelen 4- oder 8-Bit Bus. Ein HD44780 besitzt mehrere Speicher. In ihnen wird der Inhalt des Displays sowie das Aussehen von Sonderzeichen gespeichert. Der Controller gibt die Möglichkeit, dass bis zu acht benutzerspezifische Zeichen in einem Speicher abgelegt und dargestellt werden können. Dieser Sonderzeichen können mit einem Font und Bitmap Generator erstellt und anschließend in den Controller geladen werden.

Ansteuerung

Das HD44780-Interface besteht aus acht Datenleitungen (D0-D7) sowie den drei Steuerleitungen RS (Register Select), R/W (Read/Write) und E (Enable). Die Displays werden mit einer Betriebsspannung von 5V versorgt.  Die benötigte Kontrastspannung V0 bekommt man, indem man ein 10kΩ-Potentiometer zwischen VCC und GND anschließt und den mittleren Anschluss als Kontrastspannung verwendet. Viele Displays besitzen eine LED-Hintergrundbeleuchtung, welche nicht ohne einen externen Vorwiderstand  beschaltet werden darf. Ansonsten folgt eine Zeerstörung der Hintergrundbeleuchtung. Genaue Informationen findet man im jeweiligem Datenblatt des Display. Möchte man bei der Ansteuerung IO-Pins am Mikrocontroller sparen, kann das Display in einem 4-Bit-Modus betrieben werden, die Dateneingänge D0 bis D3 bleiben dann offen.

Software - Beispiel Text LCD

Zur Ansteuerung des LCD wird die Bibliothek von Peter Fleury eingesetzt. Für einen Erfolgreichen Betrieb müssen neben der Beschaltung die richtigen Konfigurationen in der Bibliothek vorgenommen werden. In der Datei lcd.h sind dazu die Hardware relevanten Anpassungen durchzuführen. Unter anderem muss der verwendete Controller Typ des Displays selectiert, die Zeichen- und Zeilenanzahl angepasst und die am Controller verwendeten Portpins eingetragen werden. Die dafür benötigten Angabe kann man dem Datenblatt des LCD entnehmen.
Text LCD
#include <lcd.h>
 
char buffer[7];
 
//#################################### lcd_display
void lcd_display(void)
{
lcd_gotoxy(0,2); 
lcd_puts("Zeit: "); 
itoa( 12, buffer, 10); 
lcd_puts(buffer); // convert interger into string 
lcd_putc(':');
itoa( 45, buffer, 10); 
lcd_puts(buffer); // convert interger into string
lcd_puts("Uhr"); 
}
//#################################### 
int main(void)
{
cli();
lcd_init(LCD_DISP_ON); //initialize display, cursor off
sei(); // now enable interrupts
 
lcd_gotoxy(0,1); 
lcd_puts("123456789ABCD"); 
while(1)
 {
 lcd_display();
 }
}

Beispiel

Die Biblitothek enthält ein voll funktionsfähiges Beispiel, inclusive makefile. Das Programm sollte sich ohne Probleme mit dem Programmers Notepad kompilieren lassen.

Viel erfolg!

Links

 
Forum Artikel

Downloads

Kommentar hinzufügen
  • Keine Kommentare gefunden

Neuste Beiträge

30/08/2016
Es gibt nun endlich ein Update für die Tinyg CNC Controller Hardware und der dazu gehörenden PC Software...
03/09/2015
In den letzten Monaten habe ich lange das CAD Programm und meinen kleinen Ultimaker 3D Drucker gequält....
15/05/2015
Zuerst wurde eine kleine Katze am Computer konstruiert. Der erste Druck mit 0,3mm Schichtstärke war...
06/05/2015
Da beim Ultimaker keine Beleuchtung des Arbeitstisches vorgesehen ist, muss ich mir hier selber eine...