How to Build a Register Circuit with a 4094 Chip
In this project, we will build a register circuit using a 4094 chip.
A register is a device that can store bits of information.
The 4094 is an 8-bit register, so it can store 8 bits of data.
It is a serial shift register, so each bit is shifted in 1 bit at a time until all the bits are shifted in. This is in contrast to a parallel shift register, in which all 8 bits are shifted in at the same time.
Registers are actually really important because they form the foundation for many different types of highly used devices. Registers are the heart of memory of computers. They form ROM and RAM memory. They hold bits of information. They hold data. So it's really good to get familiar with them and how to use them.
In this circuit, we will show how the 4094 register works with manual pushbutton control. This will demonstrate how the register works
from a manual perspective, so you can see up and close how it really works.
- 4094 CMOS Register Chip
- 8 470Ω resistors
- 10 LEDs
- 2 Pushbuttons
- 2 1KΩ resistors
- Clock source
The 4094 chip is a CMOS register chip. A register is a chip that can store 8 bits. These 8 bits show up at the output pins. If the bit is LOW, an output device such as an LED will be off. If the bit is HIGH, an output device such as an LED will be on.
The 4094 chip can be obtained very inexpensively (under $0.50) and it's available from a number of different online retailers. One place to find is at Tayda Electronics at the following link: 4094 CMOS Register IC.
The 4094 is a 16-pin chip.
The pinout for the 4094 is shown below.
The 4094 works from voltage anywhere from 3V-15V. So we feed this voltage into VDD, pin 16 and we connect VSS to ground.
Pin 1 is the STROBE input. This input must be placed HIGH to transfer bits to the storage register. If this pin is LOW, no data can be transferred to the storage register so they won't appear at the output.
Pin 2 is the data input. Depending on whether this pin is HIGH or LOW determines whether a 1 or 0 gets shifted into the register.
Pin 3 is the clock pin. The 4094 chip needs a clock signal in order to operate. Data gets shifted into the storage register on the rising edge of the clock signal.
Pin 15 is the Output Enable pin. This pin must be HIGH in order for the output pins to go HIGH. If this pin is LOW, outputs are disabled.
Pin 9 and 10, QS1 and QS2, are used for cascading a number of 4094 chips together. QS1 would be used to transfer data serial from one chip to the next on the positive edge of a clock signal with a clock that is high speed. QS2 would be used for transferring data serially from one chip to the other on the falling edge of a clock signal with a clock that is slow speed. So if you are cascading chips together, you either connect the QS1 or the QS2 pin to the data input pin of the second 4094 chip. This allows the shifting of data from one register chip to the next. Since we are not cascading multiple 4094s, we leave these pins unconnected. Being that these pins are outputs and contain an output voltage, they should not be connected directly to ground, because it shorts a decent amount of power directly to ground, which can create power issues (excess power which can damage components). Therefore, we leave them unconnected.
QP0-QP7 are the output pins. To these pins, we attach our output device we want to turn on when a 1 is
shifted to that pin.
4094 Register Circuit
The schematic diagram of the 4094 register circuit we will build to drive on LEDs is shown below.
To power the 4094 register chip, we feed 5V into VDD, pin 16 and we connect VSS to ground. This establishes power to the 4094.
We connect the strobe input and the data input to a pull-down resistor. These pins will normally be LOW when the pushbutton is unpressed. So they have a value of 0 when unpressed. When we press down on the pushbutton, the value of the pin goes HIGH or to 1. We attach an LED to the pull-down resistor just to serve as a visual indication that the pushbutton has been pressed and it has registered.
To pin 3, the clock pin, we have to connect a clock signal, a digital square wave signal. A clock signal can be obtained from a number of sources such as from a function generator if you have one. A function generator can be put in square wave mode in which case it can function as a clock. A clock can be obtained from a 555 timer circuit in astable mode. A clock can be built with a 4047 multivibrator circuit in astable mode. A clock circuit can be built with a 7414 schmitt trigger inverter. It can also be built with a 4046 phase locked loop. So there are many ways of producing a clock signal.
Pin 15 is the Output Enable pin. In order for the outputs to be able to turn on, this pin must be connected HIGH. Since you do not want to turn on this feature at any point in our circuit, we simply connect it permanently HIGH to VDD.
Pin 9 and 10, QS1 and QS2, the pins for cascading multiple 4094s together are simply tied to ground, since we won't be doing that in this circuit.
QP1-QP7 are the 8 output register bits. To these pins, we connect an LED along with a current-limiting
resistor so that the LED doesn't burn out from excess current. If the output is LOW, the LED will be off. If
the output is HIGH, the LED will be on.
How the Circuit Works
So these circuit is mainly controlled by 2 inputs, the strobe input pin and the data input pin, pins 1 and 2.
Being that the Output Enable (OE) pin is tied permanently HIGH, the output is always enabled, so we don't have to worry about that pin.
The strobe and data inputs are normally LOW.
To shift data to the storage register, we have to send a HIGH signal to the strobe input and then the data is shifted into the storage register. So if we are sending a 0 to the storage register, we simply press down on the strobe input and release it. This shifts a 0 into the storage register. If we want to shift a 1 in to the storage register, we press down on the data pushbutton; this makes it HIGH or 1. Then we press down on the strobe pushbutton. This shifts in that 1. And we can do this as many times as we want. Each time we do it, another bit gets shifted in. And this is how we can get our 8 bits to the values we desire. Once they are shifted in, you will see them appear at the outputs as either the LED being on or the LED being off.
And this is how a 4094 register operates.