This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

multipexing seven segment display

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.

Parents
  • I've done something along those lines.

    I illuminated a digit for 750µs, followed by 250µs of dark time.
    Then I'd switch to the next digit. 8 digits overall, meaning every digit was updated every 8ms, that's a 125Hz refresh rate. No flickering.

    I used plain old timer 0 to generate a 250µs heartbeat. Nothing fancy, really.

    Never use a delay for a realtime application. The very concept is flawed. You want to control the interval at which your code is executed, not the time it is _not_ executed.

Reply
  • I've done something along those lines.

    I illuminated a digit for 750µs, followed by 250µs of dark time.
    Then I'd switch to the next digit. 8 digits overall, meaning every digit was updated every 8ms, that's a 125Hz refresh rate. No flickering.

    I used plain old timer 0 to generate a 250µs heartbeat. Nothing fancy, really.

    Never use a delay for a realtime application. The very concept is flawed. You want to control the interval at which your code is executed, not the time it is _not_ executed.

Children
  • Some people are more sensitive to flicker than others.

    125Hz sounds a bit low to me, considering that many people complain of flicker from standard fluorescent lamps - which is 100Hz over here.

    Erik has much experience in this area...

    Personally, I find that I see the flicker in lots of the LED exterior lamps used on cars mowadays. It's not so much when I look directly at them, but when they cross my field of view...

  • 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

  • 125Hz sounds a bit low to me, considering that many people complain of flicker from standard fluorescent lamps - which is 100Hz over here.
    I once had a bunch of people looking at a 24*132 LED sign.
    all saw flicker at 75Hz
    some saw flicker at 100HZ
    none saw flicker at 120Hz

    Erik