; USARTini USART initialisieren mit takt und baud USARTini BANKSEL TXSTA ; bsf STATUS,RP0 ; 0 1 Registerbank 1 goto XY btfss TXSTA,2 ; ist BRGH=H skip goto H_0 BANKSEL SPBRG movlw (takt/(.16 * baud) - 1) ; für BRGH = 1 Hoch movwf SPBRG ; nach Baudratenregister Bank 1 BANKSEL TXSTA ;movlw B'00100100' ; Sender ein, Baudrate -hoch movlw B'00100000' ; Sender ein, Baudrate -niedrig movwf TXSTA ; nach Sender-Steuerregister Bank 1 goto Empfang H_0 movlw (takt/(.64 * baud) - 1) ; für BRGH = 0 LOW BANKSEL SPBRG movwf SPBRG ; nach Baudratenregister Bank 1 BANKSEL TXSTA movlw B'00100100' ; Sender ein, Baudrate hoch movwf TXSTA ; nach Sender-Steuerregister Bank 1 XY ; feste Eingabe BANKSEL TXSTA ;Transmit enable TXEN=1 SYNC=0 BRGH=0 movlw B'00100000' ; Sender ein, Baudrate -niedrig movwf TXSTA ; nach Sender-Steuerregister Bank 1 BANKSEL SPBRG ;4MHz 1200 Baud ; SYNC=0 BRGH=0 BRG16=0 movlw d'22' movwf SPBRG Empfang BANKSEL TRISC bsf TRISC,7 ; RC7 als RX Eingang TRISC Bank 1 bsf TRISC,6 ; RC6 als TX Eingang TRISC Bank 1 ; BANKSEL RCSTA ;bcf STATUS,RP0 ; 0 0 Registerbank 0 movlw B'10010000' ; Serielle E/A ein, Dauerempfang ein movwf RCSTA ; nach Empfänger-Steuerregister Bank 0 movf RCREG,w ; Empfänger vorsorglich leeren BANKSEL BAUDCON ; Baudcon bcf BAUDCON,3 ;BRGH16 BANKSEL PORTA return ; Bank 0 eingeschaltet