Even it could be much than what you think, can you try that one and post resukt
Code:
Oldata  var byte
Dato    var byte

dato=0
oldata=1

rx: 
    serin datin, N2400,[dato]
    if dato != Oldata then
        if dato =5 then
            high led
            oldata-dato
            endif
        
        if dato=8 then
            low led
            oldata=dato
            endif
        
        endif
But you may/must need a synchro data, then receive the function you want to do. Lookj for the WAIT modifier.

A common protocol is Manchester, do a search within this forum you'll find the theory. But as you want to receive only 1 or few bytes, send some preamble data (like $aa, $55), then send a Synchro by, then your data). The receiver must wait the synchro, then get the data.