One problem which I am seeing is that i dont notice any changes in the outputs {LEDS}. is it because I am using an external clock which is 20Mhz .

I didn't take a real close look at your code, but at the speed your little chip is doing, LED's ain't going to cut it. Unless their is someway to do at least pause longer than 1/30th of a second. 1/30th of a second (if I remember correctly) is the frame rate on TV's. And TV's actions seems smooth to our eyes. I am sure your chip is running a whale of a lot faster. Can you scope it with a trigger and memory? Just send one slug and scope it... that way you can verify trans?. I would suggest putting the LED's on your *receiver*. And see what the receiver is receiving. Or just send the slug 00000001, and see if the receiver lights up only one LED after the send.

Dwayne