;******************************************** ; Programmierung der seriellen Schnittstelle ; Einlesen eines Zeichens und zuruecksenden ; an den Computer ; Input: ein Zeichen ; Output: das Zeichen ;******************************************** BD BIT 0DFH ; Bit fuer Baudratengenerator ;ORL PCON,#10000000B ; Baudrate verdoppeln ;SETB BD ; Baudratengenerator aktiv MOV SCON,#01010010B ; 8-bit UART, var. Bitrate MOV TMOD,#00100000B ; 8-bit autoreload Timer1 initialisieren MOV TH1,#243 ; Autoreloadwert MOV TL1,#243 ; 13 bis Ueberlauf setb TR1 ; Timer1 starten lesen: ; Zeichen empfangen jnb RI,lesen clr RI ; Empfangsbit loeschen call kleingross ; Zeichen evtl. aendern schreiben: ; Zeichen senden jnb TI,schreiben clr TI ; Sendebit loeschen jmp lesen kleingross: mov A,SBUF ; Zeichen in Akku laden subb A,#96 ; 96 abziehen jc return ; Zeichen war < #97 subb A,#27 ; 27 addieren jnc return ; Zeichen war > #122 mov A,SBUF ; Zeichen erneut in Akku schreiben subb A,#31 ; Grossbuchstabe daraus machen mov SBUF,A ; in den Ausgang schreiben ret return: mov SBUF,SBUF ; Empfang in den Ausgang schreiben ret END