Making sense of active-low: the 74LS147 encoder and 74LS42 decoder
Function tables for two chips whose inputs and outputs work on Low.
The first time you use a 74LS147 priority encoder it is easy to get stuck on "I pulled the input up to 5 V, so why does nothing happen?". In the lab we knew the outputs were active-low but missed that the inputs are selected by Low as well, and had to rewire once. A pin whose name has a bar over it (1̅, D̅) or whose symbol has a small circle is active (on) when Low.
In this guide 3
1. 74LS147 (decimal to BCD priority encoder)
| Inputs | Pin(s) pulled Low | Outputs D C B A | Value read inverted |
|---|---|---|---|
| Inputsall High | Pin(s) pulled Low— | Outputs D C B A1111 | Value read inverted0 |
| Inputsonly input 1 Low | Pin(s) pulled Low11 | Outputs D C B A1110 | Value read inverted1 |
| Inputsonly input 2 Low | Pin(s) pulled Low12 | Outputs D C B A1101 | Value read inverted2 |
| Inputsonly input 3 Low | Pin(s) pulled Low13 | Outputs D C B A1100 | Value read inverted3 |
| Inputsonly input 4 Low | Pin(s) pulled Low1 | Outputs D C B A1011 | Value read inverted4 |
| Inputsonly input 5 Low | Pin(s) pulled Low2 | Outputs D C B A1010 | Value read inverted5 |
| Inputsonly input 6 Low | Pin(s) pulled Low3 | Outputs D C B A1001 | Value read inverted6 |
| Inputsonly input 7 Low | Pin(s) pulled Low4 | Outputs D C B A1000 | Value read inverted7 |
| Inputsonly input 8 Low | Pin(s) pulled Low5 | Outputs D C B A0111 | Value read inverted8 |
| Inputsonly input 9 Low | Pin(s) pulled Low10 | Outputs D C B A0110 | Value read inverted9 |
| Inputsinputs 3 and 7 both Low | Pin(s) pulled Low13, 4 | Outputs D C B A1000 | Value read inverted7 |
Inputs 1–9 and outputs A–D are all active-low. An output of 1111 means "nothing selected (0)", and you read the input number by inverting each output bit. If several inputs are Low, the highest number wins (priority). There is no pin for input 0. Power is VCC on pin 16 and GND on pin 8.
2. 74LS42 (BCD to decimal decoder)
| Inputs D C B A | Decimal | Outputs 0 1 2 … 9 | Output driven Low |
|---|---|---|---|
| Inputs D C B A0000 | Decimal0 | Outputs 0 1 2 … 90 1 1 1 1 1 1 1 1 1 | Output driven Low0 (pin 1) |
| Inputs D C B A0001 | Decimal1 | Outputs 0 1 2 … 91 0 1 1 1 1 1 1 1 1 | Output driven Low1 (pin 2) |
| Inputs D C B A0010 | Decimal2 | Outputs 0 1 2 … 91 1 0 1 1 1 1 1 1 1 | Output driven Low2 (pin 3) |
| Inputs D C B A0011 | Decimal3 | Outputs 0 1 2 … 91 1 1 0 1 1 1 1 1 1 | Output driven Low3 (pin 4) |
| Inputs D C B A0100 | Decimal4 | Outputs 0 1 2 … 91 1 1 1 0 1 1 1 1 1 | Output driven Low4 (pin 5) |
| Inputs D C B A0101 | Decimal5 | Outputs 0 1 2 … 91 1 1 1 1 0 1 1 1 1 | Output driven Low5 (pin 6) |
| Inputs D C B A0110 | Decimal6 | Outputs 0 1 2 … 91 1 1 1 1 1 0 1 1 1 | Output driven Low6 (pin 7) |
| Inputs D C B A0111 | Decimal7 | Outputs 0 1 2 … 91 1 1 1 1 1 1 0 1 1 | Output driven Low7 (pin 9) |
| Inputs D C B A1000 | Decimal8 | Outputs 0 1 2 … 91 1 1 1 1 1 1 1 0 1 | Output driven Low8 (pin 10) |
| Inputs D C B A1001 | Decimal9 | Outputs 0 1 2 … 91 1 1 1 1 1 1 1 1 0 | Output driven Low9 (pin 11) |
The inputs are ordinary active-high and only the outputs are active-low: the selected output goes Low and the rest stay High. Inputs 10–15 leave every output High. Power is VCC on pin 16 and GND on pin 8.
Try it: read the active-low pins
Each pin shows its H or L level. Pins with a bubble are active low.
- Input
- none
- Outputs
- DCBA HHHH
- Value (decimal)
- 0
Things to try: on the 74LS147 press several inputs at once; only the highest number comes out (priority). DCBA is inverted BCD, so read H as 0. Give the 74LS42 10 or more and every output stays High.
3. How not to get confused
- Start from the datasheet function table. A table of H and L is more reliable than the logic equations.
- Tie unused active-low inputs High (VCC). TTL usually reads a floating input as High, but it picks up noise.
- Wire test LEDs the right way round. For an active-low output, put the LED on the VCC side (VCC → resistor → LED → output) so it lights when the output is Low and "lit" means "selected". Size the resistor with the LED resistor calculator.
- In report tables, don't mix voltages (H/L) with logic values (0/1); say in the table title which one you used.
Convert between BCD and binary with the number base converter, and see the 7-segment calculator for display decoders (the 7447's outputs are active-low too).