| ******************************************** Programmierung der seriellen Schnittstelle Einlesen eines Zeichens und zurücksenden an den Computer Input: ein Zeichen Output: das Zeichen **************************************** **** | |||||||||||||||||||||||||||
| BIT BD := 0DFH | Bit für Baudratengenerator | ||||||||||||||||||||||||||
| SCON = #01010010B | 8-bit UART, var. Bitrate | ||||||||||||||||||||||||||
| TMOD = #00100000B | 8-bit autoreload Timer1 initialisieren | ||||||||||||||||||||||||||
| TH1 = #243 | Autoreloadwert | ||||||||||||||||||||||||||
| TL1 = #243 | 13 bis Überlauf | ||||||||||||||||||||||||||
| setze TR1 | Timer1 starten | ||||||||||||||||||||||||||
| LESEN: |  ja  LESEN | RI nicht gesetzt ? | Zeichen empfangen | ||||||||||||||||||||||||
|  nein  | |||||||||||||||||||||||||||
| loesche RI | Empfangsbit löschen | ||||||||||||||||||||||||||
| KLEINGROSS | Zeichen evtl. ändern | ||||||||||||||||||||||||||
| SCHREIBEN: |  ja  SCHREIBEN | TI nicht gesetzt ? | Zeichen senden | ||||||||||||||||||||||||
|  nein  | |||||||||||||||||||||||||||
| loesche TI | Sendebit löschen | ||||||||||||||||||||||||||
|  LESEN | |||||||||||||||||||||||||||
| KLEINGROSS: | ACC = SBUF | Zeichen in Akku laden | |||||||||||||||||||||||||
| ACC = ACC - #96 - CARRY | 96 abziehen | ||||||||||||||||||||||||||
|  ja  RETURN | CARRY gesetzt ? | Zeichen war < #97 | |||||||||||||||||||||||||
|  nein  | |||||||||||||||||||||||||||
| ACC = ACC - #27 - CARRY | 27 addieren | ||||||||||||||||||||||||||
|  ja  RETURN | CARRY nicht gesetzt ? | Zeichen war > #122 | |||||||||||||||||||||||||
|  nein  | |||||||||||||||||||||||||||
| ACC = SBUF | Zeichen erneut in Akku schreiben | ||||||||||||||||||||||||||
| ACC = ACC - #31 - CARRY | Großbuchstabe daraus machen | ||||||||||||||||||||||||||
| SBUF = ACC | in den Ausgang schreiben | ||||||||||||||||||||||||||
| Return | |||||||||||||||||||||||||||
| RETURN: | SBUF = SBUF | Empfang in den Ausgang schreiben | |||||||||||||||||||||||||
| Return | |||||||||||||||||||||||||||