******************************************** 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 | |||||||||||||||||||||||||||