1. Erweiterung Morse De- und Encoder mittels FPGA 2.0

Erweiterung der Tastatur um Steuerzeichen

Um die Eingabe über die Tastatur im Encoder-Wortmodus intuitiver zu gestalten, wurden einige Steuertasten mit Befehlen belegt: BACKSPACE, ENTF, ESC und LEFT/ RIGHT ARROW. Diese führen auf dem LCD-Display besondere Aktionen aus und manipulieren den SRAM, in dem die Zeichen im Wortmodus abgelegt werden.  So ist es möglich einen bereits eingegebenen Text vor dem Absenden nochmals zu bearbeiten.

Dafür wird bei Betätigung einer solchen Taste ein spezielles Token gesetzt. Wird dieses Token erkannt, wird es nicht im SRAM abgelegt, sondern eine besondere Aktion ausgeführt. So löst z.B. ein ESC einen Soft-Reset aus, der den SRAM und das LCD-Display löscht. Bei einem BACKSPACE hingegenwird, anders als beim Schreiben, die Schreibadresse dekrementiert und die SRAM-Zelle auf die der Zeige zeigt gelöscht. Die folgende Tabelle listet die erweiterten Funktionen auf. Die darauf folgenden Programmcodes zeigen die Einbindung der Funktionen sowohl in der Keyboard_Encoder- als auch LCD_driver-Entity.

BACKSPACE

Löscht das letzte Zeichen vom LCD-Display und aus dem SRAM.

ENTF:

Löscht das Zeichen auf dem gerade der Cursor steht.

ESC:

Löscht sowohl das LCD-Display als auch den SRAM.

LEFT/ RIGHT ARROW:

Bewegen den Cursor auf dem LCD-Display und den Pointer, der auf die SRAM-Zellen zeigt, sodass diese manipuliert werden können.

Einbindung in Keyboard_Encoder-Entiy

Tastatursteuerzeichen manipulieren in dieser Entity nur den SRAM im Wortmodus. So wird z.B. bei Betätigung der Pfeiltasten LEFT/ RIGHT ARROW die Schreibadresse des SRAM de- oder inkrementiert. Bei einem BACKSPACE wird zunächst die Schreibadresse dekrementiert und dann das Zeichen in der letzten SRAM-Zelle gelöscht.

Quellcode - Keyboard_Encoder-Entiy

Einbindung in LCD_driver-Entiy

Tastatursteuerzeichen manipulieren in dieser Entity nur das LC-Display.  Um einen Befehl an das LC-Display zu senden, die keinen Buchstaben druckt, muss das Signal LCD_RS <= ‚0‘ auf Null gesetzt werden. Dies signalisiert dem LC-Display, dass z.B. auf der LCD_DATA Leitung ein Befehl statt eines druckbaren Zeichens anliegt. Einige Steuerzeichen müssen aus mehreren Befehlen zusammengsetzt werden, da ein Standard LCD-Driver den Befehl „lösche ein einzelnes Zeichen“ nicht kennt. So wird bei einem BACKSPACE beispielsweise der Cursor nach links bewegt, dann wird eine Leertaste gedruckt, danach wir der Cursor erneut nach links bewegt.

Quellcode - LCD_driver-Entiy

Seiten: 1 2 3 4 5