Hi, I am trying to interface two PICs together via serial connection. I am using two PIC16F88s running at 4mhz. PortB.0 on the tx chip is connected to PortB.0 on the rx chip. I have a button connected to PortB.1 on the tx that when pushed causes the pin to go high. I have an Led on PortB.1 of the rx. My goal is to transmit the state of the button to the rx chip to turn the LED on or off. This is just an experiment with serial communications and the actual application will be much more complex. here is my code:

Tx:

Include "modedefs.bas"
b0 VAR BYTE

Start:
IF PortB.1 = 1 THEN LET b0 = 1
LET b0 = 0
SEROUT PortB.0, N2400, [b0]
GOTO Start



Rx:

Include "modedefs.bas"
b0 VAR BYTE

Start:
SERIN PortB.0, N2400, [B0]
IF b0 = 1 THEN HIGH PortB.1
LOW PortB.1
GOTO Start

When I push the button nothing happens. I am confident that the circuit works so I am convinced that the problem is in the software. I do not fully understand the SERIN SEROUT commands and am interested in what happens when a serial command is executed. Does the Rx wait for the data or if there isn't any go to the next line of code? Do the SERIN SEROUT commands have to be executed at the same time for the communication to be successful.
I appreciate all the help i can get on this.