You seem confused by what Manchester is?, it's dead easy to transmit (although you don't seem to be doing it?), and easily done by something similar (but not the same) as a software UART. You're not just sending the bits (like your example seems to be doing), you're sending a transition from 0 to 1, or 1 to 0, for each bit, it's the transition which is the data, NOT the bits themselves.
Receiving is difficult, you can't just use UART type timing because the data isn't accurately timed, as the RF (or IR) transmission and reception alters it. You have to detect the transitions, and signal an error if the transitions come too soon or too late, over a reasonably large range.