Driving 9 7-segment LEDs

I'm thinking about building a clock that will countdown to an event. I beleive I'll need 9 7-segment LEDs for the display (3 for days, 2 each for hours, minutes, seconds).

I would like to use a MAX7221 to drive the display and keep the hardware and software simple, but that chip only drives 8 digits, and I really don't want to pay an extra $8 for a second MAX7221 just to drive 1 digit. Is there a better way to do it?

I guess I could use a 74154 (4 to 16 decoder) and do the multiplexing in software using 12 IO lines, but that seems inelegant, and I really don't feel like soldering that many resistors..

Hi,
the MAX7221 needs only 4 IO-Pins so you got 15 Pins left (counting in the analog-pins). If you drive the leftmost 7-segment-digit directly from these pins you need only 5 more pins and resistors (for the hundreds in days if a max-value of 599 days is enough).

Eberhard

I did think about that way, but it seems so inelegant. I don't understand why only going to 599 means I need 5 pins instead of 7. I could use a good old-fashioned 7447 (bcd to 7 segment decoder/driver) to drive the 9th digit off 4 IO lines, but I'd rather save the chip and just use 7 IO.

I could go with a 7447 and 74154 and do up to 16 digits from 8 I/O pins :). But that just leaves all the work to the MCU which is what I want to avoid.

I did think about that way, but it seems so inelegant.

It has the elegance of minimal hardware requirements

I don't understand why only going to 599 means I need 5 pins instead of 7.

Yes, you are right, I was thinking about Segments that are never on in the hundreds of days and me and my brain we totally failed :o

Eberhard

[/quote]It has the elegance of minimal hardware requirements[/quote]

I think the 4-to-16 decoder to select a digit and then the 7 or 8 lines to control the segments would be minimal hardware and avoid one digit being a special case, and only need 11-12 IO lines, but I really wanted an excuse to use the 7221 ;). This is obviously a very simple project, so I do have plenty of spare CPU cycles to do my own multiplexing.