how to give delay of 1 nano seconds

The unit of time of your microprocessor is based on its frequency... At 16MHz you don't get nano second granularity - so you need a faster processor.