BCD to 7 Segment Decoder
Cuthbert Nyack
A decoder using NAND gates which can be used to drive 7 segment
displays from a BCD input
is illustrated below. BCD input consists of A, B, C and D with A being
the LSB and D the MSB. States of A, B, C and D can be changed by clicking
on the appropriate tab. The circuit will display something with
inputs from 10 to 15. These are don't care states and in a real
system these inputs will not occur.
Blue corresponds to LOW and red to HI.
Table of BCD inputs for different segments
Decimal 

D 
C 
B 
A 

f(a) 
f(b) 
f(c) 
f(d) 
f(e) 
f(f) 
f(g) 
0 

0 
0 
0 
0 

1 
1 
1 
1 
1 
1 
0 
1 

0 
0 
0 
1 

0 
1 
1 
0 
0 
0 
0 
2 

0 
0 
1 
0 

1 
1 
0 
1 
1 
0 
1 
3 

0 
0 
1 
1 

1 
1 
1 
1 
0 
0 
1 
4 

0 
1 
0 
0 

0 
1 
1 
0 
0 
1 
1 
5 

0 
1 
0 
1 

1 
0 
1 
1 
0 
1 
1 
6 

0 
1 
1 
0 

1 
0 
1 
1 
1 
1 
1 
7 

0 
1 
1 
1 

1 
1 
1 
0 
0 
0 
0 
8 

1 
0 
0 
0 

1 
1 
1 
1 
1 
1 
1 
9 

1 
0 
0 
1 

1 
1 
1 
1 
0 
1 
1 
Karnaugh Map for f(a)

!A 
A 
A 
!A 

!B 
1 
0 
1 
0 
!D 
B 
1 
1 
1 
1 
!D 
B 
x 
x 
x 
x 
D 
!B 
1 
1 
x 
x 
D 

!C 
!C 
C 
C 

f(a) = !A!C + AC + B + D 
Decimal 10(1010) to 15(1111) are marked as x for don't care states.
Using squares with orange
letters and light blue background gives f(a) = !A!C + AC + B + D.
Similar analysis for the other segments using Karnaugh maps
gives:
f(b) = !C + AB + !A!B
f(c) = A + !B + C
f(d) = !A!C + B!C + D + !AB + A!BC
f(e) = !A!C + !AB
f(f) = D +!AC + !A!B + !BC
f(g) = !AC + !BC + D + B!C
These functions are implemented in the applet below.
Return to main page
Return to page index
COPYRIGHT © 1996 Cuthbert A. Nyack.