SECCIÓN 9-4/CODIFICADORES 591
PREGUNTAS DE REPASO 1. Indique cuáles de los siguientes enunciados se refieren a las pantallas LCD y
cuáles se refieren a las pantallas de LEDs.
(a) Emiten luz.
(b) Reflejan la luz ambiental.
(c) Son mejores para las aplicaciones de baja potencia.
(d) Requieren un voltaje de corriente alterna.
(e) Usan un arreglo de 7 segmentos para producir dígitos.
(f) Requieren resistencias limitadoras de corriente.
2. ¿Qué forma de datos se envía a cada uno de los siguientes dispositivos?
(a) Una pantalla LCD de 7 segmentos con un decodificador/controlador.
(b) Un módulo LCD alfanumérico.
(c) Una pantalla de computadora LCD.
9-4 CODIFICADORES
La mayoría de los decodificadores acepta un código de entrada y produce un nivel
ALTO (o BAJO) en una y sólo una línea de salida. En otras palabras, podemos decir
que un decodificador identifica, reconoce o detecta un código específico. Al opuesto
de este proceso de decodificación se le conoce como codificación y se lleva a cabo
mediante un circuito lógico llamado codificador, el cual tiene cierto número de
líneas de entrada, de las cuales sólo una se activa en un momento dado y produce
un código de salida de N bits, dependiendo de la entrada que se active. La figura
9-12 es el diagrama general para un codificador con M entradas y N salidas. En este
codificador las entradas son activas en ALTO, lo cual significa que por lo general
están en BAJO.
FIGURA 9-12 Diagrama
general de un codificador. A0 O0
A1 O1
A2 O2
Codificador
AM - 1 ON - 1
M entradas sólo Código de
hay una en salida de N bits
ALTO en un
momento dado
Anteriormente vimos que un decodificador de binario a octal (decodificador de 3
a 8 líneas) acepta un código de entrada de tres bits y activa uno de ocho líneas de
salida correspondientes a ese código. Un codificador de octal a binario (codificador de
8 a 3 líneas) realiza la función opuesta: acepta ocho líneas de entrada y produce un
código de salida de tres bits, correspondiente a la entrada que se activó. La figura
9-13 muestra el circuito lógico y la tabla de verdad para un codificador de octal a
binario con entradas activas en BAJO.
Si rastrea la lógica podrá verificar que un nivel BAJO en cualquier entrada
individual producirá el código binario de salida correspondiente a esa entrada. Por
592 CAPÍTULO 9/CIRCUITOS LÓGICOS MSI
O0
LSB
Entradas Salidas
A0 O1
A0 A1 A2 A3 A4 A5 A6 A7 O2 O1 O0
A1
A2 X 1 1 1 1 1 1 1 0 0 0
X 0 1 1 1 1 1 1 0 0 1
8 A3 X 1 0 1 1 1 1 1 0 1 0
O2
Entradas A4 X 1 1 0 1 1 1 1 0 1 1
MSB X 1 1 1 0 1 1 1 1 0 0
A5 X 1 1 1 1 0 1 1 1 0 1
A6 X 1 1 1 1 1 0 1 1 1 0
X 1 1 1 1 1 1 0 1 1 1
A7
*Sólo una
entrada en
BAJO a la vez
FIGURA 9-13 Circuito lógico para un codificador de octal a binario (de 8 a 3 líneas). Para una operación
apropiada, sólo debe haber una entrada activa en un momento dado.
ejemplo, un nivel BAJO en A3 (mientras que las demás entradas se encuentran en
ALTO) producirá O2 0, O1 1 y O0 1, que es el código binario para el 3. Observe
que A0 no se conecta a las compuertas lógicas, ya que por lo general las salidas del
codificador estarán en 000 cuando ninguna de las entradas de A1 hasta A9 esté en
BAJO.
EJEMPLO 9-5 Determine las salidas del codificador de la figura 9-13 cuando A3 y A5 están al
mismo tiempo en BAJO.
Solución
Si seguimos la ruta de las compuertas lógicas, podremos ver que los niveles BAJOs
en estas dos entradas producirán niveles ALTOs en cada salida; en otras palabras, el
código binario 111. Es evidente que éste no es el código para ninguna de las entra-
das que se activaron.
Codificadores con prioridad
Este último ejemplo identifica una desventaja del circuito codificador simple de la
figura 9-13 cuando se activa más de una entrada a la vez. Una versión modificada
de este circuito, conocida como codificador con prioridad, incluye la lógica nece-
saria para asegurar que cuando se activen dos o más entradas, el código de salida
corresponda a la entrada de mayor numeración. Por ejemplo, cuando A3 y A5 están
en BAJO, el código de salida será 101 (5). De manera similar, cuando A6, A2 y A0
estén todas en BAJO, el código de salida será 110 (6). Los circuitos 74148, 74LS148
y 84HC148 son todos codificadores de octal a binario con prioridad.
74147 Codificador de decimal a BCD con prioridad
La figura 9-14 muestra el símbolo lógico y la tabla de verdad para el 74147 (74LS147,
74HC147), el cual funciona como un codificador de decimal a BCD con prioridad.
Tiene nueve entradas activas en BAJO, las cuales representan los dígitos decimales
del 1 al 9, y produce el código BCD invertido que corresponde a la entrada de mayor
numeración que se activó.
SECCIÓN 9-4/CODIFICADORES 593
A1 A2 A3 A4 A5 A6 A7 A8 A9 O3 O2 O1 O0
MSB
A1 74147 O3 1 1 1 1 1 1 1 1 1 1 1 1 1
A2 Codificador X X X X X X X X 0 0 1 1 0
de decimal O2 X X X X X X X 0 1 0 1 1 1
a BCD X X X X X X 0 1 1 1 0 0 0
con prioridad X X X X X 0 1 1 1 1 0 0 1
O1
X X X X 0 1 1 1 1 1 0 1 0
X X X 0 1 1 1 1 1 1 0 1 1
A8 O0 X X 0 1 1 1 1 1 1 1 1 0 0
A9 X 0 1 1 1 1 1 1 1 1 1 0 1
0 1 1 1 1 1 1 1 1 1 1 1 0
Nueve BCD
entradas invertido X = ya sea 0 o 1
FIGURA 9-14 Codificador 74147 de decimal a BCD con prioridad.
Vamos a examinar la tabla de verdad para ver cómo funciona este CI. La pri-
mera línea en la tabla muestra a todas las entradas en su estado inactivo en ALTO.
Para esta condición las salidas son 1111, que viene siendo el inverso de 0000, el
código BCD para el 0. La segunda línea en la tabla indica que un nivel BAJO en A9,
sin importar los estados de las demás entradas, producirá un código de salida de
0110, que viene siendo el inverso de 1001, el código BCD para el 9. La tercera línea
muestra que un nivel BAJO en A8, siempre y cuando A9 esté en ALTO, producirá un
código de salida de 0111, el inverso de 1000, el código BCD para el 8. De manera
similar, las líneas restantes en la tabla muestran que un nivel BAJO en cualquier
entrada, siempre y cuando todas las entradas de mayor numeración estén en ALTO,
producirá el inverso del código BCD para esa entrada.
Las salidas del 74147 estarán, por lo general, en ALTO cuando ninguna de las
entradas esté activada. Esto corresponde a la condición de entrada de 0 decimal.
No hay entrada A0 debido a que el codificador asume el estado de entrada de 0
decimal cuando todas las demás entradas están en ALTO. Para convertir las salidas
BCD invertidas del 74147 en BCD normal se pasa cada una de ellas a través de un
INVERSOR.
EJEMPLO 9-6 Determine los estados de las salidas en la figura 9-14 cuando A5, A7 y A3 están en
BAJO y todas las demás entradas están en ALTO.
Solución
La tabla de verdad muestra que cuando A7 está en BAJO, los niveles en A5 y A3 no
importan. Por lo tanto, las salidas serán cada una 1000, el inverso de 0111 (7).
Codificador interruptor
La figura 9-15 muestra cómo puede utilizarse un 74147 como un codificador interrup-
tor. Los 10 interruptores podrían ser los interruptores del teclado en una calculado-
ra que representan los dígitos del 0 al 9. Los interruptores son del tipo normalmente
abierto, por lo que las entradas del interruptor están todas, por lo general, en ALTO
y la salida BCD es 0000 (observe los INVERSORes). Cuando se oprima un dígito, el
circuito producirá el código BCD para ese dígito. Como el 74LS147 es un codificador
con prioridad, si se oprimen varias teclas al mismo tiempo se producirá el código
BCD para la tecla con mayor numeración.
El codificador interruptor de la figura 9-15 puede usarse siempre que deban
introducirse datos BCD en forma manual en un sistema digital. Uno de los mejores
ejemplos sería una calculadora electrónica, en la cual el operador oprime varios
interruptores de teclado en forma sucesiva para introducir un número decimal. En
una calculadora básica simple, el código BCD para cada dígito decimal se introdu-
ce en un registro de almacenamiento de cuatro bits. En otras palabras, cuando se
oprime la primera tecla se envía el código BCD para ese dígito a un registro de FFs
594 CAPÍTULO 9/CIRCUITOS LÓGICOS MSI
FIGURA 9-15 Codificador +5 V Resistencia de sujeción a VCC
interruptor de decimal a para cada entrada del codificador
BCD. se muestra sólo para SW9 resiste
1 k⍀
SW9 A9
SW8 A8
SW7 A7
SW6 A6 O3
74LS147
SW5 A5 Codificador O2
de decimal
SW4 a BCD BCD
A4 O1 normal
con prioridad
SW3 A3 O0
SW2 A2
SW1 A1
SW0
de cuatro bits; cuando se oprime el segundo interruptor envía el código BCD para
ese dígito a otro registro de FFs de cuatro bits, y así en lo sucesivo. Por ende, una
calculadora que pueda manejar ocho dígitos tendrá ocho registros de cuatro bits
para almacenar los códigos BCD para estos dígitos. Cada registro de cuatro bits con-
trola un decodificador/controlador y una pantalla numérica de manera que pueda
visualizarse el número de ocho dígitos.
La operación descrita puede lograrse con el circuito de la figura 9-16. Este cir-
cuito tomará tres dígitos decimales que se introducen desde el teclado en secuen-
cia, los codificará en BCD y almacenará el BCD en tres registros de salida de FF. Los
12 flip-flops tipo D identificados como Q0 a Q11 se utilizan para recibir y almacenar
los códigos BCD para los dígitos. Los flip-flops Q8 a Q11 almacenan el código BCD
para el dígito más significativo (MSD), que es el primero en introducirse desde el
teclado. Los flip-flops Q4 a Q7 almacenan el segundo dígito introducido y los flip-
flops Q0 a Q3 almacenan el tercer dígito introducido. Los flip-flops X, Y y Z forman
un contador de anillo (capítulo 7) que controla la transferencia de datos de las
salidas del codificador al registro de salida apropiado. La compuerta OR produce
una salida en ALTO cada vez que se oprime una de las teclas. Esta salida puede
verse afectada por el rebote de los contactos de los interruptores, con lo cual se
producirían varios pulsos antes de establecerse en el estado ALTO. El OS se utiliza
para neutralizar el rebote de los interruptores mediante un disparo en la primera
transición positiva desde la compuerta OR y permaneciendo en nivel ALTO durante
20 ms, mucho más allá del tiempo que dura el rebote del interruptor. La salida del
OS aplica pulsos de reloj al contador de anillo.
A continuación se describe la operación del circuito para el caso en el que se
introduce el número 309 decimal:
1. Se oprime la tecla BORRAR, con lo cual se borran todos los flip-flops de alma-
cenamiento Q0 a Q11 para quedar en 0. También se borran los flip-flops X y Y y
se prestablece el flip-flop Z en 1, de manera que el contador de anillo comience
en el estado 001.
2. La tecla BORRAR se deja de oprimir y se oprime el “3”. Las salidas 1100 del
codificador se invierten para producir 0011, el código BCD para el 3. Estos valores
binarios se envían a las entradas D de los tres registros de salida de cuatro bits.
3. La salida de la compuerta OR cambia a ALTO (debido a que dos de sus entra-
das están en ALTO) y dispara la salida del OS Q 1 durante 20 ms. Q regresa
a BAJO y aplica pulsos de reloj al contador de anillo hasta el estado 100 (X
SECCIÓN 9-4/CODIFICADORES 595
+5 V Resistencia de
sujeción a VCC
para cada entrada A los
Teclas de
1 k⍀ decodificadores/
los dígitos
9 controladores
y pantallas
8
Q3 D Q11
CLK
7 MSB
6 Q2
D Q10
74LS147
CLK Código
5 Codificador
de decimal BCD para
a BCD Q1 el MSD
4
D Q9
3 Q0 CLK
LSB
2
D Q8
1 CLK
0 D Q7
CLK
D Q6
CLK
Segundo
Para el rebote MSD
de los
interruptores D Q5
CLK
PRE
Q J X J Y J Z
T OS CLK CLK CLK
D Q4
Q K X K Y K Z CLK
CLR CLR
tp = 20 ms
D Q3
CLK
BORRAR
a las entradas CLR
de Q 0 – Q 11 D Q2
CLK
LSD
1 k⍀
D Q1
CLK
+5 V
D Q0
CLK
FIGURA 9-16 Circuito para introducir mediante el teclado un número de tres dígitos en los registros de
almacenamiento.
cambia a ALTO). La transición positiva en X se alimenta a las entradas CLK de
los flip-flops Q8 a Q11, de manera que las salidas del codificador se transfieran
a esos FFs. Esto es, Q11 0, Q10 0, Q9 1 y Q8 1. Observe que los flip-flops
Q0 a Q7 no se ven afectados, ya que sus entradas CLK no han recibido una tran-
sición positiva.
596 CAPÍTULO 9/CIRCUITOS LÓGICOS MSI
4. La tecla “3” se deja de oprimir y la salida de la compuerta OR regresa a BAJO.
Después se oprime la tecla “0”. Esto produce el código BCD de 0000, que se
alimenta a las entradas de los tres registros.
5. La salida de la compuerta OR cambia a ALTO en respuesta a la tecla “0” (obser-
ve el INVERSOR) y dispara el OS durante 20 ms. Después de ese tiempo, el
contador de anillo se desplaza al estado 010 (Y cambia a ALTO). La transición
positiva en Y se alimenta a las entradas CLK de Q4 a Q7 y transfiere el 0000 a
estos FFs. Observe que los flip-flops de Q0 a Q3 y de Q8 a Q11 no se ven afectados
por la transición en Y.
6. La tecla “0” se deja de oprimir y la salida de la compuerta OR regresa a BAJO.
Se oprime la tecla “9” y se producen las salidas BCD 1001, las cuales se alimen-
tan a los registros de almacenamiento.
7. La salida de la compuerta OR cambia a ALTO de nuevo y se dispara el OS, el
cual a su vez aplica pulsos de reloj al contador de anillo para que cambie al
estado 001 (Z cambia a ALTO). La transición positiva en Z se alimenta a las
entradas CLK de Q0 a Q3 y se transfiere el 1001 hacia estos FFs. Los demás FFs
de almacenamiento no se ven afectados.
8. En este punto, el registro de almacenamiento contiene 001100001001, comen-
zando con Q11. Éste es el código BCD para el 309. Las salidas de estos registros
alimentan los decodificadores/controladores que controlan las pantallas apro-
piadas para indicar los dígitos decimales 309.
9. Las salidas de los FFs de almacenamiento también se alimentan a otros circui-
tos en el sistema. Por ejemplo, en una calculadora estas salidas se enviarían a
la sección aritmética para su procesamiento.
Varios problemas al final del capítulo tratarán con algunos otros aspectos de este
circuito, incluyendo los ejercicios de diagnóstico de fallas.
El 74ALS148 es un poco más sofisticado que el ‘147. Tiene ocho entradas que
están codificadas en un número binario de tres bits. Este CI también proporciona
tres terminales de control, como se indica en la tabla 9-1. La entrada de habilitación
(EI) y la salida habilitación (EO) pueden usarse para conectar en cascada dos CIs,
para producir un codificador de hexadecimal a binario. La terminal EI debe estar
en BAJO para que cualquier terminal de salida pueda cambiar a BAJO, y la termi-
nal EO cambiará a BAJO sólo cuando ninguna de las ocho entradas esté activa y EI
esté activa. La salida GS se utiliza para indicar cuando por lo menos está activada
una de las ocho entradas. Hay que recalcar que las salidas de A2 hasta A9 están
invertidas, como en el 74147.
TABLA 9-1 Tabla de funciones del 74ALS148.
ENTRADAS SALIDAS
–– – – – – – – – – – – – –– ––
EI 0 1 2 3 4 5 6 8 A2 A1 A0 GS EO
H x x x x x x x x H H H H H
L H H H H H H H H H H H H L
L x x x x x x x L L L L L H
L x x x x x x L H L L H L H
L x x x x x L H H L H L L H
L x x x x L H H H L H H L H
L x x x L H H H H H L L L H
L x x L H H H H H H L H L H
L x L H H H H H H H H L L H
L L H H H H H H H H H H L H
SECCIÓN 9-5/DIAGNÓSTICO DE FALLAS 597
PREGUNTAS DE REPASO 1. ¿Qué diferencia hay entre un codificador y un decodificador?
2. ¿Qué diferencia hay entre un codificador con prioridad y un codificador ordina-
rio?
3. ¿Cuáles serán las salidas en la figura 9-15 cuando SW6, SW5 y SW2 están todos
cerrados?
4. Describa las funciones de cada una de las siguientes partes del circuito para
introducir datos desde el teclado de la figura 9-16.
(a) compuerta OR (d) Flip-flops X, Y, Z
(b) codificador 74147 (e) Flip-flops Q0 a Q11
(c) Monestable (one-shot)
5. ¿Cuál es el propósito de cada entrada y salida de control en un codificador
74148?
9-5 DIAGNÓSTICO DE FALLAS
A medida que los circuitos y los sistemas se hacen más complejos, es obvio que se
incrementa el número de posibles causas de falla. Mientras que el procedimiento
para aislar y corregir fallas sigue siendo en esencia el mismo, la aplicación del pro-
ceso de análisis/observación es más importante para los circuitos complejos, ya que
ayuda al técnico de diagnóstico de fallas a reducir la ubicación de la falla a un área
pequeña del circuito. Con esto se reducen en una cantidad considerable los pasos
de prueba y los datos resultantes que deben analizarse. Al comprender la operación
del circuito, observar los síntomas de la falla y razonar a través de la operación, el
técnico de diagnóstico puede a menudo predecir las posibles fallas antes de siquie-
ra utilizar una sonda lógica o un osciloscopio. El proceso de observación/análisis
es uno que los técnicos de diagnóstico sin experiencia no quieren aplicar, tal vez
debido a la extensa variedad y capacidades del equipo de prueba moderno a su
disposición. Es fácil volverse extremadamente confiado con esas herramientas y no
utilizar en forma adecuada el razonamiento y las habilidades analíticas del cerebro
humano.
Los siguientes ejemplos ilustran cómo puede aplicarse el proceso de observa-
ción/análisis. Muchos de los problemas de diagnóstico de fallas al final del capítulo
le brindarán la oportunidad de desarrollar su habilidad para aplicar este proceso.
Otra de las estrategias vitales en el diagnóstico de fallas es lo que se denomina
como dividir y conquistar. Esta estrategia se utiliza para identificar la ubicación
del problema una vez que el proceso de observación/análisis ha generado varias
posibilidades. Un método menos eficiente sería investigar todas las causas posibles,
una por una. El método de dividir y conquistar busca un punto en el circuito que
pueda probarse, dividiendo así el número total de posibles causas a la mitad. En
los sistemas simples esto podría parecer innecesario, pero a medida que aumenta
la complejidad también se incrementa el número de posibles causas. Si hay ocho
posibles causas, entonces debe realizarse una prueba que elimine cuatro de ellas.
La siguiente prueba debería eliminar dos más y la tercera debería identificar el
problema.
EJEMPLO 9-7 Un técnico evalúa el circuito de la figura 9-4 mediante el uso de un conjunto de
interruptores para aplicar el código de entrada desde A4 hasta A0. El técnico recorre
cada uno de los posibles códigos de entrada y comprueba la correspondiente salida
del decodificador para ver si está activada. Luego observa que todas las salidas con
numeración impar responden en forma correcta, pero todas las salidas con numera-
ción par no responden cuando se aplica su código. ¿Cuáles son las fallas más proba-
bles?