I removed the midi connections and just connected the TX of the transmitting PIC to the RC of the receiving PIC. Here is the code I'm using for each:

transmitting:
Code:
define OSC 20
define HSER_RCSTA 90h
define HSER_TXSTA 20h
define HSER_BAUD 31250
DEFINE HSER_SPBRG 39  ' 31250 Baud @ SPBRGH = 0



ANSEL = %00000000
ANSELH = %00000000
TRISD = %00000000
TRISE = %00000000
TRISA = %00000000
TRISB = %00000000
TRISC = %10000000

main:

hserout [dec 1]
PORTA.0 = 1
pause 300
hserout [dec 0]
PORTA.0 = 0
pause 300

goto main
receiving:
Code:
CLEAR
define LOADER_USED 1
define OSC 20
define HSER_RCSTA 90h
define HSER_TXSTA 20h
define HSER_BAUD 31250
define HSER_CLROERR 1
DEFINE HSER_SPBRG 39  ' 31250 Baud @ SPBRGH = 0

define LCD_DREG PORTD
define LCD_DBIT 0
define LCD_RSREG PORTE
define LCD_RSBIT 0
define LCD_EREG PORTE
define LCD_EBIT 1
define LCD_RWREG PORTE
define LCD_RWBIT 2
define LCD_BITS 4
define LCD_LINES 4
define LCD_COMMANDUS 2000
define LCD_DATAUS 50

ANSEL = %00000000
ANSELH = %00000000
TRISD = %00000000
TRISE = %00000000
TRISA = %00000000
TRISB = %00000000
TRISC = %10000000

character var byte

pause 250
lcdout $FE, 1
lcdout $fe, $d4, "ready to receive"
pause 500
lcdout $fe, 1
pause 250

main:

hserin [character]
lcdout $fe, 1
lcdout $fe, $94, dec character

goto main
So now it's sorta working. The LCD does display something. It displays "216" when it should be displaying "0" and it displays "217" when it should be displaying 1.