• No results found

En esta práctica se llevara a cabo un decoder binario-decimal, con la ayuda de un display de 7 segmentos. Para esto utilizaremos subrutinas, las cuales harán que el programa se vea más sencillo y podremos detectar fallas si las hubiera.

4.3.1 Subrutinas

Una subrutina es una rama del programa principal que se ejecuta cuando se desee, es decir, que nosotros podemos iniciar otro programa diferente al del programa principal y utilizarlo cuando sea necesario.

Las subrutinas facilitan la estructuración del programa. Cuando el programa principal llama a una subrutina para que ésta se ejecute, la subrutina procesa su programa hasta el final. El sistema retorna luego el control al segmento del programa principal desde donde se llamó a la subrutina.

Las subrutinas sirven para estructurar o dividir el programa en bloques más pequeños y, por tanto, más fáciles de gestionar. Los bloques más pequeños facilitan la comprobación y la eliminación de errores tanto en las subrutinas como en el programa entero.

Con las subrutinas también la CPU se puede utilizar más eficientemente, llamando al bloque sólo cuando se necesite, y no ejecutar todos los bloques en todos los ciclos. La operación Llamar subrutina transfiere el control a la subrutina, se puede utilizar con o sin parámetros.

Salto (JMP) y etiqueta (LBL)

Este par de instrucciones se utilizan conjuntamente para saltar porciones del programa de escalera cumpliendo las siguientes 2 condiciones:

1. Si el renglón que contiene la instrucción de salto es verdadera el programa salta del renglón que contiene la instrucción saltar (JMP) al renglón que contiene la instrucción de etiqueta (LBL) designada y sigue ejecutando. El programa puede saltar hacia adelante o hacia atrás.

2. Si el renglón que contiene la instrucción de salto es falso el programa no ejecuta la instrucción saltar (JMP) La instrucción JMP al ser activada causa que las instrucciones que se encuentren en los renglones

La instrucción LBL no es un contacto que se active si la instrucción JMP se cumple, así que al insertarla en un renglón no se comportará como un contacto de control sino como si fuera la misma línea horizontal de alimentación.

Uso de la instrucción brinca a la subrutina (JSR)

Use una subrutina para almacenar secciones repetidas de lógica de programa que se debe ejecutar desde varios puntos dentro de su programa de aplicación. Una subrutina ahorra memoria porque se programa sólo una vez. Cuando la instrucción JSR se ejecuta, el controlador salta a la instrucción de subrutina (SBR) al inicio del archivo de subrutina destino y reanuda la ejecución desde aquel punto.

Uso de la instrucción subrutina (SBR)

La subrutina de destino se identifica por el número de archivo que usted introdujo en la instrucción JSR. Esta instrucción sirve como etiqueta o identificador de un archivo de programa designado como un archivo de subrutina normal. Esta instrucción no tiene bits de control.

Siempre se evalúa como verdadera. La instrucción se debe programar como la primera instrucción en el primer renglón de una subrutina. El uso de esta instrucción es opcional; sin embargo, se recomienda su uso para obtener mayor claridad.

Uso de la instrucción retorno subrutina (RET)

Esta instrucción de salida indica el fin de ejecución de subrutina o el fin del archivo de subrutina. Causa que el controlador reanude la ejecución en la instrucción siguiente a la instrucción JSR. El renglón que contiene la instrucción RET puede ser condicional si este

renglón precede el final de la subrutina. De esta manera el controlador elimina el resto de una subrutina sólo si su condición de renglón es verdadera. Sin instrucción RET, la instrucción END (siempre presente en la subrutina) retorna automáticamente la ejecución de programa a la instrucción siguiente a la instrucción JSR en el archivo de escalera que llama. Cuando se inserta cualquiera de las siguientes instrucciones (JSR), (SBR) o (RET) aparece cualquiera de los

símbolos de la figura. [3] Figura 4. 29.Símbolos de lasinstrucciones JSR, RET y SBR.

4.3.2 Decoder binario-decimal

Un decoder es un sistema que nos permite decodificar número binarios a decimales, los cuales se pueden mostrar en un Display de 7 segmentos o en un LCD. En la práctica se utilizaran 2 display de 7 segmentos.

El decoder realiza la conversión binario-decimal por medio de compuertas lógicas o estados lógicos, los cuales tienen salida hacia un segmento del display. El encendido de los segmentos del display van a ir cambiando dependiendo del número binario que se desee.

4.3.3 Elaboración del decoder de 15 estados

1. Primero se debe realizar una tabla de verdad de los 15 estados o conteos que va a realizar el decoder y los segmentos del display que van a encender con cada una de las combinaciones o números binarios. La imagen siguiente muestra la Tabla 4.3 que representa la tabla de verdad

Una vez realizada la tabla de verdad se empezará a realizar el programa en la simulación. Para llevar a cabo el diagrama de escalera los 1 se consideraran como contactos normalmente abiertos y los ceros como normalmente cerrados en las entradas.

Las salidas del display a, b, c, d, e, f, y g serán las bobinas, por lo tanto

. Tabla 4. 3. Tabla de verdad para el decoder.

tendrán que encender cuando la combinación 0000 se encuentre en la entrada.

2. Para realizar la práctica primero se debe realizar la simulación en LOGIXPRO, se ocupará el I/O SIMULATOR ya que se necesitan contactos NO que funcionen como las entradas A, B, C y D. Se tomaran los contactos I: 1/0, I: 1/1, I: 1/2 y I: 1/3 respectivamente.

3. Se realizará el programa para la primera bobina que será la del primer segmento del display “a”. Para simplificar el programa solo se deberán de tomar las combinaciones en las cuales esta bobina se encienda.

4. Se realiza el diagrama de la figura 4.30.

En esta imagen se muestran las combinaciones en las cuales la bobina “A” se enciende estas combinaciones son: 0000, 0010, 0011, 0101, 0110, 0111, 1000 y 0110 los cuales son los números 0, 2, 3, 5, 6, 7, 8, y 9 respectivamente en número decimal.

5. Se realizarán las conexiones de la figura 4.31 que corresponden a la bobina “B” que es el siguiente segmento del display.

En la imagen se muestran las combinaciones en la cuales la bobina ò segmento “B” enciende, estas combinaciones son: 0000, 0001, 0010, 0011, 0100, 0111, 1000, 1001, que corresponden a los números: 0, 1, 2, 3, 4, 7, 8 y 9 que respectivamente en número decimal.

6. Se realizará el diagrama de la figura 4.32 que corresponde a las conexiones de la bobina ó segmento “C”.

Figura 4. 31. Línea de programación para la bobina “B” para el decoder.

7. Se realizará el diagrama de la figura 4.33 que pertenece a la bobina ò segmento “D”.

En la figura se muestran las combinaciones 0000, 0010, 0011, 0101, 0110, 1000 que corresponden a los números 0, 2, 3, 5, 6 y 8 respectivamente, en estas combinaciones enciende el segmento “D”. 8. Se realizara el diagrama mostrado en la figura 4.34 que corresponde al

segmento “E”.

Esta bobina o segmento enciende con las combinaciones 0000, 0010, 0110, y 1000 que corresponden a los números 0, 2, 6 y 8

respectivamente.

Figura 4. 33. Línea de programación para la bobina “D” para el decoder.

9. Se realizara el diagrama de la figura 4.35 que pertenece a la bobina o segmento “F”.

En la figura se muestran las combinaciones 0000, 0100, 0101, 0110, 1000 y 1001 que son los números 0, 4, 5, 6, 8 y 9, en todos estos números o combinaciones la bobina o segmento “F” enciende.

10.Se realizará el diagrama de la figura 4.36 en las cuales se encuentran las combinaciones correspondientes a la bobina “G”.

En esta figura se encuentran las combinaciones en las cuales el segmento o bobina “g” enciende las cuales son: 0010, 0011, 0100, 0101, 0110, 1000 y 1001, que son los números.

Ya que solo se tienen 7 segmentos, solo se podrán hacer 10 combinaciones que

Figura 4. 35. Línea de programación para la bobina “F” para el decoder.

Para utilizar la subrutina en el simulador solo se debe de seleccionar en la parte de debajo se encuentran una serie de botones con el nombre de SBR (figura 4.37), que al seleccionar alguno de ellos nos abre una ventana nueva para la construcción de diagramas en blanco, estas nuevas ventanas son las subrutinas.

Como se puede observar el simulador cuenta con un programa principal llamado LAD 2 y siete subrutinas llamadas SBR, para esta práctica se utilizaran cada una de estas subrutinas.

Cada subrutina deberá de encender en el display cada uno de los números faltantes, es decir, al entrar a la subrutina SBR 3 deberá de mostrarse el número 10 en los display, para elaborar los diagramas de las subrutinas se deberán de seguir los siguientes pasos:

1. Como ya se mencionó cada subrutina deberá de mostrar en el display un número faltante del decoder, por lo tanto las combinaciones binarias deberán de llamar cada subrutina del programa, este arreglo se deberá de poner en el programa principal y deberá de ser igual al mostrado en la figura 4.38.

Como se puede notar se utilizaran 6 subrutinas, una para cada número faltante.

Figura 4. 37. Subrutinas del simulador.

2. Ya que cada subrutina deberá de encender un número en el display dependiendo de la combinación binaria que se introduzca, los más sencillo de realizar es colocar en cada subrutina la bobina de los focos que deberá de encender esa bobina como se muestra en la figura 4.39.

En la figura se muestra la combinación 1010 la cual, en número decimal es el número 10, activara la subrutina SBR3. Ya en la subrutina esta misma combinación activara las bobinas que se encargaran de formar el número 10 en los display.

3. Se prosigue a colocar la siguiente combinación correspondiente al número 11 decimal, esta combinación es la 1011, en la figura 4.40 se puede observar.

La combinación 1011 llamara la subrutina SBR 4, la cual contiene el diagrama que se encarga de formar el número 11 en los display.

Figura 4. 39. Subrutinas del diagrama.

4. En la figura 4.41 se muestra el diagrama que contiene la subrutina SBR 5, la cual es llamada desde el programa principal por la combinación 1100. El diagrama en esta subrutina formara el número 12 en el display.

5. Se realizan el diagrama de la subrutina SBR 6 como se muestra en la figura 4.42.

La subrutina SBR 6 se llama desde el programa principal por la combinación 1101. El diagrama en esta subrutina formara el número 13 en los display.

. .

Figura 4. 41. Diagrama para formar el número 12 en la subrutina SBR 5.

6. Se realizara el diagrama de la subrutina SBR 7 la cual se muestra en la figura 4.43.

La combinación 1110 se encargar de llamar a la subrutina SBR 7 desde el programa principal la cual deberá de formar el número 14 en los display. 7. En la figura 4.44 se muestra el diagrama que se debe realizar para la

subrutina SBR 8.

Esta es la última subrutina del programa la cual será llamada desde el programa principal por la combinación 1111. Esta subrutina deberá de formar el número 15 en los display.

Figura 4. 44. Diagrama de la subrutina SBR 8 que formara el número 15. Figura 4. 43. Diagrama de la subrutina SBR 7 que forma el número 14.

Cada subrutina al ser llamada ejecutará el diagrama que cada una contenga, una vez que haya finalizado se regresará al programa principal.

Esta práctica sirve para que se tenga conocimiento de cómo se debe de utilizar las subrutinas, las cuales son de gran ayuda para simplificar el diagrama del

programa principal, ya que, en vez de tener un diagrama muy grande, se tienen varios diagramas pequeños que complementan el programa principal. De esta manera resulta más sencillo de entender un diagrama y, en el caso de que existieran, encontrar más fácil los errores.