Vous êtes sur la page 1sur 151

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)

Indice :
6.1.1 Problemas de monoestables con puertas lgicas y 74121 74221 74122 y 74123......................56 6.1.2 Problemas con 555......................................................................................................................57 6.1.3 Problemas con trigers y retardadores ........................................................................................58 6.3.1 Soluciones monoestables con puertas lgicas y 74121 74221 74122 y 74123...........................60 6.3.2 Soluciones a los problemas con el 555.......................................................................................61 6.3.3 Soluciones a los problemas con trigerr y retardadores...............................................................62 8.8.1 Ejercicios manejo funciones generales.......................................................................................80 8.8.1 Ejercicios manejo funciones especficas.....................................................................................81 8.8.3 Ejercicios globales funciones generales+funciones especiales GF+SF tericos........................82 8.8.4 Ejercicios GF+Sf casos prcticos................................................................................................88 8.9.1 Soluciones a los ejercicios de funciones generales GF...............................................................90 8.9.2 Soluciones a los ejercicios LOGO funciones especiales ...........................................................92 8.9.3 Soluciones a los ejercicios GF+SF tericos................................................................................93 8.9.4 Soluciones a los ejercicios GF+SF casos prcticos....................................................................96 8.10.1 Pulsador de Confort..................................................................................................................99 8.10.2.-Puerta automtica..................................................................................................................100 8.10.3.- Instalacin de ventilacin ................................................................................................101 8.10.4.- Portn corredizo...................................................................................................................102 8.10.5.- Cadenas luminosas...............................................................................................................103 8.10.6.- Bomba de aguas residuales...................................................................................................104 1.1 Tipos de PIC................................................................................................................................114 1.2 Caractersticas del PIC 16X84.....................................................................................................114 1.3 Herramientas para la compilacin...............................................................................................115 1.4 Cmo se hace con lenguaje ensamblador?.................................................................................116 1.5 Cmo se hace con Basic?...........................................................................................................116 1.6 Cmo se hace en C?...................................................................................................................116 1.7 Simulacin SIMUPIC..................................................................................................................117 1.8 Cmo se programa el PIC?........................................................................................................118 1.9 Placa TE20...................................................................................................................................119 3.1 Enunciados...................................................................................................................................121 3.2 Soluciones....................................................................................................................................122 1.1.- El 8085 dentro de los tipos de microprocesadores que hay.......................................................125 1.2 En resumen ........................................................................................................................127 3.1.- Instrucciones de transferencia de datos....................................................................................130 3.2.- Instrucciones aritmticas..........................................................................................................131 3.3.- Instrucciones lgicas.................................................................................................................131 3.4 Instrucciones de desplazamiento.................................................................................................132 3.5 Instrucciones de salto..................................................................................................................132 3.6 Instrucciones para las subrutinas................................................................................................132 3.7.-Instrucciones de control.............................................................................................................132 4.1 EJERCICIOS CON EL SIMULADOR 8085..............................................................................134 9.3.1.1.-Ejercicios de transferencia de datos..................................................................................134 9.3.1.2 Ejercicios de operaciones aritmticas................................................................................134 9.3.1.3 Ejercicios de bucles............................................................................................................134 9.3.1.4. Ejercicios con subrutinas y puertos...................................................................................134 4.2 Soluciones ejercicios sim8085.....................................................................................................135 5.1 Prcticas para el manejo del entrenador.......................................................................................137 5.2.- Cmo grabar y ejecutar el programa en el entrenador?...........................................................138 5.3 Hardware y Mapa de memoria en el entrenador ........................................................................138 5.4.- Subrutinas prediseadas de fbrica ......................................................................................139 5.5 Interrupciones..............................................................................................................................140 5.6.- Entrada y salida ........................................................................................................................141 9.4.6.1.-Perifricos del entrenador 8085........................................................................................141 9.4.6.2.-Cmo programar los puertos?.........................................................................................141 5.7 EJERCICIOS CON EL P 8085 .................................................................................................143 9.4.7.1 EJERCICIOS DE RUTINAS DE CONSOLA..................................................................143

9.3.7.2 EJERCICIOS DE PUERTOS............................................................................................143 5.8 EJERCICIOS CON EL P8085...................................................................................................144 Soluciones..........................................................................................................................................150

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

Tabla b) n 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 6. Simplificar por el mtodo de lgebra de Boole a) F = a + ba + a b) F =abc +abc +abcd c) F =ab( abc +abc ) d) F = a + b + c + a e) F =abc +abc f) F =abc +a 7.- Pasar a puertas NAND de 2 puertas 7400 a) F = a + bc + ( a + b) b) F = ab + ab( c + d ) + ac d c) F = ( a + b)( c + da ) + cd + ( c + d )( a + b( c + d )) 8. Pasar las siguientes funciones a puertas NOR7402 a) F = abc + b( c + d ) b) ( a + b)( c + d )b(b + c( c + ( d + e)) c) F = a bc + (b + c )( a + b( c + d ) ) 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. a 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 b 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 c 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 d 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 F

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

1.2

SOLUCIN A LOS KARNAUGH ...


a) ( ab) + ( c + d )

PROBLEMAS

DE

PUERTAS

LGICAS,

1.

b) F = (( a + b) + (( a + b)(bc )))( ((bc ) + ( cd ))

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 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1

F 0 0 1 1 1 0 1 0

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 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 a 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 b 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 c 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 d 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 (a+b)' 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 2 a+b 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 3 bc 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0
4 nand 1 3

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

5 or 2 4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

6 cd' 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0

7nor 6 3 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1

F nand 5 7 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 0

5. a)

En MINitrminos tenemos : F =abc +abc +abc +abc F = ( a + b + c )( a + b + c )( a + b + c )( a + b + c ) En MAXitrminos : En MINitrminos En MAXitrminos

b)

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

6.

7.

a) F = a + ba + a = a + a =1 b) F = abc + abc + abcd = ac + ac + abc = ac + abc = ac c) F =ab( abc +abc ) =ab( ab +ab ) =abab =ab d) F = a + b + c + a = 1 + b + c = 1 e) F =abc +abc =a( bc ) +a( bc) =a f) F = abc + a = (Teorema 2 => llamando ab = B ) = aB + a = a + B = a + bc Haciendo MORGAN a) F = a + bc + ( a + b) = a + bc + ( a + b) = abc( a + b) = abc( ab)

b ) Este ya es ms complejo ...


F = ab + ab( c + d ) + ac d = ab + ab( c + d ) + ac d = ab * ab( c + d ) * ac d = ab * ab( c + d ) * ac d = ab * ab( c * d ) * ac d

c) Bueno, y este mucho ms ....


F = ( a + b)( c + da ) + cd + ( c + d )( a + b( c + d )) = ( a + b)( c + da ) + cd + ( c + d )( a + b( c + d )) = ( a + b)( c + da ) * cd * ( c + d )( a + b( c + d )) = ( a * b)( c * da ) * cd * ( c * d )( a * b( c + d ) ) = ( a * b)( c * da ) * cd * ( c * d )( a * b( c * d ) )

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

10

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

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

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

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

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

11

11. Aqu lo que hay que hacer es una tabla de verdad con su correspondiente tabla de karnaugh : I1I2 I3 I4 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Q1 0 0 0 1 0 1 1 1 0 1 1 1 1 1 1 1 I1 I2\I3 I4 00 01 00 0 0 01 0 1 11 1 1 10 0 1 La funcin es simplificando F=I3I4+I1I2+I2I3+I2I4+I1I3+I1I4 11 1 1 1 1 10 0 1 1 1

12 Aqu lo que hay que hacer es una tabla de verdad con su correspondiente tabla de karnaugh : I1I2 I3 I4 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Q1 x 0 x 1 0 0 1 1 x 0 x 1 1 1 1 1 I1 I2\I3 I4 00 01 00 X 0 01 0 0 11 1 1 10 X 0 La funcin es simplificando Q1=I3 + I1I2

11 1 1 1 1

10 X 1 1 X

12

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 : F = ab + cd = a + b + c + d 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 F = ab + c d = ab + c d = ab * c d 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.

13

17. El circuito tiene como solucin F = a * c + b * d 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.

14

2 Problemas de cdigos y circuitos msi.


2.1 ENUNCIADOS DE PROBLEMAS DE CDIGOS
1.- Rellena la siguiente tabla : BINARIO DECIMAL 35 HEXADECIMAL BCD 100100011 BC 11111011 74 101000111 2748 110110100100 5D 101000000 2.- Pasar a decimales BINARIO 0.1 DECIMAL 0.1111 0.808 0.616 0.0101 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

15

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

16

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

Problema 12

Problema 13 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 15 Problema 14

17

2.3 ESQUEMA DE LOS DECODIFICADORES

Decodificador 74138 de 3 a 8

Decodificador 74159 de 4 a 16

Decodificador 74139 2x de 2 a 4

Decodificador BCD 7442 de 4 a 10

18

2.4 SOLUCIONES A LOS PROBLEMAS DE CDIGOS


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

Hay que recordar el siguiente esquema : 2.Pasar decimales BINARIO DECIMAL

0.1 0.5

0.1100 0.808

0.1111 0.9375

0.1001 0.616

0.0101 0.3125

0.1001 0.587

0.0011 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).

19

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.

20

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 10 al 15 no se ellos fuese ya no puede

problema, pues las salidas utilizan, con slo que uno de distinto en la tabla de verdad utilizarse.

21

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:

22

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.

23

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

24

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

25

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 725 -665 0000111100 1011010101 0100101010 00000111100 10100101011 0 10101100111 -1010011000 1010011001 = - 665

pasandolo a C1 ===>> y sumndole 1=>

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

26

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 0FB8 2964 => => <= 0001 1001 1010 1100 0000 1111 1011 1000 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 - 4ACF + 002D => => <= 0 0100 1010 1111 1100 0100 1010 1100 1111 =>C2=> 1 1011 0101 0011 0001 <= <= 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 - FB8 - F50 => => <= 1111 1011 1000 1111 0101 0000 =>C2=> <=C2<= 0 0000 0110 1000 1 0000 0100 1000 1 0000 1011 0000

27

4 Problemas de biestables y registros


4.1 RESUMEN DE BIESTABLES Y REGISTROS
BIESTABLES R 0 0 1 1 S 0 1 0 1 Qn Qn-1 1 0 x J 0 0 1 1 T 0 1 K 0 1 0 1 Qn Qn-1 0 1
Q

D 0 1 REGISTROS

Qn 0 1

Qn Qn
Q

28

4.2

ENUNCIADOS DE BIESTABLES

PROBLEMAS

DE

CRONOGRAMAS

DE

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 (masterslave)

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

29

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

30

17.- Rellenar la siguiente tabla de un 7494 ENTRADAS CL 1 0 0 0 0 0 0 0 0 0 0 0 0 0 PE1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 PE2 P1A P1B P1C P1D 1 0111 0 0101 0 0101 0 1111 0 0101 0 1101 0 0011 0 0011 0 0000 1 0000 0 0000 0 0110 0 0101 0 0000
P2A P2B P2C P2D

estado interno 1110 1101 1100 0010 1101 1111 1100 0011 0000 1001 0000 1111 1111 0000 SI 1 0 1 0 1 0 0 1 0 1 0 1 0 0 clk X 0 1 X 0 QA QB QC QD

salida Out

18 Rellena la siguiente tabla de funcionamiento de un 74166 entrada cl' clk 1 X 1 1 1 1 1 1 0 0 1 1 S/L' S.I. 0 1 1 0 1 0 1 1 1 1 1 0 1 0 1 0 0 1 1 1 ABCDEFGH 01000101 01011100 11010101 00110011 00001100 01001100 01100001 00110101 00110011 00001100 estado interno QA QB QC QD QE QF QG QH out Q comentarios

S.I. = Serial Input = SER

31

19 Rellena la siguiente tabla de funcionamiento de un 7495 entrada MC SI 1 0 0 0 0 0 0 1 1 1 0 1 1 1 0 1 0 0 0 0 1 0 0 0 1 0 salida QA QB QC QD

CLK1 1 1 x 0 1 1 0

CLK2 0 1 x 0 x 0

ABCD 0101 0100 0100 1011 1010 1110 1111 Qb Qc Qd 0 Qb Qc Qd 0 0000 Qb Qc Qd 1 Qb Qc Qd 1 0010

comentarios

20 Rellenar la siguiente tabla de funcionamiento de un 74194 cl' 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 CLK 0 S0 S1 01 11 01 01 10 10 10 10 10 01 00 11 10 11 01 01 SR 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 A B C D SL 0111 1 0010 0 0100 0 0101 0 0101 1 0101 1 0101 0 0101 0 0101 0 0101 0 0101 0 0111 1 0101 1 0101 1 1111 1 1111 1 QA QB QC QD comentario

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

32

4.4

SOLUCIONES A LOS BIESTABLES

PROBLEMAS

DE

CRONOGRAMAS

DE

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

33

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 :

34

17 La solucin es : ENTRADAS CL PE1 PE2 P1A P1B P1C P1D 1 0 1 0111 0 1 0 0101 0 0 0 0101 0 0 0 1111 0 0 0 0101 0 0 0 1101 0 0 0 0011 0 0 0 0011 0 0 0 0000 0 0 1 0000 0 0 0 0000 0 0 0 0110 0 0 0 0101 0 0 0 0000 18 La solucin es : Entrada cl' clk 1 X 1 1 1 1 1 1 0 0 1 1 S/L' S.I. 0 1 1 0 1 0 1 1 1 1 1 0 1 0 1 0 0 1 1 1 ABCDEFGH 01000101 01011100 11010101 00110011 00001100 01001100 01100001 00110101 00110011 00001100
P2A P2B P2C P2D

estado interno 1110 1101 1100 0010 1101 1111 1100 0011 0000 1001 0000 1111 1111 0000 SI 1 0 1 0 1 0 0 1 0 1 0 1 0 0 clk X 0 1 X 0 QA QB QC QD 0000 0101 1010 0101 0101 0010 0001 0001 0000 1001 0100 1010 1010 0101 out Q 1 0 1 1 0 0 0 0 1 1

salida Out 0 1 0 1 1 0 1 1 0 1 0 0 0 1

estado interno QA QB QC QD QE QF QG QH 01000101 00100010 00010001 00010001 10001000 01000100 00100010 00000000 00110011 10011001

comentarios carga quieto quieto clear carga

19 La solucin es : CLK1 1 1 x 0 1 1 0 CLK2 0 1 x 0 x 0 entrada MC SI 1 0 0 0 0 0 0 1 1 1 0 1 1 1 0 1 0 0 0 0 1 0 0 0 1 0 ABCD 0101 0100 0100 1011 1010 1110 1111 Qb Qc Qd 0 Qb Qc Qd 0 0000 Qb Qc Qd 1 Qb Qc Qd 1 0010 Salida QA QB QC QD 0101 0010 1001 0100 0100 0010 0010 0100 1000 0100 1001 1001 0010 comentarios carga quieto quieto quieto carga

35

20 La solucin es cl' 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 CLK 0 S0 S1 01 11 01 01 10 10 10 10 10 01 00 11 10 11 01 01 SR 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 A B C D SL 0111 1 0010 0 0100 0 0101 0 0101 1 0101 1 0101 0 0101 0 0101 0 0101 0 0101 0 0111 1 0101 1 0101 1 1111 1 1111 1 QA QB QC QD 0000 0010 0001 0000 0001 0011 0110 0110 1100 1110 1110 0000 1101 0101 0101 1010 comentario clear carga quieto quieto clear carga quieto

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.

36

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

37

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

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

CLneg Aut Aut Aut Aut Aut

3 Seran 4 biestables JK J K CLK 1 1 1 Clock ext 2 1 1 Q0 3 1 1 Q1 4 1 1 Q2


1

Q Salida Q0 y clk 2 Salida Q1 y clk 3 Salida Q2 y clk 4 Salida Q3

QNEG n.c. n.c. n.c. n.c.

PRneg 1 1 1 1

CLneg Salida pta Salida pta Salida pta Salida pta

Todas las salidas Q3 Q2 Q1 Q0 pueden conectarse a un 7448 y a un display para poder visualizar los nmeros 38

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 1 1 1 Clock ext Salida Q0 y clk 2 2 1 1 Q0 Salida Q1 y clk 3 3 1 1 Q1 Salida Q2 Salida pta= Puerta NAND entrada Q2 y Q1 Detecta el 6 =110 y carga el 0=0000

QNEG n.c. n.c. n.c.

PRneg 1 1 1

CLneg Salida pta Salida pta Salida pta

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

QNEG Clk 2 Clk 3 Clk 4 n.c.

PRneg Salida pta Salida pta Salida pta Salida pta

CLneg 1 1 1 1

39

6 Seran 3 biestables JK J K CLK Q 1 1 1 Clock ext Salida Q0 2 1 1 Q0neg Salida Q1 3 1 1 Q1neg Salida Q2 Salida pta= Puerta OR entrada Q2 y Q1 Detecta el 1 =001 y carga el 7=111

QNEG Clk 2 Clk 3 n.c.

PRneg Salida pta Salida pta Salida pta

CLneg 1 1 1

7 Seran 4 biestables JK J K CLK Q 1 1 1 Clock ext Salida Q0 y clk 2 2 1 1 Q0 Salida Q1 y clk 3 3 1 1 Q1 Salida Q2 y clk 4 4 1 1 Q2 Salida Q3 Salida pta= Puerta NAND entrada Q3 y Q2 y Q0 Detecta el 13 =1010 y carga el 2=0010

QNEG n.c. n.c. n.c. n.c.

PRneg 1 Salida pta 1 1

CLneg Salida pta 1 Salida pta Salida pta

40

8 Seran 4 biestables JK J K CLK Q 1 1 1 Clock ext Salida Q0 2 1 1 Q0neg Salida Q1 3 1 1 Q1neg Salida Q2 4 1 1 Q2neg Salida Q3 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 1 1 1 Clock ext Salida Q0 y clk 2 2 1 1 Q0 Salida Q1 y clk 3 3 1 1 Q1 Salida Q2 y clk 4 4 1 1 Q2 Salida Q3 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 1 1 1 Clock ext Salida Q0 y clk 2 2 1 1 Q0 Salida Q1 y clk 3 3 1 1 Q1 Salida Q2 y clk 4 4 1 1 Q2 Salida Q3 y clk 5 5 1 1 Q4 Salida Q4 Salida pta= Puerta NAND entrada Q3 Q1 y Q0 Detecta el 17 =10001 y carga el 7=00111

QNEG Clk 2 Clk 3 Clk 4 n.c.

PRneg 1 Salida pta Salida pta Salida pta

CLneg Salida pta 1 1 1

QNEG n.c. n.c. n.c. n.c.

PRneg Salida pta Salida pta Salida pta 1

CLneg 1 1 1 Salida pta

QNEG n.c. n.c. n.c. n.c. n.c.

PRneg Salida pta Salida pta Salida pta 1 1

CLneg 1 1 1 Salida pta Salida pta

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

Resets Q3 y Q0

41

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

Resets Q1 y Q0

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

Resets 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 Clk externo Qa clkB N.C. Puerta = AND con entrada a Q2, Q1 y Q0

Qc Salida

Qd N.C.

Resets puerta

42

14 Hay que utilizar dos 7490 uno para las unidades y otro para las decenas 7490 Clk A Clk B Qa Qb Qc Qd Unid Clk Qa Salida Q0 Salida Salida Salida ades externo unidades unidades y Q1uni Q2 Q3 clkB uni unidades unidades Dece Qd de Qa Salida Q0 Salida Salida Salida nas unidades decenas decenas y Q1 Q2 Q3 Clk B dec Decenas decenas decenas 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

Resets Salida puerta Salida puerta

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 Clk Qa Salida Q0 Salida Salida Salida Salida ades externo unidades unidades y Q1uni Q2 Q3 puerta clkB uni unidades unidades Dece Qd de Qa Salida Q0 Salida Salida Salida Salida nas unidades decenas decenas y Q1 Q2 Q3 puerta Clk B dec Decenas decenas decenas Hay que detectar el 50=0101 0000 Puerta = AND entrada Q2decenas y Q0decenas2
En los resets del 7490 unidades se podran poner a 0 pues realmente l solo se pone a 0 cuando pasa de 9

16 Hay que utilizar dos 7490 uno para las unidades y otro para las decenas
2

Tambin sin puerta, poniendo Q2 a R91 y R01 y Q0 a R92 y R02, pues dentro del 7490 hay una puerta AND 43

7490 Clk A Unid Clk ades externo

Qa Qb Qc Salida Q0 Salida Salida unidades y Q1uni Q2 clkB uni unidades Dece Qd de Qa Salida Q0 Salida Salida nas unidades decenas decenas y Q1 Q2 Clk B dec Decenas decenas Hay que detectar el 80=1000 0000 Puerta = Q3decenas

Clk B Qa unidades

Qd Salida Q3 unidades Salida Q3 decenas

Resets Salida puerta Salida puerta

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 Unid Clk Qa Salida Q0 Salida Salida Salida ades externo unidades unidades y Q1uni Q2 Q3 clkB uni unidades unidades Dece Qd de Qa Salida Q0 Salida Salida Salida nas unidades decenas decenas y Q1 Q2 Q3 Clk B dec Decenas decenas decenas En este caso no hay que resetear, l slo pasa a 00 despus del 99

Resets Salida puerta Salida puerta

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 Clk Qa Salida Q0 Salida Salida Salida Salida ades externo unidades unidades y Q1uni Q2 Q3 puerta1 clkB uni unidades unidades Dece Qd de Qa Salida Q0 Salida Salida Salida Salida nas unidades decenas decenas y Q1 Q2 Q3 puerta2 Clk B dec Decenas decenas decenas 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

44

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 Qa Salida Salida Salida Salida Salida Q3 externo Q0 y Q1 Q2 Q3 puerta clkB
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 Qa Salida Salida Salida Salida Q2 Q3 externo Q0 y Q1 Q2 Q3 clkB
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 ClkA Clk Qa clkB n.c. R02 83 externo del 9 Qc del 9 Qa ClkB n.c. n.c. Salida 8
Para el 8=1000 luego hay que resetear con Qd

R01 0 Qa

R02 Qd Qd

Para el 9=1001 luego hay que resetear con Qd y Qa

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.
3

45

46

22 Como 80=8*10 luego hay que montar dos 7493: 8 y 10 7493 Clk A Clk B Qa Qb Qc Qd ClkA Clk Qa clkB n.c. n.c. 82 externo del 10 Qc del 10 Qa ClkB n.c. n.c. Salida 8

R01 0 Qb

R02 Qd 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 ClkA Clk Qa clkB n.c. n.c. 3 externo del 10 Qd del 10 Qa ClkB n.c. n.c. Salida 3
Para el 3=0011 luego hay que resetear con Qa y Qb Para el 10=1010 luego hay que resetear con Qd y Qb

R01 Qa Qb

R02 Qb Qd

24 Como 35=5*7 luego hay que montar dos 7493: 5 y 7 7493 Clk A Clk B Qa Qb Qc ClkA Clk 5 Qa clkB n.c. externo del 7 Qd del Qa ClkB n.c. Salida 7 5 25 Puede ser el 74190 como el 74191 Hay que detectar el 7=0111 y cargar el 3=0011
Qa Sal Q0 Qb Sal Q1 Qc Sal Q2 Qd Sal Q3 D 0 C 0 B 1 A 1 Rco n.c. G 0

Qd n.c. n.c.

R01 Qa Qa

R02 Qc 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

CLK Clk ext

D/U 0

Load Ent pta

Max/ Min n.c

Entrada pta NAND= Q2 Q1 Q0

47

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

Entrada pta NAND= Q3 Q2 Q0 28 Esta vez tiene que ser el 74191


48

Hay que detectar el final y cargar el 5=0101


Qa Sal Q0 Qb Sal Q1 Qc Sal Q2 Qd Sal Q3 D 0 C 1 B 0 A 1 Rco Load G 0 CLK Clk ext D/U 0 Load Rco Max/ Min 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 Sal Q0 Qb Sal Q1 Qc Sal Q2 Qd Sal Q3 D 1 C 0 B 0 A 0 Rco Load G 0 CLK Clk ext D/U 1 Load Rco Max/ Min 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 1 2 Qa Sal Q0 Sal Q4 Qb Sal Q1 Sal Q5 Qc Sal Q2 Sal Q6 Qd Sal Q3 Sal Q7 A 0 1 B 1 0 C 0 0 D 0 0 Rco n.c. n.c. G 0 0 CLK Clk ext Q3 D/U 0 0 Load Sal pta Sal pta Max/ Min n.c 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 1 2 Qa Sal Q0 Sal Q4 Qb Sal Q1 Sal Q5 Qc Sal Q2 Sal Q6 Qd Sal Q3 Sal Q7 A 0 0 B 1 0 C 0 0 D 0 0 Rco n.c. n.c. G 0 0 CLK Clk ext Q3 D/U 0 0 Load Sal pta Sal pta Max/ Min n.c 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 1 2 Qa Sal Q0 Sal Q4 Qb Sal Q1 Sal Q5 Qc Sal Q2 Sal Q6 Qd Sal Q3 Sal Q7 A 0 1 B 0 0 C 0 0 D 1 0 Rco n.c. n.c. G 0 0 CLK Clk ext Q3 D/U 1 1 Load Sal pta Sal pta Max/ Min n.c 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 1 2 Qa Sal Q0 Sal Q4 Qb Sal Q1 Sal Q5 Qc Sal Q2 Sal Q6 Qd Sal Q3 Sal Q7 A 1 1 B 1 0 C 0 0 D 0 0 Rco n.c. n.c. G 0 0 CLK Clk ext Q3 D/U 0 0 Load Sal pta Sal pta Max/ Min n.c 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 1 2 Qa Q0 Q4 Qb Q1 Q5 Qc Q2 Q6 Qd Q3 Q7 A n.c. n.c. B n.c. n.c. C n.c. n.c. D n.c. n.c. UP Clk Co 1 DW n.c. n.c. CO Up 2 n.c. BO n.c. n.c. Load Clear Sal n.c. pta Sal n.c. 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 1 2 Qa Q0 Q4 Qb Q1 Q5 Qc Q2 Q6 Qd Q3 Q7 A 1 1 B 1 0 C 0 0 D 0 0 UP Clk CO 1 DW n.c. n.c. CO Up 2 n.c. BO n.c. n.c. Load Clear Sal 0 pta Sal 0 pta

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 1 2 Qa Q0 Q4 Qb Q1 Q5 Qc Q2 Q6 Qd Q3 Q7 A 1 0 B 1 1 C 1 0 D 0 0 UP Clk CO 1 DW n.c. n.c. CO Up 2 n.c. BO n.c. n.c. Load Clear Sal 0 pta Sal 0 pta

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 1 2 Qa Q0 Q4 Qb Q1 Q5 Qc Q2 Q6 Qd Q3 Q7 A n.c. n.c. B n.c. n.c. C n.c. n.c. D n.c. n.c. UP clk DW n.c. CO Up 2 n.c. BO n.c. n.c. Load Clear n.c. n.c. Q6 Q6

CO1 n.c

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 1 2 Qa Q0 Q4 Qb Q1 Q5 Qc Q2 Q6 Qd Q3 Q7 A 0 0 B 0 0 C 0 1 D 0 0 UP n.c. n.c. DW Clk BO 1 CO n.c. n.c. BO Load Clear Dwn BO 0 2 2 BO n.c. 0 2

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 1 2 Qa Q0 Q4 Qb Q1 Q5 Qc Q2 Q6 Qd Q3 Q7 A 1 0 B 0 0 C 1 1 D 0 0 UP n.c. n.c. DW Clk BO 1 CO n.c. n.c. BO Load Clear Dwn Sal 0 2 pta Sal n.c. 0 pta

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 1 2 3 Qa Q0 Q4 Q8 Qb Q1 Q5 Q9 Qc Q2 Q6 Q10 Qd Q3 Q7 Q11 D 0 0 0 C 0 0 1 B 0 0 0 A 0 0 1 UP DW CO A B Up 2 CO1 BO 1 CO3 CO2 BO2 n.c. BO Dwn 2 BO3 n.c. Load D D D Clear C C C

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

54 Abaco 74122

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

55

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

56

6.2 BACOS Y FRMULAS 74122 74123 74121 Y 555

74122 y 74123 Si C1nF usar el baco Si C>1nF usar frmula : T = 0.28RC(1+700/R) (0.32 con diodo)

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

Monoestable con 555 T=RCln3

Astable con 555

TH=(R1+R2) ln2 TL = R1 ln2

57

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

Problema 1

Problema 3 Problema 5

Tenemos

que

R=3/1n*0.69=4.3k

5 En el baco nos sale 4k 6 Con la frmula, pues es ms cmodo : Problema 6 R=3/3*0.69=1.4M

7 Igualmente R=2m/100n*0.69=29k Problema 7

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 8

58

9 En este caso tenemos que despejar la despejar el condensador pues nos dan la resistencia : C=4/0.69*600k=9.6F

Problema 9 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

59

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)=31 O con la otra frmula R=Th/Cln(Vcc-Vt-)/(Vcc-Vt+)=20n/1nln(5-1.7)/(5-0.9)=95 Elegimos un valor aproximado medio de 60 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

60

7 ALARMA AIN 302

61

62

63

64

65

66

67

68

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.

69

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. Contactor estrella

Contactor lnea

Contactor tringulo

Fusible trmico

Interruptores de paro y marcha fusible trmico

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.

70

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).

71

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. 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 compatible PC Terminal de programacin porttil

72

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.

73

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?


AUTMATAS Trabajan con instrucciones especficas de entradas y salidas

Sistemas programables
ORDENADORES Trabaja con instrucciones especficas del campo de la informtica (ficheros...)

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.

74

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.

ENTRADAS

Pantalla donde se van viendo las rdenes introducidas o los parmetros introducidos.

Teclado para introducir rdenes o modificar las existentes

SALIDAS (Tipo Rel)


Seal de salida en forma de luces que simulan la conexin a un motor

75

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 XOR (diferentes = 1 ) 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). 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. 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. 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. Esta funcin hace uso de la entrada set que hace que la salida se accione, estando as hasta que acte el reset. Ante una entrada (En) que estar activada durante un tiempo T, la salida generada ser en forma de impulsos.

NOT SF FUNCIONES ESPECIALES Retardo a la conexin Retardo a la desconexin

Telerruptor

Interruptor horario, (Reloj no disponible en el modelo 230R) Rel con autorretencin (Biestable RS) Generador de pulsos

76

Es un retardo a la conexin igual que en la Retardo a la primera funcin pero al ser memorizado, conexin esta funcin no se desconecta, y adems la memorizado entrada es en forma de conector y no de interruptor. Es una funcin que tiene la propiedad de contar (Cnt) y actuar cuando se llega a un determinado nmero (Par) o superior a Contador este. La funcin puede ir en la direccin de adelante/atrs 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

77

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.

78

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

79

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.

80

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.

81

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 0 0 1 1 Q2 Motor 0 1 0 1

Parado Cerrar Abrir 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.

82

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.

83

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 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 Q1 0 0 0 1 0 1 1 1 0 1 1 1 1 I1 I2\I3 I4 00 01 11 10 00 0 0 1 0 01 0 1 1 1 11 1 1 1 1 10 0 1 1 1

La funcin es simplificando Q1=I3I4+I1I2+I2I3+I2I4+I1I3+I1I4

84

1101 1110 1111

1 1 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 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Q1 0 0 0 1 0 0 1 1 0 0 0 1 1 1 1 1 I1 I2\I3 I4 00 01 11 10 00 0 0 1 0 01 0 0 1 0 11 1 1 1 1 10 0 1 1 0

La funcin es simplificando Q1=I3I4+I1I2+I2I3

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 0 11 1 1 1 1 10 X 1 1 X

La funcin es simplificando Q1=I3 + I1I2

85

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

86

8.9.3 Soluciones a los ejercicios GF+SF tericos

23

24

25

26

27

28

29

30

87

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,

88

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.

89

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

90

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 Mo-Fri Sa-Su: Sa-Su:

On:9:00 On:16:00 On:10:00 On:20:00

Off:14:00 Off:20:00 Off:13:00 Off:22:00

91

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.

92

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

93

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.

94

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

95

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

96

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

97

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

98

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.

CHIP C

CHIP B

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 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.

CHIP A

99

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 0000 03FF 0400 07FF CHIP A RAM B RAM DIRECCIN 0800 0BFF 0C00 0FFF CHIP C ROM D ROM

100

9.2 SOLUCIONES EJERCICIOS DE MEMORIAS


1 a) Memoria 128x8 DB=8 D7 a D0 Como 128=27 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=26 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=26x23=29=25x24=32x16 Dibujo

1 c) Memoria 4096x8 DB=8 D7 a D0 Como 4096=4k=22210 =212 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=212x23=215=27x28=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 =24210 =214 luego AB=13 A12 a A0 Nmero de clulas 16384*16=262144 Estructura de la matriz 262144=512 es exacta matriz cuadrada =512x512 Dibujo

101

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=22210=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 210x8 = 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 210x8 = 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

1111 1111 1111 1111 1111 1000 0000 0000 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

102

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

0000 0111 1111 1111 0000 0000 0000 0000 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

Problema 5

Problema 6

CHIP A 0 1 1 1 0100 CHIP B 0 0 1 1 0000 El chip A ser

1111 0000 1111 0000

1111 0000 1111 0000 Problema 7

CS = A11 * A10

El chip B se seleccionar con


CS = A11 * A10 = A11 + A10

8.-El dibujo sera el siguiente

103 Problema 8

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 0000 0000 0000 0000 0000 0100 0000 0000 AB CD 0000 0011 1111 1111 0000 0111 1111 1111 0000 1000 0000 0000 0000 1100 0000 0000 EF GH 0000 1011 1111 1111 0000 1111 1111 1111 Problema 8 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 0000 0000 0000 0000 AB 0000 0011 1111 1111 0000 0100 0000 0000 CD 0000 0111 1111 1111 1010 0000 0000 0000 E 1010 1111 1111 1111 1110 0000 0000 0000 F 1110 1111 1111 1111 1111 0000 0000 0000 G 1111 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.

Problema 9

104

10.- Pasando los nmeros hexadecimales a binario tenemos . chip A15 A12 A11 A8 1111 1111 A 1111 1000 1111 0111 B 1111 0000 1010 1111 C 1010 0000 1001 1111 D 1001 0000 0000 1111 E 0000 1000 0000 0111 FG 0000 0000 Los chips F y G van en paralelo para formar palabras de 8 bits

A7 A4 1111 0000 1111 0000 1111 0000 1111 0000 1111 0000 1111 0000

A3 A0 1111 0000 1111 0000 1111 0000 1111 0000 1111 0000 1111 0000

11.- Pasando los nmeros hexadecimales a binario tenemos . chip A15 A12 A11 A8 1111 1111 A 1111 0000 1010 0000 B 1010 0000 0000 0011 CD 0000 0000 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

A7 A4 1111 0000 0000 0000 1111 0000

A3 A0 1111 0000 1111 0000 1111 0000

105

12.- Pasando los nmeros hexadecimales a binario tenemos . chip A B C D A15 A12 0000 0000 0000 0000 0000 0000 0000 0000 A11 A8 0000 0011 0100 0111 10 00 10 11 1100 1111 A7 A4 0000 1111 0000 1111 0000 1111 0000 1111 A3 A0 0000 1111 0000 1111 0000 1111 0000 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.

106

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. Automocin Tiene integrado las siguientes partes :
10%

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...

Industria 16%

Perifricos de PC 33%

Telecom 16%

Electrodom 25%

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.

107

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 PIC16C84 PIC16F84 Memoria Programa 1KX14 EEPROM 1KX14 FLASH Memoria Datos RAM EEPROM 36 64 68 64 Registros especficos 11 11 E/S 13 13 Vcc 2-6 2-6 Pines 18 18

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

108

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

109

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 :

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 MAS MOVLW b'11001000' MOVWF Vueltas DECFSZ Tiempo GOTO MAS MOVLW b'11111111' MOVWF Tiempo DECFSZ Vueltas GOTO MAS RETURN END

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 :
:020000040000FA :100000008316061083120614092006100920092001 :100010000328C830A300A20B0B28FF30A200A30BBB :040020000B280800A1 :00000001FF 1.5 Cmo se hace con Basic? Bucle: High 0 Pause 500 Low 0 Pause 500 GoTo bucle End

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


#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; } }

110

Una vez tecleado se pulsa Compile->Compile and Link o F3 (ms rpido) te pedir que elijas el C a utilizar:
+- Select Midrange processor... ---------------------------------+ | ( ) 16C84 | ( ) 16F84 | (*) 16F84A | [ OK - Enter ] < Cancel - Esc > < Help - F1 > | +----------------------------------------------------------------+

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?

:0C000000830100308A0004288301B52B26 :10076A0083168601831286018C018C0A8D010D087D :10077A00803A8E0080300E020A3003190C02031CE4 :10078A00C72BC82BC92BDA2BCA2B8C0A03198D0A43 :10079A000D08803A83128E0080300E020A30031947 :1007AA000C02031CD92BDA2BC92B013083128600C9 :1007BA008C018C0A8D010D08803A8E0080300E0261 :1007CA000A3003190C02031CEB2BEC2BED2BFE2B2E :1007DA00EE2B8C0A03198D0A0D08803A83128E00BB :1007EA0080300E020A3003190C02031CFD2BFE2B6B :0607FA00ED2BB72B0428D3 :00000001FF

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.

111

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 :
#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; } }

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 WatchDog: WDT)

el

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.icprog.com . Adems hay que habilitar el Driver NT/2000/XP en Ajustes->Opciones>Miscelanea.

112

1.9 Placa TE20

Aqu tienes un esquema del programador TE20, lo puedes construir t mismo, o comprarlo (18)

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) {...}

113

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 ....}

114

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

115

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; }

Problemas electrnica Digital luzB1: for(;;){

Profesor Javier Quintana alarma: for(;;){

if ((PORTA&0b00001)==0) goto luzB0; PORTB=0b00000000; 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; }

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; } Pgina 117

Problemas electrnica Digital

Profesor Javier Quintana /**************************** 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; } }

} /**************************** Ejer12 B0_B3 sea un dado electronico hasta 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; } }

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.

Pgina 118

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
Rock

Microfotograf ia de PentiumMver el espacio de L2

Nombre PPS-4 4bits Intl 4004 Mot 6500 8bits no Zlg Z80 PC 8085 8086 PC 286 8088 286 386SX 386DX 486SX 486DX 486DX2 486DX4 Pentium Pent PRO

DB 4 8 8 16 16 16 32

AB 8 16

ao 1971

MHz Observaciones -1 En calculadoras programables 28K transistores

Actualmente en Automatas 1972 1 a 4 Antiguos Amstrad, Atary hoy en da en Gameboy Actualmente en Automatas 1978 4.77 a 1979 8 1982 8-12 1988 16/20 20/2 1985 5/33 1991 33 1989 1991 66 75/ 1992 100 1993 1996 1997 Primeros PC XT compatibles IBM hasta 1M RAM coprocesador:8087 PC AT hasta 16M deRAM coprocesador 287 Coprocesador 387 275K transistores 1.2M transistores sin coprocesador Soket3 Con Coprocesador incluido Soket3 Obligatorio uso del ventilador Tecnologa 3.3V x3 (fext=33.3MHz) L1=16K

20 24

Intel

386

32 32

486

32

Intel

Pent MMX 64 PentiumII Celeron Xeon Pentium III 36

1997 1997 1997 1999

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

PC Actuales : Fab Intel AMD


4

Tipo Pentium Athlon

Pentium

Nombre Pent IV Pent M 64FX

DB

AB

ao GHz 2002 1-2 2004 2004 1.3-1.6 2.2

64

36

Observaciones RDRAM Tecnologia 0.18 Instrucciones SSE2>MMX L2=1M Vcore<1.5V Menor consumo, peso,espacio Portatil Centrino=PentM+Chipset855+Wireless2100 Fext=400MHz Vcore=1.5V Socket940 L1=940K L2=M

Externamente igual que el 5 pero que tiene esas dos tensiones para aumentar el multiplicador

Problemas electrnica Digital

Profesor Javier Quintana

Pgina 120

Problemas electrnica Digital Otros Fabricantes : Cyrix Fab Tipo Pent 386 Nombre C686 SX/DX DX DX2/DX4 DX4-100 DX5-133 AMDK5 AMDK6 K63DNOW K6-III K7 Athlon 4 DB AB 64
16/ 32

Profesor Javier Quintana

ao

MHz 80 a 150

Observaciones <<Pentium Fext=40 a 75MHz!!! <386 de Intel con menos consumo

36 32 1986 1992

486 AMD

32

32

64

36

1995 1996 1995 1996 1997 1998 1999 2001

40 50/66/80 100 133 75 a 166 166 a 300 266 a 400 450 a 600 400 a 800 1.1GHz

>486DX a 33MHz =486DX2 de Intel <486DX4-100 <486DX4-100 =Pentium >Pentium MMX con Socket 7 <=Pentium II tiene L1=64K <PentiumIII >PentiumIII Fext=200MHz L1=128K L2=1M =>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 5 Celeron 1,2GHz Duron 1,1GHz PIII 103$ 0,13 Socket A L1=32k/128k L2=256k/64k

PC Word Nov 2001 pag 253 Pgina 121

Pentium

Problemas electrnica Digital

Profesor Javier Quintana

2.- HARDWARE DEL 8085 Dentro del 8085 tenemos los siguientes registros: A (8) ALU Unidad Aritmetico S Z AC P CY ... Flag (8) Lgica B (8) C (8) D (8) E (8) H (8) L (8) registros auxiliares Acumulador U.C. Unidad Control

RI (8) reg. de instruciones SP (16) stack pointer puntero de pila PC (16) contador del programa

Todos estan conectados entre si, y el 8085 tiene exteriormente 3 buses como todos los microprocesadores (pero con tamaos diferentes): Nombre Bus de datos (data bus) Bus de direcciones (Adrress Bus) Bus de Control bits comentarios 8 conectado al R.I. desde este registro la U.C. lee las instrucciones y las procesa. 16 conectado al PC indica la direccin de memoria del programa que se esta leyendo. 10 Conectado a la U.C. para controlar el sistema

D.B. A.B. C.B.

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).

El smbolo # indica que es activo a nivel bajo. Pgina 122

Problemas electrnica Digital

Profesor Javier Quintana

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

Pgina 123

Problemas electrnica Digital

Profesor Javier Quintana

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 LXH H,addr ejemplo de utilizacin :

LDA addr

STA addr

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. Pgina 124

Problemas electrnica Digital

Profesor Javier Quintana

3.2.- Instrucciones aritmticas

ADD rs ADD M ADI dato INR rs INR M INX B INX D INX H DAA

SUB rs SUB M SUI dato DCR rs DCR M DCX B DCX D DCX H STC CMC

3.3.- Instrucciones lgicas

ANA rs ANA M ANI dato ORA rs ORA M ORI dato CMA

CMP rs CMP M CPI dato alteran solo el flag : Z, S, CY, AC ...

Pgina 125

Problemas electrnica Digital

Profesor Javier Quintana

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 RET

3.6 Instrucciones para las subrutinas

CALL addr
3.7.-Instrucciones de control

HLT NOP

IN puerto OUT puerto

Pgina 126

Problemas electrnica Digital

Profesor Javier Quintana

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 )
;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

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

Pgina 127

Problemas electrnica Digital

Profesor Javier Quintana

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 ....

Pgina 128

Problemas electrnica Digital

Profesor Javier Quintana

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 INX H MVI M,0H INX H MVI M,0H END ;Tambin se podra hacer MVI A,0H 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 LDA 1500H

;B=[1501] ;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

;Borro [1500] ;Borro [1501] ;Borro [1502] STA 1500H

Pgina 129

Problemas electrnica Digital


;*********************************** ;**** 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 LXI H,1000H

Profesor Javier Quintana


OUT 00H CALL PAUSA JMP BUCLE ;Sacar por el puerto ;Hacer pausa

;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

;A=[1500]

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

;*********************************** ;**** 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

Pgina 130

Problemas electrnica Digital

Profesor Javier Quintana

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 Ensambl. LXI MVI A,00H MVI B,0AH ADD B DCR B JNZ SUMAR
CALL

Direcc. Cod. Maq. 1000 31 FF 1F SP,1FFFH 1003 3E 00 1005 06 0A 1007 80 SUMAR: 1008 05 1009 C2 07 10 100C CD D5 04
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.

Pgina 131

Problemas electrnica Digital

Profesor Javier Quintana

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 EPROM 4k Programa monitor de la consola y 0FFF 2732 subrutinas anteriores 1000 2x RAM 2k Programas de usuario 1FFF 4016 2000 RAM 256 bytes Utilizado por la consola 20FF 8155 U17

Pgina 132

Problemas electrnica Digital

Profesor Javier Quintana

5.4.- Subrutinas prediseadas de fbrica

Para la elaboracin de vuestros programas podis utilizar las siguientes subrutinas ya programadas en la ROM
Direccin

nombre8

descripcin
El contenido del acumulador se visualiza en el display, DISPLAY<=A Carcter de consola al acumulador A<=TECLADO Un mensaje que esta en memoria, que comienza en la direccin apuntada por HL se visualiza en el display 9 DISPLAY<=[HL] Visualiza los contenidos de HL en el display DISPLAY<=HL

Display

nombre manuales

04D5H 044EH 041DH 04C9H

ACUMDISPLAY
TECLAACUM MENSDISPLAY HLDISPLAY

Datos no procede direcciones direcciones

UPDDT RDKBD OUTPT 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 9

El nombre puede ser arbritario Estos son los cdigos de los carcteres que se pueden sacar con la subrutina MENSDISPLAY 0 al 9A a la FHLPIrblancoYaUh00..090A..0F1011121314158EA3A4BBExiste 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 : dcba.gfeas H=01101111 Pgina 133

Problemas electrnica Digital

Profesor Javier Quintana

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 Pgina 134

Problemas electrnica Digital

Profesor Javier Quintana

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 :
jumper J5 J6 J7 J2 J3 J4 (4-7) J4 (0-3) puerto PA PB PC PA PB PCH PCL Anchura 8 bits 8 bits 6 bits 8 bits 8 bits 4bits 4 bits chip 81555 * 8255 * ref U14 U15

tipo PARALELO Input/Ouput PARALELO Input/Output

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 PB I I O PC I I I control 00H 01H 02H Carcteres de control del 8255 PA O O O O O I O PB O I O I O O O PCH O O O O I O I PCL O O I I O O I control 80 82 81 83 88 90 89 A estos carctes de control les falta una H al final. O O I 03H I I O 0CH O I O 0DH I O O 0EH O O O 0FH

I O O I 91

O I I O 8A

I I O O 92

O I I I 8B

I I O I 93

I O I O 98

I I I O 9A

I O I I 99

I I I I 9B

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. Pgina 135

Problemas electrnica Digital

Profesor Javier Quintana

SEGUNDO : OUT 20H o OUT 3BH segn si es el 8155 o el 8255 que quieres manejar
REGISTRO DE CONTROL 8155 20H 8255 3BH

en nuestro ejemplo anterior OUT 20H TERCERO: ESCRIBIR O LEER EL PUERTO Segn el puerto tiene una direccin predeterminada
8155 PA PB PC 21H 22H 23H 8255 38H 39H 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

Pgina 136

Problemas electrnica Digital

Profesor Javier Quintana

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

Pgina 137

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

;*********************************** ;**** 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;

;*********************************** ;**** 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

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

;************************************** ;* 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

;*********************************** ;**** 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

;*************************************** ;*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

;*********************************** ; 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: S3 Las esquinas se llaman S1, S2, 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 1 reloj puerto S1 PUERTO C 8255 OUT 3AH semfor P1 G1 F1 o bits VR VNR VNR 2 S2 PUERTO A 8255 OUT 38H P2 G2 F2 VR VNR VNR 3 S3 PUERTO B 8255 OUT 39H P3 G3 F3 VR VNR VNR 4 S4 PTO B DEL 8155 OUT 22H P4 VR G4 VNR F4 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 :

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

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 El segundo sumando estar almacenado en las direcciones El resultado y acarreo se almacenar en las direcciones 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] [1001] [1000] + [1003] [1002] [1006] [1005] [1004]

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


;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]

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

Problemas de Electrnica Digital.

Puertas lgicas, Karnaugh


;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

DAD D ;HL=HL+DE 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

Problemas de Electrnica Digital.

Puertas lgicas, Karnaugh

;*********************************** ;**** 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=XY ;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

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) TX ------------------------RX ------------------------GND ----------------------En el PC (macho de 25 pines) RX (3) TX (2) RTS (4) con CTS (6) 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 D1009,2A50 =Visualiza la memoria desde la direccin alta hasta la baja, ejem

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 =inserta en la memoria a partir de direccin.

I 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

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 0A5D 0A33 0AB7 04C9 0B74 037D 02BF CI111 CO1 PRIMES ADRD UPDAD DELAY GTHEX TODIR Carcter de consola al acumulador Del registro C al display un mensaje que esta en memoria, que comienza en la direccin apuntada por HL se visualiza en el display el contenido de HL se visualiza en el display retraso de 1 mseg n hex de 2 bytes ejem A725 desde el teclado, al display y al registro DE Idem que el anterior, pero sin visualizarlo F AF AHLF ABCF TODOS

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 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.

Leer:

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

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. Alto nivel (C) void main( void ) { Ensamblador para PC push ebp mov ebp,esp push ecx mov jmp int i; for(i=0;i<=10;i++) mov add mov cmp jg push printf ("Hola"); call add jmp mov } pop ret dword ptr [i],0 main(0x00401026)+16h eax,dword ptr [i] eax,1 dword ptr [i],eax dword ptr [i],0Ah main(0x0040103b)+2Bh offset ___xt_z(0x00411a30)+104h printf(0x00401060) esp,4 main(0x0040101d)+0Dh esp,ebp ebp Mquina para PC 00401010 00401011 00401013 00401014 0040101B 0040101D 00401020 00401023 00401026 0040102A 0040102C 00401031 00401036 00401039 0040103B 0040103D 0040103E

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

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.33-5.35 5.39 5.40 5.22-5.24 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 6.18 6.20 partir de cronogramas 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 7.1-7.3 7.24-7.32 Excitacin, Flujos... Autmatas con enunciados de secuencias 7.4 7.9-7.15 7.33 Realizacin de autmatas a partir de 7.5 diagramas de flujo Problemas diversos de autmatas 7.16-7.22 Memorias generalidades: direcciones 9.1-9.8 9.10-9.14 9.22-9.36 matriz, datos... 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

INDICE DE GLOSARIOS