Priority encoder 74HC147 — resolving multiple active inputs A 74HC147 has 10 active-LOW inputs (I0–I9) and 4 active-LOW outputs (Y3 Y2 Y1 Y0). If inputs 4 and 5 are both LOW (asserted) and all other inputs are HIGH, what is the state of the four outputs?
-
AY3Y2Y1Y0 = 0101 (active-LOW)
-
BY3Y2Y1Y0 = 1010 (active-LOW)
-
CY3Y2Y1Y0 = 1001 (active-LOW)
-
DY3Y2Y1Y0 = 0110 (active-LOW)
Answer
Correct Answer: Y3Y2Y1Y0 = 1010 (active-LOW)
Explanation
Introduction / Context:The 74HC147 is a decimal-to-BCD priority encoder with active-LOW inputs and active-LOW outputs. Priority means that if multiple inputs are asserted (LOW) simultaneously, the output encodes the highest-numbered asserted input. Understanding how active-LOW conventions affect the encoded outputs is essential when interfacing keypads and decimal switches.
Given Data / Assumptions:
- Inputs I0–I9 are active-LOW; outputs Y3..Y0 are also active-LOW.
- I4 = LOW and I5 = LOW; all other inputs HIGH.
- Higher index = higher priority (I9 highest).
Concept / Approach:With I4 and I5 both asserted, the encoder selects the highest-priority input, I5. The BCD for decimal 5 is 0101 (MSB→LSB). Because outputs are active-LOW, the device drives the complement of that binary code: Y3Y2Y1Y0 = NOT(0101) = 1010.
Step-by-Step Solution:
1) Determine priority: between 4 and 5, input 5 has higher priority → encode 5.2) Write BCD(5) with MSB first: 0101.3) Apply active-LOW output convention: Y = bitwise NOT of BCD → 1010.4) Report outputs explicitly: Y3Y2Y1Y0 = 1010 (active-LOW).Verification / Alternative check:If only I4 were LOW, the BCD would be 0100 and active-LOW outputs would be 1011, confirming the complementing rule. Repeating for a few digits quickly validates the logic.
Why Other Options Are Wrong:
- 0101: that would be active-HIGH outputs, not active-LOW.
- 1001 or 0110: do not correspond to the complemented BCD for 5 under the device’s conventions.
Common Pitfalls:Forgetting that both inputs and outputs are active-LOW, or assuming the encoder returns non-inverted BCD directly. Always check the datasheet conventions.
Final Answer:Y3Y2Y1Y0 = 1010 (active-LOW)