;------------------------------------------------------------------------------- ;---------------- Asynchronous Serial Transmit Initialisation ----------------- ;------------------------------------------------------------------------------- Inits bsf STATUS, RP0 ; Set RP0 to 1 bsf STATUS, RP1 ; Set RP1 to 1 ; Bank 3 Selected bsf BAUDCTL, BRG16 ; Sets 16-bit baud generator bcf STATUS, RP1 ; Set RP1 to 0 ; Bank 1 Selected bsf TRISC, 6 ; Both serial input and output must bsf TRISC, 7 ; be set as inputs. bsf TXSTA, BRGH ; Set high baud rate movlw d'8' movwf SPBRG movlw d'2' movwf SPBRGH ; Set baud rate to 9600 bcf TXSTA, SYNC ; Set to asynchronous mode bcf STATUS, RP0 ; Set RP0 to 0 ; Bank 0 Selected bsf RCSTA, SPEN ; Enable Serial Port bsf STATUS, RP0 ; Set RP0 to 1 ; Bank 1 Selected bsf TXSTA, TXEN ; Enable Transmission bcf STATUS, RP0 ; Set RP0 to 0 ; Bank 0 Selected return ;------------------------------------------------------------------------------- ;--------------------------------- Main Program ------------------------------- ;------------------------------------------------------------------------------- Start bsf STATUS, RP0 ; Bank 1 btfss TXSTA, TRMT ; Check if output register clear goto $-1 bcf STATUS, RP0 ; Bank 0 goto Start movlw "H" movwf TXREG bsf STATUS, RP0 ; Bank 1 btfss TXSTA, TRMT ; Check if output register clear goto $-1 bcf STATUS, RP0 ; Bank 0 movlw "i" movwf TXREG loop goto loop