U1MODE = 0; // clear mode register
U1MODEbits.BRGH = 1; // use high precision baud generator
U1BRG = 85; // (FCY/(4*baud))-1
U1STA = 0; // clear status register
U1MODEbits.UARTEN = 1; // enable the UART RX
IFS0bits.U1RXIF = 0; // clear the receive flag
...
while(U1STAbits.URXDA == 0); // wait for data to arrive
c=U1RXREG; // put data in char c
...
if (U1STAbits.UTXEN ==0)
U1STAbits.UTXEN = 1; // enable UART TX
while(U1STAbits.UTXBF == 1); // if buffer is full, wait
U1TXREG = c; // send a character