Continue to Site

Welcome to

Welcome to our site! is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Reading 17 switches and driving LEDs with minimum I/O

Not open for further replies.


Full Member level 2
Aug 27, 2005
Reaction score
Trophy points
Activity points
I want to control 17 LEDs and read 17 switch by using minimum number of I/O ports.What can i use for this job?
(Switches are connected directly , i can't use matrix system)

You can use two shift registers, one for reading the inputs, the other to turn on the LEDs.
For inputs a number of 4021 can be used, while for the outputs you can consider some 74xx595.
You should be able to do all of this with just 5 I/O lines:
1 common clock
1 data in from the input shift reg
1 data out to the output shift reg
1 load for the input shift reg
1 strobe for the output shift reg

You could even do it with 4 lines, if you strobe and load at the same time, but the code gets more complicated.

If you have I2C, there are I2C expanders that you can use. Check out the NXP (Philips) website.

The minimum I can think of uses 19 I/O Lines !!.


Have you ever tried to look Maxim IC's web site ? I think MAX6957 fits your needs ( a pair of )


VVV is totally right you can use shift registers for this purpose like CD4094. i am also using the same process

A less complicated soluction is to use a bus, tri-state buffer for switch (74hc244) and D-latch for leds (74hc375 or similar) and a decoder 3-8 (74hc138) for control. The total number of IO used will be 11 (8 for the bus bus and 3 for control).
The implementation will be very simple, fast and cheap.

Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to