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.
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