want to display 1,2,3,4 on four seven segemnt display connected to 8051 in such way that the display reads as "1234", but I am not able to write delay routine which refreshes the displays fast enough that our eyes is not able to catch it, kindly guide. using 12Mhz crystal.
Without the dark time, you might get "ghosting" from one digit to the next.
A 250µs gap with 750µs illumination sounds a bit large - but I guess that was down to your timer granularity?
No, I started with 1ms and no dark time. As you say there was ghosting. So I switched to 750/250, there was no ghosting and no recognizable loss of brightness. So I stuck with it. It was a demo application on a tight schedule, only to be used once. No reason to do it perfect. The pain threshold for usable heartbeats would have been somewhere between 5 and 10µs (I use 5µs for flash writing). So switching to something like 950/50 wouldn't have been an issue.
There's a picture: sourceforge.net/.../rollout.jpg