Ever imagined how your keyboard takes input and how that data is stored! This project is a smaller version of data entry and storage. An elaborate explanation of how the signal from the keys, clock effect the memory elements(flip flops).
Step 1: Block Diagram
1. Input Device
Asa binary 4 bit input device, there are only 2 push buttons(one to register 1(high) and another for 0(low) with a noise filter required to generate the input signal. The output signal generated is a zero pulse(when key is pressed the always high signal changes to low).
2. Monostable Pulse Generator
The input signals are then fed into the monostable pulse generator to generate a pulse that has a fixed high time duration, it is triggered by the small input pulse.
This Monostable pulse is used as a clock input to the Shift Register.
3.Bi-stable Pulse Generator
This pulse is also driven by the input signal lines, when the one(high) key is pressed this signal is set and resets when the low key is pressed. The signal is fed as the left serial input to the shift Register.
The 4 bit shift register uses 4 flip-flops to store data. It takes a serial input with a clock to store the data either from left to right or right to left. In this project the serial data that we use is coming from the Bi-stable pulse generator, and the clock signal from Monostable pulse generator.
The LEDs indicate the output.
Step 2: Timing Diagram
A sample timing Diagram that takes a input 0101. The input pulse from button 1 and button 2 have a very small "low time", that is the reason why it is shown as a spike in the timing diagram.
Step 3: Circuit Diagram
The High Time for the monostable pulse can be changed by changing the RC value (resistance and capacitance value).
High time is given by t=1.1*RC.
The high time has a lower limit which depends on the denouncing switch used, limit is generally 10-20ms.
The high time in this circuit design is 1s (10k omh*100uf).
This by reducing this time the speed of the device is increased.
Step 4: Fritzing Design With BOM Files.
Download the fritzing file to customize the design and make your own design.
The required component list are in the BOM file.