This project uses a radio control transmitter and receiver originally from the VEX Robotics System. All Electronics http://www.allelectronics.com/cgi-bin/category.cgi?item=JS-6&type= has them cheap. (The link to the spec sheet is very instructive, by the way.) I got mine even cheaper on ebay.

Besides the price of this R/C pair, the thing that makes it attractive is that the receiver has no decoding circuity. Its output is pulse position modulated, which makes it amenable to microcontroller demultiplexing.

Since the output is open collector, I soldered a pull-up resistor from the data line to Vcc. Not having a RJ-10 cable, and unwilling to cut off the end of the one supplied, I soldered three wires to the circuit board, as shown in the attached BeforeNAfter image. The red wire is Vcc, the black wire is ground, and the green wire is data. I soldered the other ends of the wires to a male 3-pin header (cut off from a header like this: http://www.sparkfun.com/commerce/product_info.php?products_id=117)

Connect the Vcc pin to pin 63 (*not* pin 64) of the MBED64. The gnd pin goes to MBED64 pin 1, and the data pin goes to MBED64 pin 33. Attach LEDs to MBED64 pins 30 and 32. Use the appropriate current-limiting resistors.

#include "mbed.h"

/*
 * R/C receiver demultiplexer
 *
 * This demonstration just turns LEDs 1 - 4 on and off in response to the R/C
 * transmitter's joystick movements. Two additional on/off channels control
 * pins 32 and 30, which also have LEDs attached. A real application would have
 * a PWM output governed by the pulse length of each of the four joystick axes.
 * That's next...
 *
 * Six channels are multiplexed on the received signal. They are represented by
 * the length of six pulses, specifically the length of time from the falling
 * edge of one pulse to the rising edge of the next.
 *
 * How to tell which is the first channel? There is a sync pulse which is much longer
 * than the channel pulses.
 */
// States; they represent the current channel
#define WAITING_FOR_SYNC 6
#define SYNC  0.008f
#define FRAME 0.0009f
#define SOME  0.0002f

int state;
float start;
EventIn pin(33);
DigitalOut output[] = {
  DigitalOut(65),   // led1 (using 'led1' here doesn't work)
  DigitalOut(66),
  DigitalOut(67),
  DigitalOut(68),   // led4
  DigitalOut(32),   // LEDs attached to pins 32 and 30, with the
  DigitalOut(30),   // appropriate current limiting resistors
};
void rise() {
  float elapsed = timer - start;
  if (state == WAITING_FOR_SYNC) {
    if (elapsed > SYNC) {   // detected a SYNC, otherwise stay in this state
      state = 0;
    }
  }
  else {
    if (elapsed > FRAME + SOME) {   // hysteresis, to eliminate LED flicker
      output[state] = 0;
    }
    else if (elapsed < FRAME - SOME) {
      output[state] = 1;
    }
    state++;    // next channel
  }
}
void fall() {
  start = timer;
}
int main() {
  state = WAITING_FOR_SYNC;
  start = timer;
  pin.attach(RisingEdge, &rise);
  pin.attach(FallingEdge, &fall);
  while(1) {
  }
}