Shift Registers and UARTs.

The Shift Register has similarities to the ring counter, but data may be entered into it. Data is entered at one end of the string of registers, and on each clock pulse the data shifts up the string one position.

Some shift registers are capable of shifting data in both directions. Least significant bit positions to higher bit positions (up shift, or right shift), or high to lower (down shift, or left shift). (Left and right is conventional, assuming data flows from left to right across the page.)

Some shift registers may be loaded in parallel (all bits loaded at once), or read from in parallel. These can convert serial data streams to, and from, parallel data streams. A UART (*1) is usually a pair of shift registers. One register converts parallel data from the processor to serial data as it shifts it out. The other register converts serial data coming in to parallel data for the processor to read.

(*1) A UART is a Universal Asynchronous Receiver and Transmitter. These are the devices used in digital communications. Asynchronous implies that only the data is sent. The bit rate is fixed frequency at both ends.

This is in contrast to a SRT (Synchronous Receiver and Transmitter) that supplies a clock for every bit position being transmitted. These clocks shift the shift register as data comes in. SRT designs are faster and more reliable, especially when there is motion, or long distances, between stations. UART designs are cheaper, and adequate for most applications.