;USART Serial routines
SER_INIT
BSF STATUS, RP0 ;select bank 1
MOVLW d'129' ;9600 baud @ 20 Mhz Fosc +0.16 err
MOVWF SPBRG
MOVLW b'00100100' ;brgh = 1
MOVWF TXSTA ;enable Async Transmission, set brgh
BCF STATUS, RP0 ;select bank 0
MOVLW b'10010000'
MOVWF RCSTA ;enable Async Reception
RETURN
XMIT_RS232 btfss PIR1, TXIF ;xmit buffer empty?
GOTO XMIT_RS232 ;no, wait
MOVWF TXREG ;now send
RETURN
Rcv_RS232 BTFSS PIR1, RCIF ; check for received data
GOTO Rcv_RS232
MOVF RCREG, W
RETURN