Hi Naga,

I did some RC5 controlled projects last year.
I did some searching but i could only find some of my test code.
You should read the info found on http://www.sbprojects.com/knowledge/ir/rc5.htm this will give you an idea of how it works and a schematic ...

Best regards, UB

Code:
'==== Set fuses =========================
@ device pic10F202,wdt_off,mclr_off,protect_off

'==== Set XTAL =========================
DEFINE OSC 4                                    ' int XTAL @ 4 Mhz

'==== Set variables ======================
Y       VAR word                                      ' To Hold the 12-bit RC5 code
TMP     var BYTE

'==== Set IO ===========================    
IR_PIN  VAR GPIO.3                               ' GPIO.0 input pin reading IR data
SDA     var GPIO.0
SCL     var GPIO.1
'errled  var GPIO.2

OPTION_REG.7 = 0                                ' Internal pull-ups = on
TRISIO = %00001000                              ' Set TRIS register input's & output's
OPTION_REG.5 = 0                                ' Set Timer inc. on internal inst.
GPIO   = %00000000                              ' Set all digital low

'==== Signal information ==================
'Given the information found on http://www.sbprojects.com/knowledge/ir/rc5.htm
'
'bit      1    2    3    4    5    6    7    8    9   10   11   12   13   14
'      |    |    |    |    |    |    |    |    |    |    |    |    |    |    |
'uSec   1778 1778 1778 1778 1778 1778 1778 1778 1778 1778 1778 1778 1778 1778

'==== Main program ======================  
MAIN:
IF IR_PIN = 1 THEN GOTO MAIN                    ' Wait for the first bit to arive
y.13 = IR_PIN                                           ' Incoming signal 
pauseus 889                                           ' In order to see this 0 we are in the second 
                                                       ' period of the first 1.778 msec, so we will 
                                                ' wait another 889 usec to enter the 2nd period.

pauseus 1600                                    ' Almost at the end of the second period, look for
y.12 = IR_pin                                    ' a high or low signal
pauseus 178                                     ' Time to the end of this period

pauseus 1600                                    ' Almost at the end of this period, look for
y.11 = IR_pin                                    ' a high or low signal
pauseus 178                                     ' Time to the end of this period

pauseus 1600                                    ' Almost at the end of this period, look for
y.10 = IR_pin                                    ' a high or low signal
pauseus 178                                     ' Time to the end of this period

pauseus 1600                                    ' Almost at the end of this period, look for
y.9 = IR_pin                                    ' a high or low signal
pauseus 178                                     ' Time to the end of this period

pauseus 1600                                    ' Almost at the end of this period, look for
y.8 = IR_pin                                    ' a high or low signal
pauseus 178                                     ' Time to the end of this period

pauseus 1600                                    ' Almost at the end of this period, look for
y.7 = IR_pin                                    ' a high or low signal
pauseus 178                                     ' Time to the end of this period

pauseus 1600                                    ' Almost at the end of this period, look for
y.6 = IR_pin                                    ' a high or low signal
pauseus 178                                     ' Time to the end of this period

pauseus 1600                                    ' Almost at the end of this period, look for
y.5 = IR_pin                                    ' a high or low signal
pauseus 178                                     ' Time to the end of this period

pauseus 1600                                    ' Almost at the end of this period, look for
y.4 = IR_pin                                    ' a high or low signal
pauseus 178                                     ' Time to the end of this period

pauseus 1600                                    ' Almost at the end of this period, look for
y.3 = IR_pin                                   ' a high or low signal
pauseus 178                                     ' Time to the end of this period

pauseus 1600                                    ' Almost at the end of this period, look for
y.2 = IR_pin                                   ' a high or low signal
pauseus 178                                     ' Time to the end of this period

pauseus 1600                                    ' Almost at the end of this period, look for
y.1 = IR_pin                                   ' a high or low signal
pauseus 178                                     ' Time to the end of this period

pauseus 1600                                    ' Almost at the end of this period, look for
y.0 = IR_pin                                   ' a high or low signal
pauseus 178                                     ' Time to the end of this period

y = ~y                                          ' Invert y word

if Y.lowbyte = 255 then goto ERROR       ' If all lowbytes are 0xFF then noise is received 

TMP.1 = Y.13
TMP.0 = Y.12
if not tmp = 3 then goto error

TMP.4 = Y.10
TMP.3 = Y.9
TMP.2 = Y.8
TMP.1 = Y.7
TMP.0 = Y.6
if not tmp = 0 then goto error

TMP.2 = Y.5
TMP.1 = Y.4
TMP.0 = Y.3
if tmp > 0 then goto error

TMP.2 = Y.2
TMP.1 = Y.1
TMP.0 = Y.0

' TMP now holds the decoded RC5 signal

'==== End of main loop reset and go from top ====
ERROR:                                        
Y=0
tmp=0                                       ' Clear key codes
PAUSE 250                                   ' debounce
GOTO MAIN                                   ' Return to main loop

END