Adam,
Here is a basic diagram (below) of a 4 bit shift register made from 4 D flip flops connected in series. The parallel output is displayed at D,C,B,A.
To understand the logic of this circuit, assume the output at Q of each flip flop is at logic 0. When a clock pulse is applied to the SHIFT line, the logic level at the D input of each flip flop is loaded into the corresponding flip flop. For example, if all Q outputs are initially at logic 0,the status of the 4 outputs, (0000) will not be changed after the arrival of the clock pulse. Now, if a logic 1 is applied to the serial input, a logic 1 will be loaded into the first flip flop when the next clock pulse arrives. The 4 bit output nibble appearing at the parallel output will then be 1000 with a logic 1 appearing at parallel output "D". If the logic level at the serial input is then changed to logic 0, the logic 1 will move one position to the right at the next clock cycle. The 4 bit nibble stored in the register will then be 0100. The movement to the right of the logic 1 will continue with each clock cycle. The nibble changes to a 0010, and then to a 0001. This is provided that logic 0's are loaded into the register after our initial logic 1 which we are watching go through the register. At the fifth clock cycle, the logic 1 is pushed completely out of the register. Provided no other logic 1's were pushed into the register, the nibble will once again be 0000.
Four significant things have happened here in 5 clock cycles:
1. A logic 1 applied at the SERIAL INPUT appeared at the SERIAL output after the arrival of 4 more clock cycles. Thus the register acted as a digital delay line.
2. The logic 1 appeared in sequence at 4 of the parallel outputs. This action was controlled by the clock cycles. Thus, the outputs of the register can be used to sequentially control other devices connected to A through D as a pattern sent to the serial input.
3. The bit pattern appearing at the 4 parallel outputs can be considered a binary word. As the bits moved from left to right, the magnitude of the word was halved at each clock cycle.
Note: In binary, 1000 = 8, 0100 = 4, 0010 = 2, and 0001 = 1. Thus, the shift register has performed a numeric divide by two operation with each clock cycle.
4. Between clock pulses, the register has acted as a conventional data storage register. The register stored the data without changing it. The data was always available at the parallel outputs.
Hope it is helpful in your project.
MP
View attachment 36239