There are many Binary to 7 Segment decoders out there, such as the CD4511, DM74LS47, SN7447 and the DM9368. All of which have attractive features, but none have all of them in one package. Another downside is many only display 0 - 9 with few displaying all Hexadecimal digits (0 - F). With many of these chips obsolete and hard to find, my Binary to 7 Segment Decoder is a versatile substiute.
How It Works
I am using a PIC16F628A to read the Binary Number and Display the Hexadecimal equivalent on a 7 Segment LED display. The ASM file is heavily commented, so for information on exactly how it works, take a look at the ASM file.
Here is a summarised explanation:
- The software reads the logic levels of the first 4 bits of PORTA (Binary Inputs) and stores the digit in a General Purpose Register (GPR).
- The GPR is then XOR'd with 0x00 to mask the upper nibble.
- A table is called, and the program counter jumps x amount of instructions, depending on the number stored in the GPR.
- The corresponding 7 segment arrangement is moved to the working register (W).
- Then this is transfered to PORTB, to which the LED 7 segment display is connected. As well and doing this, the microcontroller tests the inputs for Ripple Blanking, Latch, Test Lamp, and Display Type Select and acts on them accordingly.
1x PIC16F628A (can use 627A or 648A)
1x LED 7 Segment (Common Cathode or Common Anode)
7x 470Ω Resistor
3x 10KΩ (RA4, RA5 & RB0 pull up ) resistor
1x .1μF Multilayer Ceramic Capacitor
Binary to 7 Segment Decoder
This circuit displays the Hexadecimal equivalent of a 4 bit Binary Number. The number is displayed