can somebody please school me on Shift Registers?

Discussion in 'General Electronics Chat' started by JoeBro391, Jul 24, 2010.

  1. JoeBro391

    Thread Starter Member

    May 15, 2010
    Hey, I am...I don't even know what my skill-level'm not completely oblivious, I understand most electronics and I'm about finished with my 3rd electronics textbook (first being Getting Started in Electronics, second being Make: Electronics and the one I'm almost finished with is Practical Electronics for Inventors). I've read all of them through, some chapters as many as 3 times, so I'm not completely oblivious, however, one thing I can't wrap my mind around is shift registers.

    I have a pretty basic understanding of what they do and how they work (shifting bits, and converting them from parallel to serial, and vice versa, and what-not), but I can't really figure out how to use them in any applications that don't require a microcontroller. I've even read through (though not in its entirety) the section on Shift Registers in Vol. IV at the top of the page, and it just doesn't help me (perhaps I have A.D.D.).

    Microcontrollers aside, if for example I wish to control an LED matrix of something like 8x8 [I figure those are decent values because it's an even 16 bits (i think)], how would I go about doing it? I'm just using this as an example, although it is a project I would like to undertake at some point. What's weird is that I know how to manually multiplex an LED-matrix, however, I know that using shift registers and maybe (either multiplexors or de-multiplexors) it can be much simpler...I just have no idea how to implement it.

    So if anyone has an tips or analogies or links to good explanations I'd much appreciate it. Thanks a bunch. -Joe
  2. Wendy


    Mar 24, 2008
    Last edited: Jul 24, 2010
  3. tom66

    Senior Member

    May 9, 2009
    A serial to parallel shift register requires a clock and data input. You get this kind of data a lot in microcontroller/digital systems.

    It is more rare in purely digital systems. But you do get it. One example would be communication between different parts using a small number of wires... i.e. parallel to serial and serial to parallel. I also recall using it in one of my projects where I had a 32-bit counter and I only wanted to use a few IOs. I ended up using 6 IOs; 4 were chip selects for the registers, 1 clock, 1 data. Of course, I needed a microcontroller to perform this access.
  4. JoeBro391

    Thread Starter Member

    May 15, 2010
    I'll just assume you missed the part in my post where I stated that that that Chapter on Shift Registers didn't help me to connect any of the dots...

    tom66: okay, thanks buddy, perhaps it'll start to make sense when I get to my next book, on mircocontrollers. -Joe
  5. BillB3857

    Senior Member

    Feb 28, 2009
    Where I work (play), we see single line video cameras used in the fiberglass industry. They use shift registers to control a line of LEDs that indicate proper positioning of the camera to see a stream of molten glass. The shift registers share a common clock with the single line image sensor. The data line is driven from a level comparator that monitors the video level from the image sensor. As the luminance of the glass stream is seen, the comparator output toggles to start loading the shift register with 1's. After the image sensor scan moves past the trailing edge of the stream, the comparator then toggles back to 0's and these are clocked into the shift register. End result is that the string of LEDs represents the width of the glass stream and by moving the camera from side to side, the LED's move side to side. Ideal position is to have an equal number of LED's OFF on each end of the string.

    Not sure if this helps or not, but it is a real world application.
  6. ryno

    New Member

    Jul 25, 2010
    A serial in / parallel out shift register could be used as the column select in your LED matrix.
    As you know, to drive the 8x8 matrix you are only driving a single column at a time. The shift register works well to drive the columns if you shift a single '1' bit through to select each column.

    So your circuit would have 8 pins driving the rows of your matrix, and 2 pins driving the shift register which in turn drives the columns of your matrix. These 2 pins are data in, and a clock in. For the first column, the data line is clocked in high, and for each consecutive clock the data line is low.

    You can take this further by driving both columns and rows by shift registers. Letting you drive a full 8x8 matrix with only 4 pins.

    If that made no sense.. maybe this link will provide more insight.
  7. JoeBro391

    Thread Starter Member

    May 15, 2010
    thanks guys, those did help. I am figuring you the using discreet components is really kinda out of the question. I should be starting my book on microcontrollers in a few days (got 75 pages left in this 600-page textbook that i'm reading) and then things should become more fun ;-). -Joe