Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Problemas de Electrónica Digital Por Luis Gil Javier Ibáñez y Eduardo García
Problemas de Electrónica Digital Por Luis Gil Javier Ibáñez y Eduardo García
electrónica digital
trónica en la Universitat de València y doctor
por la UPV (2007).
En la actualidad es profesor titular de univer-
sidad en la UPV adscrito al Departamento de
Ingeniería Electrónica. Lleva impartiendo do-
Luis Gil Sánchez cencia desde hace más de 30 años en asigna-
turas relacionadas con la electrónica digital y de
Javier Ibáñez Civera otras especialidades de electrónica. Es autor de
PROBLEMAS
DE ELECTRÓNICA DIGITAL
EDITORIAL
UNIVERSITAT POLITÈCNICA DE VALÈNCIA
Colección Académica
Para referenciar esta publicación utilice la siguiente cita: Gil Sánchez, Luis; Ibáñez Civera,
Javier; García Breijo, Eduardo (2018). Problemas de electrónica digital. Valencia: Editorial
Universitat Politècnica de València
Los contenidos de esta publicación han sido revisados por el Departamento de Ingeniería
Electrónica de la Universitat Politècnica de València
La Editorial UPV autoriza la reproducción, traducción y difusión parcial de la presente publicación con fines
científicos, educativos y de investigación que no sean comerciales ni de lucro, siempre que se identifique y se
reconozca debidamente a la Editorial UPV, la publicación y los autores. La autorización para reproducir, difundir o
traducir el presente estudio, o compilar o crear obras derivadas del mismo en cualquier forma, con fines
comerciales/lucrativos o sin ánimo de lucro, deberá solicitarse por escrito al correo edicion@editorial.upv.es
Luis Gil Sánchez
Ingeniero Técnico Industrial en la Universitat Politècnica de València (UPV), Ingeniero en Electrónica en la Universitat de
València y doctor por la UPV (2007).
En la actualidad es profesor titular de universidad en la UPV adscrito al Departamento de Ingeniería Electrónica. Lleva
impartiendo docencia desde hace más de 30 años en asignaturas relacionadas con la electrónica digital y de otras
especialidades de electrónica. Es autor de varios libros docentes sobre electrónica digital y simulación de circuitos electrónicos
en editoriales de la UPV y nacionales. También es autor de numerosas participaciones en congresos docentes nacionales e
internacionales. Además, ha trabajado en proyectos de innovación docente en el área de la electrónica digital.
Su tarea de investigación se ha centrado en el desarrollo de sensores, instrumentación y análisis de datos siendo
autor de más de múltiples artículos de divulgación científica y de comunicaciones en congresos científicos
internacionales.
Ingeniero Técnico Industrial en la Universitat Politècnica de València (UPV), Ingeniero en Electrónica (Universitat de
València) y doctor por la UPV (2009).
En la actualidad es profesor titular de universidad en la UPV adscrito al Departamento de Ingeniería Electrónica. Lleva
impartiendo docencia desde hace más de 30 años en asignaturas relacionadas con la electrónica digital, así como de otras
especialidades de electrónica. Es autor de varios libros docentes sobre electrónica digital y simulación de circuitos electrónicos
en editoriales de la UPV y nacionales. También es autor de múltiples participaciones en congresos docentes nacionales e
internacionales. Además, ha participado en proyectos de innovación docente en el área de la electrónica digital.
Su tarea de investigación se ha centrado en el desarrollo de dispositivos optoelectrónicos, sensores, instrumentación y
análisis de datos siendo autor de más de múltiples artículos de divulgación científica y de comunicaciones en congresos
científicos internacionales
Ingeniero Técnico Industrial en la Universitat Politècnica de València (UPV), Ingeniero en Electrónica (Universitat de
València) y doctor por la UPV (2004).
Los autores del libro deseamos ofrecer a los estudiantes de electrónica digital una amplia colección
de problemas resueltos y de preguntas de tipo test sobre la materia. Este material surge como resultado de
la amplia experiencia docente a lo largo de varios años en la asignatura de Electrónica Digital en el Grado
en Ingeniería Electrónica Industrial y Automática de la Universitat Politècnica de València (UPV) pero el
libro se ha enfocado y redactado para que sea útil para estudiantes de otras titulaciones y universidades
donde se impartan conocimientos de electrónica digital. Como esta publicación incluye únicamente
problemas, al inicio de cada tema se ha incorporado una amplia y detallada bibliografía donde el
alumno podrá aprender o ampliar los conocimientos teóricos necesarios para que pueda entender y
resolver los ejercicios y problemas desarrollados en esta publicación.
La publicación se divide en dos partes, la primera corresponde a los conceptos generales de
electrónica digital utilizando circuitos integrados estándar y donde también se incluyen dispositivos
programables por hardware (PLD) con un especial énfasis en resolución de problemas de conexión de
elementos de entrada y salida a dispositivos digitales, al desarrollo de sistemas secuenciales síncronos y la
programación en lenguaje VHDL. La segunda parte del libro se dedica a los dispositivos microcontroladores.
En la actualidad nos hemos centrado en el dispositivo PIC16F88 de Microchip. Esta parte se basa
fundamentalmente en la programación en lenguaje C (con compilador XC8) de las diversas prácticas y para
desarrollar un trabajo final de la asignatura. Estas tareas poseen una naturaleza bien distinta de la primera
parte de la asignatura.
La presentación de los problemas se realiza por temas. Para cada uno se ofrecen una serie de
preguntas de tipo test con cuatro respuestas alternativas donde se ofrece las soluciones después de la
última pregunta y por otra parte se presentan problemas resueltos. Además, al final de la primera parte se
ha incorporado un capítulo con problemas de sistemas digitales completos que incluyen problemas de
mayor complejidad y envergadura, donde se abarcan los contenidos de distintos temas anteriores. De
esta forma se pretende que el alumno vea una aplicación más real y completa de los contenidos que
se van desgranando en cada uno de los temas.
Esperamos que con esta publicación el alumno pueda lograr los conocimientos necesarios para
superar esta asignatura y que además le sea útil en el resto de los estudios de la electrónica.
I
ÍNDICE
III
Archivos complementarios
El lector podrá descargar los archivos que corresponden a las diferentes librerías relacionadas en el libro
a partir de los siguientes enlaces o código QR
upvADlib.png tiny.cc/0153_upvADlib
upvLCDlib.png tiny.cc/0153_upvLCDlib
upvPWMlib.png tiny.cc/0153_upvPWMlib
IV
TEMA 1
ELECTRÓNICA DIGITAL
COMBINACIONAL
En este tema se realiza una introducción a la parte inicial de la electrónica digital, es decir los
sistemas de numeración binario y hexadecimal, las funciones y puertas lógicas, simplificación de funciones
y circuitos lógicos combinacionales (multiplexor, codificador, decodificador y circuitos aritmético-lógicos).
Para conocer y profundizar en los conceptos de este tema existe una amplia bibliografía ya que esta
parte es la más básica de la electrónica digital
A continuación se enumeran algunos libros de electrónica digital escritos en castellano, indicando
los temas en donde se desarrollan los aspectos referentes a funciones lógicas y electrónica combinacional:
• Floyd, Thomas L. (2016) Fundamentos de Sistemas Digitales. 11º ed. Pearson Educación. Temas: 2, 3, 4,
5 y 6.
• Tocci, Ronald J. y otros. (2016). Sistemas Digitales: Principios y Aplicaciones. 10ª ed. Pearson Educación.
Temas: 2, 3, 4, 6 y 9.
• Mandado, Enrique; Martín, José Luis. Sistemas Electrónicos Digitales”. 10º ed. Marcombo. Temas: 1, 2,
3 y 5.
• Mano, M. Morris (2016). Diseño Digital. 3ª ed. Pearson. Temas: 1, 2, 3, 4 y 5.
• Hermosa, Antonio (2010). Electrónica Digital Fundamental y Programable. 4ª ed. Marcombo. Temas: 1,
2, 3, 4, 5 y 6.
• Toledo, José Fco.; Esteve, Raúl (2005). Fundamentos de Electrónica Digital. Editorial Universitat
Politècnica de València. Temas: 1, 2 y 6.
• Gil Sánchez, Luis (1999). Introducción a la Electrónica Digital. Editorial Universitat Politècnica de
València Temas: 1, 2, 3, 5 y 6.
1
Problemas de electrónica digital
a) 10 b) F c) 16 d) FF
A B F
0 0 1 a) NOR exclusiva
0 1 0 b) NAND
1 0 0 c) NOR
1 1 1 d) OR exclusiva
a) = +
b) = ∙
c) = +
d) = ∙
a) F = ( A ⊕ B) ⋅ C
b) F = ( A ⋅ B) + C
c) F = ( A + B) ⋅ C
d) F = ( A ⊕ B ) ⊕ C
a) B b) 1 c) A+B d) A
2
Tema 1.Electrónica digital combinacional
a) Multiplexor
b) Codificador
c) Comparador
d) Ninguno de los anteriores
a) Biestable
b) Multiplexor
c) Contador
d) Latch
DC 00 01 11 10
BA a) ∙ ∙ + ∙ ∙
00 x 0 x x b) +
01 x 0 1 x c) ∙ + ∙
11 1 0 1 x d) ∙ +
10 1 0 x x
CB 00 01 11 10 a) ⨁ ⨁
A b)
0 x 1 x 1 c) ∙ ∙ + ∙ ∙ + ∙ ∙ + ∙ ∙
1 1 x 1 x d) 1
a) 3 b) 4 c) 8 d) 16
3
Problemas de electrónica digital
15. ¿Para qué se utiliza la entrada Latch Enable / Strobe del decodificador BCD – 7 segmentos (74HC4511)?
16. El circuito integrado comparador de dos números de 4 bits (7485) posee 3 entradas auxiliares. ¿Cuál es
su misión?
a) Se desprecia
b) Es el bit menos significativo del resultado de la suma
c) Es el bit más significativo del resultado de la suma
d) Es siempre cero
4
Tema 1.Electrónica digital combinacional
Soluciones
1. a) El número decimal 16 en binario es 10000. Para pasar de binario a hexadecimal se agrupan cada
cuatro bits empezando por el LSB.
2. b) Se toman grupos de 4 bits: 0010=2 y 1000=8
3. c) Se intercambian unos por ceros y se suma uno: 1101 ↔ 0010 + 1= 0011
4. a) = ⨁ = ∙ + ∙
5. a) Aplicación de la ley de Morgan e involución. = ̿ + = +
6. a) Combinación de puertas XOR, NOT y AND
7. b) + ̅ = 1, y 1+B=1
8. d) Todos los circuitos son combinacionales.
9. b) El resto de circuitos son secuenciales.
10. b) En una función incompleta los valores indeterminados (X) se pueden sustituir de forma independiente
por 1 o por 0. En este caso vale la pena sustituirlos todos por1 para así obtener la expresión final
más sencilla y se obtiene dos grupos de 8 celdas.
11. d) Todas las X se substituyen por 1
12. b) 24=16
13. a) Dicho C.I. está formado por cuatro multiplexores de dos entradas de datos cada uno con una entrada
de selección común.
14. c) El multiplexor selecciona una de varias entradas de datos, como es analógico permite trabajar con
sensores.
15. c) la entrada LE/STB: 1: Lath Enable; 0= Strobe (bloquea)
16. b) En este caso se utilizan dos C.I., uno para los cuatro bits de menor peso y el otro para los de mayor
peso
17. b) Solo suma dos bits
18. c) El acarreo final es bit más significativo del resultado
5
Problemas de electrónica digital
Realizar:
a) Tabla de verdad y función lógica canónica.
b) Simplificar mediante cuadros de Karnaugh. Escribir la función lógica.
c) Dibujar el circuito lógico simplificado.
Solución
a)
A B C F Fijándose en las combinaciones en las que F vale 1
0 0 0 0
0 0 1 0 = ̅∙ ∙ + ∙ ∙ + ∙ ∙ ̅+ ̅∙ ∙
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1
B)
AB 00 01 11 10 Función simplificada (suma de los grupos de la
C A∙B tabla)
0 0 0 1 0
1 0 1 1 1 = ∙ + ∙ + ∙
A∙C
B∙C
C)
6
Tema 1.Electrónica digital combinacional
Problema 1.2
Diseñar un circuito lógico para la selección de 2 alarmas (A y B) en una salida F mediante una entrada de
selección (S ), Si C=0 entonces F vale lo mismo que A y si C=1 entonces F vale lo mismo que B.
Alarma A
(0 ó 1) A Alarma A o B
Circuito F
Alarma B a
(0 ó 1) Diseñar Si C=0 → F = Alarma A
B Si C=1 → F = Alarma B
Selector
S
Realizar:
a) Tabla de verdad y función lógica canónica.
b) Simplificar mediante cuadros de Karnaugh. Escribir la función lógica.
c) Obtener función lógica utilizando solo la función NAND de dos entradas.
d) Dibujar el circuito lógico simplificado con C.I. 7400 (puertas NAND de dos entradas).
Solución
a)
S A B F Fijándose en las combinaciones en las que F vale 1
0 0 0 0
0 0 1 0 = ̅∙ ∙ + ̅∙ ∙ + ∙ ̅∙ + ∙ ∙
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 1
B)
AB 00 01 11 10 Realizando la suma lógica de la expresión de cada
S grupo:
0 0 0 1 1 /S∙A
1 0 1 1 1 = ̅∙ + ∙
S∙B
= ̅∙ + ∙ = ̅∙ + ∙ = ̅∙ ∙ ∙
7
Problemas de electrónica digital
Problema 1.3
Diseñar un circuito lógico que permita seleccionar 2 magnitudes: TEMPERATURA (A) y HORA (B) de UN
dÍígito (BCD) para mostrarlo en un visualizador de 7 segmentos (F) mediante una entrada de selección (S),
de forma que si S=0 entonces F corresponde con A y si S=1 entonces F corresponde con B. Además, existe
una señal de bloqueo (E) de forma que permita mantener el valor del visualizadoraunque se cambie las
entradas
Solución
Se puede utilizar un multiplexor de dos números de cuatro bits cada uno (74HC157). Para la salida se
utilizará un circuito decodificador de BCD a 7 segmentos (74HC4511) y un visualizadorde 7 segmentos con
sus resistencias limitadoras de corriente. Este decodificador posee una entrada LE/STB donde se conecta la
entrada E de forma que si E=0 habilita las entradas y si E=1 las bloquea.
8
Tema 1.Electrónica digital combinacional
Problema 1.4
Diseñar un circuito lógico que permita seleccionar 2 magnitudes: Temperatura (A) y Hora (B) de DOS dígitos
(BCD) cada una para mostrarlo en dos visualizadorde 7 segmentos (F) mediante una entrada de selección
(S), de forma que si S=0 entonces F corresponde con A y si S=1 entonces F corresponde con B.
Solución
Es una extensión del problema anterior, simplemente hay que utilizar dos multiplexores dobles de 4 bits
(74HC157), pero con el control (S) común a ambos multiplexores. En este caso no hay entrada de
bloqueo por lo que no se ha incorporado un circuito decodificador de BCD a 7 segmentos (74HC4511).
9
Problemas de electrónica digital
Problema 1.5
Diseñar el circuito lógico para el control de una máquina fotocopiadora. Esta máquina tiene una selección
del número de copias a realizar (Preset) de un máximo de 9 copias y un contador del número de copias
realizadas. El sistema determinará cuando la máquina tiene que parar. Además, indicará el número de
copias realizadas y las que faltan por realizar, ambos datos se mostrarán en un visualizador de 7 segmentos.
Solución
Se realizará una comparación entre el número de selección de copias (preset) y el del contador, para ello se
utilizará un circuito comparador 7485, donde la salida A=B servirá para indicar Stop.
Para saber el número de las copias que faltan por realizar es necesario un circuito restador (resta el valor
de la selección menos el valor del contador). Para lograr una resta hay que sumar el minuendo con el
complemento a dos del sustraendo. El complemento a dos de un número se obtiene intercambiando unos por
ceros y al resultado se suma uno.
Para obtener el circuito restador se utiliza un circuito sumador (7483) y cuatro puertas inversoras para
invertir el valor de contador. La entrada de acarreo inicial se conecta a tensión de alimentación (Vcc) para
sumar uno. Se añaden dos visualizadores de 7 segmentos para conocer el número de copias realizadas y las
que faltan por realizar.
10
Tema 1.Electrónica digital combinacional
Problema 1.6
Diseñar un circuito lógico para el control de la dirección del motor de un ascensor (arriba, abajo o paro) de
un edificio de 8 plantas (0 a 7).
• F0…F7 es el sensor de presencia del ascensor en una planta (final de carrera).
• B0...B7 es el botón de llamada al ascensor desde rellano.
• Deberá haber un visualizador de siete segmentos donde se indica la posición (planta) donde se
encuentre el ascensor y otro del piso de llamada.
• Utilizar bloques de circuitos digitales combinacionales.
Solución
La entrada de cada pulsador y de cada posición del ascensor se codificará a binario mediante codificador de 8 a
3. Posteriormente se realizará una comparación entre ambos números y en función del resultado se sabe si el
ascensor tiene que subir, bajar o permanecer parado.
Otra opción es utilizar dos C.I. comparadores de 4 bits cada uno (7485) conectados en cascada. De esta
forma se compararían ambos números directamente como dos números de ocho bits cada uno.
11
TEMA 2
CIRCUITOS INTEGRADOS
DIGITALES
En este tema se profundiza en las características eléctricas de los circuitos integrados digitales con
especial dedicación a la conexión de dispositivos a las entradas y a las salidas, estudiando los circuitos
eléctricos de conexión y calculando los niveles de tensión y corriente.
La bibliografía de este tema es amplía en lo referente a las características físicas y eléctricas de los
circuitos integrados digitales, pero es muy limitada la referente a problemas con dispositivos de entrada y
de salida.
• Floyd, Thomas L. (2016) Fundamentos de Sistemas Digitales. 11º ed. Pearson Educación. Tema: 12.
• Tocci, Ronald J. y otros. (2016). Sistemas Digitales: Principios y Aplicaciones. 10ª ed. Pearson. Tema: 8
• Mandado, Enrique; Martín, Jose Luis. Sistemas Electrónicos Digitales. 10º ed. Marcombo. Tema: 6.
• Mano, M. Morris (2016). Diseño Digital. 3ª ed. Pearson. Tema: 10.
• Roth, Charles H. (2004) Fundamentos de Diseño Lógico. 5ª ed. Paraninfo. Temas: 1, 2, 3, 4, 5, 7, 8 y 9
• Hermosa, Antonio (1997). Técnicas electrónicas digitales: tecnología y circuitería en TTL y CMOS. Ed.
Marcombo.
• Toledo, José Fco.; Esteve, Raúl (2005). Fundamentos de Electrónica Digital. Editorial Universitat
Politècnica de València. Tema: 3
• Gil Sánchez, Luis (1999). Introducción a la Electrónica Digital. Editorial Universitat Politècnica de
València.. Tema: 4
13
Problemas de electrónica digital
2. La tensión de entrada a nivel bajo de una puerta lógica está comprendida entre:
a) 0 y VILmax
b) VILmax y VIHmin
c) VIHmin y Vcc
d) 0 y Vcc
3. ¿Cuál es margen de ruido a nivel alto de las puertas lógicas que tienen los siguientes datos de
catálogo? VIHmin= 3V; VOHmin= 4V; VILmax= 0,6V; VOLmax= 0,2V
4. La puerta lógica de la figura (74LS00) tiene salida en totem-pole, ¿Qué error se ha cometido al montar
el circuito?
6. A las puertas lógicas que poseen una salida en alta impedancia se denominan:
a) Colector abierto.
b) Buffer.
c) Histéresis.
d) Triestado.
7. ¿Cuál debe ser el valor máximo de R para asegurar un nivel bajo de tensión en la entrada de la puerta
TTL de la figura, cuando el interruptor esté abierto?
14
Tema 2. Circuitos integrados digitales
8. En la pregunta anterior el valor de la IIL es un número negativo. ¿Cuál debe ser el motivo?
+Vdd
G1 S1
a) Cuando también lo haga Q2.
Q1 b) Cuando a la entrada se le aplica una señal cercana a Vdd.
Entrada A D1 Salida Y c) Cuando a la entrada se le aplica una señal cercana a cero.
D2
d) Siempre debe conducir Q1 para así permitir la corriente de
Q2
G2 salida.
S2
10. En las puertas lógicas con tecnología TTL, las corrientes de entrada IIH e IIL (en valores absolutos) suele
ser:
11. ¿Cuál es el valor más adecuado de RB para activar el motor del circuito de la figura con I=400 mA?
Siendo los datos del transistor: VBE=1 V; hFEmin=40 (βsat) y utilizando una puerta lógica con VOHmin=4V.
a) 300 Ω
b) 400 Ω
c) 7,5 Ω
d) 1 KΩ
15
Problemas de electrónica digital
13. Del circuito de la puerta inversora Tótem-Pole de la figura, ¿Cuál es el estado de conducción de Q3 y Q4
cuando se encuentra la salida de la puerta en nivel alto:
a) 250Ω
b) 230Ω
c) 170Ω
d) 150 Ω
16
Tema 2. Circuitos integrados digitales
Soluciones
12. d) CMOS significa “Complementary MOS” es decir un transistor de canal n y otro de canal p
13. c) La salida debe tener acceso a tensión de alimentación por medio de Q3 y desconexión de masa por
Q4.
14. d) El nombre procede por similitud con materiales magnéticos.
15. d) R=(Vcc-VD-VOLmax)/I = (5 - 1,6 - 0,4)/20mA= 150Ω
17
Problemas de electrónica digital
Solución
R1: Resistencia debajo del interruptor.
Para determinar el valor máximo de R hay tener en cuenta que cuando el interruptor esté abierto por la R
circula una corriente procedente de la entrada de la puerta lógica que provocará una caída de tensión en la R.
Para que la entrada (Vi) se mantenga un nivel bajo (L) la tensión en la resistencia deberá ser menor que la
VILmáx=0,8V. Por otro lado, la corriente de entrada puede ser hasta IILmax=0,4 mA.
Luego la Rmáx= VILmáx/IILmax = 0,8V/0,4mA= 2KΩ. (Valor bajo).
En cuanto al valor mínimo, hay que tener en cuenta que afectará al consumo cuando el interruptor esté
cerrado ya que: I=Vcc/R.
18
Tema 2. Circuitos integrados digitales
Problema 2.2
De forma similar al ejercicio 1, determinar los valores máximos de las resistencias (R1 y R2) para el control
de entrada una puerta de tecnología CMOS (74HCT04) por medio de interruptor.
Solución
En cuanto al valor mínimo, hay que tener en cuenta que afectará al consumo cuando el interruptor
esté cerrado ya que: I=Vcc/R.
19
Problemas de electrónica digital
Problema 2.3
Se desea diseñar el control de entrada de un garaje mediante un sensor óptico de barrera de forma que,
cuando pasa un vehículo (corta la barrera) se debe generar una señal de nivel de tensión alto (H) a un
circuito digital formado dispositivos de tecnología HCT. El sensor óptico está formado por LDR de modo que
cuando no hay vehículo (llega luz) la resistencia es R = 500Ω y cuando se corta la barrera (oscuridad) es
R = 10KΩ
Solución
a) Circuito de entrada. La LDR junto con la resistencia R forma un divisor de tensión que aplica una
Vcc ⋅ LDR LDR ⋅ (Vcc − VI )
tensión a la entrada de la puerta NOT: VI = → RI =
R1 + LDR VI
De esta forma, cuando haya luz la resistencia de LDR disminuye y la Vi disminuye y cuando haya oscuridad
la resistencia de LDR aumenta y la Vi aumenta.
Oscuridad: : la salida debe ser un “1” lógico (>VIHmín):
Se toma un valor normalizado intermedio de los extremos. Ej: 8,81KΩ (normalizada 8,6KΩ)
20
Tema 2. Circuitos integrados digitales
Problema 2.4
Determinar valor de R1 y R2 en cada uno de los circuitos de la figura para que circule por LED rojo una
corriente ID=15mA, sabiendo que la caída de tensión en el LED es: VD=1,6V. Puertas 74LS04 y 74HCT04.
Solución
74LS04.
Según datos de esta puerta lógica las corrientes: IOHmax = -0,4 mA y IOLmax = 8 mA, por lo que es inferior a la corriente que
precisa el LED (ID = 15mA).
En la práctica el circuito integrado sí que puede suministrar corriente suficiente para iluminar el LED, pero a costa de
bajar la tensión. De esta forma las fórmulas del cálculo de la resistencia no son válidas.
74HCT04.
Según datos de la puerta las tensiones de salida límites a T=25ºC son: VOHmin =3,84V y VOLmin =0,26V
, ,
a) Activo por nivel alto. 1 = = = 150Ω
, ,
b) Activo por nivel bajo: 2 = = = 209Ω
21
Problemas de electrónica digital
Problema 2.5
Diseñar un circuito necesario para activar un pequeño motor de continua que funciona a 12V y que
necesita una corriente de 400 mA mediante una puerta inversora 74LS04 y 74HCT04 con la salida a nivel
“H”. Utilizar el transistor bipolar BD135 (ICmax=2A; βsat=40 (hFEmin); .VBEmax=1V)
Solución
La corriente de colector del transistor será 400mA (menor que ICmáx (BD135)=1,5A).
IC 400 mA
La de base: I B = = = 10 mA
β sat 40
Puerta 74LS04. IOHmax=-0,4mA es inferior a la que necesita la base del transistor luego no es valida para
esta aplicación.
Puerta 74HCT04. IOHmax= -25mA > IB=25mA. Sí que es válida para esta aplicación.
VOHmín − VBEsat 4V − 1V
RB = = = 300Ω
IB 10mA
Nota. En estos primeros ejercicios se ha comprobado que las puertas de tecnología CMOS (HCT) es mucho
más adecuada que las de tecnología TTL (subfamilia LS) para realizar tareas de control de tensión y
corriente a la entrada y de salida de los circuitos integrados. Por este motivo en el resto de los problemas
de este tema se va a utilizar mayoritariamente circuitos integrados CMOS concretamente de la subfamilia
HCT, que además es compatible con TTL.
22
Tema 2. Circuitos integrados digitales
Problema 2.6
Se desea controlar el encendido y apagado de una lámpara incandescente (L1) de 12V/2W mediante un
sensor de luz (LDR) de forma que en claridad (LDRluz = 200 Ω) la lámpara permanezca apagada y en
oscuridad (LDRosc = 10 kΩ) la lámpara permanezca encendida.
Se utiliza el circuito de la figura que consiste en un adaptador de señal de la LDR de tal forma que, en cada
uno de los extremos de luminosidad posible (Claridad/Oscuridad) suministre una tensión que sea
compatible con los niveles lógicos de una puerta inversora de tecnología HCT.
Determinar el rango de variación de la resistencia RB y elegir un valor.
A. La salida de la puerta lógica debe controlar la lámpara L1.
B. Comprobar que hace una falta una etapa de amplificación de corriente (Q1). Utilizar un transistor
BD135 (datos en problema anterior: βsat=40, VBEmax=1V;: ICmax =1,5A)
C. Calcular un valor adecuado de RB.
Solución
b) Circuito de entrada. La LDR junto con la resistencia R forma un divisor de tensión que aplica una
5 ⋅ R1
tensión a la entrada de la puerta NOT: VI =
R1 + LDR
De esta forma, cuando haya luz la resistencia de LDR disminuye y la Vi aumenta y cuando haya oscuridad
la resistenci de LDR aumenta y la Vi disminuye.
23
Problemas de electrónica digital
c) Circuito de salida
Problema 2.7
Diseñar un circuito necesario para activar un pequeño motor de continua que funciona a 12V y que
necesita una corriente de 200mA mediante una puerta inversora 74LS06 (COLECTOR ABIERTO) con la salida
a nivel “H”. Utilizar el transistor bipolar BD135.
Solución
24
Tema 2. Circuitos integrados digitales
Problema 2.8
Se pretende diseñar un sistema de transporte de objetos formado por:
a) un pequeño motor de C.C. (12V, 300 mA) que hace girar una cinta transportadora
b) dos barreras fotoeléctricas (A y B) formadas cada una por una lámpara y un sensor de luz (LA-SA y
LB-SB). Los sensores son LDR con Rluz = 200 Ω y Roscuridad = 5 KΩ.
c) Un interruptor P que determina el funcionamiento del sistema.
a) Si “P” está abierto el control del sistema lo determina la barrera A. Es decir, si un objeto corta la
barrera A, el motor se detiene para realizar un proceso A e ignora a la barrera B.
b) Si “P” está cerrado el control del sistema lo determina la barrera B. Es decir, si un objeto corta la
barrera B, el motor se detiene para realizar un proceso B e ignora a la barrera A.
c) Si no se detecta ningún objeto el motor estará en funcionamiento permanentemente. Así mismo,
considerar las lámparas LA y LB encendidas permanentemente.
Se pide:
1) Diseñar un circuito para el interruptor P de forma que cuando esté abierto proporcione un “0” lógico y
cuando esté cerrado un “1” lógico.
2) A partir de las características de las puertas lógicas, diseñar el circuito de polarización de las LDR para
que en ausencia de objeto proporcionen un “1” lógico y cuando detecten un objeto proporcionen un
“0” lógico.
3) Diseñar el circuito de excitación del motor para que gire con un “1” lógico. Utilizar, si es necesario,
transistores bipolares de propósito general (βsat = 40, ICmáx = 2A, VBEsat = 1V).
4) Utilizando el mínimo número de puertas NAND cuyas hojas características se adjuntan, diseñar el
circuito de control para el funcionamiento previsto. Dibujar el esquema completo. Se considera una
alimentación de +5V para los circuitos lógicos y de +12V para el motor.
25
Problemas de electrónica digital
Los fabricantes pueden ofrecer gran variedad de valores de cada parámetro según las condiciones de
test del circuito. En las tablas las condiciones para la tensión de salida (Vo) son la corriente de salida y la
temperatura. Se ha elegido los valores para temperatura ambiente de 25ºC y la de la corriente más cercana
al ejemplo del problema.. Estos valores son los que se han marcado en las tablas.
Solución
a)
Como la IILmax =0,1μA es muy pequeña, para hacer los cálculos se desprecia respecto
a la que puede circular por la R.
Para determinar el valor máximo de R hay que tener en cuenta que cuando el
interruptor esté abierto por la R circula una corriente que provocará una c.d.t. que
deberá ser menor que la VILmáx=0.8V; para así estar seguro que en la entrada hay un
nivel bajo (L). Esta tensión se produce por una corriente que como máximo es
IILmax=0,1μA
Luego la Rmáx= VILmáx / IILmax = 0,8V/0,1μA= 8MΩ. Valor muy elevado, común para la tecnología CMOS.
26
Tema 2. Circuitos integrados digitales
En cuanto al valor mínimo, hay que tener en cuenta que afectará al consumo cuando el interruptor esté
cerrado ya que: I=5V/R.
b)
La primera decisión es determinar si la LDR va arriba o debajo de la R.
Como el enunciado indica que debe haber un 1 lógico cuando haya luz en la LDR
y o lógico cuando haya oscuridad, la LDR debe conectarse entre Vcc y entrada
5 ⋅ R1
(arriba) porque así el divisor de tensión es: VI =
R1 + LDR
De esta forma, cuando haya luz la resistencia de LDR disminuye y la Vi aumenta y
cuando haya oscuridad la resistenci de LDR aumenta y la Vi disminuye.
Datos:
Se calculan los valores extremos de R1 que cumpla esas condicines y se elege un valor intermedio:
c)
La corriente de colector del transistor será 300mA
(<Icmáx=2A).
IC
La de base: I B =
β mín =
300mA = 7,5mA (<IOHmín)
40
VOHmín − VBEsat 4V − 1V
Así, RB = = = 0,4 K
IB 7,5mA
Como valor normalizado se puede tomar RB=390Ω
27
Problemas de electrónica digital
d)
Tabla de verdad
P SA SB M
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 1
Mapa de Karnaught M = P ⋅ SA + P ⋅ SB
P
SA,SB 00 01 11 10 M = P ⋅ S A ·P ⋅ S B
0 0 0 1 1
1 0 1 1 0
28
Tema 2. Circuitos integrados digitales
Problema. 2.9
Se desea realizar una instalación de seguridad para un aula-laboratorio. Se dispone para ello de tres
elementos sensores y un actuador:
Sensores:
• Detector de presencia (DP). Sensor PIR que actúa sobre un contacto que está normalmente cerrado y al
detectar la presencia de un ser vivo se abre.
• Detector de apertura de puerta (AP). Contacto magnético que activa un interruptor. Si la puerta está
cerrada el interruptor está cerrado. Si la puerta está abierta el interruptor está abierto.
• Detector de día/noche (DN). Se utiliza una LDR para detectar si es de día (RLDR=1KΩ) o de noche
(RLDR=50KΩ).
Actuador:
• Sirena eléctrica (S) de 12V, 3W.
Para la realización del circuito electrónico se utilizarán puertas NAND de dos entradas 74LS00 de la
familia TTL cuyas características se adjuntan.
Se pide:
a) Diseñar los circuitos de adaptación del sensor PIR para que en presencia de gente proporcione un
“1” lógico y del detector magnético para que con la puerta cerrada proporcione un “0” lógico.
b) Diseñar el circuito de adaptación de la LDR para que durante el día suministre un “0” lógico y
durante la noche un “1” lógico.
c) Diseñar el circuito de excitación de la sirena desde una puerta lógica de forma que cuando esta
proporcione un “1” lógico la sirena se active. Utilizar, si es necesario, transistores bipolares de
media potencia con βsat = 50, VBEsat =1V, ICmáx=1A, VCEmáx = 100V.
d) Diseñar el circuito lógico para el funcionamiento descrito y dibujar el esquema completo.
29
Problemas de electrónica digital
Solución
a. Sensores de Presencia
b) Sensor Día-Noche
∙ ∙( )
> 2 , con ello → 3 < = 75
Se elige un valor intermedio entre los dos extremos. Ej: R1=39K
30
Tema 2. Circuitos integrados digitales
( , )
Con ello < = 0,34
RB < 340Ω
DN AP DP S
DN: Día =0 / Noche=1
0 0 0 0
AP: Puerta (abierta 1 / cerrada=0)
0 0 1 0
0 1 0 1 DP: Gente=1 / Nadie=0
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 1
AP-DP
DN 00 01 11 10
0 1
1 1 1
31
Problemas de electrónica digital
Problema 2.10
Se desea controlar una estación de riego compuesta por un depósito de agua y una bomba de impulsión
(B). El circuito a diseñar deberá activar la bomba (señal B) con un nivel lógico alto cuando se necesite
realizar el riego. Con el fin de controlar el proceso, se incluyen los siguientes elementos:
1.- Detector de nivel del depósito (D). Proporciona un nivel lógico bajo (L) si el depósito de agua está vacío
y un nivel alto (H) si el depósito está lleno.
2.- Sensor de humedad (H). Para controlar el estado del suelo se dispone de un sensor de humedad que
proporciona un nivel lógico alto si el campo necesita ser regado y un nivel bajo (L) si el terreno está
húmedo.
3.- Interruptor de estación (E). El interruptor se coloca en una de sus dos posiciones en función de la
estación del año (interruptor abierto = primavera-verano = “1” lógico; interruptor cerrado = otoño
invierno = ”0” lógico).
4.- Detector de día/noche (N). Se utiliza una LDR que presenta una resistencia en oscuridad > 10 KΩ y de
día < 1 kΩ. Proporciona un “1” lógico durante el día y un “0” lógico durante la noche.
La bomba B se deberá activar si el suelo está seco y hay agua en el depósito (con el fin de evitar que
se averíe la bomba al funcionar en vacío). En las estaciones cálidas solo se podrá regar de noche, mientras
que en el resto de las estaciones se podrá hacer en cualquier momento.
Se pide:
a) Obtener el circuito lógico para la activación de la bomba (utilizar puertas NAND de dos entradas).
b) Diseñar las conexiones del interruptor de estación para que cumpla las especificaciones dadas.
c) Diseñar el circuito de la LDR para que cumpla las especificaciones dadas.
d) Si la bomba utilizada es de 24V, 1A, Diseñar el circuito de activación necesario utilizando un
transistor bipolar de propósito general con βsat = 50 y VBEsat = 1 V.
Utilizar las puertas NAND de la familia 74HCT cuyas principales características eléctricas (T=25ºC) son:
Entrada: VIHmin= 2V; VILmax=2V, IImax=±0,1µA.
Salida: VOHmin=3,98V; VOLmax=0,26V, IOmax=±25mA
32
Tema 2. Circuitos integrados digitales
Solución
a)
33
Problemas de electrónica digital
d)
La bomba necesita 1A. por tanto la corriente de colector
será de 1A. Para saturar el transistor se necesita una
corriente de base mínima de:
IC 1A
IB ≥ ; IB ≥ ; IB ≥ 20mA
βsat 50
VB − VBEsat
VB = R3·I B + VBEsat → R3 ≤
IB
3,84 − 1
R3 ≤ = 147 Ω
20
Se puede tomar R3=100Ω
34
Tema 2. Circuitos integrados digitales
Problema 2.11
Diseñar un circuito electrónico digital para el control automático de la dirección de un coche de juguete
que debe circular siguiendo una pista guía negra entre las ruedas.
Vista Frontal:
El coche posee un interruptor (P) para la puesta en marcha (P=1) y pararlo (P=0).
Para lograr el control, el vehículo dispone de ruedas de tracción independiente, izquierda y derecha
(RI y RD) activadas por sendos motores, y de dos sensores ópticos junto a las ruedas formados por:
fotocélula de reflexión y de LDR (SI y SD).
Una vez puesto en marcha el vehículo, avanza siguiendo la guía con tracción en las dos ruedas, pero si
alguno de los 2 sensores detecta la pista negra actúa frenando su rueda correspondiente. Cuando el sensor
deje de detectar la pista negra volverá a poner en marcha la rueda correspondiente. En caso de que los dos
sensores detecten la pista negra el coche debe pararse. Para realizar el circuito digital se va a utilizar
circuitos integrados de la subfamilia HCT.
Determinar:
a) Circuito de acoplamiento del interruptor al circuito digital. Parado (P=0), marcha (P=1).
b) Circuito de acoplamiento de las fotocélulas al circuito digital por medio de LDR. La resistencia de la LDR
cuando el sensor detecta la zona blanca es RLDR=400 Ω y cuando no la detecta (toca la línea negra) es
RLDR=5 KΩ.
c) Circuito de control de los motores del coche de juguete MI y MD (características motores: I=400mA,
V=12V. Transistor: βsat=40, VBE=1).
d) Circuito lógico digital para el control de los motores de las ruedas (MI y MD) a partir de los sensores SI y
SD y del interruptor P.
35
Problemas de electrónica digital
Solución
a) Circuito de acoplamiento del interruptor al circuito digital.
Parado (P=0), marcha (P=1)
Interruptor arriba. Resistencia abajo.
Ej. R1=100KΩ
VI = Vcc⋅LDR/(R2+ LDR)
R2 = LDR⋅(Vcc-VI)/VI
∙( ) ∙( , )
Luz: 2 < = = 2736
,
∙( ) ∙( )
Oscuridad: 2 > = = 4500
− 3,98 − 1
< = ≅ 300
10
36
Tema 2. Circuitos integrados digitales
d) Circuito lógico digital para el control de los motores de las ruedas (MI y MD) a partir de los sensores SI y SD
y del interruptor P.
P SI SD MI MD
0 0 0 0 0
0 0 1 0 0
0 1 0 0 0 = ∙ = ∙ = + = +
0 1 1 0 0
1 0 0 1 1 = ∙ = ∙ = + = +
1 0 1 1 0
1 1 0 0 1
1 1 1 0 0
Problema 2.12
Se desea construir un contador de vueltas para un circuito de coches de carreras de juguete. Para ello se
dispone en cada pista de una barrera fotoeléctrica formada por una bombillita de tensión 5V y corriente
100mA y una LDR con Rluz = 150Ω y Rosc =12KΩ. El sistema se basa en el contador ascendente-descendente
(U/D) de la figura. Su funcionamiento es el siguiente:
El usuario, mediante cuatro microinterruptores selecciona el número de vueltas totales de la carrera (hasta
un máximo de 9). Tras pulsar el botón de inicio, el contador carga el número total de vueltas a realizar, lo
muestra en un visualizador de 7 segmentos y está preparado para funcionar: cada vez que se cruce la
barrera fotoeléctrica, el contador desciende una unidad, mostrando en el visualizador las vueltas que faltan
para finalizar la carrera. Cuando se llegue a la última vuelta, (en el visualizador aparece el número 0) y se
activa una lámpara indicadora (5V, 100mA). Al cruzar META, el contador vuelve a cargarse con el número
total de vueltas y se desactiva la lámpara indicadora de última vuelta.
Utilizar circuitos integrados tecnología TTL
Se pide:
37
Problemas de electrónica digital
b) Diseñar los circuitos de los microinterruptores y botón de INICIO para el funcionamiento descrito.
(SUB2 y Bloque A).
c) Diseñar el circuito de activación de la lámpara indicadora de última vuelta. Utilizar, si es necesario,
transistores bipolares de características generales
(hFEmín = 40 (βsat), ICmáx = 1 A, VCEmáx= 40 V, VBEmáx = 1 V) (SUB3).
d) Si se desea que durante la última vuelta la lámpara parpadee, en lugar de estar permanentemente
encendida, ¿Cuál sería el circuito necesario para el SUB3? Dibuja, al menos, los bloques necesarios.
Datasheet de MOTOROLA
38
Tema 2. Circuitos integrados digitales
Solución
. Circuito total de control
b.- Botón de inicio que actúa sobre PL. Además, cuando el contador finaliza (llega a cero) al siguiente pulso de
reloj se pone a “9”, debiendo ser detectado este caso para iniciar la cuenta desde el valor preestablecido en los
microinterruptores. (Puertas U6:A y U7:A del esquema). El cálculo de R8 debe de contemplar en la entrada de la
puerta un nivel H, por tanto:
Vcc-VINIT = R8·IIH ; con VINIT>VIHmin se obtiene R8< (Vcc- VIHmin)/ IIH; R8<150KΩ. Se elige R8=10KΩ
En el caso de los microinterruptores, cuando están abiertos proporcionan un nivel lógico bajo. Para ello, las
resistencias R3 a R6, deben cumplir la condición:
R3·IIL < VILmáx, siendo IIL = -0,4mA y VILmáx=0,8V, se obtiene: R3<2KΩ. Se eligen R3 a R6 = 1KΩ
39
Problemas de electrónica digital
c.- El circuito lógico debe cumplir que cuando todas las salidas del contador estén a “0”, se active el transistor
(se activará a nivel “H”).
La salida a nivel alto no es suficiente para activar la lamparita (100mA). Por ello, se usa un transistor en la
configuración del esquema. Será necesario diseñar la resistencia de base R7 con las siguientes condiciones:
IB > IBsat ; (VOHmin- VBEsat)/R2 > IBsat ; o sea : R2 < (VOHmin- VBEsat) /IBsat ; R7 < 0.68KΩ Se elige R2 = 0.47K
d) Este apartado permite varias soluciones. En todas ellas es necesario utilizar una señal nueva de reloj de baja
frecuencia para el parpadeo. En el esquema de la figura anterior se propone una solución utilizando un biestable.
Se puede utilizar, asimismo, una puerta AND de dos entradas, una para el nuevo reloj y otra para la señal de fin
de cuenta (detección del “0”), atacando su salida a la resistencia de base del transistor.
40
TEMA 3
ASTABLE Y MONOESTABLE
Este breve tema sirve de transición entre la electrónica digital combinacional y la secuencial. Se
realiza un estudio de los circuitos astables (generador de señal cuadrada) y monoestable (temporizador). Se
toma como base el C.I. 555 donde se aplican los circuitos y expresiones propuestos por el fabricante.
La bibliografía sobre este tema es relativamente escasa, algunos ejemplos:
• Floyd, Thomas L. (2016) Fundamentos de Sistemas Digitales. 11º ed. Ed. Pearson Educación. Tema: 7
• Hermosa, Antonio (2010). Electrónica Digital Fundamental y Programable. 4ª ed. Marcombo. Apén. 2.
• Gil Sánchez, Luis (1999). Introducción a la Electrónica Digital. Editorial Universitat Politècnica de
València Tema: 2
a) 1s
b) 10 s
c) 100 ms
d) 10 ms
41
Problemas de electrónica digital
a) Monoestable
b) Biestable
c) Astable
d) No tienen aplicaciones comunes Fuente: LM555 de
Texas Instruments, 2015
6. El tiempo de temporización de un circuito monoestable con C.I. 555 viene determinado por:
a) Generador de señal
b) Temporizador
c) Tacómetro
d) Memoria de un bit
42
Tema 3. Astable y monoestable
1.- c) Circuito oscilador utilizando una puerta inversora con histéresis y R y C externo.
2.- d) C=10 nF equivale a C=0,01µF, luego se toma la segunda línea vertical y se busca el cruce con la línea de
R=1MΩ.
3-. d) CT% = tH/ (tH + tL) = 20 ms/ (20 ms + 60 ms) x100 = 25%.
4.- a) El C.I. 74HC4538 tiene aplicación específica como monoestable y el 555 tiene varias aplicaciones, entre ellas
también monoestable.
5.- c) Los circuitos astable y biestable no necesitan señal de disparo.
6.- d) El funcionamiento de basa en la carga y descarga de un condensador a través de una resistencia externa.
7.- b) Una vez realizado el disparo al monoestable se mantiene la señal de salida durante el tiempo determinado por el
valore de C y de R.
8.- d) El punto de coordenada C=1μF y f=1Hz pasa cerca de la línea: RA+2RB=1MΩ. El resto de opciones no
coincide la suma de las resistencias.
43
Problemas de electrónica digital
Problema 3.1
Se desea generar una señale de reloj de frecuencia 100Hz y con
un ciclo de trabajo (duty) del 75%. Para ello, utilizaremos el
circuito 555 configurado como astable. En el laboratorio solo se
dispone de condensadores de C=100μF.
Hallar el valor de R1 y R2 del circuito.
Solución
Problema 3.2
Se pretende diseñar un circuito que, mediante un pulsador P, controle la temporización de una lámpara de
12V y 12W de forma que justo en el momento de pulsar P se encienda durante 7 segundos. No se
establecerá otra temporización hasta que no acabe la que esté en curso. Además, el encendido de la
lámpara puede habilitarse o deshabilitarse mediante un interruptor S. Se pide:
44
Tema 3. Astable y monoestable
Solución
Al pulsar P se aplica una señal de nivel bajo luego el circuito monoestable debe activarse por flanco de
bajada. El enunciado indica que debe ser NO redisparable. Las conexiones vienen determinadas en hojas
características del dispositivo:
a)
b)
R2 = (3,98-1)/20mA = 149Ω
45
TEMA 4
BIESTABLES
En este tema se estudian los dispositivos elementales de la electrónica digital secuencial y que
servirán de base para los siguientes temas. Se analizan los dispositivos asíncronos (latch) R-S y D y los
síncronos (biestables) J-K y D, y se pone énfasis en la resolución de cronogramas.
Al ser el tema base de los circuitos secuenciales la bibliografía es muy amplia. Ejemplos:
• Floyd, Thomas L. (2016) Fundamentos de Sistemas Digitales. 11º ed. Ed. Pearson Educación. Tema: 7
• Tocci, Ronald J. y otros. (2016). Sistemas Digitales: Principios y Aplicaciones. 10ª ed. Pearson. Temas 8.
• Mandado, Enrique; Martín, Jose Luis. Sistemas Electrónicos Digitales”. 10º ed. Marcombo. Tema: 4
• Roth, Charles H. (2004). Fundamentos de Diseño Lógico. 5ª ed. Paraninfo. Tema: 11.
• Hermosa, Antonio (2010). Electrónica Digital Fundamental y Programable. 4ª ed. Marcombo. Tema: 7.
• Toledo, José Fco.; Esteve, Raúl (2005). Fundamentos de Electrónica Digital. Editorial Universitat
Politècnica de València-. Tema: 4.
• Gil Sánchez, Luis (1999). Introducción a la Electrónica Digital. Editorial Universitat Politècnica de
València. Tema: 7
2. ¿Cuál es valor de la salida Q cuando las entradas se encuentran como la figura y se aplica un pulso de
reloj?
a) Indeterminado
b) 0
c) 1
d) Depende del estado previo
47
Problemas de electrónica digital
3. ¿Cuál de los siguientes cronogramas del biestable J-K con Clear activo a nivel bajo y reloj activo por
flanco de bajada es correcto?
a) b)
Clear Clear
CLK CLK
J J
K K
Q Q
c)
d)
Clear
Clear
CLK
CLK
J J
K K
Q Q
4. de los siguientes cronogramas de la salida Q de un biestable J-K activo por flanco de bajada con
entradas asíncronas Clear y Set es correcto?
A) B)
C) D)
48
Tema 4. Biestables
5. ¿Cuál de los siguientes cronogramas de la salida Q de un biestable J-K activo por flanco de bajada con
entradas asíncronas Clear y Set es correcto?
A) B)
C) D)
6. ¿Cuál de los cronogramas de la salida Q del biestable D activo por flanco de subida con entrada
asíncrona Clear es correcto?
A) B)
C) D)
49
Problemas de electrónica digital
7. ¿Qué tipo de biestable tiene como aplicación inmediata la división por dos de la frecuencia de la señal
de reloj?
a) R-S b) T c) latch D d) D
8. Para realizar un circuito de Autoreset (Clear) en el biestable de la figura por medio de un circuito R-C, el
condensador (descargado) se debe conectar:
50
Tema 4. Biestables
Problema 4.1
Al biestable de la figura se le aplica las señales que se muestran en el cronograma. Dibujar las trazas de la
salida Q
Solución
Reloj activo por flanco de bajada y Reset activo por nivel bajo. Inicialmente el Reset está activo, luego la salida
Q=0. En el flanco de bajada del pulso nº 2 J=K=0, luego Q permanece estable (Q=0). En el flanco de bajada del
pulso nº 3 J=K=1, luego Q voltea (Q=1). En el flanco de bajada del pulso nº 4 J=K=1, luego Q voltea (Q=0).
51
Problemas de electrónica digital
Problema 4.2
Al biestable de la figura se le aplica las señales que se muestran en el cronograma. Dibujar las trazas de la
salida Q.
Solución
Biestable con reloj activo por flanco de bajada y Reset y Set asíncronos activos por nivel bajo. Inicialmente el
Reset está activo luego la salida Q=0. En los pulsos 1, 2 y 3 tienen el control del biestable las entradas síncronas
J y K según la tabla de funcionamiento. Cuando la señal de Set=0 la salida Q=1 de forma asíncrona.
52
Tema 4. Biestables
Problema 4.3
Completa el cronograma correspondiente al circuito formado por biestables JK y D.
Cronograma:
Solución
Hay que fijarse que en este caso el biestable D es activo por flanco de bajada mientras que el biestable JK lo
es por flanco de subida. Además la señal D coincide con la señal J del biestable JK y la salida del biestable
D (Qo) coincide con la señal K del biestable JK. Como no hay señales asíncronas el control del biestable lo
tienen las entradas síncronas J-K y D según la tabla de funcionamiento.
53
Problemas de electrónica digital
Problema 4.4
Dibujar las trazas de la salida Q1 y Q2, justificando cada una de sus variaciones.
Solución
Hay que fijarse que el biestable D es activo por flanco de SUBIDA mientras que el biestable JK lo es por
flanco de BAJADA. Además la salida del biestable D (Q1) coincide con la señal K del biestable JK.
Inicialmente Reset=0 entonces Q1=Q2=0. A partir del pulso nº 2 el control del biestable lo tienen las
entradas síncronas J-K y D según la tabla de funcionamiento. En el pulso nº 7 Reset vuelve a nivel bajo,
luego Q1=Q2=0.
54
TEMA 5
CONTADORES
En este tema se estudian los contadores electrónicos digitales como una aplicación básica de los
biestables. Se analiza el desarrollo de contadores asíncronos realizados con biestables independientes y los
contadores síncronos utilizando dispositivos comerciales de contadores.
Es un tema común en los libros de electrónica digital general. Ejemplos:
• Floyd, Thomas L. (2016) Fundamentos de Sistemas Digitales. 11º ed. Pearson Educación. Tema: 8.
• Tocci, Ronald J. y otros. (2016) Sistemas Digitales: Principios y Aplicaciones. 10ª ed. Pearson. Tema: 7.
• Roth, Charles H. (2004) Fundamentos de Diseño Lógico. 5ª ed. Paraninfo. Tema: 12
• Mandado, Enrique; Martín, José Luis. Sistemas Electrónicos Digitales. 10º ed. Marcombo. Tema: 4.
• Mano, M. Morris (2016) Diseño Digital. 3ª ed Ed. Pearson. Tema: 6.
• Roth, Charles H. (2004) Fundamentos de Diseño Lógico. 5ª ed. Ed. Paraninfo. Tema: 12.
• Hermosa, Antonio (2010). Electrónica Digital Fundamental y Programable. 4ª ed. Marcombo. Tema: 7.
• Toledo, José Fco.; Esteve, Raúl (2005). Fundamentos de Electrónica Digital. Editorial Universitat
Politècnica de València.. Tema: 4.
• Gil Sánchez, Luis (1999). Introducción a la Electrónica Digital. Editorial Universitat Politècnica de
València- Tema: 9
3. En un contador asíncrono ¿Cuáles son los valores de transición entre los números 4 (0100) y 5 (0101)?
a) Ninguno porque pasa de un número par a impar.
b) Pasa por 6 (0110).
55
Problemas de electrónica digital
4. Con los componentes de la figura (contador bidireccional BCD y puerta NAND) se desea realizar un
contador de módulo 4 a 8 (ambos inclusive), ¿dónde irán conectadas las entradas de la puerta NAND?
a) A las salidas Q3 y Q1
b) A las salidas Q3 y Q0
c) A la salida Q3
d) No hace falta ninguna puerta lógica
5. Con el mismo contador de la pregunta anterior, ¿qué niveles lógico se conectarán a las entradas
D[3..0]?
56
Tema 5. Contadores
a) 12
b) 9
c) 11
d) 15
8. Se conecta tres contadores decimales BCD (74190) de la forma que indica la figura, la frecuencia de
reloj del contador de la derecha es 100 Hz ¿Cuál debe ser la frecuencia del reloj externo (CLOCK)?
a) 1 Hz
b) 100 Hz
c) 1 KHz
d) 10 KHz
57
Problemas de electrónica digital
Problema 5.1
Realizar las conexiones necesarias en el contador BCD de la figura (74160) cuya tabla de funcionamiento se
facilita para que realice la secuencia de conteo: 3, 4, 5, 6 y 7 de forma cíclica. Utilizar, si es necesario, las
puertas lógicas que se consideren oportunas.
Solución
Se desea obtener un contador de 3 a 7. Como la carga en paralelo es síncrona habrá que detectar el
número 7 y entonces realizar una carga 3 (0011) en las entradas de paralelo. Hará falta la conexión de una
puerta NOR de tres entradas.
58
Tema 5. Contadores
Problema 5.2
Con el C.I. contador bidireccional BCD 74190 (y otros dispositivos necesarios) realizar un contador de
módulo 10 que realice la cuenta de forma alternativa ascendente y descendente de forma automática. Es
decir que cuando llegue la cuenta al 9, al siguiente pulso de reloj, cuente hacia atrás hasta llegar a cero, y
en este momento vuelva a cambiar de sentido volviendo a ascender la cuenta hasta 9, y así sucesivamente.
Solución
a) Para indicar el sentido de la cuenta habrá que actuar sobre la entrada D/U del circuito contador, de
forma que cuando D/U= 0 asciende y cuando D/U= 1 desciende.
b) Para saber que ha llegado a fin de cuenta habrá que utilizar la salida RC0 (RC en el símbolo lógico) del
contador, que genera un nivel bajo (L) cuando llega a 9 (ascendente) o a 0 (descendente). En otros
casos esta salida es nivel alto (H).
c) Para cambiar el valor de la señal D/U y dejarla fija cuando cambiar el valor de RCO hará falta un
elemento de memoria de 1 bit, que se puede lograr con un biestable de tipo T con la entrada a nivel alto,
donde la salida RCO se conecta a la entrada de reloj del biestable (activo por flanco de bajada) y la
salida Q se conecta a la entrada D/U del contador. Ver esquema (CE en el símbolo lógico corresponde
a E en el circuito).
59
Problemas de electrónica digital
Problema 5.3
Obtener un contador en código Gray de tres bits (G2, G1 y G0) utilizando un circuito contador binario de
tres bits (Q2, Q1 y Q0).
Solución
Hay que determinar el circuito combinacional de salida que relaciona las entradas Q2, Q1 y Q0 procedentes del
contador con las salidas en código Gray (G2, G1 y G0)
Q2 Q1 Q0 G2 G1 G0 Q2 00 01 11 10
Q1
0 0 0 0 0 0 Q0
0 0 0 1 1
0 0 1 0 0 1 1 0 0 1 1
0 1 0 0 1 1 G2=Q2
0 1 1 0 1 0
Q2 Q1 00 01 11 10
1 0 0 1 1 0 Q0
0 0 1 0 1
1 0 1 1 1 1 1 0 1 0 1
1 1 0 1 0 1 1= 2∙ 1+ 2∙ 1= 2⊕ 1
1 1 1 1 0 0
Q2 00 01 11 10
Q1
Q0
0 0 1 1 0
1 1 0 0 1
0 =∙ 1 ∙ 0 + 1 ∙ 0 = 1⨁ 0
60
Tema 5. Contadores
Problema 5.4
Diseñar el circuito de control de un semáforo cuya secuencia de encendido “1” y apagado “0” de las luces
roja, amarilla y verde (R, A, V) se indican en la siguiente tabla de verdad.
El circuito estará formado por un contador binario de 4 bits (Q3, Q2, Q1,
Q0) y puertas lógicas que actúen como decodificador de las tres luces (R,
A, V) a partir de las salidas del contador (Q).
Solución
R A
Q3Q2 00 01 11 10 Q3Q2 00 01 11 10
Q1Q0 Q1Q0
00 0 0 1 0 00 0 0 0 1
01 0 0 1 0 01 0 0 0 1
11 0 0 1 1 11 0 1 0 0
10 0 0 1 1 10 0 1 0 0
= 3∙ 2+ 3∙ 1 = 3∙ 2∙ 1+ 3∙ 2∙ 1
: = 3 ∙ 2 + 3 ∙ 1
Circuito completo:
61
Problemas de electrónica digital
Problema 5.5
Se desea obtener un circuito electrónico que realice el rellenado al azar de quinielas (1 X 2), pero de forma
que, la opción “1” tenga el doble de posibilidades de salir que la “X” y el “2”. Las opciones “X” y “2” deben
de tener las mismas posibilidades. El circuito se debe realizar por medio de dos métodos:
a) Utilizando el C.I. contador 74LS190 y las puertas lógicas necesarias. Completar todas las conexiones de
la siguiente figura.
Solución
= 0 = 0∙ 1 DOS= 0 ∙ 1
62
TEMA 6
REGISTROS DE
DESPLAZAMIENTO
En este se tema se introduce otra aplicación de una combinación de varios biestables. Está basado en
la aplicación de circuitos integrado de registros de desplazamiento. En muchos libros este tema está
incluido dentro de los contadores. Ejemplos bibliográficos:
• Floyd, Thomas L. (2016) Fundamentos de Sistemas Digitales. 11º ed. Ed. Pearson Educación. Tema: 9.
• Tocci, Ronald J. y otros. (2016). Sistemas Digitales: Principios y Aplicaciones. 10ª ed. Pearson Educación.
Tema: 7.
• Mandado, Enrique; Martín, Jose Luis. Sistemas Electrónicos Digitales. 10º ed. Marcombo. Tema: 4.
• Mano, M. Morris (2016). Diseño Digital. 3ª ed. Pearson. Tema: 6.
• Hermosa, Antonio (2010). Electrónica Digital Fundamental y Programable. 4ª ed. Marcombo. Tema: 7.
• Toledo, José Fco.; Esteve, Raúl (2005). Fundamentos de Electrónica Digital. Editorial Universitat
Politècnica de València. Tema: 4.
• Gil Sánchez, Luis (1999). Introducción a la Electrónica Digital. Editorial Universitat Politècnica de
València. Tema: 8
1. En el C.I. del registro de desplazamiento universal bidireccional 74LS194, cuya tabla se muestra ¿Qué
entrada tiene mayor preferencia?
a) S1
b) S0
c) CP
d) MR
63
Problemas de electrónica digital
2. En el C.I. del registro de desplazamiento del problema anterior 74194, si deseamos obtener un registro
de desplazamiento paralelo-serie con desplazamiento hacia la izquierda, habrá que:
a) n b) 2∙n c) 2n d) 2n-1
4. En el circuito del registro de desplazamiento del problema anterior (74LS194) ¿Qué conexión habrá que
realizar para obtener un contador en anillo con desplazamiento a la derecha
6. En el registro de desplazamiento paralelo – serie C.I. 74166, cuya tabla de verdad se representa. ¿Qué
entrada tiene mayor preferencia?
a) PE b) CE c) Ds d) D0-D7
7. En el mismo registro de desplazamiento de la pregunta anterior, al realizar una carga en paralelo. Las
salidas toman el valor de:
64
Tema 6. Registros de desplazamiento
1. d) Cuando la señal MR=L las salidas Q pasan a nivel bajo (L) independientemente del estado del resto
de las señales de entrada.
2. a) Primero la carga de entradas en paralelo (S1=1 y S0=1) y luego desplazamiento de la información
de las salidas hacia izquierda (S1=1 y S0=0).
3. a) Al realimentar la salida del último biestable (Q3) con la entrada serie del primero cada n pulsos de
reloj vuelve a empezar la secuencia.
4. b) Hay que realizar una realimentación entre el último biestable (Q3) y la entrada serie (DSR) para
desplazamiento a la derecha.
5. c) Permite la conversión de paralelo a serie
6. b) Cuando CE=h se produce el mantenimiento “hold” de las salidas sin importar el estado del resto de
la entradas.
7. d) La señal CP (reloj) de este dispositivo actúa por flanco de subida ( ↑).
65
Problemas de electrónica digital
PROBLEMA 6.1
Se desea implementar un convertidor paralelo-serie de 8 bits. Para ello se utilizan dos registros de
desplazamiento de 4 bits (74194) cuya tabla de funcionamiento es la siguiente:
CLK
MR
S0
S1
Salida
66
Tema 6. Registros de desplazamiento
Solución:
a) Para obtener un registro de desplazamiento de 8 bits mediante dos registros de 4 bits la salida Q3 del
primer circuito (U1) se conecta a la entrada serie por la derecha (SR) del segundo circuito (U2).
La salida serie del registro total se realizará por el pin Q3 del circuito U2
Para lograr D0,D1,D2,D3 = ‘0001’ y D0,D1,D2,D3 = ‘1001’ se conectan los pines correspondientes de
U1 y U2 a masa cuando sea el valor lógico sea 0 y Vcc cuando el valor lógico sea 1.
67
Problemas de electrónica digital
PROBLEMA 6.2
1 2 3 4 5 6 7 8 9
CLK
S0
U1:Q0
68
Tema 6. Registros de desplazamiento
Solución
a) La salida Q0 del circuito U2 está conectado a la entrada serie hacia la izquierda (SL= del circuito U1).
Luego es un registro de desplazamiento de entrada paralelo-salida serie de 8 bits con desplazamiento a
la izquierda.
c) Por U1:Q0 se producirá la secuencia 01010110 y posteriormente todo 1 porque la entrada SL del
circuito U2 está conectada a Vcc
69
TEMA 7
MÁQUINAS DE ESTADO
En este tema se desarrollan las máquinas de estados finitos para obtener cualquier sistema secuencial
síncrono. En los problemas se plantea el diseño de un circuito electrónico a través de unas especificaciones
en donde hay que obtener un diagrama de estados (de tipo Moore o Mealy) y en ocasiones también el
circuito digital que lo implementa. Para realizar esta tarea se utiliza el software educativo Boole-Deusto
(http://weblab.deusto.es/website/boole_deusto.html).
Una de las originalidades de esta publicación es la proliferación de problemas sobre diseño de
máquina de estados, que no es demasiado habitual en los libros de electrónica digital.
Bibliografía general.
• Mandado, Enrique; Martín, Jose Luis. Sistemas Electrónicos Digitales. 10º ed. Marcombo. Tema: 4
• Mano, M. Morris (2016). Diseño Digital. 3ª ed. Pearson. Tema: 5.
• Roth, Charles H. (2004). Fundamentos de Diseño Lógico. 5ª ed. Paraninfo. Temas: 13, 14, 15 y 16.
• Hermosa, Antonio (2010). Electrónica Digital Fundamental y Programable. 4ª ed. Marcombo. Temas: 7
y 8.
• Toledo, José Fco.; Esteve, Raúl (2005). Fundamentos de Electrónica Digital. Editorial Universitat
Politècnica de València.. Tema: 5.
• Gil Sánchez, Luis (1999). Introducción a la Electrónica Digital. Editorial Universitat Politècnica de
València. Tema: 10
PREGUNTAS DE TEST
a) 3 b) 4 c) 5 d) 11
71
Problemas de electrónica digital
3. Según la tabla de excitación del biestable J-K, si salida Q = 1 y se desea que al siguiente pulso de reloj
permanezca Q = 1 es necesario que:
a) J=0 y K=0
b) J=1 y K=0
c) J indiferente y K=0
d) No se puede lograr esta opción
4. Una máquina de estados posee 3 entradas, ¿Cuántas “flechas” saldrán de cada estado del diagrama?
a) 3 b) 4 c) 6 d) 8
72
Tema 7. Máquinas de estado
9. ¿Cuántos biestables son necesarios para implementar el diagrama de estados de la pregunta anterior?
a) 1 b) 2 c) 3 d) 4
10. ¿Qué error se ha cometido en el diagrama de estados de la figura que implementa una máquina de
Mealy formada por tres estados con una entrada y una salida
a) Falta el estado Q2
b) Hay una flecha que tiene el mismo
estado origen y destino
c) Desde el estado Q3 falta una flecha
d) Desde el estado Q1 falta una flecha
73
Problemas de electrónica digital
Solución
Utilizando el programa Boole-Deusto se obtienen las siguientes expresiones simplificadas del circuito
Posee cuatro estados por lo que se necesita dos biestables (Q1 y Q0).
Utilizando biestables JK: Salidas:
J0=(P) (no depende tipo biestable)
K0=(~q1)+(~P)
J1=(P*q0) A=(q1*q0)
K1=(~P)+(q0) B=(q1*~q0)
C=(~q1*q0)
Utilizando biestables D:
D0=(P*~q0)+(P*q1)
D1=(P*q1*~q0)+(P*~q1*q0)
El Circuito digital utilizando biestables J-K resulta más simple que si se utiliza biestables de tipo D.
74
Tema 7. Máquinas de estado
Problema 7.2
Diseñar un sistema secuencial síncrono para controlar un indicador luminoso intermitente con dos
lamparitas (L1 y L0) que pueden funcionar de dos maneras según una entrada de control ( C).
Si C = 0 el encendido y apagado de las luces es simultaneo según el diagrama
Si C = 1 el encendido y apagado de las luces es alternativo según el diagrama
Una vez empezado el un ciclo de periodo T debe acabarse, aunque se cambie el valor de la entrada C
L1
C=0 t
L0
CLK
L1 t
T
C L0
L1
t
C=1
L0
t
T
Solución
• Se parte de un estado inicial (E0) en que ambos ciclos tienes las dos salidas a nivel bajo.
• Cuando C=0 el ciclo posee el nivel alto una duración doble que el nivel bajo por que se necesitan dos
estados (E3 y E4) con las mismas salidas.
J0=(~q2*~q1) D0=(~q2*~q1*~q0)
K0=(1) D1=(~C*~q2*~q1)+(~q1*q0)
J1=(~C*~q2)+(q0) D2=(q1*q0)
K1=(1) Salidas
J2=(q1*q0) L0=(q1)+(q2)
K2=(1) L1=(q0)+(q2)
75
Problemas de electrónica digital
Problema 7.3
Obtener un generador de señal cuadrada en donde la relación entre el tiempo a nivel alto (H) y a nivel bajo
(L) sea programable por medio de una señal de control (C).
Las dos opciones de la forma de señal de salida (SAL) queda indicada en el siguiente diagrama de tiempos:
CLK
C
SAL
CIRCUITO
A C=0
DISEÑAR
CLK SAL
C=1
Solo se permite el cambio de tipo de ciclo cuando la salida esté a nivel bajo (L). Utilizar máquina de Moore.
Utilizar el circuito con biestables J-K
76
Tema 7. Máquinas de estado
Utilizando el programa Boole-Deusto se obtienen las siguientes expresiones simplificadas del circuito
Ecuaciones: (sale más sencillo con biestables JK)
J0=C·q1’
K0=1
J1=C’+q0
K1=1
SAL=q0+q1
Problema 7.4
Diseñar un generador de señal cuadrada (SAL) para el control PWM de un motor, en donde la relación
entre el tiempo en nivel alto (H) y el nivel bajo (L) es programable por medio de dos entradas de control C1
y C0, según el siguiente diagrama de tiempos (4 opciones):
CLK
C1 00
SAL
C0 CIRCUITO 01
A
DISEÑAR
CLK C1,C0 10
11
Solo se permite el cambio de tipo de ciclo cuando la salida esté a nivel bajo (L).
Utilizar máquina de Moore. Utilizar el circuito con biestables J-K
El estado inicial (E0) es común para los cuatro ciclos porque en todos ellos la salida está a nivel bajo.
Según la combinación de entradas el sistema entra en un ciclo que no sale hasta que vuelve al estado inicial
(combinación XX9
77
Problemas de electrónica digital
Observando el diagrama anterior se comprueba que los estados E1, E3 y E6 son equivalentes porque tienen
la misma salida (1) y destino común (E0) para todas combinaciones de entradas, luego se puede reducir a
un solo estado que llamaremos E1.
A su vez, los estados E2 y E5 también son equivalentes entre sí porque tienen la misma salida (1) y el mismo
destino (porque al ser E3 y E6 equivalentes se han reducido a uno solo). Luego finalmente se obtiene un
diagrama con solo cuatro estados.
Utilizando el programa Boole-Deusto se obtienen las siguientes expresiones simplificadas del circuito
Ecuaciones:
J0=q1+C0
K0=1
J1=C1·q0’
K1=q0’
SAL=q0+q1
78
Tema 7. Máquinas de estado
Utilizando un esquema jerárquico del programa ISIS-Proteus en donde se ha incluido un subcircuito (SUB1)
en cuyo interior se encuentra el circuito de la máquina de estados. Además, se añadido un contador (74190)
donde la señal de reloj es activada por un pulsador y cuyas dos salidas de menor peso se conectan a las
entradas C1 y C0. De esta forma, a cada pulsación se cambia el ancho de pulso de la señal de salida. La
salida (SAL) se conecta a la base de un transistor que controla la conducción de un motor de 12V. De esta
forma el motor trabajo en modo de modulación de ancho de pulso (PWM) consiguiendo que su velocidad
varíe con el pulsador del contador. La frecuencia del reloj debe ser lo suficientemente alta para que el
movimiento del motor sea continuo.
Problema 7.5
Diseñar un circuito secuencial síncrono tal que al pulsar en P (P=”1”) encienda un LED con la siguiente
secuencia:
Notas:
Utilizar una señal de reloj de 1seg. de periodo.
Mantener P en “1” hasta que se encienda el LED.
79
Problemas de electrónica digital
Solución
Se obtiene una máquina de estados demasiado grande para realizar una tarea muy sencilla (solo tiene una
entrada y una salida). Posee 11 estados por lo que se necesitan 4 biestables. Pero se observa que casi toda
la tarea consiste en obtener un contador de ocho, luego puede ser conveniente utilizar para esta tarea un
contador comercial y obtener un sistema mixto (máquina estados y contador)
• Cuando se pulse la entrada P se pone en marcha un circuito contador (IC) que cuenta hasta 8 (1000).
• Cuando llega a este número (8) se utiliza una salida del contador (Q3) que indica fin de cuenta y sirva
para activar una entrada del diagrama de estados que bloquee la cuenta y apague el LED.
• Otro estado vuelva a encender el LED (y permanezca el contador bloqueado).
• Vuelta al estado inicial (LED apagado).
80
Tema 7. Máquinas de estado
Nueva máquina de estados. Se añade una entrada más (inicio de cuenta) y una salida más (fin de cuenta).
Por lo tanto, posee dos entradas y dos salidas:
RESULTADOS DEL AUTÓMATA DE MOORE. Utilizando el programa Boole-Deusto se obtienen las siguientes
expresiones simplificadas del circuito
J0=(q1)+(P)
K0=(q1)+(FC) IC=(~q1*q0)
J1=(FC*q0) LED=(q0)
K1=(q0)
81
Problemas de electrónica digital
Problema 7.6
Diseñar el CIRCUITO DE CONTROL para el arranque y paro de un motor por medio de dos pulsadores (P1 y
P2) de forma que, el primer pulsador actúa como interruptor general y el segundo pone en marcha el
motor (M). El pulsador P1 servirá, además para parar el motor.
El proceso de arranque y paro será el siguiente:
- Al presionar P1 se enciende un LED rojo.
- Si después de pulsa P2, el motor (M) entra en funcionamiento, se enciende un LED verde y se apaga el LED
rojo.
- El motor se detendrá si se pulsa de nuevo P1, con lo cual también se apagará el LED verde.
Nota: Tener en cuenta que el mismo pulsador (P1) sirve para parar el motor y para volver a iniciar el
sistema de arranque.
Solución
El estado E3 hay que ponerlo para esperar a que se suelte P1. Sino al pulsar P2 en E2 se pararía
rápidamente a E3 y a E0
82
Tema 7. Máquinas de estado
1) Expresiones simplificadas
Utilizando el programa Boole-Deusto se obtienen las siguientes expresiones simplificadas del circuito
Biestable JK Biestable D
J0=(P1) D0=(~P2*~q1*q0)+(P1*~q0)+(P1*q1)
K0=(P2*~q1)+(~P1*q1) D1=(q1*~q0)+(P1*q1)+(P2*~q1*q0)
J1=(P2*q0)
K1=(~P1*q0)
LR=(~q1*q0)
LV=(q1)
M=(q1)
83
Problemas de electrónica digital
Problema 7.7
Obtener el diagrama de estados de un sistema secuencial síncrono para controlar unas luces intermitentes
con dos lamparitas (L1 y L0) que pueden funcionar de distinta forma según la posición de una entrada de
control C de la siguiente forma:
Si C=0 -> L1 y L0 parpadean de forma simultánea (periodo encendido y apagado iguales).
Si C=1 -> L1 y L0 parpadean de forma alternativa (periodo encendido y apagado iguales).
Cuando se cambie el valor de la entrada C el sistema tendrá que cambiar de forma de trabajar lo más
rápido posible.
Solución:
a) Máquina de Moore
Una entrada C y dos salidas (L1 y L0). Cuatro
estados para cada una de las cuatro combinaciones
de encendido de las luces.
Se forman dos bucles, uno para C=0 y otro para
C=1. Cada vez que C cambia de valor se cambia de
bucle
b) Máquina de Mealy. Como las salidas no van asiganadas a un estado solo son necesarios dos estados
formando siempre un bucle entre ello pero en función del valor de la entrada va cambiando el valor de
las salidas.
84
Tema 7. Máquinas de estado
c) Máquina de Moore. De forma similar al apartado a), la máquina tiene cuatro estados para cada una de
las cuatro combinaciones de salida. Pero ahora tiene dos entradas por lo que hay cuatro combinaciones
de entrada.
En caso de C1=C0=0 la máquina se bloquea en estado E0 (salidas 00). En caso de C1=C0=1 la
maquina se bloquea en en el estado E3 (salidas 11).
De cada estado salen cuatro flechas para cada una de la combinaciones de entradas.
Máquina de Mealy:
De forma similar al apartado b) solo son necesarios dos estados. Ahora se forma un bucle cerrado con luces
encendidas fijas (11) y otro para luces apagadas fijas (00)
85
Problemas de electrónica digital
Problema 7.8
Se desea obtener un circuito electrónico síncrono para activar tres lámparas (A, B, y C) de manera que solo
una de ellas esté encendida al mismo tiempo y el encendido varíe en forma de vaivén, es decir siguiendo la
secuencia: 100 -> 010 -> 001 -> 010 -> 100 -> 010 etc. (contador en “anillo” alternativo). Dos casos:
a) El tiempo de encendido es igual para las tres lámparas.
b) El circuito posee otra entrada de control de tiempo (T) de manera que:
T = 0 el tiempo encendido de la lámpara A y C es el doble que la de B
T = 1 el tiempo de encendido de las tres lámparas es el mismo.
Obtener el diagrama de estados de una máquina de Moore que realice la aplicación descrita. Determinar el
número de estados mínimos y número de biestables necesarios.
Solución.
• Hay que tener presente que debe haber dos estados con las salidas 010, uno para cada sentido de la
secuencia, luego hace falta cuatro estados.
• La máquina de estados no tiene entradas, la secuencia es fija
B)
• Máquina de estado con una entradas (T) y tres salidas (A,B,C).
• Cuando T=0 la máquina pasa por dos estados con la misma combinación de salidas (100 y 001) y
cuando T=1 solo por un estado con estas combinaciones de salida. En ambos casos, son
necesarios dos estados con la combinación 010, uno para la ida y otro para la vuelta.
86
Tema 7. Máquinas de estado
Problema 7.9
Un sistema secuencial síncrono está formado por una entrada de datos en serie (X), una entrada de
reloj que permite la entrada de datos y unas salidas. Se desea obtener la suma de los dos últimos bits
que han entrado por el termina de entrada de datos (X) a cada pulso de la entrada de reloj (CLK).
Realizar el diagrama de estados del sistema secuencial síncrono
b) Modificar el diagrama para que el valor de la salida sea la suma del bit presente en X más el anterior.
Solución
Máquina de Moore
Como el número máximo es dos necesitamos dos salidas. Máquina de estados con una entrada (X) y dos salida:
SAL1 y SAL0
Mealy. Es la suma del número anterior con el actual en X. Solo se precisan dos estados
87
Problemas de electrónica digital
Problema 7.10
Mediante el circuito de la figura se pretende controlar un semáforo. Se utiliza para ello:
Una señal de reloj de 1 segundo.
Un contador síncrono decimal (BCD) 74LS191.
Un circuito secuencial a diseñar.
El circuito secuencial realizará el control de cada uno de los estados del semáforo. La secuencia cíclica y la
temporización de cada uno de los colores Rojo (R), Amarillo (A) y Verde (V) son las siguientes:
15 3
P0 Q0 R
1 P1 Q1 2
10 6 FC
P2 Q2 A
9 P3 Q3 7
CIRCUITO V
5 U/D RC 13
SECUENCIAL
4 CE TC 12
SEÑAL DE PL CE
14 CP PL 11
RELOJ DE
1 SEGUNDO
74LS191
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
CP
FC
PL
b) Implementar el diagrama de estados MOORE del circuito secuencial. Para las salidas utiliza el
mismo orden que el descrito en la tabla anterior, es decir: R, A, V y PL.
88
Tema 7. Máquinas de estado
Solución
a)
La señal FC (fin de cuenta) se activa a nivel alto cuando Q3=1, es decir en la cuenta del número 8.
La señal PL (Parallel Load) se activa a nivel bajo (puerta NAND) cuando Q3=1 y Q0=0, es decir en la
cuenta número 9. Esta señal provocará una carga asíncrona de las entradas en paralelo que está
conectadas a masa. Esta señal equivale a un reset que hace desactivar la puerta NAND y hace que el
contador cuente hasta 9
b) Cada estado tiene cuatro salidas (Rojo, Amarillo, Verde, CE) y una entrada FC. La entrada servirá para
mantener mediante un bucle el estado activo durante 8 segundos.
La máquina de estados está formada por cuatro estados, dos para la luz verde, uno para la amarilla y
otro para la luz roja.
El estado de la luz amarilla (E2) no tiene bucle, solo está un segundo en ella y la salida CE=1 para que
el contador no cuente (HOLD)
89
Problemas de electrónica digital
Problema 7.11
Dibuja un diagrama de estados tipo MOORE de un circuito secuencial síncrono que controle el proceso de
secado de piezas industriales.
El proceso es el siguiente:
• El operario deposita la pieza dentro del radio de acción del detector A.
• Entonces, la cinta transportadora se pondrá en marcha desplazando la pieza hacia la derecha
dirigiéndose hacia la cámara climática.
• Cuando el detector B detecte la pieza (dentro de la cámara climática) la cinta se parará y se pondrá en
marcha la cámara comenzando el proceso de secado.
• Cuando el sensor de temperatura detecte la temperatura programada, la pieza estará seca y por tanto
el sistema apagará la cámara climática y la cinta transportadora se pondrá en marcha dirigiéndose de
nuevo hacia el detector A.
• Cuando el detector A detecte la pieza parará la cinta y quedará a la espera de que la pieza se retire.
• Cuando la pieza se retire el sistema se reiniciará al estado inicial.
Nota: una vez iniciado el proceso el sistema debe terminar toda la secuencia.
Cámara
Climática
Pieza a
secar Sensor Tª
Motor
Detector A Detector B
Resumen de los elementos. (Utiliza este orden para diseñar el diagrama de estado)
Entradas Salidas
DA DB ST MD MI CC
Sensor de Motor a Motor a Cámara
Detector A Detector B
Temperatura derechas izquierdas climática
• El motor puede girar a derechas o a izquierdas. Para ello se utilizan dos líneas diferentes (MD y MI).
El nivel de activación es por nivel alto.
• El nivel de activación de la cámara es por nivel alto.
• Los detectores proporcionan un nivel alto cuando la pieza entra dentro de su radio de acción.
• El sensor de temperatura proporciona un nivel alto cuando se alcanza la temperatura programada.
90
Tema 7. Máquinas de estado
Solución
Máquina de estados con tres entradas (DA, DB y CC) y tres salidas (MD, MI y
CC)
E0: estado inicial. Sistema parado. Cuando DA se activa pasa a estado siguiente.
E1: cinta transportadora en marcha hacia la derecha. Cuando detecta DB se pasa a estado siguiente.
E2: cinta parada y cámara climática en marcha. Cuando sensor temperatura detecta la temperatura
programada pasa al estado siguiente.
E3: Cámara climática apagada. Cinta transportadora en marcha hacia la izquierda. Cuando se vuelva a
activar el detector A pasa al estado Q0 (estado inicial).
Problema 7.12
Se desea realizar el control de un proceso de secado por infrarrojos de objetos que llegan a una cámara en
una cinta transportadora. El esquema del proceso se muestra en la siguiente figura:
91
Problemas de electrónica digital
El funcionamiento es el siguiente:
1.- Un operario sitúa el objeto en la posición “A”. Al pulsar el botón “P” el motor “M” (M=1) se pone en
movimiento hacia la derecha en dirección a la Cámara de secado (D/I=1).
2.- Cuando el objeto llega al final de carrera “Int”, se detiene el motor (M=0) y activa con una señal “ON” la
emisión infrarroja de la cámara. El tiempo de emisión es controlado por un reloj (anexo al sistema) que
proporciona la señal “OFF” a nivel alto al finalizar el tiempo de radiación.
3.- Una vez finalizado el secado, el motor se pone otra vez en movimiento en sentido contrario (D/I=0) para
detenerse al interrumpir la barrera fotoeléctrica “F” (F=0).
NOTA: Las situaciones del proceso no definidas en los puntos anteriores, se definirán según libre criterio del
alumno.
Se pide:
Solución
a)
E0: estado de reposo (M=0). Hasta que no se pulse el botón (P=1) no sale de este estado
E1: estado de poner en marcha el motor (M=1) para mover la cinta hacia la derecha (D/I=1), Cuando llegue al
final de carrera (INT=1) el motor se detiene y pone en marcha la cámara de infrarrojos (C=1) y el temporizador
(inic=1)
E2: estado con cámara infrarrojos funcionando. Cuando llegue fin temporización (finc=1) se detiene.
92
Tema 7. Máquinas de estado
E3: estado de poner en marcha el motor (M=1) para mover la cinta hacia la izquierda (D/I=0). Cuando el objeto
corte la barrera fotoeléctrica (F=0) el motor se detiene (M=0)
Utilizando el programa Boole-Deusto se obtiene el circuito electrónico digital formado por dos biestables de tipo
JK.
93
TEMA 8
MEMORIAS
• Floyd, Thomas L. (2016) Fundamentos de Sistemas Digitales. 11º ed. Pearson Educación. Tema: 10.
• Tocci, Ronald J. (2016). Sistemas Digitales: Principios y Aplicaciones. 10ª ed. Pearson Educación. Tema:
12.
• Mandado, Enrique; Martín, Jose Luis. Sistemas Electrónicos Digitales. 10º ed. Marcombo. Tema: 7.
• Mano, M. Morris. Diseño Digital. 3ª ed (2016) Ed. Pearson. Tema: 7.
• Gil Sánchez, Luis (1999). Introducción a la Electrónica Digital. Editorial Univsersitat Politècnica de
València. Tema: 12
1. Las memorias DRAM (RAM dinámica) son memorias volátiles que se caracterizan por:
a) DRAM
b) FLASH
c) RAM estática
d) RAM dinámica
3. Para direccionar una memoria de 16 Kbytes ¿Cuántas líneas de dirección son necesarias?
a) 8 b) 10 c) 12 d) 14
95
Problemas de electrónica digital
a) 8
b) 11
c) 2048
d) 16384
5. En el circuito de la figura, si m=10 y n=8 ¿Cuál será el tamaño de la palabra obtenida con el conjunto
de las dos memorias?
a) 8
b) 10
c) 16
d) 20
9. ¿Qué tipo de memoria se utilizan en: cámaras fotográficas, reproductores MP3/MP4 y ficheros en
discos USB?
a) Memorias Flash
b) Memoria DRAM (RAM dinámica)
c) Memoria SRAM (RAM estática)
d) Memoria ROM de máscara
96
Tema 8. Memorias
11. Cuándo una memoria no está seleccionada a través del terminal de CS (Chip Select), ¿Cómo se
encuentran sus salidas?
a) A nivel Alto.
b) A nivel Bajo.
c) En alta impedancia.
d) Indeterminadas.
97
TEMA 9
DISPOSITIVOS LÓGICOS
PROGRAMABLES (PLD)
Tema descriptivo sobre los Dispositivos Lógicos Programables (PLD) en general y de la estructura PAL
en particular. Además, en este tema también se han incorporado preguntas del lenguaje de descripción de
hardware VHDL, que se han puesto en una sección aparte porque el nivel de estudio de esta materia en la
enseñanza universitaria varía en función del curso y titulación académica
Además de la bibliografía general existe una bibliografía específica sobre este tema, tanto en la
descripción de los circuitos programables como en el lenguaje VHDL. Ejemplos:
• Floyd, Thomas L. (2016) Fundamentos de Sistemas Digitales. 11º ed. Ed. Pearson Educación. Tema: 11.
• Tocci, Ronald J. y otros. (2016). Sistemas Digitales: Principios y Aplicaciones. 10ª ed. Pearson Educación.
Tema: 10.
• Mandado, Enrique; Martín, Jose Luis. Sistemas Electrónicos Digitales. 10º ed. Marcombo. Tema: 9.
• Roth, Charles H. (2004). Fundamentos de Diseño Lógico. 5ª ed. Paraninfo. Temas: 17 y 20.
• Gil Sánchez, Luis (1999). Introducción a la Electrónica Digital. Editorial Universitat Politècnica de
València.. Tema: 13.
• Mandado, Enrique; Alvarez, Jacobo; Valdés, Mª Dolores (2002). Dispositivos Lógicos Programables y sus
aplicaciones. Ed. Thomson
• Kleitz, William (2014). Digital electronics: a practical approach with VHDL. 9th ed. Prentice Hall.
• Ashenden, Peter J. (2008). The student's guide to VHDL 2nd ed. Morgan Kaufmann cop.
99
Problemas de electrónica digital
A
a) F = A⋅ B ⋅ C
B
b) F = A ⋅ B ⋅ C + B ⋅ C
C c) F = A ⋅ B ⋅ C + A ⋅ B ⋅ C
d) F = A ⋅ B ⋅ C + A ⋅ B ⋅ C
4. ¿Cuál de los siguientes dispositivos programables posee una estructura interna más compleja?
a) FPGA
b) CPLD
c) PAL22V10
d) PAL16L8
100
Tema 9. Dispositivos lógicos programables (PLD)
a) 10 entradas máximas
b) 10 entradas mínimas
c) 10 salidas máximas
d) 10 salidas mínimas
7. Según el esquema de la PAL de la figura, ¿Cómo pueden ser las salidas, combinacionales o
secuenciales?
a) Solo combinacional.
b) Solo secuencial.
c) Cada salida se puede configurar como
secuencial o como combinacional.
d) La mitad de las salidas combinacional y la
otra mitad secuencial.
8. ¿Cómo se denomina el formato del fichero necesario para grabar las conexiones de una PAL
(GAL22V10)?
9. El siguiente esquema corresponde a una sección de una PAL. ¿Cuántas entradas tiene la puerta AND
indicada en el recuadro?
a) 1. b) 6 c) Ninguna. d) 32
101
Problemas de electrónica digital
LENGUAJE VHDL
10. ¿Cuantos terminales de entrada y salida posee en total el circuito que tiene la siguiente expresión en
VHDL?
ENTITY comparador IS
PORT (A,B: IN std_logic_vector (3 Downto 0);
igual, mayor, menor: OUT std_logic);
END comparador;
11. En VHDL, ¿cómo se denomina a la sección que describe las entradas y salidas de un dispositivo?
a) Entity
b) Architecture
c) PORT
d) Library
12. En VHDL ¿Con qué sentencia se indica que una señal actúa con un reloj activo por flanco de BAJADA?
a) Clock DOWN
b) Clock = ‘0’
c) Clock’EVENT AND Clock=’1’
d) Clock’EVENT AND Clock=’0’
13. ¿Cuantos terminales de entrada y de salida posee en total el circuito que tiene la siguiente expresión
en VHDL?
a) Una entradas y dos salida
port b) Tres entradas y una salida
(w: in std_logic_vector (3 downto 0);
y: out std_logic_vector (1 downto 0); c) Tres entradas y dos salida
z: out std_logic); d) Cuatro entradas y tres salidas
14. ¿Qué valores puede tomar cada entrada y salida del programa VHDL de la pregunta anterior
(std_logic)?
a) TRUE, FALSE
b) Enteros -(231) hasta +(231 - 1)
c) Números en coma flotante
d) '0', '1' 'U' = no inicializado, 'X' = desconocido, 'Z' = flotante, '-' = no importa
102
Tema 9. Dispositivos lógicos programables (PLD)
.
1. b) En el funcionamiento de las PAL no hay programa que se esté ejecutando en su interior.
2. a) El caso contrario corresponde a las memorias.
3. b) Hay que fijarse en las conexiones que permanecen integras de la matriz AND.
4. a) FPGA (Field Programmable Gate Array).
5. d) La letra V significa Versatil (programable).
6. d) El último número significa el número de salidas máximas.
7. d) Tiene cuatro salidas combinacionales y cuatro registradas (con biestables).
8. b) El resto de opciones corresponden a formatos para memorias o microcontroladores.
9. d) Número de líneas que lo cruza (0 a 31).
10. d) Dos vectores de cuatro entradas cada uno y tres salidas simples.
11. a) Es el primer bloque de un programa VHDL.
12. d) El evento pasa a valor 0.
13. d) Un vector de entrada de 4 bits, un vector de salida de dos bits más una salida simple.
14. d) Tiene que estar incorporada la sentencia: use ieee.std_logic_1164.all;
15. a) Actúa como una señal parcial.
16. d) No se cumple ninguna de las condiciones y se sale del bloque “process” dejando la salida Q como
estaba.
103
Problemas de electrónica digital
PROBLEMAS VHDL
Problema 9.1.
A partir del siguiente programa fuente de VHDL contestar a las siguientes preguntas:
library ieee;
use ieee.std_logic_1164.all; a) Dibujar un bloque del circuito,
indicando todas las entradas y
ENTITY circuito IS salidas. ¿Qué tipo de circuito
PORT (reloj, reset : in std_logic; digital implementa?
sal : out std_logic_vector(2 downto 0));
END circuito;
b) Dibuja un posible diagrama de
ARCHITECTURE arq_circuito OF circuito IS estados del circuito
BEGIN
PROCESS (reloj)
BEGIN c) ¿El reset es síncrono o
IF (reloj 'EVENT AND reloj ='1') THEN asíncrono? ¿Por qué?
IF reset='0 ' THEN sal <='0 ';
ELSIF sal < 6 THEN sal <= sal + 1; d) ¿Cuándo es activa la señal de
ELSE sal <= 1;
reloj? ¿Qué sucede al circuito si
END IF;
no hay señal activa de reloj?
END IF;
END PROCESS;
END arq_circuito;
Solución
a)
104
Tema 9. Dispositivos lógicos programables (PLD)
Problema 9.2
Se desea diseñar el sistema de control de monedas de una máquina expendedora que admite monedas de
10, 20 y 50 céntimos de euro. El bloque electrónico tiene tres entradas que indica si se ha introducido una
de las monedas válidas: la entrada D indica si ha sido de 10 céntimos, la V de veinte y la C de cincuenta.
Solo una de las tres entradas puede estar activa en un instante dado. La salida del bloque debe ser un bus
de datos con el valor binario de la moneda que ha sido introducida.
Solución
Programa del sistema diseñado en lenguaje VHDL
library ieee;
use ieee.std_logic_1164.all;
Entity moneda is
port ( d, v, c : in std_logic ;
valor: out integer range 0 to 50);
end moneda;
105
Problemas de electrónica digital
Problema 9.3
Diseñar un sistema de control de temperatura que tenga tres salidas independientes conectadas a un led
cada una. La entrada al sistema de control es un bus de datos de 4 bits procedente de un convertidor
analógico-digital encargado de convertir el valor analógico de temperatura de un sensor a un valor binario
de 4 bits. El sistema debe responder de tal forma que si la señal de entrada esta entre 0000 y 1000 se
activará una de las salidas correspondientes al estado “Frio”, si el valor se encuentra entre 1001 y 1010 se
activará la salida del estado “Templado” y por último entre 1011 y 1111 se activará la salida del estado
“Calor”.
Solución
Programa del sistema diseñado en lenguaje VHDL
library ieee;
use ieee.std_logic_1164.all;
entity sistema is
port ( dig_val : in integer range 0 to 15;
frio, templ, calor : out bit);
end sistema;
106
Tema 9. Dispositivos lógicos programables (PLD)
Problema 9.4
Diseñar el control de un teclado 3x4 con visualización de la tecla pulsada mediante un display de 7
segmentos codificada en BCD.
El sistema se basa en utilizar un contador en anillo de 4 bits conectado a las filas del teclado
funcionando a una frecuencia suficientemente alta para que al pulsar cualquier tecla ésta sea leída
utilizando las columnas del teclado. El sistema responde, por ejemplo, a la secuencia del siguiente
esquema:
107
Problemas de electrónica digital
El sistema tiene una entrada de inicialización (IR) y un reloj (CLOCK) para el control de velocidad del
contador en anillo. Para el control del teclado se tendrán 4 salidas de control de las filas (L[0..3]) y 3
entradas para el control de las columnas (C[0..2]). Por último, posee 4 salidas en BCD para conectar al
display de 7 segmentos. Se necesita una señal interna (Pulse) que indique si se ha pulsado alguna tecla.
De esta forma el código en VHDL se dividirá en dos bloques: uno el contador en anillo y otro el
decodificador. El contador en anillo tiene como entrada el reloj de control y como salidas las L[0..3] y el
decodificador tiene como entradas L[0..3] y C[0..2] y como salida el código BCD.
108
Tema 9. Dispositivos lógicos programables (PLD)
Solución
a) El flujograma del programa se muestra a continuación donde PULSE es la señal que indica si se ha pulsado o
no una tecla y DECO es el valor conjunto de las filas más las columnas.
109
Problemas de electrónica digital
library ieee;
use ieee.std_logic_1164.all;
ENTITY ring IS
PORT(clk, ir: IN std_logic;
C : in std_logic_vector(2 downto 0);
Q : OUT std_logic_VECTOR(3 DOWNTO 0);
L : INOUT std_logic_VECTOR(3 DOWNTO 0));
END ring;
110
Tema 9. Dispositivos lógicos programables (PLD)
Problema 9.5
Diseñar un control de un motor paso a paso bipolar con una entrada de reloj que
controle los pasos del motor y una entrada de control del sentido de giro (C). Se
utilizará solamente el funcionamiento “Full-step” cuya secuencia es la siguiente
(entradas al motor ABCD): 1010-1001-0101-0110
Solución
Se deberá diseñar un contador en VHDL que siga la siguiente secuencia:
library ieee;
use ieee.std_logic_1164.all;
ENTITY counter IS
PORT (clock, c: in std_logic;
q : inout std_logic_vector(3 downto 0));
END counter;
111
Problemas de electrónica digital
Circuito complete
Problema 9.6
Diseñar un control de un motor paso a paso bipolar cuyo movimiento sigue la posición de un codificador
(encoder 25LB10-Q) incremental mecánico. Un codificador incremental, es un codificador que determina el
ángulo de posición por medio de conteos incrementales. Esto significa que el codificador incremental
proporciona una posición estratégica desde donde la cuenta se iniciará siempre. La posición actual del
codificador es incremental en comparación con la última posición registrada por el sensor. Los
codificadores incrementales generan un número exactamente definido de impulsos por revolución. Estos
indican la medida de la distancia angular y lineal recorrida. Debido al cambio de fase entre las señales A y B
(aproximadamente 90 grados), la dirección de rotación. El 25LB10-Q es de 36 posiciones en pasos de 10º.
El sistema se debe diseñar en base a una máquina de estados tipo Moore, con la entrada de reloj, las
dos entradas procedentes del codificador y cuatro salidas para controlar el motor en el modo “full-step”.
112
Tema 9. Dispositivos lógicos programables (PLD)
Solución
113
Problemas de electrónica digital
library ieee;
use ieee.std_logic_1164.all;
ENTITY counter IS
PORT (clock,rst: in std_logic;
direction: in std_logic_vector (1 downto 0);
q : out std_logic_vector(3 downto 0));
END counter;
BEGIN
PROCESS(clock,rst)
BEGIN
if rising_edge(clock) then
If (rst = '0') then state <= Q0; q <="0110";
else
CASE state IS
WHEN Q0 => q <="0110";
if direction="01" then state<=Q1;
elsif direction="10" then state<=Q3;
else state<=Q0;
end if;
WHEN Q1 => q <="1010";
if direction="11" then state<=Q2;
elsif direction="00" then state<=Q0;
else state<=Q1;
end if;
WHEN Q2 => q <="1001";
if direction="10" then state<=Q3;
elsif direction="01" then state<=Q1;
else state<=Q2;
end if;
WHEN Q3 => q <="0101";
if direction="00" then state<=Q0;
elsif direction="11" then state<=Q2;
else state<=Q3;
end if;
END CASE;
END IF;
END IF;
END PROCESS;
END counter_a;
114
Tema 9. Dispositivos lógicos programables (PLD)
Circuito Completo:
Problema 9.7
Se desea diseñar un sistema que guarde un número de código. El número está formado por 4 cifras y será
introducido usando un teclado matricial 3x4. Las cifras se mantendrán en las primeras cuatro direcciones
de una SRAM. La introducción del código comenzará con la tecla (*) y terminará con la tecla (#). Se utilizará
la RAM estática 6116 CMOS. Por simplificar el diseño el código no debe tener dos cifras iguales
consecutivas, por ejemplo, 5544 pero si en distinta posición como 5454. Utilizar una máquina de estados
tipos Moore para obtener el sistema de control. El valor de la tecla pulsada viene dado en BCD. Las
características de la memoria 6116 son las siguientes:
115
Problemas de electrónica digital
Solución
Solo interesa para este diseño el proceso de escritura, en esta memoria tiene dos tipos diferentes de ciclo de
escritura:
Fuente IDT
Se puede observar que en el tipo 2 controlado por la señal CS, la señal de escritura WE está siempre a nivel bajo
durante todo el proceso lo que va a facilitar el diseño puesto que se puede dejar a nivel bajo de forma fija y
trabajar solo con la señal CS.
El diagrama de la máquina de estados puede ser el siguiente:
116
Tema 9. Dispositivos lógicos programables (PLD)
Donde la entrada KEY es el valor en BCD de la tecla pulsada, DATA es el valor a guardar en la memoria RAM,
CS es la señal Chip Select de la memoria RAM y ADDRESS las 4 líneas (bajas) del bus de direcciones de la
memoria RAM.
La señal de reloj que se utiliza para controlar la máquina de estados tiene la frecuencia adecuada para cumplir
los tiempos que requiere el ciclo de escritura de la memoria.
library ieee;
use ieee.std_logic_1164.all;
entity FSM is
port(
KEY: in std_logic_vector ( 3 downto 0 );
CLK: in std_logic ;
ADDRESS: inout integer range 0 to 3;
DATA: out std_logic_vector ( 3 downto 0 );
CS: out std_logic );
end;
architecture A_FSM of FSM is
type state_type is (Q0, Q1, Q2, Q3);
signal state : state_type;
Begin
process (CLK)
begin
if rising_edge(clk) then
if (RST = '1') then state <= Q0;ADDRESS<=0;DATA<="0000";CS<='1';
elsif rising_edge(clk,RST) then
case state is
when Q0 => CS <= '1'; ADDRESS <= 0;
if KEY = "1100" then state <= Q1; else state <= Q0; end if;
when Q1=> CS <= '0'; ADDRESS <= ADDRESS; DATA <= KEY;
if KEY = "1111" then state <= Q0;
elsif KEY = "1100" then state <= Q1; else state <= Q2;
end if;
when Q2 => CS <= '1';
if (DATA = KEY) then state <=Q2;
elsif KEY = "1111" then state <= Q0; else state <= Q3;
end if;
when Q3=> ADDRESS <= ADDRESS + 1 ; state<=Q1;
when others => state <= Q0;
end case;
end if ;
end process;
end A_FSM
117
Problemas de electrónica digital
Circuito Completo:
118
TEMA 10
SISTEMAS DIGITALES
COMPLETOS
En los temas anteriores se han incluido problemas donde se resuelven contenidos específicos de cada uno
de ellos. Para tener una visión global y conjunta de la parte de la electrónica digital que abarca esos temas
es conveniente resolver problemas donde sea necesario conocer los contenidos de diversos temas. En este
tema se incluyen algunos problemas de mayor envergadura que los anteriores y que realizan una
recopilación de los diversos conceptos estudiados en los primeros temas.
Problema 10.1
119
Problemas de electrónica digital
Los detectores magnéticos “S” y “B” están constituidos por un contacto normalmente cerrado. Al situarse
el imán frente a ellos el contacto se abre.
El pulsador “P” es un contacto normalmente abierto, de forma que al pulsar el contacto se cierra.
Determinar:
a) A partir de las señales UP/DOWN que proporciona el circuito de control, obtener el circuito
decodificador que active las señales GR y M necesarias para el motor. Utilizar el circuito Integrado
74HCT00 (puertas NAND de dos entradas).
b) La señal “GR” activa la bobina de un relé de 180 Ω (12V) cuando está a nivel alto. Si se utiliza un
transistor con una hFEmín = 30 (βsat) y una VBEmáx = 1.1V, determinar el valor de la resistencia de base
R1.
c) La señal “MOT” permite e inhibe el giro del motor. El transistor utilizado es un superbeta (hFEmín
=230 (β), VBEmáx=1.5V). Calcular el valor de R2 para su activación con un nivel alto.
d) Diseñar el circuito de los contactos magnéticos (S y B) y del pulsador (P) para que produzcan un
nivel lógico alto al activarse.
e) A partir de las señales de entrada, dibujar el diagrama de estados de un sistema secuencial que
permita obtener las salidas “UP” y “DOWN” de gobierno del Motor.
120
Tema 10. Sistemas digitales completos
Solución
c) A partir de la tabla de verdad se obtiene las funciones lógicas de GR y MOT
= ∙
= ∙ + ·
El circuito digital con puertas NAND será:
121
Problemas de electrónica digital
Problema 10.2
La figura muestra el diagrama de bloques de un circuito lógico usado para el control del número de copias
(de 1 hasta 9) de una fotocopiadora.
122
Tema 10. Sistemas digitales completos
El operador de la máquina selecciona el número de copias deseada cerrando uno de los interruptores
S1 a S9. Este número es codificado a BCD por el circuito codificador (DECIMAL-TO-BCD ENCODER) y es
enviado al circuito comparador (4-BIT COMPARATOR).
Posteriormente, el operador pulsa un interruptor momentáneo (START) que inicializa el circuito de
control (CONTROL LOGIC). Este control pone a “1” la señal de operación (OPERATE) lo que significa que la
fotocopiadora comienza a realizar las copias.
Cuando la máquina hace cada copia (simulado con un botón), se genera un pulso (CK_INPUT) que se
aplica al contador (4 BIT COUNTER). Las salidas del contador son continuamente comparadas con las salidas
del decodificador de los interruptores mediante el comparador. Cuando los dos números coinciden la salida
del comparador EQUAL se pone a “1” y hace que la señal de operación (OPERATE) vuelva al nivel “0” y la
fotocopiadora se pare y no realice más copias, poniendo además el contador a cero. Si el pulsador de
START se vuelve a pulsar durante este periodo esta operación no se reinicializa.
Si se selecciona 0 copias el control no debe activar la señal de operación (OPERATE) y sí activar con un
“1” la señal de alarma (ALARM). Esta señal se desactiva automáticamente cuando un número de copias
distinta de cero se selecciona mediante los interruptores.
Se asume que los interruptores no pueden ser modificados durante el proceso.
1. Diseñar un codificador Decimal a BDC usando el C.I. 74HC147 y las puertas lógicas necesarias. Las
salidas de los interruptores S1 a S9 están normalmente a “1”.
2. Diseñar un comparador de 8-bit usando el C.I. 74HC85. Este circuito tiene que suministrar una señal
(EQUAL), la cual establecerá un “1”. Cuando el número de copias realizadas y el número de copias
programado sea el mismo.
3. Diseñar un circuito de control que conste de:
a) Circuito Monoestable:
La inicialización del circuito de control (Máquina de estados finitos) es realizada por un
monoestable CD4098 con función no-redisparable. La salida del monosestable será “1” a menos
que la señal START haya sido pulsada, pasando entonces a ser “0” durante 100 ms.
b) Máquina de estados finitos (FSM) con lenguaje VHDL y la GAL22V1. Las señales de reloj y reset se
consideran ya suministradas.
Inicialmente, la seña de operación (OPERATE) tiene que ser puesta a nivel bajo “0”, permitiendo así
la inicialización del Contador; esto es, el contador empezará siempre en cero. La FSM tiene que
permanecer en este estado hasta que se reciba la señal del monoestable.
Si se recibe la señal “0” del monoestable y se programa el número de copias (por lo que Equal=0)
entonces la señal de operación (OPERATE) debe ser puesta a “1” permitiendo la acción de
fotocopiar y de contar.
Pero si se recibe la señal “0” del monoestable pero el número de fotocopias no ha sido programado
(es decir todos los interruptores están abiertos lo que equivale a un numero 0 de fotocopias),
entonces la señal de operación (OPERATE) debe permanecer a nivel bajo “0” y se tiene que activar
la señal de alarma (ALARM). La FSM tiene que permanecer en este estado hasta que el número de
fotocopias haya sido programado, volviendo entonces al estado inicial, o hasta que el número de
fotocopias haya sido programado y la señal del monoestable se reciba, por lo que la FSM debería
trabajar tal como se ha explicado en el punto anterior.
123
Problemas de electrónica digital
Una vez se active la señal de operación (OPERATE) y la fotocopiadora esté trabajando, la FSM debe
permanecer en este estado mientras el contador y el número de copias programados sea diferente
(Equal=0). Cuando sean iguales, la FSM deberá volver al estado inicial. Si la señal de inicialización
(Start) es pulsada durante este estado, la FSM debe permanecer es este estado por lo que la señal
de Start será ignorada.
4. Diseñar un Contador de 4 bits utilizando el 74HC191 y las puertas lógicas necesarias. Este contador
deber ser puesto a cero con la señal de operación (OPERATE) a “0” y debe permanecer así gasta que la
señal pase a “1”. Por lo tanto, en este periodo, el Contador no debe contar.
mo
TimeGe
1 De 2 3 4 5 6 7 8 9 10
eG
en
en mo
eG
De
Tim
START eG
en
Tim
Tim
TimeGen Demo eG
Tim Tim
eG TimeGen Demo
Tim
Tim
en
MONOSTABLE eG
TimeGen Demo
Tim
De
eG
mo en
o o
De
eG
en
Dem Dem
mo
en
De
Gen Ge n
mo
De
OPERATE
mo
EQUAL
TimeGen
Solución
1. Diseño del codificador de Decimal a BCD utilizando el 74HC147 y las puertas lógicas necesarias
124
Tema 10. Sistemas digitales completos
Si todos los interruptores están abiertos (todas las entradas del codificador a “1”) las salida será 0000.
Este comparador tiene 11 entradas, 4 para cada señal de entrada (A y B, las cuales serán comparadas) y 3
entradas de cascada, en el caso de querer ampliar el número de bits a comparar (lo cual no será necesario en
este caso). En las hojas de características del integrado se señala “para una adecuada operación de
comparación, las entradas en cascada deben estar conectadas de la siguiente forma: IA>B = IA<B = LOW and IA=B
= HIGH”. Las entradas del decodificador ser conectarán por ejemplo a la entrada A y las del contador a la B.
Se quiere detectar cuando el número de copias realizadas será igual a las programadas, por lo que se
necesita la señal de salida QA=B (señal Equal en el sistema).
125
Problemas de electrónica digital
MONOESTABLE
126
Tema 10. Sistemas digitales completos
Para obtener los 100 ms el fabricante señala que se puede utilizar la ecuación
La máquina de estados tendrá dos entradas y dos salidas. Además son necesaria la señal de reloj
CLK_FSM y de RESET (asíncrono) que ya son suministradas
127
Problemas de electrónica digital
• Inicialmente, la señal de operación (OPERATE) está puesta a “0”, lo que permite poner a cero el
contador. La FSM debe permanecer en este estado inicial (Q0) mientras la señal del monoestable sea
“1”.
• Si recibe la señal del monoestable y se ha programado el número de copias (equal=0) entonces la señal
de operación (OPERATE) debe ser puesta a “1” permitiendo la acción de fotocopiar y contar. Para ello
se pasa al estado Q1
• Pero si se recibe del monoestable la señal "0" pero el número de fotocopias no ha sido programado (es
decir todos los interruptores están abiertos lo que equivale a un numero 0 de fotocopias), entonces la
señal de operación (OPERATE) debe permanecer a nivel bajo "0" y se tiene que activar la señal de
alarma (ALARM), estado Q2. La FSM tiene que permanecer en este estado Q2 hasta que el número de
fotocopias haya sido programado, volviendo entonces al estado inicial Q0, o hasta que el número de
fotocopias haya sido programado y la señal del monoestable se reciba, por lo que la FSM debería
trabajar tal como se ha explicado en el punto anterior.
• Una vez se active la señal de operación (OPERATE) y la fotocopiadora esté trabajando, la FSM debe
permanecer en este estado mientras el contador y el número de copias programados sea diferente
(Equal=0). Cuando sean iguales, la FSM deberá volver al estado inicial. Si la señal de inicialización
(Start) es pulsada durante este estado, la FSM debe permanecer es este estado por lo que la señal de
Start será ignorada.
1X 1X
Q0 Q0 01
01
00 00
X1 X1
10 X0
00 Q1 X1
00 Q1 X1
01 01
Q2 Q2
10 10
00
X0 X0
128
Tema 10. Sistemas digitales completos
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity exam1 is
port ( reset, mono, equal, clk: in std_logic;
operate,alarm: out std_logic);
end exam1;
Inputs: MONO-EQUAL
Outputs: OPERATE-ALARM
architecture behaivor of exam1 is
type state_type is (Q0, Q1, Q2); 1X
signal state : state_type;
Begin
process ( clk, reset ) Q0
begin 01
00
if (reset = '0') then state <= Q0;
X1
elsif rising_edge(clk) then 10
case state is 00 Q1 X1
end case;
end if ;
end process;
end behaivor;
129
Problemas de electrónica digital
4. Diseño del Contador BCD usando el C.I. contador 74HC191 y las puertas lógicas necesarias
Entradas/salidas al bloque
Entradas Salidas
CLK OPERATE Contador: nivel alto
Flanco subida De 0 a 1 0000
1001
Se quiere contar de 0 a 9. La carga en paralelo es Asíncrona por lo que se deberá detectar el número 10
(1010). Por lo tanto, la señal de carga paralelo (parallel loads) deber ser “0”, el de habilitación
(enable=”0”) y la señal D/U=”0”. Para realizar la cara paralela, se necesita utilizar una puerta NAND
para detectar la cuenta final; esta NAND irá conectada a Q1 y Q3 (para detectar el 1010) y a través de otra
AND conectada a la señal de operación (OPERATE que está trabaja a nivel “1” y está a “0” el resto del
tiempo)
130
Tema 10. Sistemas digitales completos
5. Rediseñar el comparador de 4 bits y el Contador BCD en un único bloque utilizando el lenguaje VHDL
y la GAL22V10 )
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity exam is
port ( Q :in std_logic_vector (3 downto 0);
operate, clk: in std_logic;
equal: out std_logic);
end exam;
begin
process (clk, operate)
begin
if (operate = '0') then count <= (others=>'0');
elsif (rising_edge(clk)) then
if count<9 then count <= count + 1;
else count <= "0000";
end if;
end if;
end process;
process(Q, count)
begin
if (Q = count)
then equal <= '1';
else equal <= '0';
end if;
end process;
end behaivor;
131
Problemas de electrónica digital
Problema 10.3
Dos sensores de temperatura miden un proceso industrial de un modo remoto cuya temperatura fluctúa
entre 0 y 9 grados Celsius. Un usuario puede activar un interruptor para visualizar cual es la temperatura
más alta de los dos sensores.
132
Tema 10. Sistemas digitales completos
Características:
• El valor digital de la temperatura de cada sensor se representa mediante 4 bits.
• El sistema de transmisión debe convertir una entrada de 8 bit en paralelo en una salida serie utilizando
un registro bidireccional de 8 bits.
• El control del registro es llevado a cabo por las señales S1 y S0. Cuando los 8 bits han sido transmitidos,
el transmisor deber permanecer inactivo.
• El receptor debe convertir la señal de serie a paralelo utilizando el mismo tipo de registro. Al igual que
el transmisor, el receptor es controlado por unas señales S1 y S0 y cuando los 8 bits han sido recibidos,
el receptor deber permanecer inactivo.
• El sistema receptor también está formado por un circuito combinacional, el cual consiste en un
comparador y un multiplexor. Ambos sirven para seleccionar la temperatura más alta. Este sistema
tiene una entrada BI que permite apagar el visualizador mientras el sistema no ha enviado los 8 bit y lo
enciende durante el tiempo que el usuario considere necesario.
• El sistema de control permite al usuario controlar la transmisión y la visualización. Posee una señal de
reset (RST) para inicializarlo. La señal de entrada llamada INT permite al usuario inicializar la
transmisión y habilitar la visualización. El sistema de control consiste en dos bloques: una máquina de
estado (FSM) tipo Mealy la cual trabaja como cerebro del sistema y, por otra parte, un contador
síncrono el cual permite controlar la transmisión de los 8 bits. La FSM suministra las señales de control
S1 y S0 para el transmisor y el receptor. La FSM también controla la señal de visualización (BI).
Finalmente, FSM resetea el contador cuando este ha terminado su cuenta. El contador cuenta los 8
pulsos de reloj requeridos para la transmisión y genera una señal (COUNT) de fin de cuenta.
•
Tareas:
2. Diseñar un receptor utilizando el C.I. 74198. El receptor debe trabajar como un registro serie-paralelo.
El dato de temperatura debe aparecer tras 8 pulsos de reloj en la salida. Las señales S1 y S0 están
compartidas con el transmisor, por lo que la secuencia de control debe ser la misma.
133
Problemas de electrónica digital
3. Diseñar un sistema combinacional formado por un circuito comparador de bits (74LS85) que testea cuál
de los dos valores recibidos en mayor y trabaja con el doble multiplexor de 4 bits (74LS157) para
conmutar el valor mayor de temperatura hacia el decodificador de BCD-7 Segmentos (74LS47). La señal
de entrada BI debe utilizarse para apagar el visualizador hasta que la transmisión se complete y debe
encenderlo cuando el valor de mayor temperatura sea detectado.
• Diseñar un contador de 4 bits utilizando el C.I. 74LS190 (contador decimal bidireccional síncrono de 4
bits) y las puertas lógicas necesarias. El contador es inicializado por la señal PL y realiza la cuenta de los
8 pulsos de reloj necesarios para la transmisión. El contador envía una señal COUNT al FSM al final de
cada cuenta.
• Diseñar una máquina de estado tipo Mealy (FSM) con lenguaje VHDL y la GAL22V10. Las señales de
reloj y reset son suministradas.
La señal de reset (RST) debe ser síncrona y activa nivel bajo. La señal INT esta normalmente a
nivel bajo hasta que un operador abre el interruptor y mantiene la señal a nivel alto para
inicializar el proceso.
La señal inicial INT permanece a nivel bajo y permite al sistema la transmisión mediante la
carga en paralelo de los datos de entrada, utilizando para ello las señales S1 y S0. También
mantiene a “0” la señal PL y apaga el visualizador mediante la señal BI.
La transmisión debe empezar con las señales S1 y S0 después de la activación de la señal INT.
Se deberá también empezar a contar los 8 pulsos de reloj mediante la deshabilitación de PL y
mantener el visualizador apagado con BI. Después de la transmisión de los 8 pulsos, es decir,
cuando el contador haya finalizado la cuenta, la FSM recibe la señal COUNT la cual habilita la
transición de estado de la FSM al estado “espera y visualización”.
134
Tema 10. Sistemas digitales completos
En el estado “espera y visualización” los registros permanecen en espera (hold) controlador por
S1 y S0, el contador es puesto a cero por la señal PL y el visualizador es encendido por la señal
Bi, permitiendo la visualización de la mayor temperatura. El sistema debe permanecer en este
estado hasta que se reinicialice el proceso.
Tan pronto como el operario cierre el interruptor y la señal INT sea “0”, el sistema volverá al
estado inicial y abortará el proceso donde se encuentre.
135
Problemas de electrónica digital
136
Tema 10. Sistemas digitales completos
Solución
Solo se necesitan conectar las entradas de carga en paralelo a las entradas de los sensores. Las señales de
control S1 y S0, el MR siempre a nivel alto y la entrada SR (o SL) a un nivel cualquiera, en este caso a
masa. La salida por Q7 ya que se ha elegido el desplazamiento a derecha (o la Q0 si es a izquierda). Tal
como dice el enunciado primero se realiza una carga en paralelo (S1=1, S0=1), después el desplazamiento a
derecha (S1=0, S0=1) y por último un mantenimiento (hold) (S1=0, S0=0)
137
Problemas de electrónica digital
La comparación se lleva a cabo mediante el 7485, introduciendo los datos de la salida del registro
receptor directamente al comparador. Al ser un solo integrado hay que conectar las entradas de cascada
según indica la tabla de verdad, es decir como si la comparativa anterior fuese idéntica: A=B a nivel alto y
A>B y A<B a nivel bajo. Como se necesita conocer cuál de los dos valores es mayor se puede elegir entre la
salida A>B o A<B, actuando en consecuencia en el multiplexor. En este caso se ha escogido A<B.
Una ver determinado cual es el mayor se utiliza un multiplexor para seleccionar el dato que se debe
visualizar. La señal de enable del multiplexor se puede dejar fijo a nivel bajo. Si la señal de control (A’/B o
S) está a nivel bajo el dato que pasa es el de la entrada I0 (A) si está a nivel alto pasa la entrada I1 (B).
La señal A<B procedente del comparador es un nivel alto cuando B es mayor que A, así que se
conectan los datos de la entrada A del comparador a la entrada I0 (A) del multiplexor, y los de la entrada B
del comparador a la entrada I1 (B) del multiplexor.
Por último, los datos de la salida del multiplexor se conectan al decodificador BCD-7 segmentos (7447).
Según la tabla de verdad si se conectan RBI y LT a nivel alto se puede controlar el encendido o apagado del
visualizador mediante la entrada Bi/RB0. Si esta entrada está a nivel bajo el display se apaga y estando a
nivel alto habilita la visualización.
138
Tema 10. Sistemas digitales completos
• Estado Q0: Inicialmente la INT permanece a nivel bajo y el sistema permite al registro de transmisión
realizar la carga en paralelo de los datos de entrada mediante el control de las señales S1 y S0, además
mantiene el contador a 0 mediante la señal PL y el visualizador apagado mediante la señal BI. →
INT=0, COUNTER=X / S1=1,S0=1,PL=0,BI=0
• Estado Q1: Al activarse la señal INT debe comenzar la transmisión mediante el control de las señales
S1 y S0, además debe iniciar el conteo de los 8 pulsos mediante la deshabilitación de la señal PL y
mantener el visualizador apagado a través de la señal BI. → INT=1, COUNTER=X /
S1=0,S0=1,PL=1,BI=0 and INT=1, COUNTER=1 / S1=0,S0=1,PL=1,BI=0
Al finalizar la transmisión de los 8 bits, es decir cuando el contador ha finalizado el conteo, la máquina
de estados recibe la señal la señal COUNT lo que permite a la FMS transitar a un estado de reposo y
visualización. → INT=1, COUNTER=0 / S1=0,S0=1,PL=0,BI=1
• Estado Q2: En el estado de reposo y visualización los registros se mantienen estables (hold) mediante el
control de las señales S1 y S0, el contado se reinicializa a 0 mediante la señal PL y el visualizador se
enciende mediante la señal BI, permitiendo la visualización del mayor valor de temperatura. El sistema
se mantiene en este estado hasta que el usuario reinicializa el proceso. → INT=1, COUNTER=X /
S1=0,S0=0,PL=0,BI=1
• En cuanto el usuario cierre el interruptor y la señal INT pase a nivel bajo se vuelve al estado inicial y se
aborta en control en cualquier momento del proceso. → INT=0, COUNTER=X /
S1=1,S1=0,PL=0,BI=0
139
Problemas de electrónica digital
Programa VHDL
library IEEE;
use IEEE.STD_LOGIC_1164.ALL; Inputs: COUNTER-INT
use IEEE.STD_LOGIC_ARITH.ALL; Outputs: S1-S0-PL-Bi
use IEEE.STD_LOGIC_UNSIGNED.ALL; X0
entity fsm is 1100
Port (
Rst,ck, INT, COUNT: in std_logic;
S1, S0, PL, Bi: out std_logic;
Q0 X1
0110
); X0
1100
end fsm; X0
1100 11
Q1
architecture behavioral of fsm is 0110
begin
entrada_aux<=COUNT&INT;
process(Rst, ck)
begin
If rising_edge(ck) then
140
Tema 10. Sistemas digitales completos
Problema 10.4
La apnea del sueño es la interrupción repetida de la respiración durante el
sueño, a veces cientos de veces durante la noche y a menudo durante un
minuto o más. Si no se trata, la apnea del sueño puede causar presión arterial
alta, enfermedades cardiovasculares, pérdida de memoria y problemas de
peso. Estudios médicos recientes indican que la apnea del sueño a largo plazo
también puede aumentar el riesgo de morir de cáncer. La consiguiente falta
de sueño reparador también puede ser responsable de la discapacidad laboral
y accidentes de vehículos de motor. Una opción de tratamiento principal es el
uso de una máquina de presión positiva de la vía aérea (PAP). El paciente lleva una máscara que utiliza
presión para enviar un flujo de aire a través de los orificios nasales evitando que se colapsen y que cese la
respiración.
El siguiente esquema muestra la estructura general del equipo. Se necesita diseñar un bloque auxiliar que
pueda generar una señal de control para el microcontrolador. Este bloque tiene como entrada dos
sensores: un sensor de flujo que controla la cantidad de aire que respira el paciente y un sensor que
controla si la mascará esta puesta o no. La salida del bloque activa una señal cuando la máscara está
colocada en el paciente y el flujo de aire es menor de 60 l/min.
Cortesía Honeywell
El sensor de flujo tiene una salida lineal (ASI) de pulsos proporcional a los litros/minuto de aire por el canal
de respiración. La relación de salida es 4 pulsos por segundo son 1 l/s. El límite mínimo establecido para
una respiración adecuada es de 60 l/min. Por otra parte, el sensor de proximidad (PS) proporciona una
señal todo/nada si la máscara está colocada o no sobre el paciente. Si el sistema detecta que la máscara
está colocada y el flujo de aire es menor de 60 l/min debe proporcionar una señal (SOM) a nivel alto,
permaneciendo a nivel bajo el resto de casos.
Este bloque auxiliar estará compuesto por una unidad de cuenta, una unidad de registro, una unidad de
comparación, un generador de señal de reloj y una máquina de estado finita (FSM).
141
Problemas de electrónica digital
El proceso debe ser el siguiente: La señal de pulsos (ASI) procedente del sensor de flujo es recibida por el
bloque contador, el cual hace la cuenta de los pulsos durante 10 segundos. Inmediatamente después de
cada 10 segundos, el bloque contador recibe una señal (CLEAR) de inicialización a cero de la cuenta
procedente de la FSM y puede empezar a contar de nuevo. Las salidas del contador (a[7..0]) están
conectadas a un registro de desplazamiento universal. El bloque registro permite guardar en su salida el
dato suministrado por el contador después de cada 10 segundos y permanecer inalterable hasta el próximo
periodo. El control del registro se realiza con la señal HR procedente de la FSM y que actúa sobre las
señales S1 y S0 del registro. Este bloque registro está conectado al reloj del sistema (3 Hz). Las señales de
salida (o[7..0]) del registro están conectadas a un bloque comparador. En este bloque una de las entradas
está fija al valor 40 y la otra entrada está conectada a las señales de salida del registro; de esta forma este
bloque está comparando continuamente los dos valores. En el caso de que la señal recibida sea menor de
40 (indicando que hay menos de 60 L/m en el circuito) la salida (CO) estará a nivel alto y si es mayor o igual
de 40 estará a nivel bajo.
Todo el sistema está contralado por la FSM. Este bloque recibe como entrada la señal (C10S) de reloj de 10
s procedente de un general de señal. Además, recibe la señal (PS) del sensor colocado en la máscara que
indica si está colocada en el paciente o no (un 1 lógico si lo está y un 0 lógico si no lo está). Otra entrada es
la señal (CO) procedente del comparador. Las dos últimas entradas son estándar y son, el reloj del sistema
(3 Hz) y la señal de reset (RESET). Salidas de la FSM son la señal (CLEAR) que inicializa el contador después
de cada segundo, la señal (HR) que permite al bloque registro guardar el dato del contador y la señal (SOM)
que está conectada al microcontrolador indicando que la máscara está colocada y el flujo de aire es menor
de 60 l/min o no se dan estas condiciones.
Los estados definidos para la FSM deben cumplir las siguientes reglas:
• Si se recibe la señal de 10 segundos (C10S) y la máscara (PS) esta puesta en el paciente, la FSM
debe da una señal (HR) al bloque registro para que guarde los datos del contador a su salida. Si en
este estado la máscara se retira del paciente, la FSM debe volver al estado inicial.
142
Tema 10. Sistemas digitales completos
• Inmediatamente después del proceso anterior, y si la máscara sigue puesta, la FSM debe dar la
orden con la señal (CLEAR) para inicializar el contador y debe mantener el dato en el bloque
registro. Si en este estado la máscara se retira del paciente, la FSM debe volver al estado inicial.
• A partir de este momento, la señal CO procedente del bloque comparador es leída. Si la señal (CO)
indica que la lectura del flujo de aire es menor de 60 l/min, entonces se activa la señal de salida
SOM y se deshabilita el CLEAR. Pero si la señal (CO) indica que la lectura del flujo de aire es mayor o
igual de 60 l/min se inactiva la señal de salida SOM y se deshabilita el CLEAR. En este momento el
sistema vuelve a su estado inicial independientemente del valor de las entradas.
Diseñar:
5. Una unidad de conteo mediante el C.I. 74HC193. El bloque Contador recibe los pulsos del sensor (ASI)
y los va contando hasta que es inicializado por la señal CLEAR procedente de la FSM. La inicialización
puede realizarse con el Master Reset o con utilizando el Parallel Load. Los pines que no se utilicen
deben conectarse a su adecuado nivel de tensión o al aire si es posible.
6. Una unidad de registro mediante el C.I. 74HC194. El bloque registro tiene como entradas el valor de la
cuenta (a[7..0]) y la señal HR procedente de la FSM. La señal HR debe actuar convenientemente sobre
las entradas S1 y S0 para que en un momento dado mantenga inalterable el valor de la cuenta en las
salidas del registro (o[7..0]) aunque las entradas estén cambiando a menos que la señal HR se active y
el valor de las entradas aparezca en las salidas. Es decir, se comporta como un registro paralelo-
paralelo. Los pines que no se utilicen deben conectarse a su adecuado nivel de tensión o al aire si es
posible.
7. Una unidad de comparación mediante el C.I. 74HC85. Este bloque está continuamente comparando la
señal procedente del registro (o[7..0]) con el valor predeterminado (40 en este caso). La salida que se
conectará con el FSM será la CO. El nivel de activación de esta señal es elegido por el diseñador,
siempre que diferencie los casos de que el flujo sea menor de 60 l/min o mayor/igual de este valor. Los
pines que no se utilicen deben conectarse a su adecuado nivel de tensión o al aire si es posible.
8. Un bloque generador de reloj mediante el C.I.555. Este bloque debe generar una señal (C10S) de 10
segundos de periodo y con un Ton de 1 segundo. Elegir el valor comercial estándar de los dispositivos
pasivos necesarios para configurar el C.I.555. Se puede incorporar una puerta lógica que regenere la
señal antes de conectarse a la FSM.
9. Una máquina de estados finitos (FMS) tipo Mealy mediante lenguaje VHDL y una GAL22V10. El
sistema tiene una señal de reloj y una señal de reset. La señal de reset (RESET) debe ser asíncrona y
activa a nivel bajo. La secuencia de estado de la máquina debe responder a lo explicado
anteriormente. Se puede observar en las figuras siguientes el cronograma del sistema completo, así
como de la FSM.
143
Problemas de electrónica digital
144
Tema 10. Sistemas digitales completos
Solución
1) Bloque Contador
Al ser necesario contar como mínimo hasta 40, hacen falta dos contadores conectados en casada tal como
indica el fabricante:
Así se obtiene un contador binario de 8 bits. En este caso debe tener cuenta ascendente y permitir la
inicialización a cero de la cuenta. Esto se puede hacer utilizando el Parallel Load con las entradas de carga
a cero o el Master Reset tal como indica el fabricante:
145
Problemas de electrónica digital
En el circuito diseñado se conecta la señal ASI al pin CPU del primer contador y la salida TCU de este a la
entrada CPU del segundo contador. Se ha utilizado la entrada MR para realizar la inicialización por lo
tanto se conecta la señal CLEAR a MR, con activación a nivel alto.
2) Bloque registro.
Es un registro de 4 bits por lo que también se debe ampliar a 8-bits. La forma de trabajar del registro debe
ser en paralelo-paralelo, es decir, en la salida aparecerá la entrada cuando la señal (HR) procedente del
FSM se active. Observando la tabla de verdad del fabricante, se observa que si S1=S0=0 la salida
permanece inalterable, mientras que si S1=S0=1 se produce una carga en paralelo:
146
Tema 10. Sistemas digitales completos
Para el diseño se conecta la señal HR a S1 y S0 de los dos registros, los datos en 4-bits a cada registro, la
señal MR fija a 5 V, la señal de reloj al reloj externo y el resto se pueden dejar sin asignar.
3) Bloque Comparador.
El bloque comparador estará formado por dos comparadores de 4-bits puestos en cascada tal como indica
el fabricante:
147
Problemas de electrónica digital
Los datos A serán lo que proceden del registro y los B serán el dato 40 (00101000) que sirve de
comparación. La salida utilizada será la A<B la cual permanece a 1 si la señal de la cuenta es menor de 40
pulsos cada 10 s y a 0 si es mayor o igual.
148
Tema 10. Sistemas digitales completos
149
Problemas de electrónica digital
library ieee;
use ieee.std_logic_1164.all;
ENTITY fsm IS
PORT (reset: in std_logic;
clock: in std_logic;
C1S: in std_logic;
PS: in std_logic;
CO: in std_logic;
qi : out std_logic_vector(2 downto 0));
END fsm;
150
Tema 10. Sistemas digitales completos
library ieee;
use ieee.std_logic_1164.all;
ENTITY fsm IS
PORT (reset: in std_logic;
clock: in std_logic;
C1S: in std_logic;
PS: in std_logic;
CO: in std_logic;
qi : out std_logic_vector(2 downto 0));
END fsm;
151
TEMA 11
MICROCONTROLADORES
Para el PIC16F88 se toma como referencia las especificaciones ofrecidas por el fabricante del dispositivo
(Microchip Thecnology Inc). Datasheet: http://www.microchip.com/wwwproducts/en/PIC16F88
a) Porque ejecuta un programa escrito en lenguaje máquina almacenado en una memoria flash
(memoria de programa).
b) Porque necesita un programa para determinar cuáles son las conexiones (fusibles) que se van a
activar para así lograr las funciones lógicas a implementar.
c) Porque su funcionamiento viene determinado por las entradas de control de un multiplexor
externo.
d) Porque, para que funcione, necesita estar conectada a un ordenador con programas informáticos
específicos para el tipo de microcontrolador.
2. ¿En qué tipo de lenguaje está escrito el programa que se almacena en la memoria de un
microprocesador?
a) Ensamblador
b) Lenguaje máquina
c) Programa Fuente
d) Lenguaje de alto nivel
153
Problemas de electrónica digital
a) 1,2,3,4,5
b) 2,1,5,3,4
c) 2,4,1,5,3
d) 4,3,5,1,2
5. ¿Qué característica debe tener un microprocesador para que pueda realizar la segmentación de un
programa? (buscar la instrucción siguiente mientras se ejecuta una instrucción).
6. Las instrucciones que contienen la dirección de memoria donde se encuentra el dato a operar se
denominan de direccionamiento…
a) Inmediato.
b) Directo.
c) Indirecto.
d) Indexado.
154
Tema 11. Microcontroladores
MICROPROCESADOR PIC16F88
8. Como microcontrolador, hemos utilizado el PIC16F88. ¿Sabrías decir que empresa lo fabrica?
a) Altera.
b) Microchip.
c) ARDUINO.
d) Motorola.
10. ¿Cuál es la relación entre el ciclo máquina y el ciclo de reloj del PIC16F88?
a) Son coincidentes.
b) Son coincidentes, salvo en las instrucciones de saltos que son dos.
c) El ciclo máquina equivale a dos ciclos de reloj.
d) El ciclo máquina equivale a cuatro ciclos de reloj.
11. ¿Qué tipo de instrucciones del PIC16F88 necesitan dos ciclos de máquina para su ejecución?
12. En caso de producirse una interrupción en el PIC16F88 ¿qué tarea realiza el dispositivo?
13. En el dispositivo real ¿Cómo se indica la frecuencia del oscilador interno del PIC16F88?
155
Problemas de electrónica digital
a) Leer el puerto B.
b) Escribir en el puerto B.
c) Configurar todo el puerto B o como entrada o como salida.
d) Configurar cada pin del puerto B como entrada o como salida.
15. Si el convertidor A/D del PIC16F88 posee 10 bits y los registros de memoria poseen 8 bits ¿Cómo puede
almacenar el resultado de la conversión?
16. ¿Qué propiedades del PIC16F88 se especifican mediante los registros de configuración CONFIG1 o
CONFIG2?
17. ¿Para qué se utilizan las resistencias de pull-up en las entradas del PORTB del PIC16F88?
18. El temporizador Timer1 (TMR1) se diferencia del Timer0 (TMR0) fundamentalmente porque:
a) Es de 16 bits.
b) Posee mayor velocidad.
c) Con el Timer1 permite realizar interrupciones.
d) No hay ninguna diferencia, son exactamente iguales.
19. El módulo CCP del PIC16F88 permite obtener una señal PWM en los terminales:
156
Tema 11. Microcontroladores
157
TEMA 12
LENGUAJE C PARA
COMPILADOR XC8
Los recursos informáticos los suministra la empresa fabricante Microchip Technology Inc a través de sus
sitios web.
El entorno de programación MPLAB-X IDE: http://www.microchip.com/mplab/mplab-x-ide.
El compilador XC8: http://www.microchip.com/mplab/compilers
• Corres, Jesús Mª; Ruiz, Carlos; Bariáin, Cándido (2015). Ejercicios de Programación con
Microcontroladores PIC. Ed. Marcombo.
• Barriáin, Cándido; Corres, Jesús Mª; Ruiz, Carlos. (2017). Programación de microcontroladores PIC en
lenguaje C. Ed. Marcombo
• Etxebarria Isuskiza, Mikel (2011). Microcontroladores PIC: teoría y práctica: el PIC16F88X y el
laboratorio USB-PIC'School. Ed. Creaciones Copyright, D.L.
Al ser un tema eminentemente práctico no suele haber preguntas de tipo test. En cambio, los ejercicios son
numerosos.
159
Problemas de electrónica digital
A - CONTROL DE PUERTOS
Problema 12.1
Por el puerto B se conectan 8 diodos LED a cada uno de sus pines. Realizar un programa para que mantenga
encendidos los LED de encendidos y apagados de forma alternativa, es decir 01010101.
Solución
Diagrama de flujo Listado del programa
Nota: Falta especificar los registros de configuración (CONFIG1 y CONFIG2) del PIC18F88
160
Tema 12. Lenguaje C para compilador XC8
Problema 12.2
Al puerto B (PORTB) del PIC16F88 se conectan 8 diodos LED (uno a cada pin del puerto). Se desea activar el
encendido y apagado de dichos LEDs según el estado de la entrada RA4 de forma que si RA4=0 la salida de
los LEDs será 0101010 y si RA4=1 la salida de los LEDs será 10101010
Solución
Nota: Falta especificar los registros de configuración (CONFIG1 y CONFIG2) del PIC18F88
161
Problemas de electrónica digital
Problema 12.3
Al puerto B (PORTB) del PIC16F88 se conectan 8 diodos LED (uno a cada pin del puerto). Se desea activar el
encendido y apagado de dichos LEDs según el estado dos entradas RA1 y RA0, siguiendo la siguiente tabla.
Obtener:
a) Diagrama de flujo del programa.
b) Programa en lenguaje C (XC8)
Solución
a) Diagrama de flujos. Se realiza la lectura de una entrada (RA0) y luego la siguiente (RA1). En función del
resultado se saca por PORTA la combinación establecida
162
Tema 12. Lenguaje C para compilador XC8
Nota: Falta especificar los registros de configuración (CONFIG1 y CONFIG2) del PIC18F88
Problema 12.4
Se desea obtener un comparador digital de dos números (A y B) de 4 bits cada uno mediante tres salidas
(A>B, A=B y A<B). Los dos números entran por PORTA, el número B en la parte alta del puerto y el número
A en la parte baja (ver figura). Para las salidas se utilizará tres pines del PORTB.
Determinar:
a. Diagrama de flujos del programa.
b. Listado del programa en lenguaje C
163
Problemas de electrónica digital
Solución
Los números A y B se almacenan respectivamente en las variables DATOA y DATOB. Se utilizan máscaras para
seleccionar los bits de interés (parte alta y parte baja). Posteriormente se realiza la comparación de ambas
variables
a) Diagrama de Flujos
b) Listado del programa. En este ejemplo ya se ha incluido la configuración de los registros CONFIG1 y
CONFIG2 donde, entre otras cosas, se indica que RA5 actúa como entrada de dato (MCLR=OFF) ya
que por defecto es la entrada de reset (MCLR) del dispositivo. A partir de ahora se pondrá siempre en
los programas
164
Tema 12. Lenguaje C para compilador XC8
Problema 12.5
Obtener un programa en lenguaje C (XC8) de un circuito que realiza la lectura de 8 entradas por PORTB, y
en función de sus valores activan TRES salidas de PORTA (RA2, RA1 y RA0) según el contenido de la
siguiente tabla. La salida se muestra en el programa ISIS-Proteus en un visualizador de 7 segmentos con
entrada BCD (no real).
165
Problemas de electrónica digital
B - TEMPORIZACIONES
Problema 12.6
Circuito que active unas luces intermitentes formadas por 8 LEDs conectados al puerto B de duración de 1
seg el encendido y 1 seg el apagado (frecuencia 0,5Hz).
Obtener:
a) Diagrama de flujos
b) Listado en lenguaje C (XC8)
Solución
a) Diagrama de Flujos
b) Listado programa en lenguaje C. Utilizando la función _delay() donde se indica el número de ciclos
máquina de retardo.
La frecuencia de oscilación es de 4MHz (configurada mediante registro OSCCON), como el dispositivo divide la
frecuencia de reloj por 4, la frecuencia del ciclo máquina es de 1MHz, luego cada unidad de la función _delay()
equivale a 1µs
166
Tema 12. Lenguaje C para compilador XC8
Problema 12.7
167
Problemas de electrónica digital
Solución
Diagrama de Flujos Listado Programa
168
Tema 12. Lenguaje C para compilador XC8
Problema 12.9
Circuito que realiza la suma de dos números (A y B) de 4 bits cada uno utilizando PORTA, pero a diferencia
del ejercicio anterior, donde cada sumando entra por pines diferentes, ahora los dos sumandos entran por
los mismos pines (así deja más pines libres). Para ello se incorpora una nueva entrada ENTER (RA4) que
permite la entrada de cada sumando, para ello hay que pulsar y soltar la entrada.
169
Problemas de electrónica digital
Solución
Diagrama de flujos Listado Programa
170
Tema 12. Lenguaje C para compilador XC8
Solución
Problema 12.11
Realizar programa en lenguaje c que realice la suma de dos números y muestre el resultado en un panel
LCD de 16x2 (modelo HD44780U). Los dos números son de 4 bits y entran los dos por los mismos pines
RA[6..3] en dos turnos. La orden de entrada de los sumandos se realiza por señal en RA2=1 (ver figura).
En la primera fila del panel se escribirá la expresión “Suma de: “ y el valor de los sumandos separados por el
signo +. En la segunda fila se escribirá el valor de la suma. Utilizar la librería de control del panel upvLCDlib.c
(ver anexo de esta publicación)
171
Problemas de electrónica digital
Solución
172
Tema 12. Lenguaje C para compilador XC8
Problema 12.12
Programa en lenguaje C que automáticamente va escribiendo en el panel LCD de 16x2 el símbolo de un
recuadro oscuro, rellenando el panel de izquierda a derecha. Una vez llegado al final del panel vuelve a
empezar. Utilizar la librería de control del panel upvLCDlib.c (ver anexo de esta publicación)
Solución
173
Problemas de electrónica digital
Problema 12.13
Al pulsar el botón se generará otro número aleatorio que se mostrará en el display de 7 segmentos. Así
mismo el LCD se actualizará:
1ª línea: Mi Tirada: “nº aleatorio entre 1 y 6”
2ªlínea: Tu Tirada: “valor aleatorio al pulsar el botón”
Realizar el código de programación necesario para el funcionamiento descrito en XC8 y simularlo con ISIS.
Utilizar la librería de control del panel upvLCDlib.c (ver anexo de esta publicación)
174
Tema 12. Lenguaje C para compilador XC8
Solución
Listado programa
175
Problemas de electrónica digital
176
Tema 12. Lenguaje C para compilador XC8
Problema 12.14
Programa que lee una entrada analógica (RA2) y sacar el resultado en binario (10 bits) por RA0, RA1 (bits de
mayor peso) y el resto de bits por el PORTB.
Solución
177
Problemas de electrónica digital
178
Tema 12. Lenguaje C para compilador XC8
Problema 12.15
Programa que lee una entrada analógica (RA2) y sacar resultado (10 BITS) por RA0, RA1 y PORTB (igual que
problema anterior). Ahora utilizando la librería para utilizar el convertidor analógico digital upvADlib.c (ver
anexo al final de esta publicación).
Solución
179
Problemas de electrónica digital
Problema 12.16
Medida de una señal analógica con el convertidor A/D del PIC16F88 y representación del resultado (10 bits)
mediante un número decimal en BCD con display de 3 ½ Dígitos: Millar, Centenas, Decenas y Unidades.
Utilizar la librería upvADlib.c (ver anexo al final de esta publicación).
Solución
Se utiliza PORTA para Decenas RA[7..4] y para Unidades RA[3..0. PORTB para Centenas RB[3..0] y Millar RB4
180
Tema 12. Lenguaje C para compilador XC8
Problema 12.17
Medida de una tensión analógica con el convertidor A/D del PIC16F88 y representación del resultado (en
mili Voltios) mediante un número decimal en BCD con display de 3 ½ Dígitos: Millar, Centenas, Decenas y
Unidades. Utilizar la librería upvADlib.c (ver anexo al final de esta publicación).
Solución
181
Problemas de electrónica digital
Problema 12.18
Medida tensión con el convertidor A/D del PIC16F88 y mostrar el resultado en un panel de LCD (16x8).
Utilizar la librería upvADlib.c (ver anexo al final de esta publicación).
Solución
Valor máximo digital (0b1111111111=1023) -> 5 Volt; Num_Dig -> X Volt
X=Num_Dig ⋅ 5/1023 = Num_Dig ⋅ 0,004887 Volt
182
Tema 12. Lenguaje C para compilador XC8
Problema 12.19
El circuito de la figura se utiliza para controlar la dirección de un vehículo accionando los motores de las
ruedas de forma independiente.
La entrada es de tipo analógico, de forma que según el pulsador que esté activado, el valor analógico
obtenido en RA0 cambiará. (Simular solo la red de resistencias para ver los valores de tensión de la entrada
RA0 correspondientes a cada interruptor).
Según el pulsador seleccionado, los motores girarán hacia adelante o hacia atrás, a la derecha (motor
derecho parado) o a la izquierda (motor izquierdo parado). El interruptor central detendrá los dos motores.
Se pide:
Realizar el programa en XC8. Utilizar la librería upvADlib.c (ver anexo al final de esta publicación).
183
Problemas de electrónica digital
Solución
184
Tema 12. Lenguaje C para compilador XC8
Problema 12.20
El esquema del circuito de la figura debe mantener constante la temperatura en el interior de un pequeño
recinto.
Para ello utiliza un ventilador (VEN) y un calefactor (CAL). El sensor LM35 nos permite medir el valor de la
temperatura en el interior del recinto.
El valor de temperatura que se desea alcanzar, se establece con el potenciómetro REF, de forma que al
mínimo establezca una referencia de 20 ⁰C y al máximo de 50.
Realizar el programa en lenguaje C de control tal que cumpla las siguientes condiciones:
185
Problemas de electrónica digital
Solución
Listado del Programa
186
Tema 12. Lenguaje C para compilador XC8
Problema 12.21
Utilizando el temporizador del registro TMR0 del PIC16F88 generar una señal cuadrada de f=500Hz.
Solución
Como la frecuencia generador f=500Hz → T=2µs. si la señal es cuadrada: tH= tL=1µs
187
Problemas de electrónica digital
Problema 12.22
Programa para que el PIC6F88 combine dos tareas: un oscilador de frecuencia XX en el pin RA0 y por otro
lado el control de PORTB mediante RA1 de manera que si RA1=0 → PORTB=0b01010101 y si RA1=1 →
PORTB=0b10101010.
Solución
Una de las características de los Timer es que mientras realiza la temporización el PIC puede realizar otras
tareas (con la subrutina _delay() no es posible).
Listado Programa:
188
Tema 12. Lenguaje C para compilador XC8
Problema 12.23
Programa para utilizar el registro TMR0 como contador de pulsos externos que entran por el pin RA4. Sacar
el valor binario de la cuenta por PORTB.
Solución
Solo se puede utilizar la entrada RA4. A cada pulso aumenta el valor TMR0.
189
Problemas de electrónica digital
Problema 12.24
Control del ángulo de un servomotor mediante 4 entradas (16 combinaciones) utilizando el registro TMR0.
Según la combinación de entradas le corresponde un ángulo entre 0 º y 180º variando de forma lineal.
Solución
190
Tema 12. Lenguaje C para compilador XC8
Problema 12.25
Programa de lenguaje C para XC8 que permite realizar la suma de dos números de 4 bits entrando en dos
turnos por los mismos pines. Responder a las preguntas abajo indicadas.
191
Problemas de electrónica digital
c) Dibujar esquema de conexiones entre PIC16F88, las entradas y los display de 7 segmentos (con
entrada BCD) indicando cual corresponde a decenas y a unidades.
Solución
a)
b) Para que la entrada de cada sumando sea de la forma “pulsar y soltar” una tecla, utilizando la
entrada RA4
d) PORTB=RESULT
192
Tema 12. Lenguaje C para compilador XC8
Problema 12.26
El circuito de la figura se desea utilizar para realizar una alarma de sobre-temperatura configurable.
Mediante el potenciómetro se establece el valor máximo de temperatura, de forma que con el
potenciómetro a cero, la referencia se establece a 25ºC y con el potenciómetro al máximo, se establece a
40ºC. Mientras la temperatura está por debajo del valor prefijado, permanece encendido el LED verde,
pero cuando se alcanza la referencia o se supera, se enciende el LED rojo y se apaga el verde.
while(1)
{
referencia = convertAD(4);
temperatura = convertAD(1);
_ref = (0.014663*reference)+25;
_temp = 0.48876*temperatura;
if (_temp>=_ref) PORTB=0b00000010;
else PORTB=0b00000100;
__delay_ms(500);
}
return;
}
Se pide:
1. Rellenar los cuadros marcados en rojo del programa principal.
2. Para una temperatura medida con el LM35 de 27ºC, determinar el valor de la variable “temperature”.
(LM35 proporciona 10mV/ºC, y las referencias del convertidor AD están a +5V y a 0V).
3. Estado de los LED’s cuando la temperatura sea 30ºC y el potenciómetro esté al 40% de su valor.
193
Problemas de electrónica digital
Solución
c) A 30ºC: temperatura=(300*1023)/5000 = 61
Cuando el potenciómetro esté al 40%: 40*5000mV/100=2000mV
referencia= 2000*1023/5000=409.
Aplicando las fórmulas del código: _ref=30.98 _temp=29.81
Como _temp<_ref, se encenderá el LED verde y estará apagado el LED rojo.
Problema 12.27
El siguiente fragmento de programa corresponde a la función principal para el control de un servomotor
con ángulo de giro de 0º a 180º utilizando el temporizador Timer0 (TMR0). Se pregunta:
194
Tema 12. Lenguaje C para compilador XC8
Solución
Problema 12.28
Diseñar un sistema basado en microcontrolador que regule los niveles
de glucosa en el cuerpo de un enfermo de diabetes mediante la
medida continua de los niveles de glucosa y dispense las dosis de
insulina necesaria según las medidas realizadas.
Usar la frecuencia del PWM a 1 KHz con una frecuencia del reloj de microcontrolador 4MHz
Determinar:
a) Relación entre entrada de glucosa y concentración de insulina a inyectar
b) Relación que entre el nivel de glucosa y el ciclo de trabajo (Duty Cycle)
c) Diagrama de flujo del programa
d) Esquema del circuito electrónico.
e) Listado del programa en lenguaje C (XC8)
Solución
a) Relación entre los datos de entrada y el nivel de glucosas:
Si para el dato 0000 (0) corresponde 50 mg/dl y para el dato 1111 (15) corresponde 200 mg/dl.
195
Problemas de electrónica digital
(200 − 50) ∙
= + 50 = 10 ∙ + 50
15
Se pueden utilizar dos variables de tipo SHORT INTEGER para definir las variables DATA INPUT y GLUCOSA
LEVEL.
Duty=510-5,1·GL
196
Tema 12. Lenguaje C para compilador XC8
Al utilizar la libraría upvLCDlib.c los pines RB4 a RB7 se reservan la transmisión de datos del
microcontrolador al panel LCD y los pines RA0 y RA1 para control del panel (RS y E).
La salida RB3 se utiliza para el control del motor por medio de PWM.
Las entradas RA2 a RA5 para la entrada del número correspondiente a la concentración de glucosa.
197
Problemas de electrónica digital
198
Tema 12. Lenguaje C para compilador XC8
Problema 12.29
Un tensiometro es un dispositivo que se utiliza para medir la
presión arterial. La presión arterial se registra típicamente
mediante dos números: la presión sistólica, el número superior y
que mide la presión en las arterias cuando el corazón late (cuando
el músculo cardíaco se contrae); y la presión diastólica, el número
inferior y que mide la presión en las arterias entre los latidos del
corazón. La presión arterial generalmente se mide en milímetros de
mercurio (mm Hg). Desde la década de 1990 se ha desarrollado una
nueva familia de técnicas basadas en el llamado principio de
velocidad de onda de pulso (Pulse Wave Velocity, PWV). Estas
técnicas se basan en el hecho de que la velocidad a la que un pulso de presión arterial viaja a lo largo del
árbol arterial depende, entre otras variables, de la presión arterial subyacente. La principal ventaja de estas
técnicas es que es posible medir los valores de PWV de un sujeto de forma continua (beat by beat), sin
supervisión médica, y sin necesidad de inflar los brazos braquial.
Entre varias de estas técnicas hay una técnica PWV que determina la presión arterial media (Mean Arterial
Blood Pressure - MAP) mediante la relación entre la presión de pulso sistólica (Systolic Pulse Pressure - SP) y
la presión de pulso diastólica (Diastolic Pulse Pressure - DP), tal como muestra la siguiente figura1:
1 2
MAP (mmHg) = (SP) + (DP)
3 3
Diseñar un sistema basado en el PIC16F88 que realice la medida de la MAP en función de SP y DP.
La señal de entrada al convertidor analógico-digital (DAC) del microcontrolador será muestreada con una
frecuencia de 8 Hz (es decir cada 125ms). El muestreo se realizará usando la interrupción del Timer0
(TMR0) y realizando la conversión en la propia interrupción. Los datos adquiridos se guardarán en la
memoria RAM, reservando para ello una matriz de datos (DATA[X]).
1
Islam, M. M., Rafi, F. H. M., Ahmad, M., Mitul, A. F., Mansur, T. T., & Rashid, M. A. (2012, December). Microcontroller based health care
monitoring system using sensor network. In Electrical & Computer Engineering (ICECE), 2012 7th International Conference on (pp. 272-275). IEEE.
199
Problemas de electrónica digital
El periodo total de un muestreo será de 5 s. Una vez finalizado este periodo se inhabilitará el muestreo
hasta el siguiente periodo de medida. Tras cada periodo de medida se determinará el número de máximos
(SP) y mínimos (DP) de los datos adquiridos. La determinación de los máximos y mínimos se puede realizar
mediante el estudio del signo del incremento en un punto.
Una vez determinado el número de SP y DP en 5 s se debe extrapolar a 60 s y determinar el valor del MAP.
Utilizar un display LCD para visualizar los valores de SP, DP y MAP en mmHg.
1. Escribir un programa (PART1) solamente con el muestreo ADC utilizando la interrupción del TMR0 sin la
limitación de 5 s de medida y sin calcular los parámetros de medida.
1.1. Determinar el valor del registro TMR0.
1.2. Utilizar el pin RA1 para medir con el osciloscopio el periodo de interrupción (≈125ms).
1.3. Visualizar, utilizando el “Watch Window”, el valor de ADRESH, ADRESL y las 5 primeras posiciones
de DATA[x] (todas ellas en su respectivo formato).
2. Escribir un programa (PART2) con el muestreo ADC utilizando la interrupción del TMR0 con la
limitación de 5 s de medida y calculando los parámetros de medida SP, DP y MAP. Escribir el
programa para realizar solo una medida.
2.1. Desarrollar un algoritmo que determine los máximos y mínimos locales de una matriz 1D.
2.2. Determinar el valor de MAP (no usar variable float).
2.3. Visualizar, mediante “Watch Window” el valor de ADRESH, ADRESL y las 5 primeras posiciones de
DATA[x], la variable de control de tiempo, el valor de DP,SP y MAP (todas ellas en su respectivo
formato).
2.4. Mostrar la palabra “MEASURING” durante la medida y visualizar el valor de DP, SP y MAP.
Visualizar el valor de SP y DP en dos líneas durante 2 s and y a continuación el de MAP en una sola
línea. Utilizar el puerto B para el LCD.
200
Tema 12. Lenguaje C para compilador XC8
Solución
PARTE 1
Las mediciones se realizarán durante la interrupción activada por el módulo TMR0. De acuerdo con el
enunciado del problema, la recopilación de datos debe realizarse cada 125 ms ya que la frecuencia de muestreo
es 8Hz y sólo 5 s de datos deben almacenarse en la memoria RAM utilizando la variable DATA [x] cuyo tamaño
es: 5 s / 125ms = 40. Sin embargo, en esta parte, esta limitación de 5 s no se programará y se almacenarán más
valores de los necesarios, ya que el objetivo de esta parte es mostrar cómo funciona el módulo TMR0 y el
convertidor A / D.
La frecuencia del reloj interno del microcontrolador debe ser 31.25 kHz.
4
T=T ∙ P ∙ (256 − TMR0) = ∙ P ∙ (256 − TMR0)
F
4
T = = 1.28 ∙ 10 → 0.125 = 1.28 ∙ 10 ∙ P ∙ (256 − TMR0)
31.25kHz
−976.5625
P ∙ (256 − TMR0) = 976.5625 → TMR0 = + 256 = 194.96~195
P
La tasa de prescaler (P) seleccionada es P = 16, ya que es la más adecuada para obtener un valor del TMR0
entre 0 y 256. Después de diseñar el programa y simular el programa, el período medido es superior a 125 ms y
por lo tanto el valor final utilizado para TMR0 para obtener el período deseado es TMR0 = 199.
201
Problemas de electrónica digital
Programa
RA1 se utiliza para ver la frecuencia de oscilación de TMR0 a medida que cambia de 0 a 1 cada vez que se
realiza la interrupción TMR0. Durante esta interrupción, el valor analógico procedente del sensor es leído y se
almacena en la variable DATA.
Antes de terminar la interrupción, el TMR0 vuelve a ajustarse a 199 y el flag de interrupción se pone a 0
(INTCON.TMR0IF = 0) para que el programa vuelva a entrar en la interrupción cuando sea necesario.
#include <stdio.h>
#include <stdlib.h>
#include <xc.h>
#include <upvADlib.h> // llamada libreria conver A/D
#define _XTAL_FREQ 31250
#pragma config CP = OFF, CC CCPMX = RB0, DEBUG = OFF, WRT = OFF, CPD = OFF
#pragma config LVP = OFF, BOREN = OFF, MCLRE = OFF, PWRTE = OFF, WDTE = OFF
#pragma config FOSC = INTOSCIO, IESO = OFF, FCMEN = OFF
char cnt;
int R, Data[40]; //entero de 16 bits para guardar 10 del ADC
void main() {
cnt=0;
ANSEL=0b00000001; // A0 analógico, A1 digital
TRISA=0b00000001; // RA0 entrada, RA1 salida (oscilosc)
OSCCON=0b00001100; // oscilador f=31.25kHz
OPTION_REG = 0b00000011; //escala 1:16 (bits [2..0]=011)
INTCON = 0b10100000; // config interrup TMR0
TMR0=199;
while (1); // programa principal sin tarea
}
202
Tema 12. Lenguaje C para compilador XC8
Visualización
PARTE 2
En esta segunda parte, se utilizarán algunas de las partes del programa diseñado en la primera parte. Sin
embargo, se añadirán nuevas funciones al programa, ya que este es el programa final donde se calculará el
número de máximos y mínimos y se mostrará la presión arterial (MAP) en el módulo LCD. La limitación 5s de la
recuperación de datos se evaluará en esta parte. El diseño de TMR0 será el mismo que antes con el mismo valor
de prescaler y TMR0.
Programa
El módulo LCD se asigna al puerto B y bits RA1 y RA2 según las propiedades de la librería upvLCDlib.c
En la definición de variables se incluye una matriz de enteros con signo para determinar el signo del incremento
del valor en la matriz de datos para determinar los máximos y mínimos:
unsigned int8 cnt=0, SP=0, DP=0, MAP=0, i;
unsigned int16 R, Data[40];
int Subs[40]; //Matriz de enteros con signo para medir max y min.
En la función principal se añade el algoritmos para calcular los máximos y mínimos de la matriz DATA[40] y el
cálculo de MAP:
for (i=0;i<=39;i++ )
{
subs[i]=(Data[i+1])-(Data[i]);
}
for (i=0;i<=39;i++ ) //max
{
if ((subs[i]>=0) && (subs[i+1]<0)) SP++;
if ((subs[i]<0) && (subs[i+1] >=0)) DP++;
}
203
Problemas de electrónica digital
204
Tema 12. Lenguaje C para compilador XC8
En la pantalla LCD se visualiza "Measuring ..." siempre y cuando la matriz DATA no esté llena, lo que
significa que "cnt <40". Una vez recuperados todos los datos, lo que ocurre después de 5 segundos, se cumple la
condición "if" y se ejecutan las instrucciones en su interior.
En primer lugar, las interrupciones para evitar más medidas. Entonces, con la estructura "for" se
determinan cuántos máximos y mínimos tiene la señal de entrada, comparando un valor con el valor anterior y el
siguiente. Si tanto el valor anterior como el siguiente son inferiores, el valor que estamos evaluando es un
máximo (SP). Si los valores anteriores y siguientes son más altos, es un mínimo (DP). Estos valores para SP y DP
se extrapolan a continuación de 5 segundos a 60 segundos multiplicándolos por 12.
Finalmente, tanto SP como DP se visualizan en el módulo LCD y se realiza el cálculo para MAP, explicado
en la introducción, para finalmente mostrar el valor de la presión sanguínea (MAP) en el módulo LCD.
Visualización
Con el generador de señal se puede crear, por ejemplo, una señal senoidal de 1.9 Hz (o cualquier otro valor), que
implica 10 máximos y 9 mínimos en un intervalo de 5 s. Es decir, 10x12=120 de DP y 9X12=108 de SP y por lo
tanto 116 de MAP.
205
Problemas de electrónica digital
Problema 12.30
206
Tema 12. Lenguaje C para compilador XC8
A continuación se muestra un sistema de medición de nivel de líquido basado en un sensor capacitivo conectado a
tierra remoto y que utiliza una conversión capacitancia-a-período como método para medir la capacitancia y, en
consecuencia, el nivel de líquido2. El objetivo de este problema es diseñar el sistema que mida la capacitancia según
este método utilizando el microcontrolador PIC16F88 y el lenguaje C.
La figura muestra el circuito de interfaz diseñado para el sensor capacitivo de nivel de líquido conectado a tierra.
Los bloques principales son:
(1) un multiplexor analógico, que selecciona la capacitancia a medir,
(2) un oscilador de relajación, que realiza una conversión capacitancia-periodo, y
(3) un microcontrolador, que realiza una conversión de periodo a valor digital.
El circuito de interfaz se auto-calibra en términos de errores aditivos (offset) y/o multiplicativos (de ganancia) (por
ejemplo, debido a cambios de temperatura o voltaje) aplicando la técnica de tres señales3. Esta técnica implica tres
medidas:
(1) una medición de sensor,
(2) una medida de referencia, y
(3) una medición de desplazamiento.
La referencia utilizada es un condensador cerámico NP0 (Cref) de capacidad 500 nF, que es aproximadamente el
valor máximo de del sensor. El offset es representado por la capacidad Coff (60 nF), que es la capacidad de dispersión
total (del circuito de interfaz, no del sensor) a tierra. Esta capacidad de offset afecta a las tres medidas.
Un multiplexor, con tres interruptores de dos-a-uno (74HC4053), selecciona qué capacitancia está conectada al
oscilador. Para cada medida, el conmutador correspondiente está en la posición A (es decir, conectado al oscilador),
mientras que los otros dos están en la posición B (es decir, conectados a tierra). Por ejemplo, para la medición del
sensor, el interruptor S1 está en la posición A, mientras que S2 y S3 están en la posición B. La tabla resume el valor de
la capacitancia equivalente conectada al oscilador para cada una de las tres medidas
2
Reverter, F., Li, X., & Meijer, G. C. (2007). Liquid-level measurement system based on a remote grounded capacitive sensor. Sensors and Actuators
A: Physical, 138(1), 1-8.
3
F. Reverter, R. Pall`as-Areny, Direct Sensor-to-Microcontroller Interface Circuits. Design and Characterisation, Marcombo, Barcelona, 2005.
207
Problemas de electrónica digital
Se ha seleccionado R1 = R2 = R3 (= 10 kΩ) de
modo que VTL = VDD/3, VTH = 2VDD/3 y T=Rc*C*ln4. Oscilador de relajación (a) y formas de onda de salida (b)
La resistencia de carga es Rc = 100 kΩ.
El microcontrolador controla el multiplexor y luego mide el periodo de la señal de salida del oscilador. La medida
del periodo se realiza mediante un temporizador (timer), dando como resultado un número digital N. El
microcontrolador utilizado es un PIC16F88 (Microchip) funcionando a 31.250 kHz. El temporizador de 8 bits TIMER0 y
la entrada RB0 se utilizan para realizar la medida de tiempo con una resolución de temporización digital Tcm = 4*Tck=
128 μs. Con el fin de reducir los efectos relativos de la cuantificación, el microcontrolador mide 10 períodos
consecutivos de la señal de salida del oscilador. La tabla resume el valor del número digital resultante (Nx, Nref y Noff)
para cada una de las tres medidas. Una vez se obtienen los valores digitales Nx, Nref y Noff, se aplica la técnica de
autocalibración de tres señales con la siguiente relación:
−
=
−
208
Tema 12. Lenguaje C para compilador XC8
Dado que el diseño requiere una capacidad mínima de 60 nF y una máxima de 560 nF, la frecuencia experimental
del oscilador es, aproximadamente, de 9 a 48 Hz, es decir, una Ton entre 10 y 60 ms. El prescaler del TMR0 debe ser
elegido de modo que este Ton pueda ser medido, teniendo en cuenta que el Tcm es de 128 μs.
Primera parte:
1. Determinar el valor del prescaler TMR0. Indicar el Ton máximo y mínimo a medir con este prescaler.
2. Reservar direcciones de memoria RAM para las variables: N, Nx, Nref, Noff, M y Cx.
3. Escribir la rutina de interrupción de acuerdo con el diagrama de flujo (figura 4).
4. Escribir el programa principal de acuerdo con el diagrama de flujo (figura 5). Guardar el valor de N sólo en el
último período de la décima lectura.
5. Realizar la simulación y crear un “Watch Window” con las variables Nx, Nref, Noff y Cx.
Segunda parte:
1. Modificar el programa anterior para medir el N durante todo el período T de la señal y no sólo para la Ton.
2. Comentar si hay alguna diferencia en las medidas y a que puede ser debido.
209
Problemas de electrónica digital
Solución
74HC_HCT4053
Triple 2-channel analog
multiplexer/demultiplexer Fig. 1.- Diagrama de flujo del programa principal.
Primera Parte:
Determinar el valor del prescaler TMR0.
Indicar el Ton máximo y mínimo a medir con
este prescaler.
Tal como se comenta en el enunciado la frecuencia experimental del oscilador es, aproximadamente, de 9 a 48
Hz, es decir, una Ton entre 10 y 60 ms aproximadamente. Teniendo en cuenta la ecuación que permite calcular el
periodo de TMR0:
= ∙ (256 − ) ∙
Con un prescaler de 2 y con el Tcm de 128 µs, y según los valores máximos y mínimos del TMR0 se pueden medir
los siguientes Ton:
X=0 Ton = 65 ms
X=255 Ton =0.256 ms
Por lo tanto con un prescaler de 2 la medida de periodos fijos de tiempo puede realizarse entre un mínimo de
0.256 ms y un máximo de 65 ms. Declarar las variables: N, Nx, Nref, Noff, M y Cx.
Int8 COUNT,NX,NREF,NOFF,N;
float M,C;
210
Tema 12. Lenguaje C para compilador XC8
Escribir el programa principal de acuerdo con el diagrama de flujo. Guardar el valor de N sólo en el último
período de la décima lectura.
211
Problemas de electrónica digital
212
Tema 12. Lenguaje C para compilador XC8
2. Realizar la simulación y crear un “Watch Window” con las variables Nx, Nref, Noff y Cx.
Segunda Parte:
a) Modificar el programa anterior para medir el N durante todo el período T de la señal y no sólo
para la Ton.
El prescaler debe ser modificado ya que los máximos y mínimos en el valor de periodo cambian, si se considera
el periodo completo serán de 9 a 48 Hz, es decir entre 20 y 110 ms aproximadamente. No es suficiente con un
prescaler de 2, así que con uno de 4 2 y con el Tcm de 128 µs, y según los valores máximos y mínimos del TMR0
se pueden medir los siguientes T:
X=0 T= 131 ms
X=255 T=0.512 ms
Además, se debe modificar la rutina de interrupción para que solo se produzca el cambio en el flanco de subida:
b) Comentar si hay alguna diferencia en las medidas y a que puede ser debido.
La precisión de la medida se ha mejorado ya que se mide el período total y no sólo el Ton. Ton no tiene por qué ser
el 50% del período a ser medido y por lo tanto se está cometiendo un error en la medida si sólo se considera una
parte del período.
213
ANEXO
En este anexo se incluyen las llamadas a librerías en lenguaje C (compilador XC8) que se
han utilizado en el último tema de esta publicación.
Estas librerías fueron realizadas por el alumno José Santacreu Balaguer en su Trabajo Fin
de Grado. Los autores de esta publicación agradecemos su trabajo.
• lcdIni(int E, int RS, int d7, int d6, int d5, int d4); // Conexión entre panel LCD y PIC, nº pin
Ejemplo: lcdIni(18,17,13,12,11,10); // E y RS se conectan al PORTA y d7, d6, d5 y d4 a PORTB.
Esta función hay que ponerla siempre
• lcdXY( unsigned char x, unsigned char y); // coordenadas de escritura del carácter (16x2)
Ejemplo: lcdXY(6,1); // 6ª columna, 1ª fila. Por defecto es 1,1
215
Problemas de electrónica digital
Ejemplos:
lcdSend(setCmd, NoBlink); // cursor no parpadea
lcdSend(setCmd, NoShow); // no muestra el cursor
216
Anexo
NumPin Descripción
PinPWMB0 La señal PWM se assigna al pin B0
PinPWMB3 La señal PWM se assigna al pin B3
Preescaler Descripción
Pre1 Valor del Preescaler del TMR2 fijado en 1.
Pre4 Valor del Preescaler del TMR2 fijado en 4
Pre16 Valor del Preescaler del TMR2 fijado en 16
Para una frecuencia del oscilador de 4MHz, Tosc=0.25µs y el periodo máximo que se puede obtener en el
PWM será: PWMperiod= 256*4*0.25*16=4096µs.
217
BIBLIOGRAFÍA GENERAL
• Floyd, Thomas L. (2016) Fundamentos de Sistemas Digitales. 11º ed. Ed. Pearson Educación.
• Floyd, Thomas L. (2015) Digital fundamentals. 11º ed. Ed. Pearson Educación.
• Tocci, Ronald J.; Windmet, Neal S.; L. Moss, Gregory. (2016). Sistemas Digitales: Principios y
Aplicaciones. 10ª ed. Pearson Educación de Mexico.
• Tocci, Ronald J.; Windmet, Neal S.; L. Moss, Gregory. (2014). Digital systems: principles and
applications. Ed. Pearson Educación.
• Mano, M. Morris. Diseño Digital. 3ª ed (2016) Ed. Pearson.
• Mano, M. Morris. Digital Design. 4ª edición (2016) Ed. Pearson.
• Roth, Charles H. (2004) Fundamentos de Diseño Lógico. 5ª ed. Ed. Paraninfo.
• Roth, Charles H. (2014) Fundamentals of Logic Design. 7º ed. Ed. Cengage Learning.
• Mandado, Enrique; Martín, Jose Luis. Sistemas Electrónicos Digitales. 10º ed. Marcombo Kleitz,
William (2014). Digital electronics: a practical approach with VHDL. 9th ed. Prentice Hall.
• Ashenden, Peter J. (2008). The student's guide to VHDL 2nd ed. Morgan Kaufmann cop.
• Hermosa, Antonio (2010). Electrónica Digital Fundamental y Programable. 4ª ed. Marcombo
• Hermosa, Antonio (1997). Técnicas electrónicas digitales: tecnología y circuitería en TTL y CMOS.
Ed. MARCOMBO.
• Corres, Jesús Mª; Ruiz, Carlos; Bariáin, Cándido. (2015). Ejercicios de Programación con
Microcontroladores PIC. Ed. MARCOMBO.
219
Problemas de electrónica digital
• Etxebarría Isuskiza, Mikel (2011) Microcontroladores PIC. Teoría y Práctica. Ed. Creaciones
Copyright.
• Barriáin, Cándido; Corres, Jesús Mª; Ruiz, Carlos. (2017). Programación de microcontroladores PIC
en lenguaje C. Marcombo.
• Etxebarria Isuskiza, Mikel (2011). Microcontroladores PIC: teoría y práctica: el PIC16F88X y el
laboratorio USB-PIC'School. Creaciones Copyright, D.L.
220