Sunteți pe pagina 1din 153

1

Problemas de Electrnica Digital


para los Ciclos Formativos de Electricidad-Electrnica




Profesor :
J. Javier Quintana Peir
Registro Legal de propiedad de autor :
AB-482-2002
CDU: 621.3 (076)



1 Problemas puertas lgicas, karnaugh ...
2 Problemas de cdigos y circuitos msi.
3. Problemas de aritmtica binaria
4 Problemas de biestables y registros
5 Problemas de contadores
6 Problemas de astables, retardadores y monoestables digitales
7 ALARMA AIN 302
9 Problemas de memorias.
10 Microcontroladores CPIC16F84
11 Microprocesador P 8085

2
Indice :

1 Problemas puertas lgicas, karnaugh ... __________________________________ 5
1.1 Enunciados ____________________________________________________________ 5
1.2 Solucin a los problemas de puertas lgicas, karnaugh ... ______________________ 8
2 Problemas de cdigos y circuitos msi. ___________________________________ 16
2.1 Enunciados de problemas de cdigos ______________________________________ 16
2.2 Enunciados de problemas circuitos msi ____________________________________ 16
2.3 Esquema de los Decodificadores __________________________________________ 18
2.3 Esquema de los Decodificadores __________________________________________ 19
2.4 Soluciones a los problemas de cdigos _____________________________________ 20
2.5 Soluciones a los problemas de circuitos msi _________________________________ 20
3. Problemas de aritmtica binaria _______________________________________ 25
3.1 Enunciados de ejercicios de suma binaria __________________________________ 25
3.2 Enunciados de ejercicios de resta binaria __________________________________ 25
3.3 Enunciados de ejercicios de suma y resta BCD ______________________________ 25
3.4 Enunciados de ejercicios de suma y resta en HEX ___________________________ 25
3.5 Soluciones ejercicios suma binaria ________________________________________ 26
3.6 SolUciones ejercicios resta binaria ________________________________________ 26
3.7 Soluciones ejercicios suma y resta en BCD _________________________________ 27
3.8 Solciones ejercicios suma y resta en HEX __________________________________ 28
4 Problemas de biestables y registros _____________________________________ 29
4.1 Resumen de biestables y registros _________________________________________ 29
4.2 Enunciados de problemas de cronogramas de biestables ______________________ 29
4.2 Enunciados de problemas de cronogramas de biestables ______________________ 30
4.3 Enunciados de problemas de registros _____________________________________ 31
4.4 Soluciones a los problemas de cronogramas de biestables _____________________ 34
4.5 Soluciones a los problemas de biestables ___________________________________ 35
5 Problemas de contadores _____________________________________________ 38
5.1 Enunciados de ejercicios de contadores ____________________________________ 38
5.2 Soluciones a los problemas de contadores __________________________________ 39
6 Problemas de astables, retardadores y monoestables digitales ________________ 54
6.1 Enunciados de problemas _______________________________________________ 54
6.1.1 Problemas de monoestables con puertas lgicas y 74121 74221 74122 y 74123 ___________ 54
6.1.2 Problemas con 555 __________________________________________________________ 55
6.1.3 Problemas con trigers y retardadores ____________________________________________ 55
6.1.3 Problemas con trigers y retardadores ____________________________________________ 56
6.2 bacos y frmulas 74122 74123 74121 y 555 ________________________________ 57
3
6.3 Soluciones a los problemas _______________________________________________ 58
6.3.1 Soluciones monoestables con puertas lgicas y 74121 74221 74122 y 74123 _____________ 58
6.3.2 Soluciones a los problemas con el 555 ___________________________________________ 59
6.3.3 Soluciones a los problemas con trigerr y retardadores _______________________________ 60
7 ALARMA AIN 302 __________________________________________________ 61
8.1.- Qu es un autmata programable? ______________________________________ 69
8.2 Partes de un autmata programable _______________________________________ 70
8.3.- Lenguajes de programacin ____________________________________________ 73
8.4 Caso prctico Autmata LOGO! 230RC ___________________________________ 75
8.5 Programacin del LOGO! _______________________________________________ 76
8.8 Ejercicios con el LOGO! ________________________________________________ 78
8.8.1 Ejercicios manejo funciones generales ___________________________________________ 78
8.8.1 Ejercicios manejo funciones especficas __________________________________________ 79
8.8.3 Ejercicios globales funciones generales+funciones especiales GF+SF tericos ___________ 80
8.8.4 Ejercicios GF+Sf casos prcticos _______________________________________________ 82
8.9 Soluciones ejercicios del LOGO __________________________________________ 84
8.9.1 Soluciones a los ejercicios de funciones generales GF _______________________________ 84
8.9.2 Soluciones a los ejercicios LOGO funciones especiales _____________________________ 86
8.9.3 Soluciones a los ejercicios GF+SF tericos _______________________________________ 87
8.9.4 Soluciones a los ejercicios GF+SF casos prcticos _________________________________ 90
8.10 Ejemplos prcticos del LOGO ___________________________________________ 93
8.10.1 Pulsador de Confort ________________________________________________________ 93
8.10.2.-Puerta automtica _________________________________________________________ 94
8.10.3.- Instalacin de ventilacin ___________________________________________________ 94
8.10.3.- Instalacin de ventilacin ___________________________________________________ 95
8.10.4.- Portn corredizo __________________________________________________________ 96
8.10.5.- Cadenas luminosas ________________________________________________________ 97
8.10.6.- Bomba de aguas residuales__________________________________________________ 98
9 Problemas de memorias. ______________________________________________ 99
9.1 Enunciados ejercicios de memorias _______________________________________ 99
9.2 Soluciones ejercicios de memorias _______________________________________ 101
10 Microcontroladores CPIC16F84 ____________________________________ 107
1 Introduccin a los microcontroladores _____________________________________ 107
1.1 Tipos de PIC _______________________________________________________________ 108
1.2 Caractersticas del PIC 16X84 __________________________________________________ 108
1.3 Herramientas para la compilacin _______________________________________________ 109
1.4 Cmo se hace con lenguaje ensamblador? ________________________________________ 110
1.5 Cmo se hace con Basic? _____________________________________________________ 110
1.6 Cmo se hace en C? _________________________________________________________ 110
1.7 Simulacin SIMUPIC ________________________________________________________ 111
1.8 Cmo se programa el PIC? ___________________________________________________ 112
1.9 Placa TE20 ________________________________________________________________ 113
2 Breve repaso al lenguaje C _______________________________________________ 113
3 Ejercicios _____________________________________________________________ 115
3.1 Enunciados ________________________________________________________________ 115
3.2 Soluciones _________________________________________________________________ 116
4 tarjetas PIC ___________________________________________________________ 118
11 Microprocesador P 8085 __________________________________________ 119
4
1.- INTRODUCCIN Microprocesador 8085 _________________________________ 119
1.1.- El 8085 dentro de los tipos de microprocesadores que hay ___________________________ 119
1.2 En resumen ________________________________________________________________ 120
2.- Hardware del 8085 ____________________________________________________ 121
3.- Instrucciones del 8085 __________________________________________________ 123
3.1.- Instrucciones de transferencia de datos __________________________________________ 123
3.2.- Instrucciones aritmticas _____________________________________________________ 124
3.3.- Instrucciones lgicas ________________________________________________________ 124
3.4 Instrucciones de desplazamiento ________________________________________________ 125
3.5 Instrucciones de salto ________________________________________________________ 125
3.6 Instrucciones para las subrutinas ________________________________________________ 125
3.7.-Instrucciones de control ______________________________________________________ 125
4.- Manejo del simulador 8085 SIM8085 _____________________________________ 126
4.1 EJERCICIOS CON EL SIMULADOR 8085 ______________________________________ 127
9.3.1.1.-Ejercicios de transferencia de datos ________________________________________ 127
9.3.1.2 Ejercicios de operaciones aritmticas _______________________________________ 127
9.3.1.3 Ejercicios de bucles _____________________________________________________ 127
9.3.1.4. Ejercicios con subrutinas y puertos ________________________________________ 127
4.2 Soluciones ejercicios sim8085. _________________________________________________ 128
5.- Manejo entrenador 8085 ________________________________________________ 130
5.1 Prcticas para el manejo del entrenador __________________________________________ 130
5.2.- Cmo grabar y ejecutar el programa en el entrenador? _____________________________ 131
5.3 Hardware y Mapa de memoria en el entrenador ____________________________________ 131
5.4.- Subrutinas prediseadas de fbrica _____________________________________________ 132
5.5 Interrupciones ______________________________________________________________ 133
5.6.- Entrada y salida ____________________________________________________________ 134
9.4.6.1.-Perifricos del entrenador 8085 ___________________________________________ 134
9.4.6.2.-Cmo programar los puertos? ____________________________________________ 134
5.7 EJERCICIOS CON EL P 8085 ________________________________________________ 136
9.4.7.1 EJERCICIOS DE RUTINAS DE CONSOLA ________________________________ 136
9.3.7.2 EJERCICIOS DE PUERTOS _____________________________________________ 136
5.8 EJERCICIOS CON EL P8085 ________________________________________________ 137
6.- El semforo __________________________________________________________ 140
7.- pROGRAMACIN AVANZADA 8085 ___________________________________ 141
Soluciones. ___________________________________________________________________ 143
APENDICE A CONEXIN ENTRE 8085 Y EL PC ___________________________ 146
APENDICE B COMANDOS ENTRE 8085 Y EL PC ___________________________ 146
APENDICE C COMANDOS ENTRENADOR 8085 ___________________________ 147
APENDICE D SUBRUTINAS PREDISEADAS ______________________________ 147
APENDICE E GRABAR Y LEER DESDE CASSETTE ________________________ 147
APENDICE F LENGUAJE ALTO NIVEL, ENSAMBLADOR Y MQUINA ______ 148
Apendice G Problemas Digital Mc Graw _____________________________________ 149
Indice de glosarios _______________________________________________________ 150

5
1 Problemas puertas lgicas, karnaugh ...
1.1 ENUNCIADOS

1. Pasar el circuito formado por puertas lgicas o circuito combinacional a funcin lgica o Booleana

2. Pasar a puertas lgicas las funciones booleanas siguientes :
a) F= (((AB)'(C'+D'))+(A+B'))'
b) F = (((A+B)'+(C'D'))')+(A'+B')'(C(A+B)')'

3.- Pasa la funcin lgica de los circuitos combinacionales siguientes a tabla lgica o tabla de verdad
a) F = A'BC'+A'BC+AB'C'+ABC'
b)

4. Realizar la tabla de verdad de los circuitos del ejercicio 1

5. Convierte las siguientes tablas a funciones lgicas utilizando el mtodo de los MINitrminos y
MAXitrminos
Tabla a)
a b c F
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 0

6
Tabla b)
n a b c d F
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1
10 1 0 1 0
11 1 0 1 1
12 1 1 0 0
13 1 1 0 1
14 1 1 1 0
15 1 1 1 1

6. Simplificar por el mtodo de lgebra de Boole
a) a a b a F + + =
b) d c b a c b a c b a F + + =
c) ) ( c b a c b a b a F + =
d) a c b a F + + + =
e) c b a c b a F + =
f) a c b a F + =
7.- Pasar a puertas NAND de 2 puertas 7400
a) ) ( b a bc a F + + + =
b) d ac d c ab ab F + + + = ) (
c) )) ( )( ( ) )( ( d c b a d c cd da c b a F + + + + + + + =
8. Pasar las siguientes funciones a puertas NOR7402
a) ) ( d c b c ab F + + =
b) )) ( ( ( ) ( ) ( e d c c b b d c b a + + + + +
c) ) ( )( ( d c b a c b c b a F + + + + = )

9. Supongamos un sistema de alarma de tres interruptores a b y c, cuando esten los tres en Off, o slo el b
On tiene que activarse la alarma, el caso contrario tambin, es decir cuando esten los tres On o slo el b
Off. Realizar el circuito en puertas NAND.

10. Supongamos una alarma de tres interruptores que se tiene que activar cuando est slo b en Off o slo
el b en On. Si slo esta el interruptor c en On o slo esta en Off es indiferente la activacin del sistema.
Tambin si estn todos en Off es indiferente.

11. Teniendo en cuenta slo las entradas I1 I2 I3 e I4 realizar un programa que Q1=1 si el nmero de
interruptores activados superan o igualan al nmero de interruptores desactivados. Realizarlo con puertas
NAND de dos entradas 7400.

12. Teniendo en cuenta slo las entradas I1 I2 I3 e I4, hacer un programa que si hay dos interruptores
contguos activados, entonces Q1=1. Si I1=0 e I4 =0 entonces la salida Q1 es indiferente. Realizarlo con
puertas NAND de dos entradas 7400.
7

13. Disear un circuito de apertura de un garaje de coches, existen 4
entradas, mirando la figura:
a = detector de coche en la entrada
b = llave de entrada
c = detector de coche que quiere salir
d = llave de abrir dentro del garaje
Se tienen 5 salidas en el circuito :
M = Motor de la puerta. 0 = cierra. 1 = abrir.
R1 V1 = Luces roja y verde a la entrada del garaje
R2 V2 = Luces roja y verde dentro del garaje.
Se tiene que abri si se hay coche en la entrada y acciona la llave de entrada y no hay nadie dentro o si
hay alguien dentro y acciona la llave de abrir.
La luz roja R1 se tiene que encender si hay alguien dentro que quiere salir. La luz V1 se tiene que
encender si hay alguen fuera, y dentro no hay nadie.
La luz roja R2 se tiene que encender si hay alquien fuera que quiere entrar, y la luz V2 se tiene que
encender si hay alguien dentro y fuera no hay nadie.
Si hay dos coches en la entrada y dentro y los dos accionan la llave a la vez, las luces deben de indicar
que tiene preferencia el de dentro, la puerta se abre.
Disear el circuito con el mnimo de circuitos integrados. No disear los finales de carrera, sistemas de
seguridad y el sistema automtico de cierre de la puerta. Realizarlo con puertas NAND de 2 ent

14. Disear un circuito lgico de un sistema de alarma de 3 interruptores a b y c, que se active si hay
slo dos interruptores encendidos, si slo esta el b tiene que estar apagado, y el resto de combinaciones es
indiferente la salida. Realizarlo con puertas NAND de 2 ent 7400

15. Disear un circuito lgico de un sistema de alarma de 4 interruptores a b c y d , que se active si hay 3
o 4 interruptores activados, se desactive si hay uno o ninguno activado y es indiferente si hay 2 activados.
Realizarlo con puertas NOR 7402

16. Realizar un circuito lgico de 4 interruptores a b c y d de tal manera que se active si b y c estan en
slos en "on" o a y c estan en slos en "on" o b y a estan en slos en "on" o slo c esta en "off".
Si esta slo c en "on" o el a slo en "on" o el d slo en "off" o todos en "on" entonces la activacin del
sistema es indiferente. El resto de estados 0. Utilizar el mnimo de puertas lgicas.

17. Disear un circuito lgico de un sistema de alarma de 4 interruptores a b c y d , que se desactive si
hay 3 o 4 interruptores activados, se active si hay uno o ninguno activado y es indiferente si hay 2
activados. Realizarlo con puertas NAND



8
1.2 SOLUCIN A LOS PROBLEMAS DE PUERTAS LGICAS,
KARNAUGH ...

1. a) ) ( ) ( d c b a + +
b) ) ) ( ) (( )))( ( ) ( ( ) (( d c c b c b b a b a F + + + + =

2. a) La funcin lgica que responde a la ecuacin (((AB)'(C'+D'))+(A+B'))' es

b) ) La funcin lgica que responde a la ecuacin (((A+B)'+(C'D'))')+(A'+B')'(C(A+B)')'

3 a) Se realiza operando en cada una de las combinaciones resultando :
a b c F
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 0

9
b) Se realiza operando en cada una de las combinaciones resultando :
a b c F
0 0 0 1
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 0

4.- a) El primer ejercicio, tiene de tabla de verdad la siguiente, que se puede hacer calculandolos de uno
en uno, o viendo que al ser una puerta OR saldr los unos de cada puerta, que en un caso en cuando A y B
sean a la vez 0 y 0 y en el otro caso ser cuando c y d sean a la vez 0 y 0
n a b c d F
0 0 0 0 0 1
1 0 0 0 1 1
2 0 0 1 0 1
3 0 0 1 1 1
4 0 1 0 0 1
5 0 1 0 1 0
6 0 1 1 0 0
7 0 1 1 1 0
8 1 0 0 0 1
9 1 0 0 1 0
10 1 0 1 0 0
11 1 0 1 1 0
12 1 1 0 0 1
13 1 1 0 1 0
14 1 1 1 0 0
15 1 1 1 1 0
b) En este ejercicio tan
complejo, lo mejor es hacer
combinaciones pero de cada uno de
los subcircuiotos

n a b c d 1 (a+b)' 2 a+b 3 bc
4 nand 1 3
5 or 2 4 6 cd' 7nor 6 3 F nand 5 7
0 0 0 0 0 1 0 0 1 1 1 0 1
1 0 0 0 1 1 0 0 1 1 1 0 1
2 0 0 1 0 1 0 0 1 1 1 0 1
3 0 0 1 1 1 0 0 1 1 0 1 0
4 0 1 0 0 0 1 0 1 1 1 0 1
5 0 1 0 1 0 1 0 1 1 1 0 1
6 0 1 1 0 0 1 1 1 1 1 0 1
7 0 1 1 1 0 1 1 1 1 0 0 1
8 1 0 0 0 0 1 0 1 1 1 0 1
9 1 0 0 1 0 1 0 1 1 1 0 1
10 1 0 1 0 0 1 0 1 1 1 0 1
11 1 0 1 1 0 1 0 1 1 0 1 0
12 1 1 0 0 0 1 0 1 1 1 0 1
13 1 1 0 1 0 1 0 1 1 1 0 1
14 1 1 1 0 0 1 0 1 1 1 0 1
15 1 1 1 1 0 1 0 1 1 0 1 0

10
5. a) En MINitrminos tenemos : c b a c b a c b a c b a F + + + =
En MAXitrminos : ) )( )( )( ( c b a c b a c b a c b a F + + + + + + + + =

b) En MINitrminos
d c b a d c b a d c b a d c b a d c b a d c b a d c b a d c b a d c b a d c b a F + + + + + + + + + =
En MAXitrminos
) )( )( )( )( )( ( d c b a d c b a d c b a d c b a d c b a d c b a F + + + + + + + + + + + + + + + + + + =

6. a) 1 = + = + + = a a a a b a F
b) ac abc ac abc ac ac d c b a c b a c b a F = + = + + = + + =
c) ab ab ab ab ab b a c b a c b a b a F = = + = + = ) ( ) (
d) 1 1 = + + = + + + = c b a c b a F
e) a bc a bc a c b a c b a F = + = + = ) ( ) (
f) bc a B a a aB B ab llamando Teorema a c b a F + = + = + = = => = + = ) 2 (
7. Haciendo MORGAN
a) ) ( ) ( ) ( ) ( b a bc a b a bc a b a bc a b a bc a F = + = + + + = + + + =
b ) Este ya es ms complejo ...
d ac d c ab ab d ac d c ab ab d ac d c ab ab
d ac d c ab ab d ac d c ab ab F
* ) * ( * * ) ( * * ) ( *
) ( ) (
= + = +
= + + + = + + + =


11
c) Bueno, y este mucho ms ....
) ) * ( * )( * ( * * ) * )( * (
) ) ( * )( * ( * * ) * )( * (
)) ( )( ( * * ) )( (
)) ( )( ( ) )( (
)) ( )( ( ) )( (
d c b a d c cd da c b a
d c b a d c cd da c b a
d c b a d c cd da c b a
d c b a d c cd da c b a
d c b a d c cd da c b a F
= +
= + + + + +
= + + + + + + +
= + + + + + + + =

Y el dibujo sera de la siguiente forma ...
8. a) ) ( ) ( ) ( ) ( d c b c b a d c b c ab d c b c ab d c b c ab F + + + + + = + + = + + = + + =
El dibujo sera :


12
b)
) ) ) ( ( ( ) ( ) (
) ) ) ( ( ( ) ( ) ( ) ) ( ( ( ) ( ) (
)) ( ( ( ) ( ) ( )) ( ( ( ) ( ) (
e d c c b b d c b a
e d c c b b d c b a e d c c b b d c b a
e d c c b b d c b a e d c c b b d c b a
+ + + + + + + + +
= + + + + + + + + = + + + + + + + +
= + + + + + = + + + + +


c)
) ) ( ( ) (
) ) ( ( ) ( )) ( ( ) (
)) ( )( ( )) ( )( (
d c b a c b c b a
d c b a c b c b a d c b a c b c b a
d c b a c b c b a d c b a c b c b a F
+ + + + + + + +
= + + + + + + + = + + + + + + +
= + + + + = + + + + =




9. La tabla de verdad, karnaugh y pasar a puertas NAND :


13
10. La solucin del problema pasa por considerar algunos como unos

11. Aqu lo que hay que hacer es una tabla de verdad con su correspondiente tabla de karnaugh :

I1I2 I3 I4 Q1 I1 I2\I3 I4 00 01 11 10
0000 0 00 0 0 1 0
0001 0 01 0 1 1 1
0010 0 11 1 1 1 1
0011 1 10 0 1 1 1
0100 0 La funcin es simplificando
F=I3I4+I1I2+I2I3+I2I4+I1I3+I1I4

0101 1
0110 1
0111 1
1000 0
1001 1
1010 1
1011 1
1100 1
1101 1
1110 1
1111 1

12 Aqu lo que hay que hacer es una tabla de verdad con su correspondiente tabla de karnaugh :

I1I2 I3 I4 Q1
0000 x
0001 0
0010 x
0011 1
0100 0
0101 0
0110 1
0111 1
1000 x
1001 0
1010 x
1011 1
1100 1
1101 1
1110 1
1111 1


I1 I2\I3 I4 00 01 11 10
00 X 0 1 X
01 0 0 1 1
11 1 1 1 1
10 X 0 1 X
La funcin es simplificando
Q1=I3 + I1I2

14
13. La tabla de verdad y las funciones de karnaugh ya simplificadas y pasadas a puertas NAND es
14. La tabla de verdad y el circuito pasado a puertas nand de dos entradas es
15. La funcin simplificada queda F=ab+cd pero para pasarla a puertas NOR hay que hacer Morgan :
d c b a cd ab F + + + = + = como podemos ver, las variables de entrada estn negadas, luego
podemos utilizar en vez de lgica positiva que nos obligara a unilizar puertas NOT para negarlas, utilizar
lgica negativa y as ahorarnos las puertas NOT 7404 de las variables de entrada :
16. En este caso la simplificacin por karnaugh da d c ab d c ab d c ab F * = + = + =
si utilizamos la lgica positiva nos sale el circuito de la izquierda, pero con la lgica negativa aplicada
slo en d el circuito de la derecha, sin una puerta NOT.


15

17. El circuito tiene como solucin d b c a F * * + = que al pasar en puertas NAND queda el circuito
de la derecha, pero usando la lgica negativa, nos ahorramos 4 puertas NOT con el circuito de la derecha.
16

2 Problemas de cdigos y circuitos msi.

2.1 ENUNCIADOS DE PROBLEMAS DE CDIGOS

1.- Rellena la siguiente tabla :

BINARIO DECIMAL HEXADECIMAL BCD
35
100100011
BC
11111011
74
101000111
2748
110110100100
5D
101000000

2.- Pasar a decimales
BINARIO 0.1 0.1111 0.0101
DECIMAL 0.808 0.616 0.587 0.1
2.2 ENUNCIADOS DE PROBLEMAS CIRCUITOS MSI
3.- Dibujar la salida del los siguientes chips 74148 7442 :


4.- Dibujar la salida de los siguientes chips 74138 74139









17

5. Dibuja el estado de los leds y el valor del display: (la salidas del 7447 son a nivel bajo, por eso se han
negado cada entrada del display) Chips 74148 7447

6.- Dibujar el estado de los leds 74151 74150


7. Mostrar el estado de los leds de la figura (E=Entrada de datos) Chipis 7442 7485

8. Supongamos un sistema de alarma de tres interruptores a b y c, cuando esten los tres en Off, o slo el b
On tiene que activarse la alarma, el caso contrario tambin, es decir cuando esten los tres On o slo el b
Off.
a) Realizar el circuito con el Decodificador 74138 y puertas NAND n entradas libre.
b) Realizar el circuito con el Decodificador 7442 y puertas NAND de 2 entradas
c) Realizar el circuito con el MUX 74151
d) Con un MUX genrico de 4 canales a 1

9. Teniendo en cuenta slo las entradas a b c y d realizar un programa que F=0 si el nmero de
interruptores activados superan o igualan al nmero de interruptores desactivados. F=1 en caso contrario.
a) Realizar el circuito con el Decodificador 74159 y puertas NAND n entradas libre.
b) Realizar el circuito con el Decodificador 7442 y puertas NAND de 2 entradas
c) Realizar el circuito con el MUX 74150
d) Realizar el circuito con el MUX 74151
18

10 Disear un circuito de apertura de un garaje de coches, existen 4 entradas, mirando la figura:
a = detector de coche en la entrada
b = llave de entrada
c = detector de coche que quiere salir
d = llave de abrir dentro del garaje
Se tienen 5 salidas en el circuito :
M = Motor de la puerta. 0 = cierra. 1 = abrir.

Se tiene que abrir si se hay coche en la entrada y acciona la llave de entrada y no hay nadie dentro o si
hay alguien dentro y acciona la llave de abrir. Si son los dos, se abre, existir una luz de aviso para este
caso.
Disear de apertura del motor el circuito con el mnimo de circuitos integrados. No disear los finales de
carrera, sistemas de seguridad y el sistema automtico de cierre de la puerta. Realizarlo con 74151.

11. Deducir la tabla de verdad del siguiente circuito combinacional msi
12. Deducir la tabla de verdad del circuito combinacional msi de la figura (fijarse bien) :

13. Deducir la tabla de verdad del circuito combinacional msi de la figura

14 A qu equivale este circuito?


15. Con varios MUX de 4 canales,
realiza un MUX de 16 canales

Problema 14
Problema 13
Problema 12
Problema 15
19
2.3 ESQUEMA DE LOS DECODIFICADORES


Decodificador 74159 de 4 a 16
Decodificador 74138 de 3 a 8
Decodificador 74139 2x de 2 a 4 Decodificador BCD 7442 de 4 a 10
20
2.4 SOLUCIONES A LOS PROBLEMAS DE CDIGOS
1.- Rellena la siguiente tabla :

BINARIO DECIMAL HEXADECIMAL BCD
100011 35 23 0011 0101
1111011 123 7B 0001 0010 0011
1011100 188 BC 0001 1000 1000
11111011 251 FB 0010 0101 0001
1001010 74 4A 0111 0100
10010011 147 93 101000111
101010111100 2748 ABC 0010 0111 0100 1000
110110100100 13492 DA4 1 0011 0100 1001 0010
1011101 93 5D 1001 0011
10001100 140 8C 101000000

Hay que recordar el siguiente esquema :


2.- Pasar a decimales
BINARIO 0.1 0.1100 0.1111 0.1001 0.0101 0.1001 0.0011
DECIMAL 0.5 0.808 0.9375 0.616 0.3125 0.587 0.1
2.5 SOLUCIONES A LOS PROBLEMAS DE CIRCUITOS MSI
3.- El primer chip es un decodificador 74148, que si vemos las entradas, la ms alta activada es el 4 (las
entradas son activas a nivel bajo del 74148) leugo el nmero a salir ser el 4 = 100 pero como las salidas
son tambin a nivel bajo, sale 001
El 7442 decodificador tiene en su entrada DCBA=1001 = 9 luego la salida 9 estar activa (como es a
nivel bajo, todos estan encendidos y slo el 9 apagado)
4.- El 74138 es un codificador que vemos que la entrada es CBA=110 = 6 luego la salida 6 es la que esta
activa.El 74139 son 2 DEC 2 a 4, el primero tiene el n 3 (1B1A=11) y el segundo el n 1 (2B2A=01).
(Como las salidas son a nivel bajo, todos estan encendidos exceptos las salidas activas).

21
5.- El bit ms alto activo en la entrada del codificador 74148 es el 3 = 011, que
negado es el 100=4 este nmero lo recibe el decodificador a displays 7447 que
visualizar el n4.
6. El 74151 es un MUX de 8 canales, y como se puede ver la seleccin esta con el estado CBA=100 = 4
es decir que la salida Y ser el canal D4 que como esta a '0' entonces esta apagado, w como es y negada,
entonces encendido.
El 74150 es un MUX de 16 canales, el estado de seleccin es DCBA=1110=14 luego la salida es el canal
E14 que es '0' como W es la salida negada, esta encendido.

7. El 7442 funcionando como DEMUX la entrada de datos lo tiene por el pin 'D' luego como en la
seleccin CBA=001=1 slo el pin 1 mostrar el estado de la entrada, como el interruptor esta bajado,
mostar un '0'
El Comparador 7485 tiene de entradas A=1101=13 y en B=0100=4 luego B<A.
22

8. Las soluciones a los ejercicios son
9. a) Para hacerlo con el Decodificador 74159 tenemos que poner en las entradas la tabla de verdad del
problema, y los pines de selecccin ponerlo segn el orden que hemos elegido en la tabla de verdad, si 'd'
es el de menor peso, entonces, le corresponde el pin 'A0' del 74159 como vemos en el dibujo. La salidas
son negadas, luego puerta NAND.




b) Con el 7442, a pesar de ser un Decodificador BCD y slo tiene 10 salidas,
desde la 0 hasta la 9, se puede utilizar en este problema, pues las salidas
10 al 15 no se utilizan, con slo que uno de ellos fuese
distinto en la tabla de verdad ya no puede
utilizarse.
23
c) Con el 74150 es un MUX de 16 canales, luego lo que hay que poner es la tabla de verdad en todos los
canales, y en la seleccin, como en la tabla de verdad el 'd' es el de menor peso, le corresponde el pin 'A'
de seleccin :

La salida es negada, por eso se ha aadido una puerta NOT en la entrada, si se quiere ahorar esa puerta
NOT se puede pero poniendo la tabla de verdad al revs :
d) Con el 74151 al ser un MUX de 8 canales, en cada canal hay que poner la relacin que tiene la funcin
F con la variable de menor peso, en este caso, si vemos la tabla de verdad, con la variable 'D', si vemos la
tabla, hay que poner los '0' '1' 'D' o 'Dnegada' donde corresponda.
10. Hay que realizar la tabla de verdad, y como el 74151 es un MUX de 8 canales, la funcin se tiene que
construir segn la relacin con la variable de menor peso de la tabla de verdad ('D'), y ponerlo en los
canales de entrada, las variables de seleccin se ponen segn el peso de la tabla, si vemos 'A' es el de
mayor peso, por lo tanto se coloca en el 'C' de mayor peso del 74151:
24
11. Como podemos ver, lo que hay que hacer es poner las combinaciones de los canales contando slo las
variables 'a' 'b' y 'c', en este orden, pues el 'a' esta puesto en el pin de mayor peso del 74151. Como el
74151 es un MUX la tabla de verdad refleja lo puesto en los canales, ya sea '0' '1' 'd' o ' d '

12. El resultado est en ver cmo la entradas 'A' 'B' 'C' y 'D' estan puestos en distinto orden de peso en el
mux 74150 luego a pesar que el 'A' esta puesto en el 'A' lo convierte en la variable de menor peso, y si 'D'
esta puesto en el 'D' lo combierte en la variable de mayor peso, por esto la tabla de verdad esta cambiado
el orden de las variables.

Por ltimo, como la salida W del 74150 esta negado, los canales saldrn invertidos, por eso se ensea la
columna F negada que es la de los canales de entrada y F sin negar, que es la negacin de sta ltima.
13 En este caso es un decodificador dcadas, como las salidas estan negadas, y la puerta lgica es una
puerta NAND la tabla de verdad ser un '1'
donde esta conectado, el resto '0' incluso los
pines que no existen (del 10 al 15)

14 Se trata de una ampliacin de
Decodificadores, con decodificador de 2 a 4 se
ha ampliado a Dedodificador de 8 a 16, el
primero tiene la seleccin ms alta, y habilita
cual de los 4 decodificadores de abajo funciona
y realiza la decodificacin.

15 Para realizar una ampliacin de MUX el de abajo (que tiene la parte alta de la seleccin) seleccina el
canal de salida de los
MUX de arriba que
tienen la seleccin
ms baja.
25
3. Problemas de aritmtica binaria
3.1 ENUNCIADOS DE EJERCICIOS DE SUMA BINARIA
1. Realiza la siguiente suma de forma binaria : 6+8+10+9+14+3 = 50

2. Realiza la siguiente suma de forma binaria : 725 + 60 = 785

3. Cmo realizarias con puertas lgicas un semisumador?



4. Cmo realizaras un sumador de 3 bits con el sumador completo ?

5 Realiza un circuito capaz de sumar nmeros de 1 byte (8 bits) con el
7483 y seala con '1' y '0' los pines para el caso concreto de la suma
101101 + 11100110

3.2 ENUNCIADOS DE EJERCICIOS DE RESTA BINARIA

6. Realiza la resta 725-60=665 en forma binaria representando los nmeros negativos en C1

7. Realiza la resta 60-725=-665 en forma binaria representando los nmeros negativos en C1

8 Realiza la resta 725-60=665 en forma binaria representando los nmeros negativos en C2

9. Realiza la resta 60-725=-665 en forma binaria representando los nmeros negativos en C2

3.3 ENUNCIADOS DE EJERCICIOS DE SUMA Y RESTA BCD

10. Realiza la suma siguiente en forma BCD 1725 + 8860 = 10585

11.Realiza la siguiente resta en forma BCD: 14 - 4 = +10

12 Realiza la siguiente resta en forma BCD: 4 - 14 = -10

13.Realiza la siguiente resta en forma BCD: 6257 - 5356 = +901

14.Realiza la siguiente resta en forma BCD: 5356 - 6257 = - 901

3.4 ENUNCIADOS DE EJERCICIOS DE SUMA Y RESTA EN HEX

15 Realiza la siguiente suma 19AC + FB8

16. Realiza la siguiente resta 4AFC - 4ACF

17 Realiza la siguiente resta 68 - FB8






26
3.5 SOLUCIONES EJERCICIOS SUMA BINARIA
1. Pasamos los sumandos a binario, se suma, y se comprueba el resultado :
111
1111
6 0110
8 1000
10 1010
9 1001
14 1110
+ 3 0011
50 110010
2 Pasamos los sumandos a binario, se suma, y se comprueba el resultado :
111111
725 1011010101
60 0000111100
785 1100010001
3. Es muy fcil, se realiza la tabla de verdad de la suma, y se pasa a puertas lgicas, sto es lo que tiene
un semisumador :
4. Se conectan los acarreos de salida con los de la entrada del bit
siguiente de ms peso. Con 4 semisumadores completos se tendra
un 7483


5 La suma 101101 + 11100110 da 100010011 un acarreo entre el
bit 4 y 5 y un acarreo el el bit 8

Nmero A = 0010 1101 = 45 Nmero B = 1110 0110 = 230
Resultado = 1 0001 0011 = 275











3.6 SOLUCIONES EJERCICIOS RESTA BINARIA

6. Hay que fijarse en aadir 0 en el nmero ms pequeo para igualarse con el ms grande, poner los bits
de signo y pasar el nmero negativo a complemento uno
111 111
725 1011010101 01011010101
-60 0000111100 11111000011
665 1 01010011000
1
01010011001
27
7. Hay que fijarse en aadir 0 en el nmero ms pequeo para igualarse con el ms grande, poner los bits
de signo y pasar el nmero negativo a complemento uno
111
60 0000111100 00000111100
725 1011010101 10100101010
-665 1 10101100110
0
10101100110
pasandolo a C1 => - 1010011001 = - 665
8. Hay que fijarse en aadir 0 en el nmero ms pequeo para igualarse con el ms grande, poner los bits
de signo y pasar el nmero negativo a complemento uno y despues sumarle un uno, el acarreo del final se
desprecia.
1111 1
725 1011010101 01011010101
-60 0000111100 1111000011 11111000100
665 1 01010011001 = 665

9. Hay que fijarse en aadir 0 en el nmero ms pequeo para igualarse con el ms grande, poner los bits
de signo y pasar el nmero negativo a complemento uno y despues sumarle un uno

60 0000111100 00000111100
725 1011010101 0100101010 10100101011
-665 0 10101100111
pasandolo a C1 ===>> -1010011000
y sumndole 1=> 1010011001 = - 665

3.7 SOLUCIONES EJERCICIOS SUMA Y RESTA EN BCD

10.- Se pasa el nmero a BCD y se suma cifra a cifra teniendo en cuenta que si es 1010 o mayor hay que
hacer la correccin (+0110) :
1 1
1725 0001 0111 0010 0101
8860 1000 1000 0110 0000
10585 1010 1111 1000 0101
0110 0110
1 0000 0101 => 1085

11.- Hay que pasar los nmeros a BCD y el nmero negativo hacer el C9 con el bit de signo
correspondiente : 1
14 14 0 0001 0100
- 04 => C9 => - 95 1 1001 0101
10 1 0 1010 1001
0110
0000
+1
0 0001 1010
0110
0000 = +10
12. Hay que pasar los nmeros a BCD y el nmero negativo hacer el C9 con el bit de signo
correspondiente : 1
04 04 0 0000 0100
- 14 => C9 => - 85 1 1000 0101
-10 0 1 1000 1001
0
1 1000 1001 = 89 =>C9 => -10
28
13. Hay que pasar los nmeros a BCD y el nmero negativo hacer el C9 con el bit de signo
correspondiente:
1 1 11 1 11 111
6257 6257 0 0110 0010 0101 0111
- 5356 => C9 => 4643 1 0100 0110 0100 0011
0901 1 0 1010 1001 1010 1010
0110 0110 0110
0000 0000 0000
1
0 0000 1001 0000 0001 = + 0901

14. Hay que pasar los nmeros a BCD y el nmero negativo hacer el C9 con el bit de signo
correspondiente:
1111 111 1 11
5356 5356 0 0101 0011 0101 0110
- 6257 => C9 => 3742 1 0011 0111 0100 0010
-901 0 1 1001 1010 1001 1000
0110
0000
0
1 1001 0000 1001 1000 = -9098 =>C9=> - 0901
3.8 SOLCIONES EJERCICIOS SUMA Y RESTA EN HEX
15.- Lo mejor es pasarlo a binario, y realizar la suma en binario:

19AC => 0001 1001 1010 1100
0FB8 => 0000 1111 1011 1000
2964 <= 0010 1001 0110 0100

16 - Lo mejor es pasarlo a binario, y realizar la resta en binario, elegimos hacer en C2 aunque se puede
hacer en C1

4AFC => 0 0100 1010 1111 1100
- 4ACF => 0100 1010 1100 1111 =>C2=> 1 1011 0101 0011 0001
+ 002D <= <= <= 0 0000 0000 0010 1101

17 - Lo mejor es pasarlo a binario, y realizar la resta en binario, elegimos hacer en C2 aunque se puede
hacer en C1

068 => 0 0000 0110 1000
- FB8 => 1111 1011 1000 =>C2=> 1 0000 0100 1000
- F50 <= 1111 0101 0000 <=C2<= 1 0000 1011 0000
29
4 Problemas de biestables y registros
4.1 RESUMEN DE BIESTABLES Y REGISTROS
BIESTABLES




R S Qn

J K Qn
0 0 Qn-1 0 0 Qn-1
0 1 1 0 1 0
1 0 0
1 0 1
1 1 x
1 1
Q





D Qn

T Qn
0 Qn
0 0
1
Q
1 1

REGISTROS
30
4.2 ENUNCIADOS DE PROBLEMAS DE CRONOGRAMAS DE
BIESTABLES

1 Dibujar la forma de onda de salida del siguiente Biestable RS asncrono

2.- Dibujar la forma de onda de salida del siguiente Biestable RS sncrono por nivel

3.- Dibujar la forma de onda de salida del siguiente Biestable RS sncrono por flanco de bajada.

4.- Dibujar la forma de onda de salida del siguiente Biestable JK sincrono por nivel
5.- Dibuja la forma de onda de salida del siguiente biestable JK Snclono por flanco de subida

6.- Dibuja la forma de onda de salida del siguiente biestable JK sncrono por flanco de bajada (el reloj
est negado, por eso es por flanco de bajada)

7.- Dibuja la forma de onda de salida del siguiente biestable JK sncrono por los dos flancos (master-
slave)

8.- Dibuja la forma de onda de salida del siguiente biestable T sncrono por flanco de subida

9. Dibuja la forma de salida del siguiente biestable D sncrono por nivel
31
10 Dibuja la forma de salida del siguiente biestable D sncrono por flanco de subida
11 A partir de puertas lgicas:
a) Cmo se construye un biestable RS ?
b) Y un biestable RS con las entradas negadas?

12. A partir de un biestable RS y puertas lgicas Cmo se construye un biestable JK?

13 A partir los biestables construidos en los anteriores ejercicios
a) Como construyes un biestable T?
b) Cmo construyes un biestable D?

4.3 ENUNCIADOS DE PROBLEMAS DE REGISTROS
14 Dibuja el cronograma de salida del registro 7475 de la figura

15 Dibuja el cronograma de salida de los siguientes registros

16. Dibuja el cronograma de salida de un 7491 con esta entrada






32
17.- Rellenar la siguiente tabla de un 7494

ENTRADAS estado interno salida
CL PE1 PE2 P1A P1B P1C P1D P2A P2B P2C P2D SI clk QA QB QC QD Out
1 0 1 0111 1110 1 |
0 1 0 0101 1101 0 X
0 0 0 0101 1100 1 |
0 0 0 1111 0010 0 |
0 0 0 0101 1101 1 0
0 0 0 1101 1111 0 |
0 0 0 0011 1100 0 |
0 0 0 0011 0011 1 1
0 0 0 0000 0000 0 |
0 0 1 0000 1001 1 X
0 0 0 0000 0000 0 |
0 0 0 0110 1111 1 |
0 0 0 0101 1111 0 0
0 0 0 0000 0000 0 |

18 Rellena la siguiente tabla de funcionamiento de un 74166

entrada estado interno out
cl' clk S/L' S.I. A B C D E F G H QA QB QC QD QE QF QG QH Q comentarios
1 X 0 1 0 1 0 0 0 1 0 1
1 | 1 0 0 1 0 1 1 1 0 0
1 | 1 0 1 1 0 1 0 1 0 1
1 + 1 1 0 0 1 1 0 0 1 1
1 | 1 1 0 0 0 0 1 1 0 0
1 | 1 0 0 1 0 0 1 1 0 0
1 0 1 0 0 1 1 0 0 0 0 1
0 | 1 0 0 0 1 1 0 1 0 1
1 + 0 1 0 0 1 1 0 0 1 1
1 | 1 1 0 0 0 0 1 1 0 0

S.I. = Serial Input = SER

33
19 Rellena la siguiente tabla de funcionamiento de un 7495

entrada salida
CLK1 CLK2 MC SI A B C D QA QB QC QD comentarios
1 + 1 0 0 1 0 1
+ 0 0 0 0 1 0 0
+ 1 0 1 0 1 0 0
+ | 0 0 1 0 1 1
1 + 0 0 1 0 1 0
+ x 0 0 1 1 1 0
+ 0 1 0 1 1 1 1
x + 1 1 Qb Qc Qd 0
0 + 1 0 Qb Qc Qd 0
+ x 0 0 0 0 0 0
1 + 1 0 Qb Qc Qd 1
1 0 1 1 Qb Qc Qd 1
0 + 1 0 0 0 1 0


20 Rellenar la siguiente tabla de funcionamiento de un 74194

cl' CLK S0 S1 SR A B C D SL QA QB QC QD comentario
0 + 01 1 0 1 1 1 1
1 + 11 0 0 0 1 0 0
1 + 01 0 0 1 0 0 0
1 + 01 0 0 1 0 1 0
1 + 10 0 0 1 0 1 1
1 + 10 0 0 1 0 1 1
1 + 10 0 0 1 0 1 0
1 0 10 0 0 1 0 1 0
1 + 10 0 0 1 0 1 0
1 + 01 1 0 1 0 1 0
1 + 00 1 0 1 0 1 0
0 + 11 1 0 1 1 1 1
1 + 10 1 0 1 0 1 1
1 + 11 1 0 1 0 1 1
1 | 01 1 1 1 1 1 1
1 + 01 1 1 1 1 1 1


21 Cmo haras un juego de luces con el 74194 de tal manera que un 1 siempre circulase?





34
4.4 SOLUCIONES A LOS PROBLEMAS DE CRONOGRAMAS DE
BIESTABLES
1. Hay que tener en cuenta que cuando R=S=1 no esta definido, esto se representar por 'x' la salida Q
negada no se ha dibujado, es la misma que la Q pero inversa.
2. Aqu slo tiene que hacer caso al nivle del reloj, si R=S=1 no esta definido, se ha representado en vaco
por simplicidad.

3.- Igualmente la solucin es como el ejercicio anterior, pero ahora hay estados que son ms pequeos
que el reloj, luego durante el nivel alto, pueden haber variaciones.
4.- En un biestable JK por nivel hay que tener en cuenta que cuando J=K=1 entonces el biestable se
'vuelve loco' cambiando constantemente de '0' a '1' luego el estado final que sale despues del nivel del
reloj no se sabe cual es, 'x' :

5.- Evidentemente, si no nos dijeran nada, el biestable es por flanco de subida pues el reloj no esta
negado, ahora como es activo por flanco, el biestable no puede dar indeterminacin nunca:
6.- Ahora es por flanco de bajada:

7.- Ahora por los dos

8. Este es el dibujo, hay que recordar que si T=0 no cambia, y si T=1 cambia
9.- El biestable D su salida es igual que la entrada slo cuando lo permite el reloj
35
10 La salida es ya diferente respecto al otro ejercicio :
11 12 y 13 las soluciones son :

4.5 SOLUCIONES A LOS PROBLEMAS DE BIESTABLES
14 La solucin del cronograma es :

15 Los biestables JK puestos en cascada tal y como esta en el problema, se convierten en un registro
SIPO por lo que los estados siguen a la entrada desfasados un lugar, segn las rdenes del reloj en flanco
de bajada pues la entrada CLK de cada biestables esta negado :

16 La solucin es :

36
17 La solucin es :
ENTRADAS estado interno salida
CL PE1 PE2 P1A P1B P1C P1D P2A P2B P2C P2D SI clk QA QB QC QD Out
1 0 1 0111 1110 1 | 0000 0
0 1 0 0101 1101 0 X 0101 1
0 0 0 0101 1100 1 | 1010 0
0 0 0 1111 0010 0 | 0101 1
0 0 0 0101 1101 1 0 0101 1
0 0 0 1101 1111 0 | 0010 0
0 0 0 0011 1100 0 | 0001 1
0 0 0 0011 0011 1 1 0001 1
0 0 0 0000 0000 0 | 0000 0
0 0 1 0000 1001 1 X 1001 1
0 0 0 0000 0000 0 | 0100 0
0 0 0 0110 1111 1 | 1010 0
0 0 0 0101 1111 0 0 1010 0
0 0 0 0000 0000 0 | 0101 1
18 La solucin es :
Entrada estado interno out
cl' clk S/L' S.I. A B C D E F G H QA QB QC QD QE QF QG QH Q comentarios
1 X 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 1 0 1 1 carga
1 | 1 0 0 1 0 1 1 1 0 0 0 0 1 0 0 0 1 0 0
1 | 1 0 1 1 0 1 0 1 0 1 0 0 0 1 0 0 0 1 1
1 + 1 1 0 0 1 1 0 0 1 1 0 0 0 1 0 0 0 1 1 quieto
1 | 1 1 0 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 0
1 | 1 0 0 1 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0
1 0 1 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 quieto
0 | 1 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 clear
1 + 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 carga
1 | 1 1 0 0 0 0 1 1 0 0 1 0 0 1 1 0 0 1 1

19 La solucin es :
entrada Salida
CLK1 CLK2 MC SI A B C D QA QB QC QD comentarios
1 + 1 0 0 1 0 1 0 1 0 1 carga
+ 0 0 0 0 1 0 0 0 0 1 0
+ 1 0 1 0 1 0 0 1 0 0 1
+ | 0 0 1 0 1 1 0 1 0 0
1 + 0 0 1 0 1 0 0 1 0 0 quieto
+ x 0 0 1 1 1 0 0 0 1 0
+ 0 1 0 1 1 1 1 0 0 1 0 quieto
x + 1 1 Qb Qc Qd 0 0 1 0 0
0 + 1 0 Qb Qc Qd 0 1 0 0 0
+ x 0 0 0 0 0 0 0 1 0 0
1 + 1 0 Qb Qc Qd 1 1 0 0 1
1 0 1 1 Qb Qc Qd 1 1 0 0 1 quieto
0 + 1 0 0 0 1 0 0 0 1 0 carga
37

20 La solucin es

cl' CLK S0 S1 SR A B C D SL QA QB QC QD comentario
0 | 01 1 0 1 1 1 1 0 0 0 0 clear
1 | 11 0 0 0 1 0 0 0 0 1 0 carga
1 | 01 0 0 1 0 0 0 0 0 0 1
1 | 01 0 0 1 0 1 0 0 0 0 0
1 | 10 0 0 1 0 1 1 0 0 0 1
1 | 10 0 0 1 0 1 1 0 0 1 1
1 | 10 0 0 1 0 1 0 0 1 1 0
1 0 10 0 0 1 0 1 0 0 1 1 0 quieto
1 | 10 0 0 1 0 1 0 1 1 0 0
1 | 01 1 0 1 0 1 0 1 1 1 0
1 | 00 1 0 1 0 1 0 1 1 1 0 quieto
0 | 11 1 0 1 1 1 1 0 0 0 0 clear
1 | 10 1 0 1 0 1 1 1 1 0 1
1 | 11 1 0 1 0 1 1 0 1 0 1 carga
1 + 01 1 1 1 1 1 1 0 1 0 1 quieto
1 | 01 1 1 1 1 1 1 1 0 1 0

21 La solucin est en que primero carge un 1000 y que luego circule ese '1', para cargar S1S0 tiene que
estar a 11 y para que circule tiene que estar en '01' luego cuando se active el interruptor 'c' empezar a
circular, para que circule indefinidamente la salida 'Qd' se ha conectado con la entrada 'SR' y as vuelve a
entrar.
38
5 Problemas de contadores
5.1 ENUNCIADOS DE EJERCICIOS DE CONTADORES
1 Disea un contador Down con JK mdulo 8 (de 7 a 0)
2 Disea un contador Up con JK mdulo 32 (de 0 a 31)
3 Disea un contador Up con JK mdulo 10 (de 0 a 9)
4 Disea un contador Up con JK mdulo 6 (de 0 a 5)
5 Disea un contador Down con JK (de 15 a 3)
6 Disea un contador Down con JK (de 7 a 2)
7 Disea un contador Up con JK (de 2 a 12)
8 Disea un contador Down con JK (de 14 a 3)
9 Disea un contador Up con JK (de 7 a 10)
10 Disea un contador Up con JK (de 7 a 17)
11 Disea un contador mod9 con el 7490
12 Disea un contador mod3 con el 7490
13 Disea un divisor por 7 con el 7490
14 Disea un contador BCD mod 20 es decir de 00 a 19 con el 7490
15 Disea un contador BCD mod50 (00 a 49) con el 7490
16 Disea un contador BCD mod80 (00 a 79) con el 7490
17 Disea un contador BCD mod100 (00 a 99) con el 7490
18 Disea un contador BCD mod100 (00 a 99) con el 7493
19 Disea un divisor 13 con el 7493
20 Disea un divisor 12 con el 7493
21 Disea un divisor 72 con el 7493
22 Disea un divisor 80 con el 7493
23 Disea un divisor 30 con el 7493
24 Disea un divisor 35 con el 7493
25 Disea un contador Up 3 a 6 con el 74190/1
26 Disea un contador Down 6 a 3 con el 74190/1
27 Disea un contador Up 5 a 12 con el 74190/1
28 Disea un contador Up 5 a 15 con el 74190/1
29 Disea un contador Down 8 a 0 con el 74190/1
30 Disea un contador Up 2 a 17 con el 74190/1 binario
31 Disea un contador Up 2 a 17 con el 74190/1 BCD
32 Disea un contador Down 18 a 11 con el 74190/1 BCD
33 Disea un contador Up 13 a 79 con el 74190/1 BCD
34 Disea un contador Up modulo 50 con el 74192 (en BCD)
35 Disea un contador Up 13 a 73 con el 74192 (en BCD)
36 Disea un contador Up 27 a 39 con el 74192 (en BCD)
37 Disea un contador Up modulo 40 con el 74192 (en BCD)
38 Disea un contador Down modulo 40 con el 74192 (en BCD)
39 Disea un contador Down 45 a 25 con el 74192 (en BCD)
40 Disea un contador que cuente o descuente segn se accione al pulsador A o B
respectivamente, el contador puede llegar como mximo a 999, existir un pulsador C
de puesta a 0 y un pulsador D que si se pulsa carga el n 500




39
5.2 SOLUCIONES A LOS PROBLEMAS DE CONTADORES
1

1 Seran 3 biestables JK
Biestable J K CLK Q QNEG PRneg CLneg
1 1 1 Clock externo Salida Q0 A clk 2 1 Aut
2 1 1 Q0neg Salida Q1 A clock 3 1 Aut
3 1 1 Q1neg Salida Q2 n.c. 1 Aut
Aut = Resistencia a Vcc de 10k Condensador a masa de 1 por ejemplo

2 Seran 5 biestables JK
Biestable J K CLK Q QNEG PRneg CLneg
1 1 1 Clock externo Salida Q0 y clk 2 n.c. 1 Aut
2 1 1 Q0 Salida Q1 y clk 3 n.c. 1 Aut
3 1 1 Q1 Salida Q2 y clk 4 n.c. 1 Aut
4 1 1 Q2 Salida Q3 y clk 5 n.c. 1 Aut
5 1 1 Q3 Salida Q4 n.c 1 Aut
Aut = Resistencia a Vcc de 10k Condensador a masa de 1 por ejemplo

3 Seran 4 biestables JK
J K CLK Q QNEG PRneg CLneg
1 1 1 Clock ext Salida Q0 y clk 2 n.c. 1 Salida pta
2 1 1 Q0 Salida Q1 y clk 3 n.c. 1 Salida pta

1 Todas las salidas Q3 Q2 Q1 Q0 pueden conectarse a un 7448 y a un display para poder visualizar los
nmeros
40
3 1 1 Q1 Salida Q2 y clk 4 n.c. 1 Salida pta
4 1 1 Q2 Salida Q3 n.c. 1 Salida pta
Salida pta= Puerta NAND entrada Q3 y Q1
Detecta el 10 =1010 y carga el 0=0000

4 Seran 3 biestables JK
J K CLK Q QNEG PRneg CLneg
1 1 1 Clock ext Salida Q0 y clk 2 n.c. 1 Salida pta
2 1 1 Q0 Salida Q1 y clk 3 n.c. 1 Salida pta
3 1 1 Q1 Salida Q2 n.c. 1 Salida pta
Salida pta= Puerta NAND entrada Q2 y Q1
Detecta el 6 =110 y carga el 0=0000

5 Seran 4 biestables JK
J K CLK Q QNEG PRneg CLneg
1 1 1 Clock ext Salida Q0 Clk 2 Salida pta 1
2 1 1 Q0neg Salida Q1 Clk 3 Salida pta 1
3 1 1 Q1neg Salida Q2 Clk 4 Salida pta 1
4 1 1 Q2neg Salida Q3 n.c. Salida pta 1
Salida pta= Puerta OR entrada Q3 Q2 y Q0
Detecta el 2 =0010 y carga el 15=1111
41

6 Seran 3 biestables JK
J K CLK Q QNEG PRneg CLneg
1 1 1 Clock ext Salida Q0 Clk 2 Salida pta 1
2 1 1 Q0neg Salida Q1 Clk 3 Salida pta 1
3 1 1 Q1neg Salida Q2 n.c. Salida pta 1
Salida pta= Puerta OR entrada Q2 y Q1
Detecta el 1 =001 y carga el 7=111
7 Seran 4 biestables JK
J K CLK Q QNEG PRneg CLneg
1 1 1 Clock ext Salida Q0 y clk 2 n.c. 1 Salida pta
2 1 1 Q0 Salida Q1 y clk 3 n.c. Salida pta 1
3 1 1 Q1 Salida Q2 y clk 4 n.c. 1 Salida pta
4 1 1 Q2 Salida Q3 n.c. 1 Salida pta
Salida pta= Puerta NAND entrada Q3 y Q2 y Q0
Detecta el 13 =1010 y carga el 2=0010
42
8 Seran 4 biestables JK
J K CLK Q QNEG PRneg CLneg
1 1 1 Clock ext Salida Q0 Clk 2 1 Salida pta
2 1 1 Q0neg Salida Q1 Clk 3 Salida pta 1
3 1 1 Q1neg Salida Q2 Clk 4 Salida pta 1
4 1 1 Q2neg Salida Q3 n.c. Salida pta 1
Salida pta= Puerta OR entrada Q3 Q2 y Q0
Detecta el 2 =0010 y carga el 14=1110

9 Seran 4 biestables JK
J K CLK Q QNEG PRneg CLneg
1 1 1 Clock ext Salida Q0 y clk 2 n.c. Salida pta 1
2 1 1 Q0 Salida Q1 y clk 3 n.c. Salida pta 1
3 1 1 Q1 Salida Q2 y clk 4 n.c. Salida pta 1
4 1 1 Q2 Salida Q3 n.c. 1 Salida pta
Salida pta= Puerta NAND entrada Q3 Q1 y Q0
Detecta el 11 =1011 y carga el 7=0111

10 Seran 5 biestables JK
J K CLK Q QNEG PRneg CLneg
1 1 1 Clock ext Salida Q0 y clk 2 n.c. Salida pta 1
2 1 1 Q0 Salida Q1 y clk 3 n.c. Salida pta 1
3 1 1 Q1 Salida Q2 y clk 4 n.c. Salida pta 1
4 1 1 Q2 Salida Q3 y clk 5 n.c. 1 Salida pta
5 1 1 Q4 Salida Q4 n.c. 1 Salida pta
Salida pta= Puerta NAND entrada Q3 Q1 y Q0
Detecta el 17 =10001 y carga el 7=00111

11 En este caso tenemos que resetear en 9=1001
Clk A Clk B Qa Qb Qc Qd Resets
Clk externo Qa Salida Q0
y clkB
Salida Q1 Salida Q2 Salida Q3 Q3 y Q0

43
12 En este caso tenemos que resetear en 3=0011
Clk A Clk B Qa Qb Qc Qd Resets
Clk externo Qa Salida Q0
y clkB
Salida Q1 Salida Q2 Salida Q3 Q1 y Q0

Tambin se podra haber hecho utilizando slo 3 bits :
Clk A Clk B Qa Qb Qc Qd Resets
n.c. Clk externo n.c. Salida Q0 Salida Q1 Salida Q2 Q1y Q0

13 Hay que hacer simplemente un contador mod7 y tomar como salida el bit de mayor
peso : Hay que resetar en el 7=0111
Clk A Clk B Qa Qb Qc Qd Resets
Clk externo Qa clkB N.C. Salida N.C. puerta
Puerta = AND con entrada a Q2, Q1 y Q0
44

14 Hay que utilizar dos 7490 uno para las unidades y otro para las decenas
7490 Clk A Clk B Qa Qb Qc Qd Resets
Unid
ades
Clk
externo
Qa
unidades
Salida Q0
unidades y
clkB uni
Salida
Q1uni
Salida
Q2
unidades
Salida
Q3
unidades
Salida
puerta
Dece
nas
Qd de
unidades
Qa
decenas
Salida Q0
decenas y
Clk B dec
Salida
Q1
Decenas
Salida
Q2
decenas
Salida
Q3
decenas
Salida
puerta
Hay que detectar el 20=0010 0000 Puerta = Q1decenas (ninguna puerta)
En los resets del 7490 unidades se podran poner a 0 pues realmente l solo se pone a 0
15 Hay que utilizar dos 7490 uno para las unidades y otro para las decenas
7490 Clk A Clk B Qa Qb Qc Qd Resets
Unid
ades
Clk
externo
Qa
unidades
Salida Q0
unidades y
clkB uni
Salida
Q1uni
Salida
Q2
unidades
Salida
Q3
unidades
Salida
puerta
Dece
nas
Qd de
unidades
Qa
decenas
Salida Q0
decenas y
Clk B dec
Salida
Q1
Decenas
Salida
Q2
decenas
Salida
Q3
decenas
Salida
puerta
Hay que detectar el 50=0101 0000 Puerta = AND entrada Q2decenas y Q0decenas
2

En los resets del 7490 unidades se podran poner a 0 pues realmente l solo se pone a 0 cuando pasa de 9


2 Tambin sin puerta, poniendo Q2 a R91 y R01 y Q0 a R92 y R02, pues dentro del 7490 hay una puerta
AND
45
16 Hay que utilizar dos 7490 uno para las unidades y otro para las decenas
7490 Clk A Clk B Qa Qb Qc Qd Resets
Unid
ades
Clk
externo
Qa
unidades
Salida Q0
unidades y
clkB uni
Salida
Q1uni
Salida
Q2
unidades
Salida
Q3
unidades
Salida
puerta
Dece
nas
Qd de
unidades
Qa
decenas
Salida Q0
decenas y
Clk B dec
Salida
Q1
Decenas
Salida
Q2
decenas
Salida
Q3
decenas
Salida
puerta
Hay que detectar el 80=1000 0000 Puerta = Q3decenas
En los resets del 7490 unidades se podran poner a 0 pues realmente l solo se pone a 0 cuando pasa de 9

17 Hay que utilizar dos 7490 uno para las unidades y otro para las decenas
7490 Clk A Clk B Qa Qb Qc Qd Resets
Unid
ades
Clk
externo
Qa
unidades
Salida Q0
unidades y
clkB uni
Salida
Q1uni
Salida
Q2
unidades
Salida
Q3
unidades
Salida
puerta
Dece
nas
Qd de
unidades
Qa
decenas
Salida Q0
decenas y
Clk B dec
Salida
Q1
Decenas
Salida
Q2
decenas
Salida
Q3
decenas
Salida
puerta
En este caso no hay que resetear, l slo pasa a 00 despus del 99

18 Hay que utilizar dos 7493 uno para las unidades y otro para las decenas
7493 Clk A Clk B Qa Qb Qc Qd Resets
Unid
ades
Clk
externo
Qa
unidades
Salida Q0
unidades y
clkB uni
Salida
Q1uni
Salida
Q2
unidades
Salida
Q3
unidades
Salida
puerta1
Dece
nas
Qd de
unidades
Qa
decenas
Salida Q0
decenas y
Clk B dec
Salida
Q1
Decenas
Salida
Q2
decenas
Salida
Q3
decenas
Salida
puerta2
Aqu si que hay que resetear, pues l solo no pasa a 00
Puerta1=AND de Q0unidades y Q3unidades(9=1001) o sin puerta Q0 a R01 y Q3 a R02
Puerta2=AND de Q0decenas y Q3decenas (9=1001) o sin puerta Q0 a R01 y Q3 a R02

46
19 Como el 13 entra dentro del rango del mod16 que es el 7493, con slo uno se puede
hacer :
7493 Clk A Clk B Qa Qb Qc Qd R01 R02
Clk
externo
Qa Salida
Q0 y
clkB
Salida
Q1
Salida
Q2
Salida
Q3
Salida
puerta
Q3
El 13=1011 luego la puerta es AND con entrada Q1 y Q0 (Q3 no es necesario pues hace AND con R02
internamente)
20 Como el 12 entra dentro del rango del mod16 que es el 7493, con slo uno se puede
hacer :
7493 Clk A Clk B Qa Qb Qc Qd R01 R02
Clk
externo
Qa Salida
Q0 y
clkB
Salida
Q1
Salida
Q2
Salida
Q3
Q2 Q3
El 12=1100 luego no es necesario puerta, se hace con la puerta AND interna
21 Como 72=8*9 luego hay que montar dos 7493: 8 y 9
7493 Clk A Clk B Qa Qb Qc Qd R01 R02
8
3

Clk
externo
Qa clkB n.c.
ClkA
del 9
R02 0 Qd
9
Qc del
8
Qa ClkB n.c. n.c. Salida Qa Qd
Para el 8=1000 luego hay que resetear con Qd Para el 9=1001 luego hay que resetear con Qd y Qa

3 Tambin hay otra forma de hacer el 8 y es no utilizar el biestable A, reloj externo en B y clkA=n.c.
Qa=n.c y R02=n.c.

47
22 Como 80=8*10 luego hay que montar dos 7493: 8 y 10
7493 Clk A Clk B Qa Qb Qc Qd R01 R02
8
2
Clk
externo
Qa clkB n.c. n.c.
ClkA
del 10
0 Qd
10
Qc del
8
Qa ClkB n.c. n.c. Salida Qb Qd
Para el 8=1000 luego hay que resetear con Qd
Para el 10=1010 luego hay que resetear con Qd y Qb
Observar que el reloj de un divisor a otro es el bit ms alto que sale, por ejem en un divisor de 8 los
nmeros que salen son del 0 al 7, luego el bit ms alto que sale es el Qc (Qd no aparece pues el 8 aparece)
23 Como 30=3*10 luego hay que montar dos 7493: 3 y 10
7493 Clk A Clk B Qa Qb Qc Qd R01 R02
3

Clk
externo
Qa clkB n.c. n.c.
ClkA
del 10
Qa Qb
10
Qd del
3
Qa ClkB n.c. n.c. Salida Qb Qd
Para el 3=0011 luego hay que resetear con Qa y Qb
Para el 10=1010 luego hay que resetear con Qd y Qb
24 Como 35=5*7 luego hay que montar dos 7493: 5 y 7
7493 Clk A Clk B Qa Qb Qc Qd R01 R02
5

Clk
externo
Qa clkB n.c.
ClkA
del 7
n.c. Qa Qc
7
Qd del
5
Qa ClkB n.c. Salida n.c. Qa
Salida
puerta
Para el 5=0101 luego hay que resetear con Qa y Qc
Para el 7=0111 luego hay que resetear con Qa Qb y Qc luego una puerta AND a Qb y Qc
25 Puede ser el 74190 como el 74191
Hay que detectar el 7=0111 y cargar el 3=0011
Qa Qb Qc Qd D C B A Rco G CLK D/U Load
Max/
Min
Sal
Q0
Sal
Q1
Sal
Q2
Sal
Q3
0 0 1 1 n.c. 0
Clk
ext
0
Ent
pta
n.c
Entrada pta NAND= Q2 Q1 Q0

48
26 Puede ser el 74190 como el 74191
Hay que detectar el 2=0010 y cargar el 6=0110
Qa Qb Qc Qd D C B A Rco G CLK D/U Load
Max/
Min
Sal
Q0
Sal
Q1
Sal
Q2
Sal
Q3
0 1 1 0 n.c. 0
Clk
ext
1
Ent
pta
n.c
Entrada pta OR= Q3 Q2 Q0

27 Esta vez tiene que ser el 74191
Hay que detectar el 13=1101 y cargar el 5=0101
Qa Qb Qc Qd D C B A Rco G CLK D/U Load
Max/
Min
Sal
Q0
Sal
Q1
Sal
Q2
Sal
Q3
0 1 0 1 n.c. 0
Clk
ext
0
Ent
pta
n.c
Entrada pta NAND= Q3 Q2 Q0

28 Esta vez tiene que ser el 74191
Hay que detectar el final y cargar el 5=0101
Qa Qb Qc Qd D C B A Rco G CLK D/U Load
Max/
Min
Sal
Q0
Sal
Q1
Sal
Q2
Sal
Q3
0 1 0 1 Load 0
Clk
ext
0 Rco n.c
Tambin se puede conectar el Load a la salida de una puerta NOT de Max/Min

49
29 Puede ser el 74190 como el 74191
Hay que detectar el final y cargar el 8=1000
Qa Qb Qc Qd D C B A Rco G CLK D/U Load
Max/
Min
Sal
Q0
Sal
Q1
Sal
Q2
Sal
Q3
1 0 0 0 Load 0
Clk
ext
1 Rco n.c
Tambin se puede conectar el Load a la salida de una puerta NOT de Max/Min


30 Tienen que ser dos 74191
Hay que detectar el 18=00010010 y cargar el 2=00000010
Chip Qa Qb Qc Qd A B C D Rco G CLK D/U Load
Max/
Min
1
Sal
Q0
Sal
Q1
Sal
Q2
Sal
Q3
0 1 0 0 n.c. 0
Clk
ext
0
Sal
pta
n.c
2
Sal
Q4
Sal
Q5
Sal
Q6
Sal
Q7
1 0 0 0 n.c. 0 Q3 0
Sal
pta
n.c.
Pta= NAND Q1 y Q4 CLK del 2 puede ser el RCO del 1


31 Tienen que ser dos 74190
Hay que detectar el 18=0001 1000 y cargar el 2=00000010 (en BCD)
Chip Qa Qb Qc Qd A B C D Rco G CLK D/U Load
Max/
Min
1
Sal
Q0
Sal
Q1
Sal
Q2
Sal
Q3
0 1 0 0 n.c. 0
Clk
ext
0
Sal
pta
n.c
2
Sal
Q4
Sal
Q5
Sal
Q6
Sal
Q7
0 0 0 0 n.c. 0 Q3 0
Sal
pta
n.c.
Pta= NAND Q3 y Q4 CLK del 2 puede ser el RCO del 1
50
32 Tienen que ser dos 74190
Hay que detectar el 10=0001 0000 y cargar el 18=0001 1000 (en BCD)
Chip Qa Qb Qc Qd A B C D Rco G CLK D/U Load
Max/
Min
1
Sal
Q0
Sal
Q1
Sal
Q2
Sal
Q3
0 0 0 1 n.c. 0
Clk
ext
1
Sal
pta
n.c
2
Sal
Q4
Sal
Q5
Sal
Q6
Sal
Q7
1 0 0 0 n.c. 0 Q3 1
Sal
pta
n.c.
Pta= OR de Q7 Q6 y Q5 (no es necesario hacer OR de Q3 Q2 Q1 Q0 pues del 18 al 10
no hay nadie que tenga Q7 Q6 y Q5 = 0 0 0, pero si se hace no pasa nada)
CLK del 2 puede ser el RCO del 1

33 Tienen que ser dos 74190
Hay que detectar el 80=1000 0000 y cargar el 13=0001 0011 (en BCD)
Chip Qa Qb Qc Qd A B C D Rco G CLK D/U Load
Max/
Min
1
Sal
Q0
Sal
Q1
Sal
Q2
Sal
Q3
1 1 0 0 n.c. 0
Clk
ext
0
Sal
pta
n.c
2
Sal
Q4
Sal
Q5
Sal
Q6
Sal
Q7
1 0 0 0 n.c. 0 Q3 0
Sal
pta
n.c.
Pta = NOT que tiene de entrada Q7 ( desde el 13 al 79 no hay nadie que tenga Q7=1)

51
34 Son dos chips, 1 el de unidades y el 2 el de decenas
Tiene que detectar el 50=0101 0000 y resetear
Chip Qa Qb Qc Qd A B C D UP DW CO BO Load Clear
1 Q0 Q1 Q2 Q3 n.c. n.c. n.c. n.c. Clk n.c.
Up
2
n.c. n.c.
Sal
pta
2 Q4 Q5 Q6 Q7 n.c. n.c. n.c. n.c.
Co
1
n.c. n.c. n.c. n.c.
Sal
pta
Pta = NAND Q4 y Q6
El reloj UP del 2 chip se podra hacer con la salida Q3
35 Son dos chips, 1 el de unidades y el 2 el de decenas
Tiene que detectar el 74=0111 0100 y cargar el 13=0001 0011
Chip Qa Qb Qc Qd A B C D UP DW CO BO Load Clear
1 Q0 Q1 Q2 Q3 1 1 0 0 Clk n.c.
Up
2
n.c.
Sal
pta
0
2 Q4 Q5 Q6 Q7 1 0 0 0
CO
1
n.c. n.c. n.c.
Sal
pta
0
Pta = NAND Q2 Q4 Q5 y Q6
El reloj UP del 2 chip se podra hacer con la salida Q3

52
36 Son dos chips, 1 el de unidades y el 2 el de decenas
Tiene que detectar el 40=0100 0000 y cargar el 27=0010 0111
Chip Qa Qb Qc Qd A B C D UP DW CO BO Load Clear
1 Q0 Q1 Q2 Q3 1 1 1 0 Clk n.c.
Up
2
n.c.
Sal
pta
0
2 Q4 Q5 Q6 Q7 0 1 0 0
CO
1
n.c. n.c. n.c.
Sal
pta
0
Pta = NOT de Q6 El reloj UP del 2 chip se podra hacer con la salida Q3
37 Son dos chips, 1 el de unidades y el 2 el de decenas
Tiene que detectar el 40=0100 0000 y resetear
Chip Qa Qb Qc Qd A B C D UP DW CO BO Load Clear
1 Q0 Q1 Q2 Q3 n.c. n.c. n.c. n.c. clk n.c.
Up
2
n.c. n.c. Q6
2 Q4 Q5 Q6 Q7 n.c. n.c. n.c. n.c. CO1 n.c n.c. n.c. n.c. Q6
Aqu no hace falta realizar ninguna funcin lgica
El reloj UP del 2 chip se podra hacer con la salida Q3
38 Son dos chips, 1 el de unidades y el 2 el de decenas
Tiene que llegar a 0 y cargar el 40 = 0100 0000
Chip Qa Qb Qc Qd A B C D UP DW CO BO Load Clear
1 Q0 Q1 Q2 Q3 0 0 0 0 n.c. Clk n.c.
Dwn
2
BO
2
0
2 Q4 Q5 Q6 Q7 0 0 1 0 n.c.
BO
1
n.c. n.c.
BO
2
0
Aqu no hace falta realizar ninguna funcin lgica, se podra hacer con una puerta OR
de los 0 del 40 pero cuando las decenas llegan a 0, BO hace un flanco de bajada que
sirve para cargar de nuevo al 40
El reloj DOWN del 2 chip se podra hacer con la salida Q3
39 Son dos chips, 1 el de unidades y el 2 el de decenas
Tiene que detectar el 24=0010 0100 y cargar el 45=0100 0101
Chip Qa Qb Qc Qd A B C D UP DW CO BO Load Clear
1 Q0 Q1 Q2 Q3 1 0 1 0 n.c. Clk n.c.
Dwn
2
Sal
pta
0
2 Q4 Q5 Q6 Q7 0 0 1 0 n.c.
BO
1
n.c. n.c.
Sal
pta
0
Pta = OR Q7 Q6 Q4 Q3 Q1 y Q0
El reloj UP del 2 chip se podra hacer con la salida Q3
53
40 Son tres chips, 1 el de unidades y el 2 el de decenas 3 centenas
Todos conectados en cascada Tiene cargar el 500= 0101 0000 0000
Chip Qa Qb Qc Qd D C B A UP DW CO BO Load Clear
1 Q0 Q1 Q2 Q3 0 0 0 0 A B Up 2 Dwn 2 D C
2 Q4 Q5 Q6 Q7 0 0 0 0 CO1 BO 1 CO3 BO3 D C
3 Q8 Q9 Q10 Q11 0 1 0 1 CO2 BO2 n.c. n.c. D C

54
6 Problemas de astables, retardadores y
monoestables digitales
6.1 ENUNCIADOS DE PROBLEMAS
6.1.1 Problemas de monoestables con puertas lgicas y 74121 74221 74122 y 74123

1 Disea un monoestable con puertas NAND con un tiempo de activacin de 3 seg. Elegir C=1F

2 Disea un monoestable con el 74121 para un tiempo 0.1mseg y R=10k usando frmulas.

3 Disea un monoestable con el 74121 para un tiempo 0.1mseg y R=10k usando bacos.

4 Disea un monoestable con el 74121 para un tiempo 3seg y C=1nF usando frmulas.

5 Disea un monoestable con el 74121 para un tiempo 3seg y C=1nF usando bacos.

6 disea un detector de impulsos superior a 3seg C=F

7 disea un detector de impulsos inferiores a 2mseg C=100n

8 Disea un retardador de impulso con el 74121 de la siguiente forma :

9 Disea un detector de impulsos mltiples en 4 segundos R=600k

10 Disea un monestable de temporizacin 1ms y R=50k con el 74122

11 Disea un monestable de temporizacin 1s y R=50k con el 74122

12 Disea un astable con el 74123 con un tiempo bajo de 7seg y un tiempo alto de 0.4seg. Utilizar
resistencias de 50k
55
6.1.2 Problemas con 555
13 Disea un monoestable con 555 que responda al siguiente esquema del osciloscopio, R=1M, por cierto
Cul sera la tensin Vcc? Intenta hacerlo en el EWB
14 Supongamos que R = 1M y C=3F Dibuja en el osciloscopio anterior cual sera la forma de onda.

15 Dibuja la forma de onda del siguiente osciloscopio :
16 Supongamos que queremos conseguir la siguiente onda, disalo con un 555 C=3F

56
6.1.3 Problemas con trigers y retardadores
17 Calcular la frecuencia de la onda del siguiente circuito 7414

18 Disea un astable con el 7414 que responda a la siguiente seal de osciloscopio C=1nF



19 Calcula el tiempo de retardo de la siguiente circuito retardador
20 Disea un circuito retardador de 5seg con un C=6F
57
6.2 BACOS Y FRMULAS 74122 74123 74121 Y 555


74121 y 74221 con baco o con la frmula T=0.69RC
74122 y 74123

Si Cs1nF usar el baco

Si C>1nF usar frmula :

T = 0.28RC(1+700/R)

(0.32 con diodo)
Monoestable con 555 T=RCln3
Astable con 555 T
H
=(R1+R2) ln2
T
L
= R1 ln2
58
6.3 SOLUCIONES A LOS PROBLEMAS
6.3.1 Soluciones monoestables con puertas lgicas y 74121 74221 74122 y 74123

1 Si T=RCln3 => R = T/Cln3 = 3/1*1.1 = 2.7M

2 T=RCln2 => C=T/Rln2 = 0.1m/10k*0.69=14.5nF

3 Para T=0.1ms=100s y R=10K tenemos C=15nF












4 Tenemos que : R=3/1n*0.69=4.3k

5 En el baco nos sale 4k

6 Con la frmula, pues es ms cmodo :




R=3/3*0.69=1.4M




7 Igualmente


R=2m/100n*0.69=29k






8 El primer monoestable
hace un retardo a la
conexin de 3seg y el
segundo monoestable
hace que dure el impulso
2seg para que juntos sean
los 5 segundos que pide el
enunciado
R1=3/300n*0.69 = 14M
R2 = 2/300n*0.69 = 9.6M
Los condensadores sera
de 300n
Problema 1
Problema 3
Problema 5
Problema 6
Problema 7
Problema 8
59
9 En este caso tenemos que despejar la despejar el
condensador pues nos dan la resistencia :


C=4/0.69*600k=9.6F






10 Usando la frmula:

T=0.32RC(1+700/R) despejando C tenemos C=T/R(1+700/R) = 1m/(0.32*50k(1+700/50k))=61nF

Como sale ms grande 1nF no tenemos por qu usar baco.

11 Igualmente tenemos C=T/R(1+700/R) = 1m/(0.32*50k(1+700/50k))=61pF como
sale ms pequeo que 1nF tenemos que usar el baco : C=40pF


12 Tenemos que usar los dos
monoestables del 74123 en cascada
y realimentados, de esta
forma uno dispara al otro
resultando un astable. El
tiempo bajo lo regula el
primer monoestable, el
de la derecha, y el
tiempo alto el de la
izquierda.

El primer condensador: C =
T/R(1+700/R = 7/0.32*50k(1+700/50k) = 431pF =>Como
sale <1nF tenemos que usar el baco y sale C=400pF

(Se puede observar que prcticamente para tiempos mayores
de 5000nseg la frmula y el baco dan el mismo resultado.

Para el otro condensador C = T/R(1+700/R =
0.4/0.32*50k(1+700/50k) = 24pF =>Como sale <1nF
tenemos que usar el baco y sale C=4pF
(Aqu ya no sale igual)



6.3.2 Soluciones a los problemas con el 555

13 Observando el osciloscopio, tenemos 2.2DIV*1SEG/DIV = 2.2seg luego para una R=1M tenemos
C=T/1.1*R=2. La Vcc=2.4Div*5V/Div=12V

14 Tenemos que T=1.1*R*C=1.1*1M*3=.3seg el osciloscopio
sera con 3.3Div
Verticalmente Vcc=12V/5V/Div=2.4Div
Y la forma de onda del condensador tiene que llegar a 2/3 de
Vcc es decir 12*2/3=8V=1.6Div
Problema 9
60

15 Calculando tenemos
Tl=0.69*R2*C=0.69*80k*2=0.11seg = 2.2Div
(dividiendo por 0.05seg/Div)
Th=0.69*C*(R1+R2)=0.69*2*(80k+50k)=0.18se=3.5Div

La tensin Vcc=12=2.4Div Vcc/3=4V=0.8div Vcc2/3=8=1.6Div

16 Primero lo diseamos con el tiempo bajo
Tl=3.5Div*0.05seg/Div=0.175seg
Luego R2=Tl/0.69*C=0.175/0.69*3=84k
Con esta resistencia podemos calcular R1
Th=3.8Div*0.05Div=0.19seg
R1+R2= Tl/0.69*C=0.19/0.69*3=91k luego R1=7k. El dibujo sera igual que el del ejercicio anterior

6.3.3 Soluciones a los problemas con trigerr y retardadores

17 El tiempo bajo ser Th=RCln(Vcc-Vt-)/(Vcc-Vt+)=300*0.01ln(5-0.9)/(5-1.7)=630nseg
y el tiempo alto ser Tl=RClnVt+/Vt-=300*0.01ln1.7/0.9=1.89seg
La suma de los dos T=Th+Tl=2.52seg que en frecuencia es 400kHz

18 Observando el osciloscopio, los tiempos bajo y alto son aproximdamente de
Tl=Th=0.02seg=20nseg luego
R=Tl/ClnVt+/Vt-=20n/1nln(1.7/0.9)=31O
O con la otra frmula
R=Th/Cln(Vcc-Vt-)/(Vcc-Vt+)=20n/1nln(5-1.7)/(5-0.9)=95O
Elegimos un valor aproximado medio de 60O


19 El tiempo de retardo ser T=1.1RC=.1*1*2.7M=3seg

6.20 Despejando de la anterior frmula tenemos : R=T/1.1*C=5/6*1.1=757k






61
7 ALARMA AIN 302

62
63
64
65
66
67
68
69
8. Autmatas programables
8.1.- QU ES UN AUTMATA PROGRAMABLE?
Hasta no hace mucho tiempo el control de procesos industriales se venia haciendo de forma cableada
por medio de contactores y rels. Al operario que se encontraba a cargo de este tipo de instalaciones, se le
exiga tener altos conocimientos tcnicos para poder realizarlas y posteriormente mantenerlas. Adems
cualquier variacin en el proceso supona modificar fsicamente gran parte de las conexiones de los
montajes, siendo necesario para ello un gran esfuerzo tcnico y un mayor desembolso econmico.
En la actualidad no se puede entender un proceso complejo de alto nivel desarrollado por tcnicas
cableadas. El ordenador y los autmatas programables ha intervenido de forma considerable para que este
tipo de instalaciones se hayan visto sustituidas por otras controladas de forma programada. El Autmata
Programable Industrial (API) naci como solucin al control de circuitos complejos de automatizacin.
Por lo tanto se puede decir que un API no es ms que un aparato electrnico que sustituye los circuitos
auxiliares o de mando de los sistemas automticos. A l se conectan los captadores (finales de carrera,
pulsadores,...) por una parte, y los actuadores (bobinas de contactores, lmparas, peque os receptores,...)
por otra.

Veamos un tpico circuito de automatismos. Un arrancador Estrella/Tringulo con temporizador.
La figura 1 muestra como es la tcnica cableada. Por una parte tenemos el circuito de fuerza, que
alimenta el motor, y por otra el circuito auxiliar o de mando, que realiza la maniobra de arranque de
dicho motor.

70
La figura 2 muestra como se realiza el mismo montaje de forma programada. El circuito de fuerza es
exactamente el mismo que en la tcnica cableada. Sin embargo, el de mando ser sustituido por un
autmata programable, al cual se unen elctricamente los pulsadores y las bobinas de los contactores. La
maniobra de arranque la realizara el programa que previamente se ha transferido al autmata.


8.2 PARTES DE UN AUTMATA PROGRAMABLE
La estructura bsica de cualquier autmata es la siguiente:
- Fuente de alimentacin
- CPU
- Mdulo de entrada
- Mdulo de salida
- Terminal de programacin
- Perifricos.
Respecto a su disposicin externa, los autmatas pueden contener varias de estas secciones en un mismo
mdulo o cada una de ellas separadas por diferentes mdulos. As se pueden distinguir autmatas
Compactos y Modulares.
8.2.1 Fuente de alimentacin
Es la encargada de convertir la tensin de la red, 220v c.a., a baja tensin de c.c, normalmente 24 v.
Siendo esta la tensin de trabajo en los circuitos electrnicos que forma el Autmata.
8.2.2 CPU
La Unidad Central de Procesos es el autntico cerebro del sistema. Se encarga de recibir las ordenes,
del operario por medio de la consola de programacin y el modulo de entradas. Posteriormente las
procesa para enviar respuestas al mdulo de salidas. En su memoria se encuentra residente el programa
destinado a controlar el proceso.
8.2.3 Modulo de entradas
A este mdulo se unen elctricamente los captadores (interruptores, finales de carrera, pulsadores,...).
La informacin recibida en l, es enviada a la CPU para ser procesada de acuerdo la programacin
residente.
Se pueden diferenciar dos tipos de captadores conectables al mdulo de entradas: los Pasivos y los
Activos.
Los Captadores Pasivos son aquellos que cambian su estado lgico, activado - no activado, por medio
de una accin mecnica. Estos son los Interruptores, pulsadores, finales de carrera, etc.
Los Captadores Activos son dispositivos electrnicos que necesitan ser alimentados por una tensin
para que varen su estado lgico. Este es el caso de los diferentes tipos de detectores (Inductivos,
Capacitivos, Fotoelctricos). Muchos de estos aparatos pueden ser alimentados por la propia fuente de
alimentacin del autmata.


Contactor
lnea
fusible trmico
Interruptores
de paro y
marcha
Fusible trmico
Contactor
tringulo
Contactor
estrella
71
8.2.4 Modulo de salidas
El modulo de salidas del autmata es el encargado de activar y desactivar los actuadores (bobinas de
contactores, lmparas, motores peque os, etc).
La informacin enviada por las entradas a la CPU, una vez procesada, se enva al mdulo de salidas
para que estas sean activadas y a la vez los actuadores que en ellas estn conectados.
Segn el tipo de proceso a controlar por el autmata, podemos utilizar diferentes mdulos de salidas.
Existen tres tipo bien diferenciados:
- A rels.
- A triac.
- A transistores.
8.2.4.1 Mdulos de salidas a rels.
Son usados en circuitos de corriente continua y alterna. Estn basados en la conmutacin mecnica, por
la bobina del rel, de un contacto elctrico normalmente abierto .
.

.
Un rel es un componente elctrico formado por un electroimn y varios interruptores. Cuando es
recorrido por la corriente elctrica, el electroimn genera un campo magntico que abre o cierra los
interruptores dependiendo de su estructura interna. En el sistema de control digital como es el caso
de los autmatas es de una utilidad alta ya que nos permite interpretar que el interruptor cerrado
indica paso de corriente (bit 1) y el interruptor abierto indica ausencia de corriente (bit 0), con lo
que a travs de aperturas y cierres de interruptores podemos obtener un cdigo binario que puede
ser entendido por cualquier microprocesador.
Su accin puede ser directa o a travs de algn elemento interpuesto. Lo ms habitual es que el rel abra o
cierre un circuito elctrico.
Las caractersticas de la carga que ha de soportar (tensin, corriente, etc.) influyen sobre el tiempo de vida
til de los rels.
Por todo ello para alargar la vida de los rels y proporcionar una mejor seal de salida se interponen
circuitos de proteccin de rel interno que permiten suprimir el ruido elctrico.

Circuitos con rel conectado y no conectado.
Estos circuitos nos muestras que cuando conectamos el interruptor del circuito donde se encuentra la pila
pasa una corriente a travs que es capaz de disparar la accin del rel que se encargar de cerrar el
circuito para conectar la bombilla. El rel se conectar cuando la corriente que pas a travs del primer
circuito sea la necesaria (viene determinada segn las caractersticas del rel).
De esta forma se puede apreciar que un circuito por donde pasa muy poca corriente como son 12 V, es
capaz de activar otro circuito que trabaje a mucha ms corriente como 220 V. Esto es lo que hace el
autmata con los motores que es capaz de conectar.

72
8.2.4.2 Mdulos de salidas a Triacs
Se utilizan en circuitos de corriente continua y corriente alterna que necesiten maniobras de
conmutacin muy rpidas.

8.2.4.3 Mdulos de salidas a Transistores a colector abierto.
El uso del este tipo de mdulos es exclusivo de los circuitos de c.c.
Igualmente que en los de Triacs, es utilizado en circuitos que necesiten maniobras de
conexin/desconexin muy rpidas.

8.2.5 Terminal de programacin
El terminal o consola de programacin es el que permite comunicar al operario con el sistema.
Las funciones bsicas de ste son las siguientes:
- Transferencia y modificacin de programas.
- Verificacin de la programacin.
- Informacin del funcionamiento de los procesos.
Como consolas de programacin pueden ser utilizadas las construidas especficamente para el
autmata, tipo calculadora o bien un ordenador personal, PC, que soporte un software especialmente
diseado para resolver los problemas de programacin y control.









Terminal de programacin porttil







Terminal de programacin compatible PC

73
8.2.6 PERIFRICOS
Los perifricos no intervienen directamente en el funcionamiento del autmata, pero sin embargo
facilitan la labor del operario. Los ms utilizados son: - Grabadoras a cassettes. - Impresoras. -
Cartuchos de memoria EEPROM. - Visualizadores y paneles de operacin OP








Panel de Operacin






Conexin de un visualizador a un autmata
8.3.- LENGUAJES DE PROGRAMACIN
Cuando surgieron los autmatas programables, lo hicieron con la necesidad de sustituir a los enormes
cuadros de maniobra construidos con contactores y rels. Por lo tanto, la comunicacin hombre-maquina
debera ser similar a la utilizada hasta ese momento. El lenguaje usado, debera ser interpretado, con
facilidad, por los mismos tcnicos electricistas que anteriormente estaban en contacto con la instalacin.
Estos lenguajes han evolucionado, en los ltimos tiempos, de tal forma que algunos de ellos ya no tienen
nada que ver con el tpico plano elctrico a rels..
Los lenguajes ms significativos son:
8.3.1 Lenguaje a contactos. (LD)
Es el que ms similitudes tiene con el utilizado por un electricista al elaborar cuadros de automatismos.
Muchos autmatas incluyen mdulos especiales de software para poder programar grficamente de esta
forma.
8.3.2 Lenguaje por Lista de Instrucciones. (IL)
En los autmatas de gama baja, es el nico modo de programacin. Consiste en elaborar una lista de
instrucciones o nemnicos que se asocian a los smbolos y su combinacin en un circuito elctrico a
contactos. Tambin decir, que este tipo de lenguaje es, en algunos los casos, la forma ms rpida de
programacin e incluso la ms potente.

74
8.3.3 Grafcet. (SFC)
Es el llamado Grfico de Orden Etapa Transicin. Ha sido especialmente diseado para resolver
problemas de automatismos secuenciales. Las acciones son asociadas a las
etapas y las condiciones a cumplir a las transiciones. Este lenguaje resulta
enormemente sencillo de interpretar por operarios sin conocimientos de
automatismos elctricos.
Muchos de los autmatas que existen en el mercado permiten la
programacin en GRAFCET, tanto en modo grfico o como por lista de
instrucciones.
Tambin podemos utilizarlo para resolver problemas de automatizacin
de forma terica y posteriormente convertirlo a plano de contactos.

8.3.4 Plano de funciones (FBD)

El plano de funciones lgicas, resulta especialmente cmodo de utilizar, a tcnicos habituados a
trabajar con circuitos de puertas lgicas, ya que la simbologa usada en ambos es equivalente.

Qu diferencia hay entre un autmata y un ordenador?






Segn este diagrama podemos ver la gran similitud entre ordenadores y autmatas, la
gran diferencia entre ambos radica en el tipo y caractersticas de la informacin con la
que trabaja cada uno.

En el primer caso de los autmatas las entradas responden a seales recibidas del
exterior para lo cual se hace necesario el uso de sensores y transductores, mientras que
las salidas van dirigidas a reguladores y actuadores como puedan ser los motores.
En el segundo caso de los ordenadores la informacin viene en forma de ficheros
incluidos en soportes como disquetes, discos compactos, etc.
AUTMATAS Trabajan con instrucciones especficas
de entradas y salidas
ORDENADORES
Trabaja con instrucciones especficas
del campo de la informtica
(ficheros...)
Sistemas programables
75
8.4 CASO PRCTICO AUTMATA LOGO! 230RC

Aqu tienes un esquema de la conexin del logo, en este dibujo puedes observar tres cosas:
- Tensin de alimentacin L1, N
AC 115V/230V 50/60Hz: esto lo hace muy verstil para poder utilizarlo en muchos
pases donde las estructuras elctricas sean diferentes.
L1 = 85 ...264V AC: es la tensin que puede llevar la lnea L1, necesaria para que
funcionen los interruptores de las entradas.
- 6 Entradas
I1, I2, I3, I4, I5, I6: son los cdigos que vamos a asignar a cada entrada y a las que
llegarn las seales del exterior, bien por sensores, transductores, motores, etc.
Estado de la seal 1 con > 79 V AC
Estado de la seal 0 con 40 V AC
- 4 Salidas
Q1, Q2, Q3, Q4 son salidas de interruptor., luego necesitan una lnea de fuerza
L1, que es la que le suministra la fuerza para conectarse y desconectarse.
La mxima potencia que aguantan los rels internos son de 2000W, suficientes para
hacer funcionar motores de muchas mquinas, pero hay veces que la potencia
requerida es mayor y se hace necesario el uso de contactores.
Qu son los contactores? son unos dispositivos que tienen la estructura de un rel.
Su funcin aqu consiste en poner en contacto dos circuitos que trabajan a potencia
diferentes sin que se dae ninguno de ellos.


Teclado para introducir
rdenes o modificar las
existentes
Pantalla donde se van viendo
las rdenes introducidas o los
parmetros introducidos.
Seal de salida en forma de
luces que simulan la
conexin a un motor
ENTRADAS
SALIDAS
(Tipo Rel)
76
8.5 PROGRAMACIN DEL LOGO!
El LOGO se programa con lenguaje FPB es decir, que su lenguaje es grfico es decir mediante
logigramas, por lo que no necesita grandes conocimientos de programacin, y no se borran al
suspender la alimentacin Qu tipo de memoria tendr interna?
Segn el tipo de salida que tiene el autmata, puede ser analgica?
CO CONECTORES
Los conectores que puedes usar en las entradas de los bloques son:
Nada conectado = x
Entradas = I1 I2 I3 I4 I5 I6
Salidas = Q1 Q2 Q3 Q4
Fijas 1/ 0 = hi lo (high= alto=1, low=bajo=0).
GF FUNCIONES BSICAS INTEGRADAS
OR NOR

AND NAND

NOT
XOR
(diferentes = 1 )

SF FUNCIONES ESPECIALES
Retardo a la
conexin
Cuando se pulsa la entrada hay un tiempo
de retardo T en que se conecte la salida. La
salida termina cuando termina la accin de
la entrada.(interruptor).
Retardo a la
desconexin
Cuando se pulsa la entrada, se conecta la
salida que tardar un tiempo en
desconectarse tomado desde que la entrada
se desconecta. (pulsador). Existe el reset.
Telerruptor
Esta funcin tiene una entrada que cuando
se activa inmediatamente se activa la salida
que estar activada hasta que vuelva a
aparecer una nueva entrada.
Existe la funcin reset que anula la
informacin previa.
Interruptor
horario, (Reloj
no disponible
en el modelo
230R)
Esta funcin tiene tres entradas en las que
se puede programar tres franjas horarias
diferentes, siendo la salida la suma de
todas ellas.
La salida actuar a la primera entrada que
le diga algo.
Rel con
autorretencin
(Biestable RS)
Esta funcin hace uso de la entrada set que
hace que la salida se accione, estando as
hasta que acte el reset.
Generador de
pulsos
Ante una entrada (En) que estar activada
durante un tiempo T, la salida generada
ser en forma de impulsos.
77
Retardo a la
conexin
memorizado
Es un retardo a la conexin igual que en la
primera funcin pero al ser memorizado,
esta funcin no se desconecta, y adems la
entrada es en forma de conector y no de
interruptor.
Contador
adelante/atrs
Es una funcin que tiene la propiedad de
contar (Cnt) y actuar cuando se llega a un
determinado nmero (Par) o superior a
este. La funcin puede ir en la direccin de
aumentar el nmero disminuir (Dir).
Dispone de reset (R ). La salida ser 1
cuando lleguemos al nmero del par o
superior y 0 cuando sea menor.
EJERCICIO: Rellena la 3 columna dibujo explicativo, en forma de diagrama de
estados:
Retardo a la
conexin


Retardo a la
desconexin


Telerruptor




Interruptor horario



Rel con
autorretencin
(Biestable RS)

Generador de
pulsos


Retardo a la
conexin
memorizado

Contador
adelante/atrs



78

8.8 EJERCICIOS CON EL LOGO!
8.8.1 Ejercicios manejo funciones generales
1 Realizar un programa en el LOGO que cuando los interruptores I1 I2 e I3 estn
activados, Q1 se active (activarse = 1)

2 Realizar un programa en el LOGO que cuando alguno de los interruptores I1 I2 e I3
estn activados, Q1 se active (activarse = 1)

3 Si I1 e I2 son diferentes entonces Q1=1

4 Si I1 e I2 son iguales entonces Q1=1

5 Si I1=1 I2=1 e I3 =0 entonces Q1=1 ser 0 en otro caso

6 Si I1=1 I2=1 e I3 =0 entonces Q1=1 ser 0 en otro caso
Si I1=1 I2=0 e I3 =0 entonces Q2=1 ser 0 en otro caso
Q3=1 si ocurre alguno de los anteriores casos

7 Si I1=1 I2=1 e I3 =0 o I1=0 I2=1 e I3 =0 entonces Q1=1 ser 0 en otro caso
Si I1=1 I2=0 e I3 =0 entonces Q2=1 ser 0 en otro caso
Q3=1 si ocurre alguno de los anteriores casos
Q4 = 1 si ocurren los dos anteriores casos a la vez (Q2 y Q3)

8 Si I1=1 I2=1 I3 =0 I4=1 I5=0 I6=1 entonces Q1=1 ser 0 en otro caso

Los siguientes 4 problemas hacerlos slo si os sobra tiempo, si no pasar al 13:

9 Teniendo en cuenta slo las entradas I1 I2 I3 e I4 realizar un programa que Q1=1 si el
nmero de interruptores activados superan o igualan al nmero de interruptores
desactivados.

10 Teniendo en cuenta slo las entradas I1 I2 I3 e I4, hacer un programa que si el
nmero de interruptores activados de I1 I2 I3 e I4 son impares entonces Q1=1

11 Teniendo en cuenta slo las entradas I1 I2 I3 e I4, hacer un programa que si hay dos
interruptores contguos activados, entonces Q1=1.

12 Teniendo en cuenta slo las entradas I1 I2 I3 e I4, hacer un programa que si hay dos
interruptores contguos activados, entonces Q1=1. Si I2=0 e I4 =0 entonces la salida Q1
es indiferente.

79
8.8.1 Ejercicios manejo funciones especficas
13 Realizar un programa con el LOGO que sirva como temporizador de una luz de
escalera, es decir si se pulsa la entrada I1, entonces Q1 se encuentra encendido digamos
40 seg.
14 Si observamos cmo se enciende un telfono mvil, podemos ver que es un
interruptor de pulsacin prolongada, es decir, que hay que hacer una pulsacin larga en
la tecla correspondiente y entonces se conecta el movil. Realizar un programa con el
LOGO de manera que con una pulsacin prolongada en I1 de 6 segundos entonces la
mquina conectada en Q1 se active.

15 En una habitacin con dos interruptores y una luz, para que desde cualquier
interruptor se pueda encender y apagar la luz hace falta un interruptor de cruze, pero en
el caso de ms de 2 la solucin es muy tediosa, por ejemplo una gran nave. Realizar un
programa en LOGO que solucione este problema, donde hay cientos de pulsadores (en
vez de interruptores) que cada uno de ellos pueden encender o apagar la luz conectada
en Q1
16 Supongamos una puerta elctrica, que con un pulsador o clula fotoelctrica se abre
la puerta. Realizar un programa que con un pulso en I1 se active Q1 Cundo se
desactivar? Para ello tiene que existir un fin de carrera, I2, es decir, un pulsador que
cuando la puerta llegue hasta el final, estos pulsadores son NC (normalmente cerrados)
cmo seguridad. Para simplificar el problema supondremos que no es NC (normalmente
cerrado) sino NA (normalmente abierto).

17 Vamos a aadir a la puerta del ejerccio anterior un cierre automtico, de tal manera
que exista un pulso en I1, despus de 10 segundos tiene que activar el sentido de giro de
cerrar Q2 hasta llegar al final de carrera I3 que por simplificacin ser NA. En un
problema posterior se tratar ms profundamente del cambio de sentido de giro de un
motor.

18 Para completar ms an la puerta automtica, se pide en este ejercicio aadir un
aviso intermitente por Q3 de 0.5 segundos cuando se este cerrando la puerta Q2

19 En una cinta de transporte de una panaderia, se encuentra una clula fotoelctrica I1
que emite pulsos cada vez que pasa por delante de ella un pastelito. Realizar un
programa que cuando cuente 16 empaquete el pastelito. La mquina de empaquetar est
en Q1. Una vez concluida la empaquetacin, por I2 se le envia un pulso para que
empieze a contar.

20 Supongamos una oficina, que desea que la calefaccin Q1 se conecte Lunes a
Viernes de 9:00 hasta las 13:00 y de 16:00 hasta las 19:00, excepto los viernes
conectar a las 8:00 en vez de las 9:00 y que de desconectar a las 18:00 en vez de las
19:00 pues se entra ms pronto y se sale ms pronto. Los Sabados slo se trabaja por la
maana y habra que conectar la calefaccin de 9:00 a 13:00.

21 Supongamos una mquina taladradora Q1 que tiene dos pulsadores. Uno para On I1
y otro para Off I2. Realizar el programa que permita su funcionamiento.

22 Realizar el mismo ejercicio anterior pero que slo sea un solo pulsador I1
80

8.8.3 Ejercicios globales funciones generales+funciones especiales GF+SF tericos
23.- Cuando se active I1 o I2, que se encienda la lampara Q1 tardando 7 segundos
en desconectarse. I1e I2 pulsadores.

24.- Cuando se active I1 e I2, que se encienda la lampara Q1 tardando 10 segundos
en desconectarse.
25.- Hacer una intermitencia cuando se pulse I1 e I2, la intermitencia que sea de 1
segundo cada periodo (0.5 segundos encendido y 0.5 segundos apagado), siendo I1
e I2 interruptores.

26.- Hacer una intermitencia cuando se pulsa I1, y que esa intermitencia se apague
cuando se vuelva a pulsar. La intermitencia que sea de 1 segundo de periodo.

2- Hacer una intermitencia durante 10 segundos cuando se encienda I1 e I2 que son
pulsadores.
81
28.- Hacer un programa que cuando se active I1 se encienda Q1 durante 5
segundos, y si se activa I2 que haga una intermitencia de 1 segundo cada periodo,
siendo I1 un pulsador e I2 un interruptor.

29.- Hacer un programa que cuando se active I1 se encienda Q1 durante 5 seg. Y si
se activa I2 que durante 5 seg haya una intermitencia de 0.5seg. cada periodo
siendo I1 e I2 pulsadores. I3 pulsador como Reset

30.- Que Q1 realice una intermitencia de 5 segundos con 1 segundo cada periodo
cuando se apague I1, siendo I1 un pulsador. I3 pulsador como Reset

31.- Al pulsar 1x I1 se enciende Q1, al pulsar 2 x I1 se enciende Q1 y Q2, al pulsar
3 x I1 se enciende Q1 Q2 Q3, y al pulsar 4 x I1 se apagan todos

32.- Que se encienda Q1 5 segundos cuando se active I1, siendo I1 interruptor.

33.- Al accionar I1, Q1 se acciona 2 segundos despus de que se apague I1 y
funciona durante 1 segundo, siendo I1 un pulsador.

34 Cuando se accione I1, despus de 10 segundos, que Q1 haga una intermitencia
durante 5 segundos (1 segundo cada periodo), siendo I1 pulsador.

82

35.- Realizar un secuenciamiento de luces, en bucle.

Q1 => Q2 => Q3 => Q4 => Q1 => Q2 => .....
8.8.4 Ejercicios GF+Sf casos prcticos
36 Realizar un programa que simule un semforo. Q1=Rojo Q2=Amarillo Q3=Verde de tal manera
que este 8 seg. en Rojo, 2 seg. en Amarillo y 10 seg. en verde. Se comenzar con un pulso en I1.

37 El mismo ejercicio que 36, pero que la luz amarilla haga intermitencia

38 Se desea abrir una puerta con dos pulsadores I1=Abrir, (fin de carrera I2) I3=Cerrar (fin de
carrera I4). Para abrir se utilizar la salida Q1, y para cerrar Q2. Para invertir el giro se utilizan 4
rels emparejados segn el esquema de la figura:


Q1 Q2 Motor
0 0 Parado
0 1 Cerrar
1 0 Abrir
1 1 CORTO

Podemos observar que si Q1 y Q2 se
activan se producira un corto.
Realizar el programa en LOGO tomando
en cuenta esta consideracin. Los finales
de carrera son NC como en la realidad.
Consejo : Ver 16.


39 Para completar ms an la puerta
automtica, se le puede dotar de un
dispositivo de cierre automtico con slo
un pulsador I1 para abrir, que a los 10seg.
automticamente se cierre. I3 puede tomar
ahora el significado de Paro de emergencia que como todos los interruptores de seguridad son NC.

40 La puerta de los ascensores se diferencian de las puertas automticas en que se pueden cerrar
automticamente, o bien porque se acciona algun botn interior de subir/bajar pisos.
Supongamos un ascensor, la entrada I1 acciona la apertura de puertas (que puede ser la salida de una
puerta AND con el pulsador de llamada junto con el de posicionamiento del ascensor) con el pulso
se abren las puertas Q1 (fin de carrera I2) espera 10 segundos, y se cierran las puertas Q2 (fin de
carrera I3) pero se puede adelantar el cierre de la puerta del ascensor si se da un pulso en cualquiera
de los pisos I4 I5 I6.

83
41 En una serrera, tenemos una cortadora de tablones de manera que si se acciona I1 La cuchilla
baja (Q1) hasta el final de carrera I3 NC y entonces se pone a girar la cuchilla (Q3) y el tabln se
mueve hacia l (Q4) hasta el fin de carrera I4 NC entonces la cuchilla se para y sube (Q2) hasta el
final de carrera I2 NC. Existe un interruptor NC I5 de seguridad para parar todo el sistema. Q4 slo
funciona si adems esta activo un interruptor de mover tabln I6


42 En una panificadora se cuenta con una cmara de fermentacin que de forma
automtica se conecta y desconecta. Con lo que sabes del logo programa la
siguiente propuesta: La cmara problema debe estar conectada de lunes a viernes de
9:00 a 14:00 y de 16:00 a 20:00, y los sbados y domingos debe estar de 10:00 a
13:00 y de 20:00 a 22:00.

43.- Imagina el caso del problema anterior pero que un dia fuese festivo y
tuvisemos que considerarlo como fin de semana, propn un programa para este
caso, que sea facil la alteracin del programa, con slo entrar en la parametrizacin
del logo, y no en la edicin del programa.
84
8.9 SOLUCIONES EJERCICIOS DEL LOGO
8.9.1 Soluciones a los ejercicios de funciones generales GF

1


2



3


4



5 En este caso tenemos que hacer una combinacin para
que resulte el propsito del enunciado

6 En este caso Q1 = I1 * I2 * I3neg (igual que en ejercicio anterior 5)
Q2 = I1 * I2neg * I3neg
Q3 = (I1 * I2 * I3neg) + ( I1 * I2neg * I3neg) o ms fcil Q3 = Q1 + Q2

7 En este caso Q1 = ( I1 * I2 * I3neg ) + ( I1neg * I2 * I3neg )
Q2 = I1 * I2neg * I3neg
Q3 = Q1 + Q2 Q4 = Q3 * Q2

8 En este caso lo que hay que hacer es : Q1 = I1 * I2 * I3neg * I4 * I5neg * I6

9 Aqu lo que hay que hacer es una tabla de verdad con su correspondiente tabla de
karnaugh :

I1I2 I3 I4 Q1 I1 I2\I3 I4 00 01 11 10
0000 0 00 0 0 1 0
0001 0 01 0 1 1 1
0010 0 11 1 1 1 1
0011 1 10 0 1 1 1
0100 0
0101 1
0110 1 La funcin es simplificando
0111 1
1000 0 Q1=I3I4+I1I2+I2I3+I2I4+I1I3+I1I4
1001 1
1010 1
85
1011 1
1100 1
1101 1
1110 1
1111 1

10 En este caso podramos optar por hacer una solucin como la anterior,
camibando la tabla de verdad, o de una manera ms intuitiva y perspicaz
fijndonos en la puerta XOR, que si son diferentes (impar) sale 1 y si son
iguales (par) sale 0

11 Aqu lo que hay que hacer es una tabla de verdad con su
correspondiente tabla de karnaugh :

I1I2 I3 I4 Q1 I1 I2\I3 I4 00 01 11 10
0000 0 00 0 0 1 0
0001 0 01 0 0 1 1
0010 0 11 1 1 1 1
0011 1 10 0 0 1 0
0100 0
0101 0
0110 1 La funcin es simplificando
0111 1
1000 0 Q1=I3I4+I1I2+I2I3
1001 0
1010 0
1011 1
1100 1
1101 1
1110 1
1111 1

7.12 La tabla de karnaugh queda modificda con los estados indiferentes X de la forma :

I1 I2\I3 I4 00 01 11 10
00 X 0 1 X
01 0 0 1 1
11 1 1 1 1
10 X 0 1 X


La funcin es simplificando

Q1=I3 + I1I2

86
8.9.2 Soluciones a los ejercicios LOGO funciones especiales
7.13 Ser un retardo a la desconexin T=40seg. La entrada Trg ser I1, la salida Q1 y R puede
estar desconectada X

14 Prubalo y vers que si no mantienes el pulsador I1 6 seg entonces no
hay un pulso en Q1. Si quieres que ese pulso no se desactive, se puede
poner un biestable RS a la salida


15 Todos los pulsadores estaran conectados en paralelo en la misma
entrada I1. La entrada R puede estar desconectada (x)

16 La solucin es un biestable RS, donde en Set estara I1 y en Reset estara I2, la
salida Q1 (motor).

Si I2 fuese un pulsador NC tendramos que intercalar una puerta NOT

17 En este caso ser un retardo a la conexin memorizado, Ser
memorizado porque el motor tiene que estar activo hasta que lo ordene
el fin de carrera I3.

En el caso que I3 fuese NC habra que interponer una puerta NOT


18 Slo es aadir un intermitente por Q3

19 En este caso sera un contador, el pulso por I2 producira el Reset. Dir
tiene que estar a nivel bajo LO.

Si se quisiera un reset automtico despues de empaquetar, en vez de I2
habra que poner un retraso a la desconexin de Q1.

20 Ser un programador horario con las siguientes programaciones :
No1 = Mo-Sa On=9:00 Off=13:00
No2=Mo-Fri On=16:00 Off=19:00
No3=Fri On=8:00 Off=18:00

21 La solucin es un biestable

22 La solucin es un telerruptor, en R puede estar suelto (x) u otro pulsador


87
8.9.3 Soluciones a los ejercicios GF+SF tericos

23




24




25




26






27





28




29







30
88
31 Una solucin podra ser esta, donde I2
hace de reset al contador que cuenta 4 (que
es el que hace de reset a los dems) En
este ejercicio hay que tener cuidado cmo
se conectan, el primer bloque Par=1 es
B01, el de Par=4 es B02 el de Par=2 es
B03 y el de Par=3 es B04.



Otra solucin para no tener que utilizar el
Reset del I2 y utilizar otros mdulos que
no sean el contador, es el esquema de la
figura de la derecha. Se utiilzan RS que
recuerdan, y el siguiente biestable hace Set
si se ha activado el anterior. Q4 hace el
papel de resetear a todos. Los mdulos de
retardo de conexin se utilizan para no
coincidir I1 con el estado, si no se ponen,
simultneamente se ponen a uno todos.




32 A pesar que el enunciado parece fcil, la solucin
de este problema no lo es.

El retardo a la conexin negada produce un impulso
positivo de 5 segundos, que haciendo AND con I1
slo queda ese impulso




33 La solucin es parecida al anterior,

89
o de otra forma mucho ms fcil, los tiempos son el primero 3 seg y el segundo 2
segundo


34 Es aadir a la solucin del ejercicio anterior, un generador de intermitencias. Se
puede hacer con las dos soluciones:

La fcil
La dificil :
35 La solucin se basa en que si unimos dos bloques uno retardador a la desconexin y
otro retardador a la conexin, ese bloque que aqu llamamos Blq es un retardador como
en el ejercicio 33, ese bloque es puesto en cascada a traves de todos los estados y ya
tenemos el secuenciamiento en bucle, el primero se puede activar por Q4 o por I1 que
dar el impulso inicial. Los tiempos pueden ser todos iguales T=seg.


90
8.9.4 Soluciones a los ejercicios GF+SF casos prcticos

36 Es muy parecido al anterior, pero programando adecuademente los tiempos :
T1=8 T1=10 T2=2 T2=8 T3=10 T3=2 el primer bloque de I1 tiene T=10seg.
37 La solucin es una versin modificada del anterior

38 El problema es parecido al 16
pero con la pecularidad de utilizar
fines de carrera NC por eso I2 e I4
se niegan primero. Tambin para
evitar que nunca Q2 se active
estando Q1 activado se utiliza la
puerta NOT y la puerta AND del
final.

39 Ahora hay que contar con el paro de emergencia, I3 y el set de Q2 se tiene que
accionar con un pulso retardado de 10seg de I1

91
40 En este caso hay que aadir la accin de los pulsadores I4 I5 I6, se ha optado por un
retardo a la conexin memorizado
41 Para esta solucin hay que jugar con los biestables RS, y los finales de carrera.

42 Se necesitan varias programaciones, luego hay que utilizar varios progamadores
horarios y unirlos mediante una puerta OR

Programas : Mo-Fri On:9:00 Off:14:00
Mo-Fri On:16:00 Off:20:00
Sa-Su: On:10:00 Off:13:00
Sa-Su: On:20:00 Off:22:00


92
43 En este caso lo mejor es poner tantos programas como dias tiene la semana, y as
slo habra que entrar en la parametrizacin:
Mo On:9:00 Off:14:00 Mo On:16:00 Off:20:00
Tu On:9:00 Off:14:00 Tu On:16:00 Off:20:00
We On:9:00 Off:14:00 We On:16:00 Off:20:00
Th On:9:00 Off:14:00 Th On:16:00 Off:20:00
Fri On:9:00 Off:14:00 Fri On:16:00 Off:20:00
Sa-Su: On:10:00 Off:13:00 Sa-Su: On:20:00 Off:22:00
Es decir, un programador ms que el ejercicio anterior.


BIBLIOGRAFA
- Tecnologa industrial II, Manuel Murgui Izquierdo, Juan Jos Vela Rozaln.
Editorial Edeb, 1999.
- Curso Completo de Automatizacin Industrial Moderna, Victoriano Angel
Martnez Snchez, Editorial Ra-ma, 1992.
- Tecnologa Industrial II, Sonia Val, Jose Luis Huertas, Editorial McGraw-Hill,
1996.
- Manual de instrucciones del autmata Logo de Siemens.
- Autmatas programables, A. Porrs, A.P. Montanero. Editorial McGraw-Hill,
1990.
Internet
http://www.siemens.es/ps/logo.htm De Siemens Espaa.
En ella puedes encontrar informacin sobre los diferentes modelos de LOGO!, adems del software
LogoSoft con 14 ejemplos de programacin en castellano.
http://www.ad.siemens.de/logo/index_78.htm De Siemens Alemania.
Pgina distinta a la espaola disponible en varios idiomas, entre ellos el espaol.
93
8.10 EJEMPLOS PRCTICOS DEL LOGO

8.10.1 Pulsador de Confort

Se desea realizar en la luz de la escalera de una finca un circuito que sea capaz de cumplir los siguientes
requisitos:

- Al pulsar cualquier pulsador que la luz
se mantenga encendida 6m

- Si en alguna ocasin se desea
mantenerla siempre encendida, (por
ejemplo en operaciones de limpieza)
que pulsando dos veces cualquier
pulsador se mantenga encendida, y
que para apagarla se mantenga
pulsado el pulsador durante al menos
2 seg.
Solucin : El esquema de conexiones de
LOGO y el programa



Reto: 1.- Que exista un interruptor general de encendido y otro de apagado
2.-Antes de apagarse la luz, que parpadee 3 veces

94

8.10.2.-Puerta automtica

Se desea hacer una puerta autontica que abra la puerta cuando algun sensor detecte presencia, y lo cierre
al cabo de 10 minutos

Solucin de montaje con el LOGO:

Programa a realizar :
Reto:

1.- Que exista un horario de
entrada por ejemplo 9:00 a
21:00 y un horario de salida de
8:00 a 22:00

2.- Que exista dos interruptores
de cerra y de abrir.
95
8.10.3.- Instalacin de ventilacin
Se desea mantener un recinto con ventilacin mantenida, hay dos ventiladores, uno de evacuacin, y otro
de insuflacin, cada ventilador es supervisado or un controlador de corriente, en el recinto nunca debe
producirse sobrepresin, y solo se puede activar el ventilador de insuflacin cuando se notifique el
correcto funcionamiento del ventilador de evacuacin. una lmpara indica si falla alguno de los dos
ventiladores.

Solucin:

Esquema de conexiones con el LOGO y programa



96
8.10.4.- Portn corredizo

Se desea hacer un portn que se abra automticamente al accionar el pulsador I1 ABRIR y que se cierre
con el pulsador I2 CERRAR, tiene un pulsador NC de emergencia I3 de paro , un pulsador NC de presin
de seguridad I5, un conmutador de posicin ABIERTO I3 y otro de CERRADO I4.

Solucin con el LOGO

Programa

Reto:

1.- Que se cierre
automticamente a los 10
segundos

2.- I2 sobra
97
8.10.5.- Cadenas luminosas

Las distintas cadenas luminosas se activan dirctamente en el recinto, cuando sea suficiente la luz natural,
las cadenas que esten cercanas a las ventanas se desconectan automticamente, la luz se apagar
automticamente a las 8 de la tarde, siempre se podrn conectar a mano en el recinto


Solucin

I1 a I4 sern los pulsadores e I5 el sensor de luminosidad, Q1 y Q2 las cadenas luminosas de las ventanas,
y Q3 y Q4 la de los pasillos.

Programa


98
8.10.6.- Bomba de aguas residuales

El agua de lluvia se deposita en un depsito que puede servir para lavar la ropa, regar jardines, regar
flores, limpiar automviles, enjuagar el WC.... desde sta puede tomarse el agua de lluvia igual que
sucede con el agua potable, Si llegara a vaciarse el depsito, es posible rellenarlo con agua potable.
Para controlar la bomba se requiere un interruptor de presin I1, los interuptores de flotador I2, I3, I4. Q1
es el contactor que acciona la bomba y Q2 la vlvula magntica para suministrar el agua potable.

Esquema

Solucin programa LOGO







99
9 Problemas de memorias.
9.1 ENUNCIADOS EJERCICIOS DE MEMORIAS
1.- Calcular el Bus de datos, Bus de direcciones, n de clulas de memoria, estructura de la matriz y
dibujo de la estructura interna de las siguientes memorias :
a) Memoria 128x8
b) Memoria 64x8
c) Memoria 4096x8
d) Memoria 16284x8
2.- Que tipo de memora es cada uno de los chips siguientes, Bus de datos, Bus de direcciones, n de
clulas de memoria, dibujo de la estructura de la matriz.





















3.- En el circuito de la figura, rellena los siguientes campos: Qu pasa en el pulso A?
Pulso qu dato se escribe en qu direccin
B
C
D
E
y ahora estos:
Pulso direccin salida
F
G
H
I
C
H
I
P

B

C
H
I
P

C
H
I
P

A

100

Ejercicios de apliacin de memorias, no se darn en clase, slo son para propio aprendizaje
4.- Partiendo del AB de un microprocesador de 16 bits AB, realizar el circuito de seleccin de un chip de
memoria EPROM de 2kx8 situado entre las direcciones F800 y FFFF.CS a nivel alto.

5.- Partiendo del AB de un micro de 16 bits AB, realizar el circuito de seleccin de un chip de memoria
RAM de 2kx8 situada en las direcciones ms bajas. CS a nivel bajo.

6.- Realizar una memoria 1kx12 con RAM 2114 1kx4 con controles CS a nivel bajo.

7.- Realizar una memoria 2kx4 con RAM 2114 1kx4 para un micro de 12 bits AB y 4 de DB. Indicar las
direcciones que corresponden a cada circuito integrado.

8.- Realizar una memoria 4kx8 con RAM 2114 1kx4 para un micro de 16 bits AB ocupando las
direcciones ms bajas. Utilizar decodificadores y puertas lgicas. Indicar las direcciones que
corresponden a cada circuito integrado.

9.- Implementar el siguiente mapa de memoria con puertas lgicas y decodificadores:
Direcciones Funcin Mapa de memoria fsico
0000 a 03FF VARIABLES DEL SISTEMA Y STACK RAM 1Kx4 A B
0400 a 07FF DATOS TEMPORALES RAM 1Kx4 C D
A000 a AFFF INTERFACE CIRCUITOS E/S E
E000 a EFFF TABLAS Y DATOS FIJOS ROM 2kx8 F
F000 a FFFF PROGRAMA ROM 2kX8 G

10.- Implementar el siguiente mapa de memoria para un micro de 8 bits, utiliza decodificadores 3 a 8
74LS138 y decodificadores 2 a 4 74LS139 entrada E y salidas a nivel bajo.
DIRECCION CHIP DIRECCIN CHIP
FFFF F800 ROM 2Kx8 A 9FFF 9000 RAM 2Kx8 D
F7FF F000 ROM 1Kx8 B 0FFF 0800 RAM 2Kx8 E
AFFF A000 E/S C 07FF 0000 RAM 2Kx4 F G

11.- Implementa el siguiente mapa de memoria para un micro de 8 bits
DIRECCIN CHIP
FFFF F000 EPROM MCM2716 2Kx8
A00F A000 PUERTOS E/S VIA 6522
03FF 0000 RAM MCM2114 1Kx4

12. Implementar el siguiente mapa de memoria para un micro de 8 bits, utiliza decodificadores 3 a 8
74LS138 ,decodificadores 2 a 4 74LS139 entrada E y salidas a nivel bajo y puertas lgicas

DIRECCION CHIP DIRECCIN CHIP
0 0 0 0
0 3 F F
A
RAM
0 8 0 0
0 B F F
C
ROM
0 4 0 0
0 7 F F
B
RAM
0 C 0 0
0 F F F
D
ROM
101
9.2 SOLUCIONES EJERCICIOS
DE MEMORIAS

1 a) Memoria 128x8

DB=8 D7 a D0
Como 128=2
7
luego AB=7 A6 a A0
Nmero de clulas 128*8=1024
Estructura de la matriz \1024=32 luego
32x32 matriz cuadrada
Dibujo


1b) Memoria 64x8

DB=8 D7 a D0
Como 64=2
6
luego AB=6 A5 a A0
Nmero de clulas 64*8=512
Estructura de la matriz \512=no es exacta
luego matriz rectangular
512=64x8=2
6
x2
3
=2
9
=2
5
x2
4
=32x16
Dibujo







1 c) Memoria 4096x8

DB=8 D7 a D0
Como 4096=4k=2
2
2
10
=2
12
luego AB=12
A11 a A0
Nmero de clulas 4096*8=32768
Estructura de la matriz \32768=no es
exacta
luego matriz rectangular
32768=4096x8=2
12
x2
3
=2
15
=2
7
x2
8
=128x256
Dibujo

1 d) Memoria 16284x16

DB=16 D15 a D0
Como 16284 no es multiplo de potencias de
2, el ms cercano superandose es
16k=16x1024=16384 Dnde estn el resto
de las 100 palabras? O estn reservadas, o
daadas, nosotros lo consideraremos 16k
=2
4
2
10
=2
14
luego AB=13 A12 a A0
Nmero de clulas 16384*16=262144
Estructura de la matriz \262144=512 es
exacta
matriz cuadrada =512x512
Dibujo
102
2.- El chip A tiene seal WR en el pin W/R luego es RAM y por las seales RAS y CAS es
inequvocamente una DRAM pues necesita refresco y el AB esta multiplexado, es decir, que hay que
contar con el doble A0-A5 se convierten en A0-A11 luego 12 lneas de AB = 2
12
=2
2
2
10
=4K, y como slo
hay una lnea de datos DIN y DOUT parecen dos, pero son la misma, slo que una de entrada y otra de
salida, luego lnea de datos =1 entonces: DRAM 4Kx1

El chip B no vemos ninguna seal WR luego es ROM, tampoco vemos ningn pin Program luego el
nico chip ROM que no se programa es la MASKROM programada de fbrica. Tamao A0-A9 y D0-D7
luego 2
10
x8 = MASKROM 1Kx8

El chip C no tiene ninguna seal de WR luego es ROM, tiene una seal de Program (Pin 18) luego es
Programable, puede ser PROM EPROM EEPROM, como no tiene ningn pin de Erasable, descartamos
EEPROM y entre PROM y EPROM lo nico que las diferencia es la ventana de cuarzo, como no se le ve,
es PROM Tamao A0-A9 y D0-D7 luego 2
10
x8 = PROM 1Kx8

3.-En el pulso A no se selecciona el chip, luego no hace caso del bus de direcciones ni el de datos
Pulso qu dato se escribe en qu direccin
B 1111 0000
C 1110 0001
D 1101 0010
E 1100 0011
y ahora estos:
Pulso direccin salida
F 0000 1111
G 0001 1110
H 0010 1101
I 1111 ????



4.- Una memoria 2Kx8 tiene 11 pines el resto
seleccionan al chip:
Direcciones de memoria :
A15A12 A11 A8 A7 A4 A3 A0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0

Como vemos las lneas A15 a A11 tienen que
seleccionar a la memoria, y como CS es a nivel
bajo, entonces es una puerta NAND (Con 11 sale
0 en otro caso 1)

Problema 4
103
5.- Una memoria 2Kx8 tiene 11 pines el resto seleccionan
al chip:
Direcciones de memoria ms bajas:
A15A12 A11 A8 A7 A4 A3 A0
0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Como vemos las lneas A15 a A11 tienen que seleccionar
a la memoria, y como CS es a nivel bajo, entonces es una
puerta OR (con 00 sale 0 en otro caso 1)


6.- En el dibujo se puede ver 3 memorias 1kx4
conectadas en paralelo en el AB, de tal forma que
comparten las mismas direcciones de memoria pero
en el DB estn conectadas en serie, de tal forma
que las 3 forman palabras de 12 bits, en el dibujo
falta conectar todos los CS a uno slo que sera la
seleccin de los tres a la vez.

7.- Las direcciones de memoria de los dos chips
sern :
A11 A8 A7 A4 A3 A0
CHIP A 0 1 1 1 1 1 1 1 1 1 1 1
0 1 0 0 0 0 0 0 0 0 0 0
CHIP B 0 0 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0
El chip A ser
10 * 11 A A CS =
El chip B se seleccionar con
10 11 10 * 11 A A A A CS + = =

8.-El dibujo sera el siguiente




Problema 5
Problema 6
Problema 7
Problema 8
104
Sera una ampliacin del nmero de bits de la palabra, y de la direcciones. El CS habra que activarlo
segn las direcciones de memoria que tuviera cada uno:
chip direccin chip direccin
A B
0000 0000 0000 0000
0000 0011 1111 1111
C D
0000 0100 0000 0000
0000 0111 1111 1111
E F
0000 1000 0000 0000
0000 1011 1111 1111
G H
0000 1100 0000 0000
0000 1111 1111 1111


Los bits A15 a A12 son
siempre los mismos, luego
pueden seleccionar al circuito
decodificador, y el circuito
decodificador segn las
rdenes de A10 y A11
deciden qu chip de memoria
tiene que activarse.


9.- Pasando los nmeros hexadecimales a binario tenemos (A y B junto con C y D van a pares pues slo
tienen 4 bits de datos, para formar 8 de datos tienen que compartir las mismas direcciones de memoria).
chip A15 A12 A11 A8 A7 A4 A3 A0
A B
0 0 0 0
0 0 0 0
0 0 0 0
0 0 1 1
0 0 0 0
1 1 1 1
0 0 0 0
1 1 1 1
C D
0 0 0 0
0 0 0 0
0 1 0 0
0 1 1 1
0 0 0 0
1 1 1 1
0 0 0 0
1 1 1 1
E
1 0 1 0
1 0 1 0
0 0 0 0
1 1 1 1
0 0 0 0
1 1 1 1
0 0 0 0
1 1 1 1
F
1 1 1 0
1 1 1 0
0 0 0 0
1 1 1 1
0 0 0 0
1 1 1 1
0 0 0 0
1 1 1 1
G
1 1 1 1
1 1 1 1
0 0 0 0
1 1 1 1
0 0 0 0
1 1 1 1
0 0 0 0
1 1 1 1
Los bits A15 a A12 son siempre los mismos, luego pueden seleccionar al circuito decodificador, y el
circuito decodificador segn las rdenes de A10 y A11 deciden qu chip de memoria tiene que activarse.


Problema 8
Problema 9
105
10.- Pasando los nmeros hexadecimales a binario tenemos .
chip A15 A12 A11 A8 A7 A4 A3 A0
A
1 1 1 1
1 1 1 1
1 1 1 1
1 0 0 0
1 1 1 1
0 0 0 0
1 1 1 1
0 0 0 0
B
1 1 1 1
1 1 1 1
0 1 1 1
0 0 0 0
1 1 1 1
0 0 0 0
1 1 1 1
0 0 0 0
C
1 0 1 0
1 0 1 0
1 1 1 1
0 0 0 0
1 1 1 1
0 0 0 0
1 1 1 1
0 0 0 0
D
1 0 0 1
1 0 0 1
1 1 1 1
0 0 0 0
1 1 1 1
0 0 0 0
1 1 1 1
0 0 0 0
E
0 0 0 0
0 0 0 0
1 1 1 1
1 0 0 0
1 1 1 1
0 0 0 0
1 1 1 1
0 0 0 0
F G
0 0 0 0
0 0 0 0
0 1 1 1
0 0 0 0
1 1 1 1
0 0 0 0
1 1 1 1
0 0 0 0
Los chips F y G van en paralelo para formar palabras de 8 bits

11.- Pasando los nmeros hexadecimales a binario tenemos .
chip A15 A12 A11 A8 A7 A4 A3 A0
A
1 1 1 1
1 1 1 1
1 1 1 1
0 0 0 0
1 1 1 1
0 0 0 0
1 1 1 1
0 0 0 0
B
1 0 1 0
1 0 1 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
1 1 1 1
0 0 0 0
C D
0 0 0 0
0 0 0 0
0 0 1 1
0 0 0 0
1 1 1 1
0 0 0 0
1 1 1 1
0 0 0 0

Los chips C y D estn conectados en
paralelo para conseguir palabras de 8
bits

Para su seleccin se han utilizado
dos 74138

Los otros se ha optado por puertas
lgicas









106


12.- Pasando los nmeros hexadecimales a binario tenemos .

chip A15 A12 A11 A8 A7 A4 A3 A0
A
0 0 0 0
0 0 0 0
0 0 0 0
0 0 1 1
0 0 0 0
1 1 1 1
0 0 0 0
1 1 1 1
B
0 0 0 0
0 0 0 0
0 1 0 0
0 1 1 1
0 0 0 0
1 1 1 1
0 0 0 0
1 1 1 1
C
0 0 0 0
0 0 0 0
1 0 0 0
1 0 1 1
0 0 0 0
1 1 1 1
0 0 0 0
1 1 1 1
D
0 0 0 0
0 0 0 0
1 1 0 0
1 1 1 1
0 0 0 0
1 1 1 1
0 0 0 0
1 1 1 1



Los bits A15 a A12 son siempre los mismos, luego pueden seleccionar al circuito decodificador, y el
circuito decodificador segn las rdenes de A10 y A11 deciden qu chip de memoria tiene que activarse.


107
Perifricos de
PC
33%
Industria
16%
Automocin
10%
Electrodom
25%
Telecom
16%


10 Microcontroladores CPIC16F84
1 INTRODUCCIN A LOS MICROCONTROLADORES
Los microcontroladores estn presentes en muchos electrodomsticos y aparatos
electrnicos comunes: Telfonos, teclados de ordenadores, electrodomsticos, hornos
microondas, cmaras, videos, TV, impresoras, modem... cualquier dispositivo
electrnico que tenga que controlar un proceso. Antes se realizaba con lgica
combinacional, discreta, hoy en da se realiza todo en un solo chip, que tiene los
elementos indispensables para decir que se trata de un ordenador integrado en un solo
circuito integrado.
Tiene integrado las siguientes partes :

- Unidad Central de Proceso UCP
- Memoria RAM para contener los datos
- Memoria ROM para contener el programa
- Reloj que sincroniza la velocidad del
sistema.
- Perifricos de Entrada y Salida: lneas
E/S, puertas serie/paralelo, A/D D/A...

Se puede decir que es una verdadera computadora, no es slo un microprocesador, sino
sus perifricos ya integrados, esta versatilidad, y su reducido coste le ha aumentado su
popularidad, se puede decir que por cada P que se vende se venden cientos de C.
Memoria ROM.- Existen C con memorias Mscara (CR), OTM o PROM,
EPROM, EEPROM ( C ) y FLASH (F), estas dos ltimas son muy tiles si el C se
tiene que programar varias veces, incluso en el mismo circuito, por eso es utilizado
tambin como autmatas.
Las memorias Mscara son utilizados en C grabados en fbrica que no se
volvern a programar, por lo que se encuentran en bastantes dispositivos de consumo.
WatchDog tambin llamado Perro Guardin se trata de un contador que vigila
el programa, su fundamento es un contado que se va decrementando, si llega a 0 y se
encuentra dentro del mismo bucle donde ha empezado provoca un reset del C, as se
evita que el C se cuelgue en un bucle sin fin. El programador tiene que ir
refrescndolo en los bucles grandes.
BrownOut fallo ante la falta de alimentacin, cuando la alimentacin baja de la
tensin BrownOut el C se mantiene reseteado.
Sleep es frecuente que el C se encuentre sin hacer nada esperando que alguna
entrada se accione, entonces se pone en bajo consumo junto con sus perifricos
asociados hasta que la entradas lo despierten.
A/D D/A a veces integran convertidores preparados para leer una seal
analgica que el lo procesar en digital (A/D) y al revs, una salida analgica para algn
actuador (D/A).

Existen muchas otras caractersticas que os podis encontrar en los C pero se
escapan de esta breve introduccin.
108
1.1 Tipos de PIC

Los PIC son C fabricados por Microchip (www.microchip.com) se clasifican por su
anchura de palabra, los hay de 4, 8, 16, 32 bits, los ms comunes por su versatilidad en
multitud de aplicaciones son los de 8 bits.
Dentro de la familia de PIC de 8 bits podemos encontrar 4 familias:
- Familia Enana PIC12C(F)XXX de tan slo 8 pines, slo 33 instrucciones y una
alimentacin entre 2.5V y 5V consumen muy poco (~2mA) y tienen 6 lineas E/S !!

- Familia Baja PIC 16C5X con 18 y 28 pines, ms prestaciones que la enana.

- Familia Media PIC16C(F)XXX esta es la familia ms variada de PICs dentro de
esta familia se encuentra el 16X84 que ser objeto de estudio. Los encapsulados van
desde 18 hasta 68 pines, el repertorio de instrucciones es de 34 de 14 bits cada una

- Familia Alta PIC17CXXX con 58 instrucciones de 16 bits cada una, 8k palabras de
memoria para el programa y 454 para datos, lo ms destacable de estos pics son su
estructura abierta, por lo que se parecen ms a los P.

1.2 Caractersticas del PIC 16X84
Los microcontroladores estn diseados con arquitectura tipo Harvard que separa
fsicamente la memoria de datos y la del programa:
Las caractersticas de los PIC16X84 son las siguientes
Modelo Memoria Programa
Memoria Datos Registros
especficos
E/S Vcc Pines
RAM EEPROM
PIC16C84 1KX14 EEPROM 36 64 11 13 2-6 18
PIC16F84 1KX14 FLASH 68 64 11 13 2-6 18

Y aqu esta el esquema del conexionado del PIC16X84 para cualquier tipo de aplicacin:



109
Para osciladores tipo RC ms baratos pero ms inestables, se varia el anterior esquema
de acuerdo con la siguiente figura:


Ejemplos de frecuencias
625kHz R=10k C=20pF
80kHz R=10k C=220pF
80Hz R=10k C=0.1F






Como se puede ver dispone de 2 puertos de E/S :
Puerto A = 5 pines = A0A1A2A3A4
Puerto B = 8 pines = B0B1B2B3B4B5B6B7

1.3 Herramientas para la compilacin
Los PIC se suelen programar en lenguaje ensamblador, existen numerosos textos
sobre el tema, por ejemplo Microcontroladores PIC Jose M Angulo Mc Grawn Hill.
Una vez escrito se ensambla para convertirlo en lenguaje mquina con el programa
ensamblador MPASM de Microchip.

Otra forma de programar el PIC es con un lenguaje de alto nivel, puede ser con BASIC
y compilarlo para convertirlo a lenguaje mquina con el PICBASIC.

Otro lenguaje de alto nivel para programar el PIC es con C y compilarlo con el
compilador PICCLITE. Todos estos programas puedes conseguirlos utilizando la
pgina del Departamento http://centros4.pntic.mec.es/ies.de.caudete/DepElect.htm

Un pequeo ejemplo

Vamos a ver un ejemplo de un programa escrito en lenguaje ensamblador. El objetivo es
realizar un intermitente por B0

110
Bucle: High 0
Pause 500
Low 0
Pause 500
GoTo bucle
End
1.4 Cmo se hace con lenguaje ensamblador?

Primero realizamos el programa en un editor de
textos, puede ser el EDIT de MSDOS o el Bloc de
Notas de Windows. Lo grabamos por ejemplo en
Mis Documentos en una carpeta nueva llamada Pic
y lo grabamos como Prueba.asm.

Luego compilamos el programa con el MPASM tal
y como ensea la figura :
Hay que tener cuidado de indicar correctamente el
procesador a utilizar. Generar un fichero en
formato hexadecimal llamado Prueba.hex
preparado para grabarlo en el PIC. Puedes leer el
fichero en un editor de textos, quedar de la siguiente forma :





1.5 Cmo se hace con Basic?
En PicBasic se tecleara el siguiente programa:
Al compilarlo el resultado seria parecido al Prueba.hex

1.6 Cmo se hace en C?
En PICCLITE se teclea el siguiente programa







Una vez tecleado se pulsa Compile->Compile and Link o F3 (ms rpido) te pedir que
elijas el C a utilizar:
list p=16f84A
#include p16f84a.inc
Tiempo EQU 22h
Vueltas EQU 23h
org 0
CONFIGURAR
BSF STATUS,RP0
BCF TRISB,0
BCF STATUS,RP0
COMIENZO
BSF PORTB,0
CALL RETARDO
BCF PORTB,0
CALL RETARDO
CALL RETARDO
GOTO COMIENZO

RETARDO MOVLW b'11001000'
MOVWF Vueltas
MAS DECFSZ Tiempo
GOTO MAS
MOVLW b'11111111'
MOVWF Tiempo
DECFSZ Vueltas
GOTO MAS
RETURN
END
:020000040000FA
:100000008316061083120614092006100920092001
:100010000328C830A300A20B0B28FF30A200A30BBB
:040020000B280800A1
:00000001FF
#include <pic.h>
main(){
int i;
TRISB=0b00000000;
for(;;){
PORTB=0b00000000;
for(i=1;i<10;i++) continue;
PORTB=0b00000001;
for(i=1;i<10;i++) continue;
}
}
111
:0C000000830100308A0004288301B52B26
:10076A0083168601831286018C018C0A8D010D087D
:10077A00803A8E0080300E020A3003190C02031CE4
:10078A00C72BC82BC92BDA2BCA2B8C0A03198D0A43
:10079A000D08803A83128E0080300E020A30031947
:1007AA000C02031CD92BDA2BC92B013083128600C9
:1007BA008C018C0A8D010D08803A8E0080300E0261
:1007CA000A3003190C02031CEB2BEC2BED2BFE2B2E
:1007DA00EE2B8C0A03198D0A0D08803A83128E00BB
:1007EA0080300E020A3003190C02031CFD2BFE2B6B
:0607FA00ED2BB72B0428D3
:00000001FF








Las dems opciones pulsar OK son
correctas las que seala por defecto.

Si abres el fichero Prueba.hex generado
tendr la siguiente pinta:

No tendra que ser igual al hecho en
ensamblador? Por qu?



1.7 Simulacin SIMUPIC

Lo correcto sera pasar a la simulacin del fichero antes de pasarlo al PIC real.
Entramos en el programa SIMUPIC

Entramos en 1. Asignar nombre => Pulsamos Intro y buscamos nuestro Prueba.hex
Luego en 4. Cargar fichero Hex
Y por fin en 6. Ejecutar
Veremos como el pin B0 va haciendo un intermitente.
Podemos alterar las entradas de A0..A4 pulsando F1..F5
(si las B0..B7 fueran entradas es con <Shift>F1..F8)
Si queremos simular otro programa, o otra versin del mismo, tenemos que salir
obligatoriamente para borrar el anterior programa cargado.
+- Select Midrange processor... ---------------------------------+
|
( ) 16C84 |
( ) 16F84 |
(*) 16F84A
|
[ OK - Enter ] < Cancel - Esc > < Help - F1 > |
+----------------------------------------------------------------+
112
1.8 Cmo se programa el PIC?
Antes de nada hay que subir el tiempo de nuestro programa, pues el PIC va muchsimo
ms rpido que el simulador SIMUPIC, para ello entramos de nuevo en PICLITE y
subimos el tiempo aproximadamente 1000 veces :










Una vez hecho esto, se vuelve a compilar F3, salir del programa y entrar en
IcProg, la primera vez que se ejecuta hay que decir que programador se usa, en
nuestro caso se llama JDM Programer en COM1 o COM2
Conectamos nuestra placa TE20 , pulsar el botn de abrir
Y buscamos nuestro Prueba.hex
Una vez cargado apretamos al botn de programar :
El aspecto de nuestro programa ser el siguiente: (antes desactivar el WatchDog: WDT)

Una vez programado, sacaremos nuestro PIC del programador, y montaremos el circuito

ATENCION: IC-PROG EN WIN-XP :Se debe de tener en la misma carpeta que el
ejecutable IcProg.exe el archivo icprog.sys. Este fichero se puede descargar de www.ic-
prog.com . Adems hay que habilitar el Driver NT/2000/XP en Ajustes->Opciones-
>Miscelanea.
#include <pic.h>
main(){
int i;
TRISB=0b00000000;
for(;;){
PORTB=0b00000000;
for(i=1;i<10000;i++) continue;
PORTB=0b00000001;
for(i=1;i<10000;i++) continue;
}
}
113
1.9 Placa TE20
Aqu tienes un esquema del programador TE20, lo puedes construir t mismo, o
comprarlo (~18e)

Como podemos ver en la serigrafa, el
TE20 tambin sirve para programar la
EEPROM 24CXX y (zcalo pequeo) y el
PIC 16F876 adems del 16F84.
Nota, el puente p es mejor sustituirlo por
una R=1k






2 BREVE REPASO AL LENGUAJE C
Generalidades
En nuestros programas tenemos que incluir la siguiente librera #include <pic.h> que
da definicin a los puertos y registros de estado.
Despus de main(){ podemos declarar las variables que nos interesen en el programa, se
puede utilizar int (para n desde -32600 a 32600), unsigned int (para n desde 0 a
32600) variables tipo char para variables de 8 bits muy tiles para los puertos.
Sentencias condicionales
Con la sentencia if(condicin){....}
podemos ejecutar algunas instrucciones si la condicin ha sido verdadera.
Si queremos que segn la condicin ejecute unas instrucciones, y si es falsa la condicin
que ejecute otras, tenemos que utilizar:
if(condicin){..instrucciones si es verdad..}
else{ ..... instrucciones si es falsa la condicin.... }
Son tiles las operaciones and && y or ||
Una condicin es verdadera si tiene un valor distinto de cero.
Operadores relacionales son : igual == distinto = . por ejem if (x==1){...}
y las comparativas < > <= >= por ejemplo if (x<=10) {...}
114
Operadores
Una variable se puede incrementar con el operador ++ y decrementar con --
por ejemplo x++ ; y--; equivale a hacer =x+1; y=y-1;
Operadores binarios que nos pueden ser de utilidad son:
And & Or | Not ~ (Alt+126) no hay que confundirlas con las anteriores.
Operadores de desplazamiento que nos son de utilidad son << y >> .
Por ejemplo : char x,y,z,u,v,t;
x=0b00100010; y=0b01010011; z=x&y; u=x|y; v=~x; t=y>>2; x=x<<1;
Qu valores tienen z, u , v, t, x?


Sentencias de bucles
Si quiero sentencias repetitivas, utilizo la sentencia for(inicio;final;incremento)
Por ejemplo, si quiero hacer una cosa 10 veces : for(i=1;i<=10;i++){.......} o de forma
decremental for(i=100;i>=1;i--){....}
si se quiere que se repita siempre, es til hacer for(;;){......}
Tambin se puede utilizar las sentencias do{...}while(condicin) y while(condicin){..}
Es muy til utilizar la sentencia goto etiqueta para saltarnos a algn lugar del programa.
Con la sentencia continue el programa continua a la siguiente iteracin, y con la
sentencia break el programa rompe el bucle y sale de l.

Configurar puertos
El puerto A (5bits) se configura con el registro TRISA, y el B (8bits) con TRISB.
El 0 para Output y el 1 para Input. (0b... = n en binario, 0x... n en hexadecimal)
ejem.- Cmo queda el puerto A con la instruccin TRISA=0b00111;?

Y el puerto B con TRISB=0b01100000;?
Escribir en los puertos
Para cargar el nmero que queramos al puerto se hace de forma muy sencilla:
TRISA=0b00011; PORTA=0b01010; Qu leds se encenderan?
TRISB=0b01001101; PORTB=0b11111110; Qu leds se encenderan?

Tambin podemos cargarlo a travs de una variable :
Ejem: char x; TRISB=0x00; x=0x01; PORTB=x; x++; PORTB=x;
Qu leds se encienden en el primero? Y despus?
Leer puertos
Para leer un puerto, se lee a travs de una variable, ejemplo:
char x,y; TRISA=0b11111; x=PORTA; TRISB=0xff; y=PORTB;

No esta permitido hacer TRISA=0x00; TRISB=0xff; PORTA=PORTB;
pero s esta permitido hacer TRISA=0x00; TRISB=0xff; x=PORTB; PORTA=x;

Si queremos que se realice alguna instruccin si el interruptor A3 esta en on se realiza
con la sentencia if y el adecuado operador binario:
x=PORTA;
if ( (x&01000)!=0) {..instrucciones ....}

115
3 EJERCICIOS
3.1 Enunciados
1.- Realizar un intermitente por todo el puerto A.

2.- Realizar un programa que el Puerto B sea la lectura del puerto A

3.- Realizar un programa que el Puerto B sea la inversa de la lectura del puerto A

4.- Realizar un programa que el puerto B sea la inversa del puerto A, los leds que sobran
(B5..B7) que hagan intermitencia.

5.- Realizar un programa de manera que si se acciona A1 entonces se encienden todas
los leds del puerto B

6.- Realizar un programa que sea un secuenciamiento de luces hacia la izquierda del
puerto B, es decir: PB=00000001 00000010 00000100 00001000...10000000 00000001

7.- Realizar un programa de tal manera que si A0=0 hay un intermitente por B0 su
A0=1 hay intermitente por B1

8.- Realizar un programa de manera que si no se acciona A2 el puerto B hace un
secuenciamiento de luces hacia la derecha, si se acciona A2 se para.

9.- Realizar un programa que sea alarma de coche, el led B0 indica que esta en
funcionamiento, hay dos sensores en A0 y en A1, si alguno de los dos se pone a 1,
entonces se dispara la alarma , la alarma es un intermitente en todos los B, la alarma se
apaga poniendo A2=1

10.- Realizar un programa que visualice por el display conectado en el puerto B de
forma hexadecimal el nmero que se proporciona en el puerto A. El display ser de
nodo comn. (puedes hacerlo de ctodo comn) Es decir, se trata de convertir el PIC
en un decodificador a display 7447

11.- Realizar un programa que pilles la luz . El puerto A ser entrada, y el puerto B
ser salida, que realizar la siguiente secuencia:
00000001 00000010 00000100.... 100000000 00000001
y si el interruptor que acciones en A es igual a la luz que se visualiza por B, entonces se
iluminan todas las luces del puerto B

12.- Realizar un programa de dado electrnico, en el puerto B ser la salida de un
nmero del 1 al 6 de forma rpida, estar conectado a un display (podra hacerse de
forma directa, como en el problema 10, pero por simplicidad, lo haremos a travs de un
7447, es decir, slo utilizaremos el puerto B las salidas B3B2B1B0 codificadas en
binario.
Cuando en A1 sea =1 el dado se parar dando un nmero al azar entre 1 y 6. Cuando
A1=0 volver a empezar.

13.-Realizar un pitido por el pin B0
3.2 Soluciones
/**********************************
* Ejer1 intermitente por el puerto A
*
**********************************/
#include <pic.h>
main(void)
{
unsigned int i;
TRISA = 0b00000;
for(;;) {
PORTA = 0b00000;
for(i = 0;i<10;i++) continue;
PORTA = 0b11111;
for(i = 0;i<10;i++) continue;
}
}
/**********************************
* Ejer2 PB=PA
**********************************/
#include <pic.h>
main(){
char i;
TRISA=0b11111;
TRISB=0b00000000;
for(;;){
i=PORTA;
PORTB=i;
}
}
/*************************
Ejer3
PORTB que sea la ~PORTA
**************************/
#include <pic.h>
main(){
char x,y;
TRISA=0b11111;
TRISB=0b00000000;
for(;;){
x=PORTA;
y=~x;
PORTB=y;
}
}
/*************************
Ejer4
PORTB que sea la ~PORTA
B5 B6 y B7 intermitentes
**************************/
#include <pic.h>
main(){
int i;
char x,y,z;
TRISA=0b11111;
TRISB=0b00000000;
for(;;){
x=PORTA;
y=~x;
z=y&0b00011111;
PORTB=z;
for (i=0;i<10;i++) continue;
z=y|0b11100000;
PORTB=z;
for (i=0;i<10;i++) continue;
}
}
/*********** Ejer5*******************
*si A1=1 entonces que se encienda todo PB
***********************************/
#include <pic.h>
main(){
char i;
TRISA=0b11111;
TRISB=0b00000000;
for(;;){
i=PORTA;
if((i&0b00010)!=0)
PORTB=0xff;
}
}
/************Ejer6**********************
*Secuenciamiento de luces por PB
*************************************/
#include <pic.h>
main(){
char i;
int j;
TRISB=0b00000000;
i=0b00000001;
for(;;){
PORTB=i;
i=i<<1;
if (i==0) i=1;
for (j=0;j<=10;j++) continue;
}
}
/* ********************
Ejer7
si A0=0 intermitente B0
si A0=1 intermitente B1
**********************/
#include <pic.h>
main(){
int i;
TRISA=0b11111;
TRISB=0b00000000;
luzB0: for(;;){
if ((PORTA&0b00001)!=0)
goto luzB1;
PORTB=0b00000000;
for (i=0;i<10;i++) continue;
PORTB=0b00000001;
for (i=0;i<10;i++) continue;
}
luzB1: for(;;){
if ((PORTA&0b00001)==0)
goto luzB0;
PORTB=0b00000000;
Problemas electrnica Digital Profesor Javier Quintana
Pgina 117

for (i=0;i<10;i++) continue;
PORTB=0b00000010;
for (i=0;i<10;i++) continue;
}
}
/******************************
Ejer 8
que haga juego de luces
si A2=0
si A2=1 que pare
******************************/
#include <pic.h>
main(){
int i;
char x,y;
TRISA=0b11111;
TRISB=0b00000000;
y=0b10000000;
mueve: for(;;){
x=PORTA;
if ((x&0b00100)!=0) goto
para;
y=y>>1;
if (y==0) y=0b10000000;
PORTB=y;
for(i=0;i<10;i++) continue;
}
para: for(;;){
x=PORTA;
if ((x&0b00100)==0) goto
mueve;
PORTB=y;
}
}
/*************************************
***** Ejer9 Alarma de coche el led B0 indica
que esta en funcionamiento si A0 o A1 entonces
se dispara la alarma la alarma es un intermitente
en todos los B la alarma se apaga con A2
*************************************/
#include <pic.h>
main(){
char i;
int j;
TRISB=0b00000000;
TRISA=0b11111;
PORTA=0b00000;
inicio: for(;;){
i=PORTA;
if ( (i&0b00010) | (i&00001)
) goto alarma;
PORTB=0b00000001;
for (j=0;j<=10;j++) continue;
PORTB=0b00000000;
for (j=0;j<=10;j++) continue;
}
alarma: for(;;){
i=PORTA;
if (i&0b00100) goto inicio;
PORTB=0b11111111;
for (j=0;j<=10;j++) continue;
PORTB=0b00000000;
for (j=0;j<=10;j++) continue;
}
}
/******************
Ejer 10 visualizar el PORTA en el display
PORTB=a b c d e f g pt
*****************/
#include <pic.h>
main(){
char x;
TRISA=0b11111;
TRISB=0b00000000;
for(;;){
x=PORTA;
if (x==0) PORTB=0b11111100;
if (x==1) PORTB=0b01100000;
if (x==2) PORTB=0b11011010;
if (x==3) PORTB=0b11110010;
if (x==4) PORTB=0b01100110;
if (x==5) PORTB=0b10110110;
if (x==6) PORTB=0b10111110;
if (x==7) PORTB=0b11100000;
if (x==8) PORTB=0b11111110;
if (x==9) PORTB=0b11100110;
if (x==10) PORTB=0b11101110;
if (x==11) PORTB=0b00111110;
if (x==12) PORTB=0b10011100;
if (x==13) PORTB=0b01111010;
if (x==14) PORTB=0b10011110;
if (x==15) PORTB=0b10001110;
}
}
/********************************
Ejer 11
Pillar la luz
********************************/
#include<pic.h>
main(){
char x,y;
int i;
x=0b00000001;
TRISA=0b;11111
TRISB=0b00000000;
for(;;){
PORTB=x;
x=x<<1;
if (x==0) x=0b00000001;
y=PORTA;
if (y==x) goto fin;
for(i=0;i<10;i++) continue;
}
fin: for(;;){
PORTB=0b11111111;
}
}
/****************************
Ejer12
B0_B3 sea un dado electronico hasta
Problemas electrnica Digital Profesor Javier Quintana
Pgina 118

para cuando A1=1
hay que quitar el Watch Dog
*****************************/
#include <pic.h>
main(){
unsigned char i,j;
TRISA=0b11111;
TRISB=0b00000000;
PORTA=0b00000;
inicio: for(;;){
for (j=1;j<=6;j++){
PORTB=j;
i=PORTA;
if ((i&0b00010)!=0) goto para;
}
}
para: for(;;){
i=PORTA;
if ((i&0b00010)==0) goto inicio;
}
}
/****************************
Ejer13
B1 un pitido
*****************************/
#include <pic.h>
main(){
unsigned char i;
TRISB=0b00000000;
for(;;){
PORTB=0b00000001;
for (i=1;i<=10;i++) continue;
PORTB=0b00000001;
}
}
Si no se
quiere utilizar transistores, hay que conectar un
altavoz de poca potencia, pues el PIC no tiene
mucha corriente de salida, por ejemplo, el
altavoz pequeo de un ordenador:

4 TARJETAS PIC
Las tarjetas PIC son muy usadas tanto para abrir puertas automticas como para descodificacin de
canales privados de televisin. Aqu podemos ver una foto de cmo han ido evolucionando, las tres llevan
un PIC 16F84A y una EEPROM 24XX (grabables con el TE-20):
En el caso de que sirvan para puertas automticas, se pueden copiar con nuestro IC-Prog, en el caso de la
decodificacin, a travs del codificador,
peridicamente se van cambiando los cdigos
para evitar el pirateo es lo que se denomina
ataque, por Internet existen numerosos
programas para grabar estas tarjetas, y en las
mismas pginas se pueden descargar los cdigos
para salvar los ataques, con el inconveniente de
que hay que hacerlo peridicamente.

En la figura se muestra la pantalla del programa
FunCard donde hay que suministrarle los
ficheros .hex que se deben de bajar de Internet
en cada ataque, sobre para la memoria Flash
interna del 16F84A y la Eeprom externa 24XX.


Microfoto
grafia de
PentiumM
ver el
espacio de
L2

11 Microprocesador P 8085
1.- INTRODUCCIN MICROPROCESADOR 8085
1.1.- El 8085 dentro de los tipos de microprocesadores que hay
En esta tabla tienes un resumen de los tipos de microprocesadores que existen

Fab Tipo Nombre DB AB ao MHz Observaciones
Rock
4bits
PPS-4
4 8 1971 -1 En calculadoras programables 28K transistores
Intl 4004
Mot
8bits no
PC
6500
8 16 1972 1 a 4
Actualmente en Automatas
Zlg Z80 Antiguos Amstrad, Atary hoy en da en Gameboy
I
n
t
e
l

8085 Actualmente en Automatas
PC
8086 8
20
1978 4.77
a
8
Primeros PC XT compatibles IBM hasta 1M RAM
coprocesador:8087 8088 16 1979
286 286 16 24 1982 8-12 PC AT hasta 16M deRAM coprocesador 287
386
386SX 16
32
1988 16/20 Coprocesador 387 275K transistores
386DX 32 1985
20/2
5/33

486
486SX
32
1991
33
1.2M transistores sin coprocesador Soket3
486DX 1989 Con Coprocesador incluido Soket3
486DX2 1991 66 Obligatorio uso del ventilador
486DX4 1992
75/
100
Tecnologa 3.3V x3 (fext=33.3MHz) L1=16K
I
n
t
e
l

P
e
n
t
i
u
m

Pentium
64
32 1993
75 a
200
3M transistores integrados Soket5
Fexterna=66MHz multiplicacin =x1.5/x2/x2.5/x3
Voltios 3.3 -3.52V L1=16K
Pent PRO
36
1996
150
a
200
Volt=3.3 x2.5/x3
L1 = 16K L2=256k a 1M
L2 en el mismo encapsulado
Pent MMX 1997
166
a
233
Instrucciones MMX Multimedia con reg. Esp.
L1=32K x 2.5 x3 x3.5 L2 externa
Socket 7 4 con volt=2.8V y 3.3Vcore
PentiumII 1997
233
a
450
=PentMMX + PentPRO Slot1 Volt=3.3V
Fext=66MHz / 100MHz
L1=32K L2=256K / 512K
Celeron 1997 = PentMMX en Slot1=PII sin L2
Xeon 1997
400
a
450
L2=1M
Volt=2.5V Vcore=2V Fext=100MHz x4 / x4.5
Pentium III 1999 500 Fext=100MHz en slot1 y en socket7

PC Actuales :

Fab Tipo Nombre DB AB ao GHz Observaciones
Intel Pentium
Pent IV
64 36
2002 1-2 RDRAM Tecnologia 0.18 Instrucciones SSE2>MMX
Pent M 2004 1.3-1.6
L2=1M Vcore<1.5V Menor consumo, peso,espacio
Portatil Centrino=PentM+Chipset855+Wireless2100
AMD Athlon 64FX 2004 2.2
Fext=400MHz Vcore=1.5V Socket940
L1=940K L2=M


4 Externamente igual que el 5 pero que tiene esas dos tensiones para aumentar el multiplicador
Problemas electrnica Digital Profesor Javier Quintana
Pgina 120

Otros Fabricantes :

F
a
b

Tipo Nombre DB AB ao MHz Observaciones
C
y
r
i
x Pent C686 64 36 80 a 150 <<Pentium Fext=40 a 75MHz!!!
A
M
D

386 SX/DX
16/
32
32 1986 <386 de Intel con menos consumo
486
DX
32 32
1992
40 >486DX a 33MHz
DX2/DX4 50/66/80 =486DX2 de Intel
DX4-100 1995 100 <486DX4-100
DX5-133 1996 133 <486DX4-100
P
e
n
t
i
u
m

AMDK5
64 36
1995 75 a 166 =Pentium
AMDK6 1996 166 a 300 >Pentium MMX con Socket 7
K63DNOW 1997 266 a 400 <=Pentium II tiene L1=64K
K6-III 1998 450 a 600 <PentiumIII
K7 1999 400 a 800 >PentiumIII Fext=200MHz L1=128K L2=1M
Athlon 4 2001 1.1GHz =>Pentium IV

1.2 En resumen
Tipos de micros:
Segn marca : Intel, AMD, Motorola, Zilog
Segn DB :4bits (calculadoras) 8bits (autmatas) 16bits y 32bits (Antig. PC)
64bits (PC actuales)
16 bits => 386 (El SX era de 8 bits)
32 bits => 486 Tenan coprocesador (el SX no) y multiplicaban su frecuencia respecto a
la externa (33MHz) DX x1 DX2 x2 y DX4 x3 (No se tendra que llamar DX3?
64 bits => Pentium
Pentium Pro=>Tiene el cach L2 integrado =>Fext=66MHz Socket 5
Pentium MMX=>Tiene instrucciones MMX Socket 7
Pentium II = Pentium Pro +Pentium MMX Slot1
Pentium III =>Fext=100MHz Socket/Slot
AMD k6 como un Pentium Socket 7
AMD k6 3D NOW como Pentium II
AMD k7 como Pentium III (mejor) =>Fext=200MHz Socket/Slot

PC rico PC pobre
En paralelo con el mercado de micros, existen otros paralelamente que eran ms
econmicos, en comparacin con su omlogo, y por supuesto ms lentos. Por ejemplo:
PC Rico PC pobre
386DX con DB=32 386SX con DB=16 (~286)
486DX con coprocesador mat. Incluido 486SX sin coprocesador mat. (~386)
Pentium II con L2=256k Celeron sin L2 (~PMMX)
Actualmente tenemos :
Intel AMD Caractersticas Parecido
Celeron 1,2GHz Duron 1,1GHz 103$ 0,13 Socket A
5

L1=32k/128k L2=256k/64k
PIII




5
PC Word Nov 2001 pag 253
Problemas electrnica Digital Profesor Javier Quintana
Pgina 121


2.- HARDWARE DEL 8085
Dentro del 8085 tenemos los siguientes registros:


A (8) Acumulador ALU U.C. Unidad
Unidad Aritmetico Control
S Z AC P CY ... Flag (8) Lgica

B (8) C (8) RI (8) reg. de instruciones
D (8) E (8) SP (16) stack pointer puntero de pila
H (8) L (8) PC (16) contador del programa
registros auxiliares

Todos estan conectados entre si, y el 8085 tiene exteriormente 3 buses como
todos los microprocesadores (pero con tamaos diferentes):

Nombre bits comentarios
D.B. Bus de datos
(data bus)
8 conectado al R.I. desde este registro la U.C. lee las
instrucciones y las procesa.
A.B. Bus de direcciones
(Adrress Bus)
16 conectado al PC indica la direccin de memoria del
programa que se esta leyendo.
C.B. Bus de Control 10 Conectado a la U.C. para controlar el sistema

Hay que sealar que el 8085 tiene el bus de direcciones multiplexado, es decir, tiene 8 pines AD0 .... AD7
que son bus de datos y bus de direcciones (la parte baja), para diferenciarlo tiene un pin llamadoALE que
cuando es 0 las lineas AD0...AD7 es bus de datos D0...D7, y cuando ALE=1, las lineas AD0...AD7 es
parte baja del bus de direcciones A0...A7.

El bus de control adems del ALE, tiene los siguientes pines:
- Lectura Escritura: RD# y WR#6
- Acceso a memoria o a perifricos: IO/M#.
- pin indicador de estar preparado para atender al dispositivo exterior : READY.
- pin indicador que el dispositivo externo esta ocupando los buses : HOLD.
- pin indicador que el 8085 no hace caso a los buses HLDA.
- pin indicador que el 8085 se ha reseteado RESETOUT y el pin de RESET
- y pines indicadores de estado S0 S1 (S0S1 =01 Escribe dato, =10 Lee dato, =11
Busca direccin).


6 El smbolo # indica que es activo a nivel bajo.
Problemas electrnica Digital Profesor Javier Quintana
Pgina 122

En la pag 283 y 284 explica el funcionamiento de cada uno de los registros, unidades
etc.., seala brevemente el significado de cada uno de ellos:
Descripcin
A



B, C
D, E
H, L







Flag
S

Z

AC

P

CY


ALU





U.C.








R.I.


P.C.



S.P.

Funcio
namien
to de la
pila




Problemas electrnica Digital Profesor Javier Quintana
Pgina 123

3.- INSTRUCCIONES DEL 80857
Nomenclatura:
r = un registro de 1 byte , puede ser cualquiera de estos : A, B,C,D,E,H,L.
(rs =registro origen de datos, source, rd = registro destino de los datos)
[1000] = el dato almacenado en la direccin 1000H
[HL] = el dato almacenado en la direccin contenida en el registro HL
M =
dato = un nmero de 1 byte, por ejemplo 4AH, suelen ser los datos.
addr = un nmero de 2 bytes, por ejemplo 10B2H, suelen ser las direcciones
H=hexadecimal, B=Binario, D = Decimal
3.1.- Instrucciones de transferencia de datos

MOV rd,rs

MOV rd,M

MOV M,rs

MVI rd,dato

LDA addr



STA addr
LXH H,addr



ejemplo de utilizacin :

7 Estas hojas son las que se permitirn en los exmenes. Copia descriptivamente lo que significan cada
una de las instrucciones, y si necesitas algun ejemplo de aclaracin, cpialo detrs.
Problemas electrnica Digital Profesor Javier Quintana
Pgina 124

3.2.- Instrucciones aritmticas
ADD rs

ADD M

ADI dato

SUB rs

SUB M

SUI dato
INR rs

INR M

INX B

INX D

INX H

DCR rs

DCR M

DCX B

DCX D

DCX H

DAA

STC

CMC
3.3.- Instrucciones lgicas
ANA rs

ANA M

ANI dato
CMP rs

CMP M

CPI dato

alteran solo el flag : Z, S, CY, AC ...
ORA rs

ORA M

ORI dato

CMA

Problemas electrnica Digital Profesor Javier Quintana
Pgina 125

3.4 Instrucciones de desplazamiento
RLC

RRC

RAL

RAR

3.5 Instrucciones de salto
JMP addr

Jcondicion addr


condicin puede ser alguna de las siguientes:

Z
NZ
P
M
C
NC
PO
PE
3.6 Instrucciones para las subrutinas
CALL addr RET

3.7.-Instrucciones de control
HLT

NOP

IN puerto

OUT puerto
Problemas electrnica Digital Profesor Javier Quintana
Pgina 126

4.- MANEJO DEL SIMULADOR 8085 SIM8085

Vamos a realizar un pequeo ejemplo de funcionamiento. Vamos a mover el contenido
de la direccin 2000H al acumulador, y almacenarlo en la 2001H, y el contenido de la
direccin 2002H moverlo al registro B, y almacenarlo en la 2003H.

a) Escribir el siguiente programa en un editor, por ejemplo el EDIT de MS-DOS,
guardarlo como PRUEBA.ASM el archivo fuente debe de tener la extensin *.ASM
(vamos al direcctorio 8085, desde el raiz : CD C:\8085 y EDIT PRUEBA.ASM )

todo lo que se escribe despus de ; no se
ensambla, as que se puede utilizar como
comentarios.
ORG = organizar las siguientes lneas a
partir de la direccin en este caso 1000H
el programa se ha escrito a partir de la
direccin 1000H, carga el acumulador
(loadA) y lo almacena (storeA), para el
registro B hay que utilizar el registro M,


antes de utilizar el registro M hay que cargar HL la direccin que queremos,

LXI H,2002H, lo mueve a B, y para moverlo al 2003 podra haberse escrito LXI
H,2003H o como en este caso, incrementando lo que tena, movemos de B a M, y
para finalizar END.

b) despus de guardarlo ensamblarlo con la instruccin: ASM8085 PRUEBA.CCC
esto crea 3 ficheros, si salen errores hay que corregirlo en el prueba.asm:
PRUEBA.ERR = listado de errores de 1 pasada.
(A=argumento errneo, D=etiqueta no existe, L=etiqueta erronea, U=smbolo
indefenido, S= error sintaxis)
PRUEBA.LST = listado del programa, aqu salen los errores de 2 pasada.
PRUEBA.OBJ = listado en lenguaje mquina.
c) simularlo con el programa SIM8085, una vez dentro pulsar F4 y cargar el
PRUEBA.OBJ, utilizar los siguientes comandos:
R=modificar los registros, en este caso pondremos el contador del programa PC en la
direccin de comienzo de nuestro programa: 1000H
V=ver memoria, en este caso nos interesa ver lo que hay en la 2000H y siguientes.
M=modificar memoria, para poner nmero en la memoria.
T=trazar o ejecutar paso a paso, ir pulsando y observar lo que ocurre en cada
instruccin.
Q=salir F1 visualiza una ayuda C=ver el cdigo
E=ejecutar entre dos direcciones, ESC para salir, I para interrupcin 7.5
;programa de muestra
;*** mover datos ****
;colocacin de los n
;programa1
ORG 1000H
LDA 2000H
STA 2001H
LXI H, 2002H
MOV B,M
INX H
MOV M,B
END
Problemas electrnica Digital Profesor Javier Quintana
Pgina 127

4.1 EJERCICIOS CON EL SIMULADOR 8085
9.3.1.1.-Ejercicios de transferencia de datos
1- Utilizando el direccionamiento directo (LDA,STA,MVI) realizar un programa que grabe el
dato 3F en la direccin 1500H (No es necesario utilizar las tres)

2- Igual que el ejercicio anterior, pero utilizando el direccionamiento indirecto
(MOV M)

3- Utilizando el direccionamiento directo (LDA, STA) realizar un programa que grabe el dato
de la direccin 1500H en la direccin 1501H

4- Utilizando el direccionamiento indirecto (MOV M) realizar un programa que grabe el dato
de la direccin 1500H en la direccin 1501H

5- Realizar un programa que borre los datos [1500] [1501] [1502] pero antes de borrarlos que
grabe esos datos en la [1503] [1504] [1505] respectivamente.
9.3.1.2 Ejercicios de operaciones aritmticas
6- Realizar un programa que sume dos nmeros. Los sumando se proporcionarn de forma
inmediata en el programa y sern los valores 12H y A3H. El resultado se depositar en la
direccin 1500H (Resultado B5H)

7- Un programa que multiplique por 4 el dato contenido en la direccin 1500 y lo almacene en
la 1501. Para multiplicar nmeros por dos, se utiliza la instruccin RAL que desplaza los
bits a la izquierda y as queda multiplicado por 2.
Por ejem.- 6=00000110 =>RAL=> 00001100=12 =>RAL=> 00011000=18H=24D
9.3.1.3 Ejercicios de bucles
8.-Un programa que doble el n almacenado en 1500 tantas veces como lo diga el dato de 1501
y el resultado que se almacene en 1502. Es decir, si [1500]=6 y [1501]=4 entonces
[1502]=6*2*2*2*2=96D=60H

9.- Realizar un programa rellene los datos desde la [1000] hasta la [10FF] con el dato de la
[1500]

10.- Realizar un programa que borre tantos datos como lo diga la direccin [1500] a partir de la
1000, es decir si en 1500 hay un 13H entonces los datos de las siguientes direcciones se pondrn
a 00H : 1000 1001 1002 1003 ....1009 100A 100B 100C ... 100F 1010 1011 1012 1013.
9.3.1.4. Ejercicios con subrutinas y puertos
11.- Realizar un programa que haga una intermitencia por el puerto 00 en el bit de menor peso

12.- Hacer un programa que haga un secuenciamiento de leds es decir :10000000 01000000
00100000 00010000 00001000 00000100 00000010 00000001 10000000 ....
Problemas electrnica Digital Profesor Javier Quintana
Pgina 128

4.2 Soluciones ejercicios sim8085.
;***********************************
;**** EJERCICIO 1 ****
;************************************
ORG 2000H
MVI A,3FH ;A<=3F
STA 1500H
;***********************************
;**** EJERCICIO 2 ****
;************************************
ORG 2000H
LXI H,1500H ;
MVI M,3FH ;[1500]<=3F
END
;***********************************
;**** EJERCICIO 3 ****
;************************************
ORG 2000H
LDA 1500H ;A<=1500
STA 1501H ;1501<=A
END
;***********************************
;**** EJERCICIO 4 ****
;************************************
ORG 2000H
LXI H,1500H ;M=1500
MOV B,M ;B<=M
; Podra ser cualquier registro
LXI H,1501H ;M=1501
MOV M,B ;M<=B
END


;***********************************
;**** EJERCICIO 5 ****
;************************************
ORG 2000H
;Mover datos memoria
;[1503]<=[1500] Direccionamiento indirecto

LXI H,1500H
MOV B,M
LXI H,1503H
MOV M,B

; [1504]<=[1501] Direccionamiento directo
LDA 1501H
STA 1504H

;[1505]<=[1502] Direccionamiento indirecto
LXI H,1502H
MOV C,M
LXI H,1505H
MOV M,C

;Borrar datos memoria
LXI HL,1500H
MVI M,0H ;Borro [1500]
INX H
MVI M,0H ;Borro [1501]
INX H
MVI M,0H ;Borro [1502]
END

;Tambin se podra hacer MVI A,0H STA 1500H
STA 1501H STA 1502H
;***********************************
;**** EJERCICIO 6 ****
;************************************
ORG 200H
MVI A,12H ;A=12H
MVI B,0A3H ;B=A3H
ADD B ;A=A+B
STA 1500H; ;[1500]<=A
END

;***********************************
;**** EJERCICIO 7 ****
;************************************
ORG 2000H
LDA 1500H
RAL
RAL
STA 1501H
END

;***********************************
;**** EJERCICIO 8 ****
;************************************
; Es un programa muy parecido al anterior, pero que
;se tiene que realizar tantas veces como el contenido
;de 1501 mediante un bucle
[1502]=[1500]*2*2*2 ... [1501].....*2*2
;Se puede probar poniendo un 6 en 1500 y un 4 en
;1501HEn nuestro caso se almacenar
;6*2*2*2*2=96D=60H

;Cuando se utilizan ;bucles, saltos o subrutinas,
inicializar la pila LXI SP,3000H

;Programa
ORG 2000H
LXI SP, 3000H
LXI H,1501H
MOV B,M ;B=[1501]
LDA 1500H ;Cargo el n de 1500

BUCLE: RAL ;x2
DCR B ;Decremento B
JNZ BUCLE
;Salto a bucle mientras no sea 0
STA 1502H ;Almaceno a 1502
END
Problemas electrnica Digital Profesor Javier Quintana
Pgina 129

;***********************************
;**** EJERCICIO 9 ****
;************************************
; ORGANIGRAMA
; C <=FF
; B <=[1500]
; HL <=1000
; [HL]<=B
; HL<=HL + 1
; C <= C - 1
; NO ES 0? S
; N
; FIN
;************************************

ORG 2000H
LXI SP, 3000H
MVI C,0FFH
LDA 1500H ;A=[1500]
LXI H,1000H

BUCLE: MOV M,A
;Rellena el dato [HL] con el contenido de A
INX H ;HL apunta al siguiente
DCR C
JNZ BUCLE
END
;Cuando ha acabado los FF es ;decir desde
1000 hasta 10FF acaba
;****************************************
;*** EJERCICIO 10 ****
;************************************

; a hacerlo

;***********************************
;**** EJERCICIO 11 ****
;************************************
;hacer un intermitente
ORG 2000H

BUCLE: MVI A,00000001B
;Encender el bit de menor peso
OUT 00H ;Sacar por el puerto 00
CALL PAUSA
;Hacer una pausa o si no no se aprecia
MVI A,0 ;Apagar el bit
OUT 00H ;Sacar por el puerto
CALL PAUSA ;Hacer pausa
JMP BUCLE

;Surutina Pausa
;Esta pausa entretiene al 8085 contando FF
;hasta 0

ORG 2500H
PAUSA: MVI B,0FFH
OTRO: DCR B ;Es una pausa muy corta
JNZ OTRO
RET ;Volver al programa principal
END











;***********************************
;**** EJERCICIO 12 ****
;************************************
secuenciamiento del leds
ORG 2000H
MVI A,00000001B
;Encender el bit de menor peso
BUCLE: OUT 00H ;Sacar por el puerto 00
CALL PAUSA ;Hacer una pausa
RLC ;Corre el bit <=
JMP BUCLE


;Surutina Pausa
;Esta pausa entretiene al 8085 contando FF hasta 0
ORG 2500H
PAUSA: MVI B,0FFH
OTRO: DCR B ;Es una pausa muy corta
JNZ OTRO
RET ;Volver al programa principal
END
Problemas electrnica Digital Profesor Javier Quintana
Pgina 130

5.- MANEJO ENTRENADOR 8085
5.1 Prcticas para el manejo del entrenador
Enunciado:

Se realizar un programa que efecte la suma de los 10 primeros nmeros
hexadecimales, es decir 1+2+3+4+5+6+7+8+9+A, el resultado da 37H.

Solucin:

Programa:

ORG 0000H

ACUMDISPLAY EQU 04D5H

Direcc. Cod. Maq. Ensambl.
1000 31 FF 1F LXI SP,1FFFH
1003 3E 00 MVI A,00H
1005 06 0A MVI B,0AH
1007 80 SUMAR: ADD B
1008 05 DCR B
1009 C2 07 10 JNZ SUMAR
100C CD D5 04 CALL ACUMDISPLAY
100F 76 END

Cmo es posible que el programa se
pide que se organize en la 0000H y al
final se organiza en la 1000H? Por que
automticamente se incrementa en 1000
pues la memoria RAM est en la 1000H
(en la 0000H hay ROM).

Para visualizar el acumulador por la
consola, hay que ejecutar la subrutina
ACUMDISPLAY, la subrutina esta en la
direccin 04D5H, por eso la segunda
lnea del programa dice que
ACUMDISPLAY equivale a 04D5H.

Problemas electrnica Digital Profesor Javier Quintana
Pgina 131

5.2.- Cmo grabar y ejecutar el programa en el entrenador?
5.2.1.-Desde el ordenador (aconsejable) (Conmutador Teclado/CRT en posicin CRT)

1.-Hacer el fichero texto con el EDIT que se llame por ejemplo PRUEBA.ASM

2.- Se podra ensamblar con ASM8085, pero no lo metera en el entrenador, el
ASM8085 slo sirve para el SIM8085, para ensamblarlo y grabarlo en el entrenador
ejecutar el fichero batch HACERHEX PRUEBA (todo en el directorio C:\8085).

3.- Ver si hay algn error, si hay alguno, estar en PRUEBA.LST, en ese caso abortar el
programa batch con CTRL+C, si no hay errores ir pulsando INTRO hasta que aparece
un men preguntndote en qu puerto de comunicaciones est el entrenador.
Normalmente estar en COM1, pulsar INIC en el entrenador para ver si responde. Si
quieres saber como estn conectados el PC y el entrenador mira el Apndice A.

4.- Cargar el programa con el comando L , a la pregunta OFFSET contestar INTRO
(offset significa si quieres incrementar an ms el ORG)

5.-Ejecutar con G1000 recordar que a pesar que hemos puesto ORG 0000H el
programa HacerHex lo incrementa automticamente en mil unidades.

6.- Para finalizar la comunicacin pulsar INIC en el entrenador y H en el PC

Para ver ms comandos desde el PC puedes ver el APENDICE B, por ejemplo se puede
ver el programa ejecutando D1000,1010

5.2.2.- Desde el entrenador (Conmutador Teclado/CRT en posicin Teclado)

Con la tecla SME/ANT 1000 se va metiendo los cdigos mquina en hexadecimal a partir de la direccin
1000, hay que pulsar POST despus de cada cdigo, y ejecutar con GO 1000 y EJEC.
Para ver los comandos del entrenador, consultar el APENDICE C


5.3 Hardware y Mapa de memoria en el entrenador

El 8085 como tiene los buses de datos y el de direcciones multiplexado, el 74373 los
demultiplexa, 8085 ------ AB y DB (8) ------- 74373 ----- ABL (8) ----- DB(8)
Tiene un reloj de cuarzo de 4.915 MHz, un dedodificadro de 3 a 8 canalies
74138 y puertas and 7408 para la realizacin del mapa de memoria, que es la siguiente:
Direcciones chip, mapa hardware descripcin, mapa software
0000
0FFF
EPROM 4k
2732
Programa monitor de la consola y
subrutinas anteriores
1000
1FFF
2x RAM 2k
4016
Programas de usuario
2000
20FF
RAM 256 bytes
8155 U17
Utilizado por la consola

Problemas electrnica Digital Profesor Javier Quintana
Pgina 132

5.4.- Subrutinas prediseadas de fbrica
Para la elaboracin de vuestros programas podis utilizar las siguientes subrutinas ya
programadas en la ROM

Direccin nombre
8
descripcin Display
nombre
manuales
04D5H ACUMDISPLAY
El contenido del acumulador se visualiza en el display,
DISPLAY<=A
Datos UPDDT
044EH TECLAACUM Carcter de consola al acumulador A<=TECLADO no procede RDKBD
041DH MENSDISPLAY
Un mensaje que esta en memoria, que comienza en la
direccin apuntada por HL se visualiza en el display
9

DISPLAY<=[HL]
direcciones OUTPT
04C9H HLDISPLAY
Visualiza los contenidos de HL en el display
DISPLAY<=HL
direcciones UPDAD

Estas son las ms importantes, en el Apndice D existen ms subrutinas que podis utilizar.

Para utilizar estas subrutinas, hay que utilizar el comando EQU, por ejemplo:
TECLAACUM EQU 044EH
ACUMDISPLAY EQU 04D5H
Estas direcciones pertenecen a la ROM y son inalterables, pues vienen de fbrica.

Las subrutinas utilizan saltos de direccin, y para que el micro sepa dnde
regresar cuando acabe la subrutina, almacena la direccin del programa en curso en la pila, la
pila tiene que estar en una direccin RAM, por lo que la primera instruccin de nuestro
programa tiene que ser inicializar la pila en una direccin entre la 1000 y la 2000H ejem:
LXI SP, 1700H ; inicializar la pila
Estas subrutinas utilizan interrupciones, para permitir desenmascararlas es necesario poner 08H
al Acumulador, y ejecutar SIM, y para habilitar el sistema de interrupciones EI, es decir:
MVI A,08H
SIM
EI
Una vez escrita las anteriores lneas podemos llamar a las subrutinas cuando queramos en
nuestro programa por ejemplo: CALL ACUMDISPLAY

Lo malo que tienen es que alteran los registros, luego antes de llamarlas hay que
almacenar los datos importantes que se tienen en los registros, pues estas subrutinas las borran,
y despus cargar los datos previamente almacenados. Por ejemplo, supongamos que en A
tenemos datos importantes, y los queremos visualizar:

STA ALMACEN ; lo almaceno, al principio del programa ALMACEN EQU 1500H
CALL ACUMDISPLAY ; llamo a la subrutina
LDA ALMACEN ;recupero el acumulador, pues ACUMDISPLAY lo ha borrado

8 El nombre puede ser arbritario
9 Estos son los cdigos de los carcteres que se pueden sacar con la subrutina MENSDISPLAY
0 al 9 A a la F H L P I r blanco Y a U h
00..09 0A..0F 10 11 12 13 14 15 8E A3 A4 BB
Existe otra forma de sacar mensajes por el display es utilizando los puertos del 8279, ver pag 138
Prcticas nivel II los cdigos van relacionados con los segmentos del display :
d c b a . g f e
as H=01101111
Problemas electrnica Digital Profesor Javier Quintana
Pgina 133

5.5 Interrupciones

Supongamos que un perifrico quiere comunicarse con el P, Tiene que estar
viendo el P si se pulsa una tecla en un bucle sin fin, o debe de ser el P libre, y cuando
el teclado quiere comunicarse con el interrumpirlo? Evidentemente la respuesta es la
segunda opcin, los perifricos se comunican con los P a travs de unas lneas
especiales que se llaman Interrupciones, y cuando necesitan comunicarles algo lo hacen
por esas lneas, el P acepta la interrupcin y salta a una subrutina que atiende la
peticin. En los PC existen desde el 16 lneas de interrupciones conectadas a distintos
perifricos, puedes verlos en Mi PC Propiedades Administrador de dispositivos PC
Propiedades y en la misma ventana pinchando en Entrada/Salida las direcciones donde
estn las subrutinas que las atienden.

En nuestro 8085 no es un PC, hay menos interrupciones y hay de dos tipos:
Interrupciones tipo software: RST0, RST1, RST2 .... RST7
Interrupciones tipo hardware: RST5.5, RST 6.5, RST7.5, INTR, TRAP

El entrenador slo deja la RST6.5 RST7.5, como la 6.5 la utiliza el teclado vamos a
utilizar ser la RST7.5, (una tecla que est en la esquina superior izquierda).

En las interrupciones tipo hardware, es necesario que para que no tengan mscara, para
quitarles las mscara se puede modificar el registro I, o con la instruccin SIM y
tambin hay que validarlas con la instruccin EI, o sea, hay que poner al principio de
nuestro programa las instrucciones que se sealaron en el apartado 4.

En la interrupcin 7.5 el 8085 salta a la direccin 003CH, que en este entrenador esta en
la ROM, y tiene grabado la siguiente tabla:
003C C3
003D CE
003E 20
Es decir JMP 20CE, lo que significa que vuelve a saltar a la direccin 20CE y que
pertenece a la RAM pequea 8155, que slo tienes 3 sitios libres, donde se puede poner
un salto a otra direccin de tu programa entre la 1000 y la 1FFF

Conclusin: si pulsas la tecla INT7.5 el programa salta a la direccin 20CE y slo tienes
3 bytes libres para poner lo que desees, lo ms cmodo otra JMP ... (que ocupa 3 bytes)

Ejemplo: ..... (el final de tu programa)
;*******************************
;* Interrupcin 7.5 *
;*******************************
INTER: .... (lo que quieres que haga cuando se pulsa Int7.5)
JMP INICIO

ORG 10CEH10
JMP INTER
END

10 Hay que tener en cuenta que HACERHEX incrementa todos los ORG mil unidades
Problemas electrnica Digital Profesor Javier Quintana
Pgina 134

5.6.- Entrada y salida

9.4.6.1.-Perifricos del entrenador 8085
Una ranura de expansin J1 de 50 hilos.
Una salida MIC EAR para comunicarse con un cassette como perifrico de memoria
masiva externa, puedes ver en el APENDICE E cmo se pueden grabar y leer
archivos con un cassette
Un puerto serie por el conector J8 (GND,RX,TX) y con el chip 8251* el entrenador
se comunica con el PC (Ver apndice A)
Dos puertos PARALELOS :

tipo jumper puerto Anchura chip ref
PARALELO
Input/Ouput
J5
J6
J7
PA
PB
PC
8 bits
8 bits
6 bits
81555
*
U14
PARALELO
Input/Output
J2
J3
J4 (4-7)
J4 (0-3)
PA
PB
PCH
PCL
8 bits
8 bits
4bits
4 bits
8255
*
U15

El c.i. 8155 es realmente una RAM 256x8 utilizada en rangos de
memoria reservada para el sistema a partir de la direccin 2000, (ver
mapa de memoria apartado 3.3) + 3 puertos I/O PA 8bits PB 8bits
PC 6bits + un registro de control + un contador.

El 8255 es un Perifrico Interface Programable PIA y consta de 4
puertos I/O PA 8bits PB 8bits PCH 4bits PCL 4bits y un
registro de control.

9.4.6.2.-Cmo programar los puertos?
PRIMERO:CONSULTAR EL CARACTER DE CONTROL AL ACUMULADOR
Hay que cargar en el registro de control unos carcteres para definir qu puertos deseas que sean Input y
qu puertos deseas Output.

Carcteres de control del 8155 (I=Input O=Ouput)
PA I O I O I O I O
PB I I O O I I O O
PC I I I I O O O O
control 00H 01H 02H 03H 0CH 0DH 0EH 0FH

Carcteres de control del 8255
PA O O O O O I O I O I O I I I I I
PB O I O I O O O O I I I I O I O I
PCH O O O O I O I O I O I O I I I I
PCL O O I I O O I I O O I I O O I I
control 80 82 81 83 88 90 89 91 8A 92 8B 93 98 9A 99 9B
A estos carctes de control les falta una H al final.

POR EJEMPLO MVI A,01H ;el 8155 su PA como salida, PB y PC como entradas

* Si quieres saber cmo funcionan los 8251 (pag 73) , 8155 (pag 157) y 8255 (pag 104) consulta el libro
Microprocesador 2000 manual de Harware, estos chips son tambin utilizados en los PC actuales.
Problemas electrnica Digital Profesor Javier Quintana
Pgina 135



SEGUNDO : OUT 20H o OUT 3BH

segn si es el 8155 o el 8255 que quieres manejar

8155 8255
REGISTRO DE CONTROL 20H 3BH

en nuestro ejemplo anterior OUT 20H

TERCERO: ESCRIBIR O LEER EL PUERTO

Segn el puerto tiene una direccin predeterminada

8155 8255
PA 21H 38H
PB 22H 39H
PC 23H 3AH

Por ejemplo OUT 21BH para enviar lo que hay en el acumulador al puerto A del 8155
(antes hay que poner algo en el acumulador)
o si queremos leer el puerto B del 8155 IN 22H

Ejemplo

MVI A,01H ;
OUT 20H ;8155 PAout PBin PCin
;si queremos escribir en los puertos
MVI A,01H ; Que se encienda la luz ms a la derecha por ejem
OUT 21H ; por el PA del 8155
;Si queremos leer los interruptores que hay en PB del 8155
IN 22H ; Podra haber sido tambin 23H del PC del 8155

Ejemplo con el 8255

MVI A,82H
OUT 3BH ;8255 PAout PBin PCout
;si queremos escribir en los puertos
MVI A,01H ; Que se encienda la luz ms a la derecha por ejem
OUT 38H ; por el PA del 8255
;Si queremos leer los interruptores que hay en PB del 8255
IN 39H ; Podra haber sido tambin 3AH del PC del 8255 pero slo 6

Problemas electrnica Digital Profesor Javier Quintana
Pgina 136


5.7 EJERCICIOS CON EL P 8085

9.4.7.1 EJERCICIOS DE RUTINAS DE CONSOLA

1.-Este ejercicio trata de captar una letra al acumulador y visualizarla en el display

2.- Se trata de realizar un programa que sume como una calculadora, primero se teclea
el primer sumando, luego el segundo y la tecla INT7.5 ser la que ejecute la suma y lo
visualice por pantalla.

3.- El mismo programa, pero que en vez de ser la tecla INT.5 que lo haga la tecla POST

4.- Realizar un programa que haga un mensaje intermitente por el display, el mensaje
puede ser por ejemplo HOLA

5.- Realizar un programa que haga un contador en el display por el campo de datos:
00 01 02 ... FE FF 00 01 ...

6.- Realizar un programa que visualiza por el campo de direcciones del display un
contador de 0000 a FFFF y por el campo de datos un contador de 00 a FF

7.- Realizar un programa que visualiza por el datos un contador de 00 a 09

9.3.7.2 EJERCICIOS DE PUERTOS

8.- Realizar un programa que lea los interruptores del puerto A del 8155 y visualice en
el display el nmero en binario marcado.

9.-Realizar un programa que saque intermitente por todos los puertos en todos los leds
5.8 EJERCICIOS CON EL P8085

;***********************************
;**** EJERCICIO 1 ****
;************************************
;CAPTAR Y VISUALIZAR UNA LETRA
;*******************SUBRUTINAS
ACUMDISPLAY EQU 04D5H ;DISPLAY<=A
TECLAACUM EQU 044EH ;A<=TECLA
;*****************PROGRAMA
ORG 0000H
;al traspasar el programa al P se incrementar en
;1000 automticamente
LXI SP,10C8H
MVI A,08H
SIM
EI
BUCLE: CALL TECLAACUM
CALL ACUMDISPLAY
JMP BUCLE
END


;***********************************
;**** EJERCICIO 2 ****
;************************************
;SUMA DOS NMEROS
; TECLA INT7.5 HACE LA SUMA ****
;**************************SUBRUTINAS
ACUMDISPLAY EQU 04D5H ;DISPLAY<=A
TECLAACUM EQU 044EH ;A<=TECLA
;****************************DATOS
***********************PROGRAMA
ORG 000H
LXI SP, 1FFFH
MVI A,08H
SIM
EI
BUCLE: CALL ACUMDISPLAY
STA 1500H
CALL TECLAACUM
CALL ACUMDISPLAY
STA 1501H
DAA
CALL TECLAACUM
JMP BUCLE
;Si no se pone, sin casi ver el 2 sumando
; pone el resultado
;se podra hacer con un pause
;, y as no utilizar la int7.5
;*******************SUMA
SUMA: LDA 1500H
MOV B,A
LDA 1501H
ADD B
DAA
CALL TECLAACUM
JMP BUCLE
;********************INT7.5
ORG 10CEH
JMP SUMA
END




;***********************************
;**** EJERCICIO 3 ****
;************************************
;SUMA DOS NUMEROS
;, TECLA POST REALIZA SUMA*********


; Las teclas especiales tienen el siguiente cdigo :
; TECLA CODIGO
; EJEC PASO 15H
; POST 11H
; EJEC 10H
; E REG 14H
; GO 12H
; SM 13H


;*****************SUBRUTINAS
ACUMDISPLAY EQU 04D5H ;DISPLAY<=A
TECLAACUM EQU 044EH ;A<=TECLA

;***********PROGRAMA
ORG 000H
LXI SP, 1FFFH
MVI A,08H
SIM
EI
BUCLE: CALL TECLAACUM
CPI 11H ;tecla post
JZ SUMA
STA 1500H
CALL ACUMDISPLAY
CALL TECLAACUM
CPI 11H
JZ SUMA
STA 1501H
CALL ACUMDISPLAY
JMP BUCLE
;Si no se pone, sin casi ver el 2 sumando
;pone el resultado


;*******************SUMA
SUMA: LDA 1500H
MOV B,A
LDA 1501H
ADD B
DAA
CALL ACUMDISPLAY
JMP BUCLE
END
















Problemas electrnica Digital Profesor Javier Quintana
Pgina 138

;***********************************
;**** EJERCICIO 4 ****
;************************************
;MENSAJE INTERMINTENTE

*;***********SUBRUTINAS
ACUMDISPLAY EQU 04D5H ;DISPLAY<=A
TECLAACUM EQU 044EH ;A<=TECLA
MENSDISPLAY EQU 041DH ;DISPLAY<=[HL]

;****************************DATOS
ORG 0050H
MENSAJE: DB 10H,00H,11H,0AH ;HOLA
BLANCO: DB 15H, 15H, 15H, 15H

; **************************PROGRAMA
ORG 0000H
MVI A,08H
SIM
EI
BUCLE: LXI H,MENSAJE
CALL MENSDISPLAY
CALL PAUSA
LXI H,BLANCO
CALL MENSDISPLAY
CALL PAUSA
JMP BUCLE

;******************************PAUSA
;Esta pausa tiene que ser larga
;porque sino no da tiempo a verse el mensaje
;Son dos bucles uno dentro del otro
;Bucle1 cuenta el C de A a 0
;Para cada cuenta del Bucle1 hay un ciclo del Bucle2
;que es el D que va de FF a 0
;Es decir A*FF=10*255=2550 cuentas


;***********************************
; SUBRUTINA PAUSA
;***********************************
PAUSA: MVI D,0FFH
BUCLE1: MVI C,0A0H
BUCLE2: DCR C
JNZ BUCLE2
DCR D
JNZ BUCLE1
RET;




;******** INTERRUPCION 7.5********
;Esta interrupcin hace parar el micro
ORG 10CEH
EI ; tambien HLT
END










;***********************************
;**** EJERCICIO 5 ****
;************************************
; CONTADOR *************
;**************************SUBRUTINAS
ACUMDISPLAY EQU 04D5H ;DISPLAY<=A
TECLAACUM EQU 044EH ;A<=TECLA
;****************************DATOS
*********************PROGRAMA
ORG 0000H
LXI SP,1FFFH
MVI A,08H
;Antes del bucle habra que asegurarse que DATO
;Tiene cargado un 00, y realmente es as DB 00H
SIM
EI
BUCLE: LDA DATO
INR A
STA DATO
;Hay que almacenar A pues la subrutina lo borra
CALL ACUMDISPLAY
CALL PAUSA
JMP BUCLE
;Falta aadir la subrutina PAUSA y la
interrupcin 7.5 que seran igual que en el ejercicio 3

;***********************************
;**** EJERCICIO 6 ****
;************************************
; DOS CONTADORES ************
;***************SUBRUTINAS
ACUMDISPLAY EQU 04D5H ;DISPLAY<=A
TECLAACUM EQU 044EH ;A<=TECLA
HLDISPLAY EQU 04C9H ;DISPLAY<=HL
;************************PROGRAMA
ORG 0000H
LXI SP,1FFFH
MVI A,08H
SIM
EI
MVI A,00H
STA 1500H
LXI H, 0000H
SHLD 1501H
BUCLE: LDA 1500H ;A<=[1500]
INR A ;A=A+1
STA 1500H
;[1500]<=A ;almaceno el acumulador
; antes de llamar a la subrutina
CALL ACUMDISPLAY
LHLD 1501H ;H<=[1501] L<=[1502]
INX H ;H=H+1
SHLD 1501H
; [1501]<=H [1502]<=L almaceno antes de llamar
CALL HLDISPLAY
CALL PAUSA
JMP BUCLE
;Falta aadir la subrutina PAUSA y la
interrupcin 7.5 que seran igual que en el ejercicio 3








Problemas electrnica Digital Profesor Javier Quintana
Pgina 139




;**************************************
;* EJERCICIO 7 CONTADOR DECADAS *
;**************************************
;**************************SUBRUTINAS
ACUMDISPLAY EQU 04D5H ;DISPLAY<=A
TECLAACUM EQU 044EH ;A<=TECLA
;****************************DATOS
;************************PROGRAMA
ORG 0000H
LXI SP,1FFFH
MVI A,08H
SIM
BUCLE: EI
LDA 1500H ;A<=[1500]
INR A ;A=A+1
CPI 0AH ;Hace la resta A-0A
JNZ SIGUE
;Si A=0AH=10D entonces, borra A
;, si no sigue como estaba
MVI A,00H
SIGUE: STA 1500H
;[1500]<=A almaceno el acumulador
; antes de llamar ; a la subrutina
CALL ACUMDISPLAY
CALL PAUSA
JMP BUCLE
;Falta aadir la subrutina PAUSA y la
interrupcin 7.5 que seran igual que en el ejercicio 4






;***************************************
;*EJER 8 LEER INTERPTORES A DISPLAY*
;***************************************
;***************SUBRUTINAS
ACUMDISPLAY EQU 04D5H ;DISPLAY<=A
;****************************************
;* PUERTOS *
;****************************************
;**************** PROGRAMA
ORG 0000H
LXI SP,1FFFH
MVI A,02H
OUT 20H
BUCLE: IN 21H
STA 1500H
CALL ACUMDISPLAY
LDA 1500H
JMP BUCLE
END















;***********************************
;**** EJERCICIO 9 ****
;************************************
;
;**************** PROGRAMA
ORG 0000H
LXI SP,1FFFH
MVI A,0FH
OUT 20H
MVI A,80H
OUT 3BH

BUCLE: MVI A,11111111B
OUT 21H
OUT 22H
OUT 23H
OUT 38H
OUT 39H
OUT 3AH
CALL PAUSA
MVI A,00000000B
OUT 21H
OUT 22H
OUT 23H
OUT 38H
OUT 39H
OUT 3AH
CALL PAUSA
JMP BUCLE



;***********************************
; SUBRUTINA PAUSA
;***********************************
PAUSA: MVI D,0FFH
BUCLE1: MVI C,0A0H
BUCLE2: DCR C
JNZ BUCLE2
DCR D
JNZ BUCLE1
RET
END



6.- EL SEMFORO

Tiene el siguiente esquema de cruces:

Las esquinas se llaman S1, S2,
S3 y S4 con sus correspondientes
semforos Gx, Fx y Px



Cmo se envian los valores a
los semforos?, cada puerto
controla una esquina, y como en
un golpe de reloj no se pueden
enviar a todos, se hacen en 4
golpes

golpe de
reloj
1 2 3 4
puerto
S1 PUERTO C 8255
OUT 3AH
S2 PUERTO A 8255
OUT 38H
S3 PUERTO B 8255
OUT 39H
S4 PTO B DEL 8155
OUT 22H
semfor
o
P1 G1 F1 P2 G2 F2 P3 G3 F3 P4 G4 F4
bits VR VNR VNR VR VNR VNR VR VNR VNR VR VNR VNR

El puerto A del 8155 (OUT 21H) se utilizar como entrada para poner los semforos en intermitencia.

Cmo se envan estos valores? Al inicio del programa hay que insertar el siguiente cdigo:
MVI A, 80H ;carcter de control del 8255
OUT 3BH ;salida al control 8255
MVI A, 02H ;carcter de control del 8155
OUT 20H ;salida al control 8155
Conexiones :

Problemas electrnica Digital Profesor Javier Quintana
Pgina 141

7.- PROGRAMACIN AVANZADA 8085
Existen ms instrucciones del P8085 que se han omitido por sencillez, este tema no se
dar en clase ni se exigir en los exmenes, slo est para tu propio aprendizaje si te ha
gustado el tema:

Instrucciones de mover datos
LDAX B A<=[BC] STAX B [BC]<=A
LDAX D A<=[DE] STAX D [DE]<=A
LHLD addr H<=[addr] L<=[addr+1] SHLD addr [addr]<=H [addr+1]<=L
XCHG intercambia DE con HL
LXY B,addr BC<=addr LXI D,addr DE<=addr
Instrucciones aritmticas que suman y restan con acarreo
ADC r ADC M ACI dato SBB r SBB M SBI dato
Instrucciones aritmticas que suman con registros dobles
DAD B HL=HL+BC DAD D HL=HL+DE
Instrucciones lgicas tipo XOR
XRA r XRA M XRA dato
Instrucciones de salto
PCHL PC=HL RSTn PC=8*n
Instrucciones para las subrutinas pero de forma condicional
Ccondicion Rcondicion
Instrucciones de Pila
PUSH B apila BC PUSH D apila DE
POP B desapila BC POP D desapila DE
XTHL intercambia SP con HL SPHL SP<=HL

Instrucciones para el programa ensamblador
Estas son instrucciones no propias de ensamblador, pero sirven para realizar los
programas ms complejos, utilizando letras y no nmeros.
Ejem
N EQU 20 N equivale a 20
ORG 1000H
X: DB 08H aqu X equivale a 1000 y se mete un dato de byte el 08H
Y: DS 1 aqu Y equivale a 1001 y ha reservado espacio de 1byte


Ejercicios avanzados

1.- Confeccionar un programa que sume 3 nmeros. Los nmeros se proporcionarn de forma
inmediata en el propio programa. Sern los nmeros 25H, A4H, 05H. El resultado se
almacenar en la direccin 1500H (Resultado CEH)

2.- Realizar un programa que sume los datos contenidos en las direcciones 1000 y 1001 y que se
almacene en el 1002. Comprobar el resultado

3.-Hacer el mismo ejercicio que el problema anterior pero almacenando el acarreo posible en la
direccin 1003. Comprobar el resultado

Problemas electrnica Digital Profesor Javier Quintana
Pgina 142

4.- Realizar un programa que sume los datos contenidos en las direcciones 1000 1001 y 1002
que se almacene en el 1003 almacenando el acarreo posible en la direccin 1004. Comprobar el
resultado

5.-Realizar un programa que sume dos nmeros de dos bytes:
El primer sumando estar almacenado en las direcciones [1001] [1000]
El segundo sumando estar almacenado en las direcciones + [1003] [1002]
El resultado y acarreo se almacenar en las direcciones [1006] [1005] [1004]
Comprobar el resultado

6.- Igual que el ejercicio anterior pero utilizando registros dobles

7.- Realizar un programa que sume dos nmeros almacenados en las direcciones [1000] y
[1001] , estos nmeros no sern mayores que 99, el resultado expresarlo en BCD en la direccin
[1002] y el acarreo en la [1003]

8.- Realizar un programa que multiplique dos nmeros, el 8085 como todos los P de 8
bits no tienen instrucciones especficas para la multiplicacin, luego se desea un
programa que multiplique los n contenidos en las direcciones 1000 y 1001 y los
almacene en la 1002. Es decir [1002=[1000]*[1001]

9.- Hacer un programa que haga una divisin de dos nmeros Dividendo en la 1000,
divisor en la 1001 Cociente en la 1002 y resto en la 1003.
Igual que el ejercicio 18 el 8085 no tiene instrucciones especficas para la divisin,
luego hay que realizarlos manualmente es decir, si en la multiplicacin era haciendo sumas,
aqu es haciendo restas.

10.-Realizar un programa que sume los N primeros nmeros y el resultado almacenarlo en la
direccin 1001, el nmero N estar almacenado en la direccin 1000, es decir, si [1000]=6
entonces [1001]=1+2+3+4+5+6=21D=15H

11.- Este ejercicio trata de realizar un programa con varias decisiones. Supongamos dos
variables X almacenado en la direccin 1000 y la variable Y almacenado en la direccin 1001, y
otra variable Z almacenado en 1002. Realizar:
Si X<Y entonces Z=X+Y
Si X>Y entonces Z=X-Y
Si X=Y entonces Z=Y

12.-En el ejercicio 13 realizamos una suma de dos nmeros hexadecimales, y el resultado se
convirti en BCD, pero Y si los nmeros sumandos ya estn escritos en BCD? Habra que
convertirlos a HEX y aplicar el programa del problema 13.
El objetivo de este ejercicio se trata de convertir un nmero BCD en HEX. El nmero est
almacenado en tres posiciones de memoria, [1000][1001][1002] = Centenas, Decenas y
Unidades, el nmero resultante se almacenar en un slo byte, luego no tiene que pasar de
255D. Almacenar el resultado en 1003.


Problemas de Electrnica Digital. Puertas lgicas, Karnaugh
Pgina 143

Soluciones.
;***********************************
;**** EJERCICIO 1 ****
;************************************
ORG 2000H
MVI A,25H
MVI B, A4H
ADD B
MVI B,05H
ADD B
STA 1500H
END
***********************************
;**** EJERCICIO 2 ****
;************************************
;Datos
ORG 1000H
X DB 12H
Y DB 0A6H
RES DB 45H ;Resultado : 68H
;Programa
ORG 2000H
LDA X
; A<=[1000]
;Equivale a LDA 1000H o LXI H,X MOV A,M
LXI H,Y
; M<=[1001] Equivale a LXI H,1001H
ADD M ;A<=A+M
STA RES
;Equivale a STA 1002 o LXI H,RES MOV M,A
END
;***********************************
;**** EJERCICIO 3 ****
;************************************
Sera aadir en los datos :
ACARR DB 00H
y en el programa las siguientes lneas :
MVI A,0H ;A<=0 tambin con XRA A
ACI 0 ;A<=A+0+CY Se carga el acarreo
STA ACARR ;Almacena el acarreo
;Probarlo con los nmeros E6+CA = 160
;(1 de acarreo)
;***********************************
;**** EJERCICIO 4 ****
;************************************
; [1003]= [1000]+ [1001]+ [1002] [1004]=Acarr
;Datos
ORG 1000H
DAT DB 0C5H, 0A4H, 0C5H;Los sumandos
RES DB 00H ;El resultado= 22EH
ACAR DB 00H ;El acarreo es 2 (22EH)
;Programa
ORG 2000H
STC ;con estas dos instrucciones
CMC ;borramos el acarreo CY=0
LXI H,DAT
;o LXI H,1000H ahora HL apunta al primer
;sumando
MOV A,M ;A=[1000]
INX H
;HL apunta al segundo sumando
ADD M ;A=A+[1001]
STA RES ;Guarda el resultado
MVI A,0 ;A<=0 o XRA A
ACI 0 ;A<=CY
STA ACAR
;Guarda el acarreo primero + segundo
LDA RES ;Recupero el resultado
INX H
;HL apunta al tercer sumando
ADD M ;A=A+[1002]
STA RES ;Almacena el resultado
LDA RES ;Recupero el acarreo
ACI 0
;A=A+0+CYel acarreo anterior con el nuevo
STA ACAR ;Guarda el acarreo
END


;***********************************
;**** EJERCICIO 5 ****
;************************************
; [1001] [1000]
; + [1003] [1002]
; [1006] [1005] [1004]
;Datos
ORG 1000H
XH DB 0D5H
XL DB 0B6H;Primer sumando D5B6H
YH DB 3AH
YH DB 5CH ;Segundo sumando 3A5CH
SUMH DB 00H
SUML DB 00H ;Resultado de la suma que en este
;caso ser D5 B6+3A5C=1 10 12
ACAR DB 00H ;Acarreo (en nuestro caso ser 01)
;Programa
ORG 2000H
STC
CMC ;CY=0
LDA XL ;A=XL
LXI H,YL ;M=YL
ADD M ;A=XL+YL
STA SUML
LDA XH ;A=XH
LXI H,YH ;M=YH
ADC M
;A=XH+YH aqu se suma con el acarreo
;posible de la anterior suma XL+YL
STA SUMH
MVI A,0 ;A=0
ACI 0 ;A=CY
STA ACAR
END
;***********************************
;**** EJERCICIO 6 ****
;************************************
****con registros dobles*****
; [1001] [1000]
; + [1003] [1002]
; [1006] [1005] [1004]
;Datos
ORG 1000H
X DB 0D5H, 0B6H ;Primer sum. D5B6H
Y DB 3AH,5CH ;Segundo sum. 3A5CH
SUM DB 00H, 00H ;Resultado de la suma
;en este caso ser D5 B6+3A5C=1 10 12
ACAR DB 00H ;Acarreo (en nuestro caso ser 01)
;Programa
ORG 2000H
LHLD X
XCHG ;DE=[1001] [1000]
LHLD Y ;HL=[1003] [1002]
DAD D ;HL=HL+DE
Problemas de Electrnica Digital. Puertas lgicas, Karnaugh
Pgina 144

SHLD SUM ; [1005] [1004]=HL
MVI A,0
RAL ;Otra forma de cargar el
;acarreo, tambin podra haber sido ACI 0
STA ACAR
END
;***********************************
;**** EJERCICIO 7 ****
;************************************
; en BCD [1002]=[1000]+[1001] [1003]=CY
;Datos
ORG 1000H
X DB 58H ;En decimal =88
Y DB 63H ;En decimal = 99
SUM DB 00H
;En nuestro caso 58+63=66H que en decimal es 187
;luego se grabar 87
ACAR DB 00H ;En nuestro caso un 1 (187)
;Programa
ORG 2000H
STC
CMC ;CY=0
LDA X ;A=[1000]
LXI H,Y ;M=[1001]
ADD M ;A=[1000]+[1001]
DAA ;Ajuste a BCD
STA SUM ;Guardarlo en 1002
MVI A,0
ACI 0
STA ACAR ;Guardando el acarreo
END
;***********************************
;**** EJERCICIO 8 ****
;************************************
; [1002]=[1000]*[1001]
;Para multiplicar lo que hay que hacer es ;sumar
tantas veces el n Y
; ORGANIGRAMA
; C <=[1000]
; B <=[1001]
; A <=0
; A<= A+B
; HL<=HL + 1
; C <= C - 1
; NO ES 0? S
; N
; ALMACENAR RESULADOS FIN
; ejemplo :
; C B A
; 3 4 0
; 2 4
; 1 8
; 0 12
;************************************
;Datos
ORG 1000H
X DB 03; ; como lo diga X, se
;meter en C y el A acumular las sumas
Y DB 06 ; C=3 A=0
PROD DB 00 ; C=2 A=6
;Programa C=1 A=12D=0CH
LXI SP, 3000H; C=0 A=18D=12H
LDA X ; FIN
CPI 0 ;Compralo con el 0
JZ FIN ;Si es 0 que vaya a fin
MOV C,A
;C tiene el n de veces que hay que sumar
MVI A,0 ;A=0
LXI H, Y ;M=Y
BUCLE: ADD M ;A=A+Y
DCR C ;C=C-1
JNZ BUCLE ;Salta si no es 0
FIN: STA PROD
;Guardar el resultado del producto
END
;***********************************
;**** EJERCICIO 9 ****
;************************************
;divisin de dos nmeros
;Aqu la divisin se hace viendo cuantas veces cabe Y
; ORGANIGRAMA
; A<=[1000]
; B <=[1001]
; C <=0
; A<= A - B
; HL<=HL + 1
; C <= C + 1
; A>B? S
; N
; ALMACENAR RESULTADOS FIN

; ejemplo :
; C B A
; 0 3 14
; 1 11
; 2 8
; 3 5
; 4 2
;************************************
;Datos
ORG 1000H
X DB 14D ;Dividendo
Y DB 03D ;Divisor
COC DB 00 ;
RES DB 00 ;
;Programa
ORG 2000H;
LDA X ; A<B entonces FIN
CPI 0
JZ FIN;si el dividendo es 0 que vaya a fin
LXI H,Y
MOV B,M
CMP B ;CMP hace A-B
JM FIN ;Si B>A la resta es negativa
;luego que vaya a fin
MVI C,0
BUCLE: SUB B ;A=A-B
INR C ;C=C+1
CMP B ;CMP hace A-B
JP BUCLE ;Si no hay acarreo, es
;decir que la resta es positiva A>B, salta
FIN: STA RESTO ;Almaceno el resto
MOV A,C
STA COC
END









Problemas de Electrnica Digital. Puertas lgicas, Karnaugh
Pgina 145

;***********************************
;**** EJERCICIO 10 ****
;************************************
;Suma de N primeros nmeros
;el acumulador va sumando mientras lo mande N
;Datos
ORG 1000H
N DB 6H
RES DB 0 ;A=0 C=6
;Programa ;A=06H=06D C=5
ORG 2000H ;A=0BH=11D C=4
LXI SP,3000H ;A=0FH=15D C=3
LDA N ;A=12H=18D C=2
MOV C,A ;A=14H=20D C=1
MVI A,0 ;A=15H=21D C=0
FIN
BUCLE: ADD C
DCR C
JNZ BUCLE
STA RES
END

;***********************************
;**** EJERCICIO 11 ****
;************************************
; Si X<Y entonces Z=X+Y Si X>Y entonces Z=X-Y
;Si X=Y entonces Z=Y
;Datos
ORG 1000H
X DB 12H
Y DB 22H
Z DB 00H
;En este caso en Z se almacenar 12H+22H=34H
;Programa
ORG 2000H
LDA X ;A=X
LXI H,Y ;M=Y
CMP M ;Hace la comparacin A-M =X-Y
JZ CASO3
JP CASO2
CASO1: ADD M ;A=A+M=X+Y
JMP FIN
CASO2: SUB M ;A=A-M=X-Y
JMP FIN
CASO3: MOV A,M ;A=M=Y
FIN: STA Z
END



























;***********************************
;**** EJERCICIO 12 ****
;************************************
;Convertir BCD a HEX
;Datos
ORG 1000H
BCD DB 01D,06D,04D
;El nmero BCD es el 164D que en Hex es A4H
HEX DB 00
;Programa
ORG 2000H
MVI A,0
LXI BCD
MOV C,M
CENT: DCR C
JM FINCENT
;Si es negativo, que salte a hacer las decenas
ADI 64H ;A=A+100 pues 64H=100D
JMP CENT
FINCENT:INX H
MOV C,M
DEC: DCR C
JM FINDEC
ADI 0AH ;suma 0AH=10D
JMP DEC
FINDEC: INX H
MOV C,M
UNI: DCR C
JM FINUNI
ADI 01H ;suma 1
JMP UNI
FINUNI: STA HEX ;Almacenar el resultado
END






Problemas de Electrnica Digital. Puertas lgicas, Karnaugh
Pgina 146

APENDICE A CONEXIN ENTRE 8085 Y EL PC


Para utilizar el micro 8085 desde el PC, se debe de poner el conmutador Teclado/CRT en la posicin
CRT. En el fichero CONFIG.SYS del PC debe de existir la lnea DEVICE=ANSI.SYS. Y tambin tener
conectado un cable conexin serie de tres hilos de la siguiente forma:

En el micro (tres hilos) En el PC (macho de 25 pines)
TX ------------------------- RX (3)
RX ------------------------- TX (2)
RTS (4) con CTS (6)
GND ----------------------- GNE (5)
DSR (7) con DTR (8)

Ejecutar el fichero DDT85 he indicar en qu puerto esta COM1 COM2 etc..., de esta forma se consigue
una comunicacin de 2400 baudios cada dato de 8 bits, con 2 de stop. Pulsar INIC antes de utilizar los
comandos.

HACERHEX PRUEBA, es un fichero BATH hecho en MS-DOS que ensambla y ejecuta a la vez el
DDT85, para ver los comandos de este programa ver Apendice B.

APENDICE B COMANDOS ENTRE 8085 Y EL PC

D direccin baja,direccin alta =Visualiza la memoria desde la direccin alta hasta la baja, ejem
D1009,2A50

Gdireccin comienzo =ejecuta el programa desde la direccin comienzo, si no se pone, ejecuta desde
donde apunta el registro PC.

N =ejecucin paso a paso

I direccin =inserta en la memoria a partir de direccin.

Mdireccin baja, direccin alta, destino = mueve la memoria, ejem M1E00,1E06,1F00 = mueve el
bloque de memoria desde la 1E00 hasta 1E06 a la 1F00

Sdireccin =Visualiza y modifica la direccin, ejem S1000

Xregistro =Visualiza y modifica los registros, ejem XA, si no se pone el registro, los visualiza en
este orden: A B C D E F H L M P S

L nombre del programa offset = carga un programa desde el ordenador a partir de la
direccin 1000H, el offset es el nmero de posiciones de memoria que se incrementa el programa, ejem
offset=10, entonces lo carga en la 1010, luego es aconsejable utilizar en vuestros programas ORG 0000H
o ORG 0500H

H = fin de la comunicacin
Problemas de Electrnica Digital. Puertas lgicas, Karnaugh
Pgina 147

APENDICE C COMANDOS ENTRENADOR 8085
INIC = Se produce un reset y aparece en el display 8085.
S.M/ANT =Sustituir memoria y anterior
POST =Posterior, equivale al enter
ejemplo, queremos meter a partir de la direccin 1000 los siguientes datos 31,8C,1F, solucin:
SM/ANT 1000 POST 31 POST 8C POST 1F
si hay error: SM/ANT 1000 POST 31 POST 8D POST SM/ANT 8C POST 1F
E REG =Examinar los registros, para ver uno concreto, pulsar su nombre, si quieres
ver todos, pulsar POST (hacia delante) o ANT (hacia atrs) y se vern en el siguiente orden:
A B C D E F I H L SPH SPL PCH PCL
F= S Z X AC X P C
I=X X X IE M7.5 M6.5 M5.5
IE =Validacin de interrupciones, y las M son las mscaras de las interrupciones
GO = Ejecuta el programa, visualiza el PC, introducir la direccin de comienzo, y pulsar
EJEC, para interrumpir INIC, el programa puede finalizar con alguna instruccin como RST0,
RST1 o JMP 0000H, se aconseja situar la pila al final (LXI SP. 1FFFH)
EJEC =Ejecuta paso a paso, POST para pasar al siguiente paso
INTR VECT = Se realiza la interrupcin 7.5, (RST 7.5), es un interruptor conectado
directamente al pin 7 del 8085 (Ver interrupciones)
E =Lee un programa desde el cassette C =Graba un programa al cassette
APENDICE D SUBRUTINAS PREDISEADAS

0A51 CI111 Carcter de consola al acumulador F
0A5D CO1 Del registro C al display A F
0A33 PRIMES un mensaje que esta en memoria, que comienza en la
direccin apuntada por HL se visualiza en el display
A H L F
0AB7 ADRD el contenido de HL se visualiza en el display A B C F
04C9 UPDAD TODOS
0B74 DELAY retraso de 1 mseg
037D GTHEX n hex de 2 bytes ejem A725 desde el teclado, al display y
al registro DE

02BF TODIR Idem que el anterior, pero sin visualizarlo
APENDICE E GRABAR Y LEER DESDE CASSETTE
Grabar:
Situar la cinta en el lugar que deseas con el contador de cassette
Conectar MIC del cassette con MIC del micro
Pulsar C, con CoPr poner la direccin comienzo del programa, pulsar EJEC, y con FiPr
poner la direccin final del programa, pulsar EJEC, con PrO introducir un n de programa
entre la 00 hasta la FF
Poner REC en el Cassette y pulsar EJEC despues de 5 vueltas aprox. cuando aparece en el
monitor es que ya a terminado
Leer:
Posicionar la cinta en la posicin que se dej, para esto se tiene que llevar la cuenta.
Pulsar E, con CODE (Comienzo destino) introducir la direcin de comienzo, pulsar EJEC
con PrO introducir un n de programa entre la 00 hasta la FF
poner Play, y pulsar EJEC, si sale . es que esta en lectura, si sale - es que ha acabado,
volumen medio alto.

11 las teclas azules tienen el siguiente cdigo:
EJEC=10H POST=11H GO=12H SMANT=13H EREG=14H EJEC=15H
Problemas de Electrnica Digital. Puertas lgicas, Karnaugh
Pgina 148


APENDICE F LENGUAJE ALTO NIVEL, ENSAMBLADOR Y MQUINA

Aqu tienes un ejemplo real de un programa escrito en lenguaje alto nivel, cmo se traduce en
ensamblador y en lenguaje mquina.
Fjate cmo una instruccin de Alto nivel son muchas en ensamblador, pero una instruccin en
ensamblador equivale a una en lenguaje mquina.

Tambin puedes ver como el lenguaje alto nivel sirve para cualquier P pero el ensamblador es exclusivo
de cada P, concretamente para P del 8086 hacia delante por eso se llaman COMPATIBLES.v

Alto nivel (C) Ensamblador para PC Mquina para PC
void main( void )
{

push ebp 00401010
mov ebp,esp 00401011
push ecx 00401013
int i;
for(i=0;i<=10;i++)
mov dword ptr [i],0 00401014
jmp main(0x00401026)+16h 0040101B
mov eax,dword ptr [i] 0040101D
add eax,1 00401020
mov dword ptr [i],eax 00401023
cmp dword ptr [i],0Ah 00401026
jg main(0x0040103b)+2Bh 0040102A
printf ("Hola");

push offset ___xt_z(0x00411a30)+104h 0040102C
call printf(0x00401060) 00401031
add esp,4 00401036
jmp main(0x0040101d)+0Dh 00401039
}
mov esp,ebp 0040103B
pop ebp 0040103D
ret 0040103E



v En realidad el cdigo mostrado es de 32 bits, luego este programa slo puede runear en PC con
Win9x, un 8086/88 no podra resistirlo, pero si 486 hacia delante sin Win3.x pues es de 16 bits.
Problemas de Electrnica Digital. Puertas lgicas, Karnaugh
Pgina 149

APENDICE G PROBLEMAS DIGITAL MC GRAW
APENDICE D PROBLEMAS DE ELECTRONICA DIGITAL
Libro Schaum L.Cuesta Mc Graw Hill
(Nota de Astucia: Se aconseja ojear y hacer los ms interesantes, que hacerlos todos como mquinas)

DESCRIPCIN RESUELTOS PROPUESTOS
Simplificacin lgebra de Boole 1.1-1.12
Tabla -> Funcin 1.24-1.28 1.49-1.51
Funcin -> Tabla 1.21-1.23
Funcin -> Karnaugh 2.1-2.22 2.24 2.33 2.33-2.44 2.4-2.50
Funcin ->Puertas 3.1-3.3 3.14
Puertas -> Funcin 3.4-3.7 3.9 3.10
Cronogramas 3.15-3.17 3.22
Karnaugh de +4 variables 2.26-2.29 2.46 2.51
Simplificacin 3.18-3.20
Pasar a puertas NAND/NOR 3.11-3.13
Enunciados -> simplificacin 3.24-3.31 5.14 5.15 5.44
Decimal -> Binario 4.5-4.7
Binario -> Decimal 4.2-4.4
Otras bases 4.8-4.24
Realizacin ctos MSI con puertas lgicas 5.1-5.4 5.12 5.14 5.17 5.28 5.43
Ctos combinacionales con MSI 5.5-5.8 5.16 5.18-5.20
5.22-5.24
5.33-5.35 5.39 5.40
Ampliacin ctos MSI 5.9 5.21 5.25-5.26 5.41-5.43
Ctos con comparadores 5.27
Ctos con sumadores 5.30 5.31 5.48
Construccin de biestables 6.1 6.12-6.17 6.36 6.37
Divisores 6.3 6.30 6.32 6.34
Cronogramas con biestables 6.8-6.10 6.11 6.38 6.39 6.45
Construccin de Biestables genricos a
partir de cronogramas
6.18 6.20
Contador con biestables 6.19 6.40 6.44
Contador con ctos TTL 6.21-6.24 6.27-6.29 6.41-6.43
Registros de desplazamiento 6.31
Problemas de biestables 6.46-6.48
Autmatas diagramas de flujo, Tablas de
Excitacin, Flujos...
7.1-7.3 7.24-7.32
Autmatas con enunciados de secuencias 7.4 7.9-7.15 7.33
Realizacin de autmatas a partir de
diagramas de flujo
7.5
Problemas diversos de autmatas 7.16-7.22
Memorias generalidades: direcciones
matriz, datos...
9.1-9.8 9.10-9.14 9.22-9.36
Mapas de memoria 9.9 9.17-9.21 9.38-9.41
ROM grabacin 9.15 9.16 9.37


Problemas de Electrnica Digital. Puertas lgicas, Karnaugh
Pgina 150

INDICE DE GLOSARIOS
[
[1000] ........................................................... 123
[HL] ............................................................. 123
3
386 ................................................................ 119
4
486 ................................................................ 119
5
555 .................................................................. 55
6
6500 .............................................................. 119
7
7400 .................................................................. 6
7402 .............................................................. 6, 7
7404 ................................................................ 14
74121 .............................................................. 54
74122 .............................................................. 54
74123 .............................................................. 54
74138 .............................................................. 16
74139 .............................................................. 16
7414 ................................................................ 56
74148 ........................................................ 16, 17
74150 .............................................................. 17
74151 .............................................................. 17
74166 .............................................................. 29
74190 .............................................................. 38
74191 .............................................................. 38
74192 .............................................................. 38
74194 .............................................................. 29
74221 .............................................................. 54
7442 .......................................................... 16, 17
7447 ................................................................ 17
7475 ................................................................ 29
7476 ...................................... Vase Biestable JK
7483 ................................................................ 25
7485 ................................................................ 17
7490 ................................................................ 38
7491 ................................................................ 29
7493 ................................................................ 38
7494 ................................................................ 29
7495 ................................................................ 29
74LS139 ....................................................... 100
8
8085 .............................................................. 119
8086 .............................................................. 119
A
A 122
A.B. ............................................................... 121
bacos ............................................................ 57
AC................................................................. 122
ACUMDISPLAY .......................................... 130
Acumulador .................................................. 121
ADD .............................................................. 124
addr .............................................................. 123
ADI ............................................................... 124
alarma ............................................................... 7
ALU ...................................................... 121, 122
AMD ............................................................. 120
AMDK5 ........................................................ 120
AMDK6 ........................................................ 120
ampliacin de Decodificadores ....................... 24
ampliacin de MUX ........................................ 24
ANA .............................................................. 124
AND ................................................................ 76
ANI ............................................................... 124
API .................................................................. 69
aritmtica binaria ............................................ 25
arrancador Estrella/Tringulo ......................... 69
ASM ............................................................. 126
ASM8085 ..................................................... 126
Autmatas ........................................ 69
B
B 122
BATH ........................................................... 146
BCD 16, 20, 22, 25, 27, 28, 38, 49, 50, 142, 144,
145
Biestable a partir de puertas lgicas ................ 31
Biestable D ...................................................... 29
biestable D sncrono por flanco de subida ...... 31
biestable D sncrono por nivel ........................ 30
Biestable JK .................................................... 29
biestable JK sncrono por flanco de bajada ..... 30
biestable JK sncrono por los dos flancos ....... 30
Biestable JK sincrono por nivel ...................... 30
Problemas de Electrnica Digital. Puertas lgicas, Karnaugh
Pgina 151

Biestable RS ................................................... 29
Biestable RS asncrono ................................... 30
Biestable RS sncrono por nivel ..................... 30
Biestable T ...................................................... 29
biestable T sncrono por flanco de subida ...... 30
biestables ........................................................ 29
BINARIO ................................................. 16, 20
Bomba de aguas residuales ............................. 98
Boole ................................................................ 6
Booleana ........................................................... 5
bucles ............................................................ 127
Bus de Control .............................................. 121
Bus de datos ........................................... 99, 121
Bus de direcciones .................................. 99, 121
bus de direcciones multiplexado .................. 121
C
C 122
C.B. .............................................................. 121
Cach L1 ...................................................... 119
Cach L2 ...................................................... 119
Cadenas luminosas ......................................... 97
CALL ........................................................... 125
CASSETTE .................................................. 147
circuito en puertas NAND ............................... 6
CMA ............................................................ 124
CMC ............................................................ 124
CMP ............................................................. 124
CO CONECTORES ..................................... 76
coche fantstico .............................................. 37
codificador ................................................ 20, 21
Complemento dos C2 ..................................... 25
Complemento nueve C9 ................................. 27
Complemento uno C1 ..................................... 25
Conexin serie entre sistemas ...................... 146
contactores ...................................................... 75
Contador adelante/atrs .................................. 77
contador de turno de las tiendas ..................... 38
contador del programa .................................. 121
contador Down con JK ................................... 38
contador Up con JK ........................................ 38
contadores ....................................................... 38
cortadora de tablones ...................................... 83
CPI ............................................................... 124
CPU ................................................................ 70
cronogramas ................................................... 30
CY................................................................. 122
D
D 122
D.B. ............................................................... 121
DAA .............................................................. 124
dato ............................................................... 123
DCR .............................................................. 124
DCX .............................................................. 124
de lgica positiva ............................................ 14
DECIMAL ................................................ 16, 20
Decodificador 74159 ....................................... 17
Decodificador 7442 ......................................... 17
Decodificadores .............................................. 19
DEMUX .......................................................... 21
detector ............................................................. 7
detector de impulsos inferiores a un tiempo T 54
detector de impulsos mltiples ........................ 54
detector de impulsos superior a un tiempo T .. 54
DRAM .......................................................... 102
E
E 122
Ensamblador ........ Vase Lenguaje ensamblador
entrenador 8085 ............................................ 130
Entrenador 8085 ............................................ 147
ERR .............................................................. 126
estructura de la matriz ..................................... 99
estructura interna de una memoria .................. 99
F
FBD ........................... Vase Plano de funciones
Flag ....................................................... 121, 122
funcin lgica ................................................... 8
funciones booleanas .......................................... 5
G
G1000 ........................................................... 131
garaje de coches .......................................... 7, 18
Generador de pulsos ........................................ 76
GF FUNCIONES BSICAS INTEGRADAS
.................................................................... 76
Grafcet ........................................................... 74
H
H 122
HACERHEX ................................................ 131
HEXADECIMAL ..................................... 16, 20
HLDISPLAY ................................................ 132
HLT .............................................................. 125
Problemas de Electrnica Digital. Puertas lgicas, Karnaugh
Pgina 152

I
IL ............. Vase Lenguaje lista de instrucciones
IN ................................................................. 125
INR .............................................................. 124
Instalacin de ventilacin ............................... 95
INT7.5 .......................................................... 133
Interrupciones ............................................... 133
Interruptor horario .......................................... 76
INX .............................................................. 124
J
J 125
JMP .............................................................. 125
K
K7 ................................................................. 120
karnaugh ....................................5, 12, 13, 14, 85
L
L 122
la lgica negativa ............................................ 15
LD ........................ Vase Lenguaje de contactos
LDA ............................................................. 123
Lenguaje a contactos .................................... 73
Lenguaje alto nivel ....................................... 148
Lenguaje C ................................................... 148
Lenguaje ensamblador .................................. 148
Lenguaje mquina ........................................ 148
Lenguaje por Lista de Instrucciones ........... 73
lgica negativa ............................................... 14
LOGO ............................................................. 75
LST .............................................................. 126
M
M 123
mapa de memoria ......................................... 100
Mapa de memoria ......................................... 131
mscara ......................................................... 133
MASKROM ................................................ 102
master-slave .................................................... 30
MAXitrminos............................................ 5, 10
memorias ........................................................ 99
MENSDISPLAY .......................................... 132
microprocesadores ........................................ 119
MINitrminos ............................................. 5, 10
monoestable con puertas NAND .................... 54
monoestables .................................................. 54
Morgan ........................................................... 14
MORGAN ...................................................... 10
MOV ............................................................. 123
msi................................................................... 16
MUX 74150 .................................................... 17
MUX 74151 .................................................... 17
MUX de 4 canales ........................................... 18
MUX genrico ................................................ 17
MVI .............................................................. 123
N
NAND ............................................................. 76
NAND de 2 ent ................................................. 7
NAND de dos entradas ..................................... 6
NOP .............................................................. 125
NOR .......................................................... 14, 76
NOT ................................................................ 76
O
OBJ ............................................................... 126
off ...................................................................... 7
on ...................................................................... 7
OR ................................................................... 76
ORA ............................................................. 124
Ordenadore Compatibles .............................. 148
Ordenadores Compatibles ............................. 119
ORG ............................................................. 126
ORI ............................................................... 124
OUT .............................................................. 125
P
P 122
P.C. ............................................................... 122
panificadora .................................................... 83
pasar a puertas NAND .................................... 12
pasar en puertas NAND .................................. 15
PAUSA ........................................................... 129
Pent III .......................................................... 119
Pentium .................................................. 119
PentiumII ...................................................... 119
Perifricos ..................................................... 134
pila ................................................................ 122
PIPO ................................................................ 29
PISO ................................................................ 29
Plano de funciones ........................................ 74
Portn corredizo .............................................. 96
PROM .......................................................... 102
puerta automtica ...................................... 79, 82
Puerta automtica ............................................ 94
puerta OR .......................................................... 9
Problemas de Electrnica Digital. Puertas lgicas, Karnaugh
Pgina 153

puertas NAND .................................................. 6
puertas NAND de dos entradas ........................ 6
puertas NOR ..................................................... 6
puertos .......................................................... 127
pulsacin prolongada ...................................... 79
Pulsador de Confort ........................................ 93
R
R.I. ............................................................... 122
RAL ............................................................. 125
RAR ............................................................. 125
reg. de instruciones ....................................... 121
registro de control ......................................... 134
registros .......................................................... 29
registros auxiliares ........................................ 121
registros dobles .......................................... 142
Rel con autorretencin .................................. 76
resta binaria .................................................... 25
RET .............................................................. 125
retardadores .................................................... 56
Retardo a la conexin ..................................... 76
Retardo a la conexin memorizado ................ 77
Retardo a la desconexin ................................ 76
RLC ............................................................. 125
RRC ............................................................. 125
RSTn ............................................................ 125
S
S 122
S.P. ............................................................... 122
SBI ............................................................... 124
semforo ................................................. 82, 140
semisumador ................................................... 25
SER ....................................... Vase Serial Input
Serial Input ..................................................... 29
SF FUNCIONES ESPECIALES ................. 76
SFC .............................................. Vase Grafcet
Siemens ........................................................... 92
SIM8085 ....................................................... 126
simplificando .................................................. 13
SIPO ................................................................ 29
SISO ................................................................ 29
STA ............................................................... 123
stack pointer .................................................. 121
STC ............................................................... 124
SUB ............................................................... 124
subrutinas ...................................................... 127
SUBRUTINAS PREDISEADAS ............... 147
suma binaria .................................................... 25
suma y resta BCD ........................................... 25
suma y resta en HEX....................................... 25
sumador completo ........................................... 25
T
tabla de verdad ............................ 5, 9, 13, 14, 18
tabla lgica ........................................................ 5
TECLAACUM .............................................. 132
Telerruptor ...................................................... 76
temporizador de una luz de escalera ............... 79
trigers .............................................................. 56
U
U.C ................................................................ 121
U.C. ............................................................... 122
W
Windows 3.11 ............................................... 148
Windows 9x .................................................. 148
X
XOR .......................................................... 76, 85
Z
Z 122
Z80 ................................................................ 119

S-ar putea să vă placă și