int ; Interupt movwf wtemp ; W Sichern banksel STATUS swapf STATUS, w ; Status Sichern movwf statustemp ; Status Speichern banksel PIR1 ; Interupt von UART ? btfss PIR1, RCIF ; Wenn nicht goto intend ; Interupt beenden banksel RCREG movf RCREG, w banksel PORTC movwf PORTC banksel PORTB bsf PORTB, 0 intend banksel PIR1 bcf PIR1, RCIF ; Interuptflag Löschen swapf statustemp, w ; Status restore banksel STATUS movwf STATUS swapf wtemp, f ; W restore swapf wtemp, w retfie Config: ; PORTB banksel TRISB ; Bank Wekseln movlw B'11000000' ; PortB I/O setzen (1=In, 0=Out) (Reinfolge RB7,RB6...) movwf TRISB ; PortB I/O setzen banksel PORTB ; Bank Wekseln clrf PORTB ; PortB auf 0 setzen ; UART Config 19200bps 8N1 banksel SPBRG ; SBRG=(Fosc/(Baud * 16))-1 movlw D'25' movwf SPBRG ; Transmit Register banksel TXSTA bsf TXSTA, BRGH ; High baud rate select bsf TXSTA, CSRC ; Clock source select - Not Ariable im Asincron Mode bcf TXSTA, TX9 ; 9 bit transmission bsf TXSTA, TXEN ; Transmit enable bsf TXSTA, SYNC ; Synchronous mode select bcf TXSTA, TRMT ; Transmit shift register status bcf TXSTA, TX9D ; 9th bit of data to transmit bcf TXSTA, TXIF ; Statusbit Löschen ; Recive Register banksel RCSTA bsf RCSTA, SPEN ; Serial port enable bcf RCSTA, RX9 ; bit receive enable bcf RCSTA, SREN ; Single receive enable bsf RCSTA, CREN ; Continuous receive enable bcf RCSTA, ADDEN ; Address detect enable bcf RCSTA, FERR ; Framing error bcf RCSTA, OERR ; Overrun error bcf RCSTA, RX9D ; 9th bit of data received ; Interupt für UART banksel PIE1 bsf PIE1, RCIE ; Enable receive Interups clrf PIR1 ; Interupt Flags Löschen clrf PIR2 ; Interupt Flags Löschen banksel INTCON bsf INTCON, GIE ; Interups erlauben bsf INTCON, PEIE ; Interups von Peripheriegeräten erlauben