Guias de Sistemas Basados 1

59
3 PRÁCTICA 1 MANEJO DE SOFTWARE OBJETIVO: Relacionarse con la estructura del programa MPLAB, así como conocer la secuencia para generar una nueva aplicación o proyecto. INTRODUCCIÓN A MPLAB IDE Esta práctica está encaminada para ser empleada como guía de inicio en el ambiente de trabajo del software MPLAB IDE de Microchip, destacando los pasos necesarios en la creación, elaboración, compilación y simulación de un proyecto de trabajo. A continuación se presentaran cada uno de ellos. CREAR NUEVO PROYECTO Los pasos se describen a continuación: 1. Entrar a MPLAB IDE 2. Seleccionar el dispositivo presionando en el menú de herramientas el icono “CONFIGURE” y presionar la opción “select device” el cual desplegará una ventana donde aparecerá una lista con los posibles elementos a emplear; elegir el microcontrolador designado en clase. Dicha pantalla de selección se muestra en la figura 1. Figura 1. Ventana de selección de dispositivo.

description

curso de mecatronica

Transcript of Guias de Sistemas Basados 1

3

PRÁCTICA 1

MANEJO DE SOFTWARE

OBJETIVO: Relacionarse con la estructura del programa MPLAB, así como conocer la secuencia para generar una nueva aplicación o proyecto.

INTRODUCCIÓN A MPLAB IDE

Esta práctica está encaminada para ser empleada como guía de inicio en el ambiente de trabajo del software MPLAB IDE de Microchip, destacando los pasos necesarios en la creación, elaboración, compilación y simulación de un proyecto de trabajo. A continuación se presentaran cada uno de ellos. • CREAR NUEVO PROYECTO Los pasos se describen a continuación: 1. Entrar a MPLAB IDE 2. Seleccionar el dispositivo presionando en el menú de herramientas el icono “CONFIGURE” y presionar la opción “select device” el cual desplegará una ventana donde aparecerá una lista con los posibles elementos a emplear; elegir el microcontrolador designado en clase. Dicha pantalla de selección se muestra en la figura 1.

Figura 1. Ventana de selección de dispositivo.

4

3. El proyecto nuevo se crea dando clic en el menú “PROJECT” y seleccionando la opción “new” de la barra de herramientas principal, lo anterior se ilustra en la Figura 2; posteriormente es necesario asignarle nombre y especificar una dirección para su ubicación. NOTA: Se recomienda crear una carpeta raíz en la unidad “c” directamente, de lo contrario puede generarse confusión en los direccionamientos de la máquina. Para hacerlo se presiona browse y se crea una carpeta nueva. Ver figura 3

Figura 2. Visualización del menú PROJECT.

Figura 3. Visualización del cuadro de dialogo del nuevo proyecto.

5

Una vez asignado el nombre y la ubicación del proyecto aparece la ventana “project window” situada en el extremo izquierdo del área de trabajo, dicha ventana se presenta en la Figura 4.

Figura 4. Visualización de la ventana “Project window”

Para comenzar a cargar el programa se selecciona de la barra principal la opción “FILE” y se elige “New”, esto se observa en la Figura 5.

Figura 5. Menú File

Posteriormente se despliega una ventana dentro de la cual se transcribe el programa anteriormente elaborado “figura 6”. La característica primordial de ésta ventana es que inicialmente se dificulta la visualización de errores de escritura, sintaxis u orden de comandos, aparece el texto en color negro y no tiene efecto alguno sobre la secuencia del programa.

6

NOTA: El código se guarda desde el menú “file”- “save as” en la carpeta raíz con el mismo nombre designado al proyecto.

Figura 6. Muestra de ventanas para cargar un programa

Figura 7. Ventanas para guardar programa

NOTA: Cargar el programa dado en clase.

7

Cuando se guarda el programa, la máquina reconoce el texto y lo decodifica cambiando de color la sintaxis, permitiendo así, identificar códigos, librerías, comentarios así como visualizar errores de escritura y de orden en códigos. Lo anterior es mostrado en la figura 7.

Es necesario seleccionar la ventana de proyecto con título “nombre .mcw”, ya que en dicha ventana se debe dar clic derecho sobre la carpeta “source files” y agregar el programa (figura 8 y figura 9), esto es con el objetivo de comenzar a trabajar con el programa adecuado dentro del proyecto creado.

Figura 8. Ventanas para agregar archivos

Para realizar lo anterior el programa en el recientemente guardado con extensión .asm se selecciona y se adhiere al proyecto dando doble clic; con la finalidad de poder revisarlo y compilarlo con ayuda del MPLAB y grabarlo dentro del PIC Para asegurarse de haber agregado correctamente el archivo al proyecto, es necesario que aparezca dentro de la ventana de proyecto debajo de la carpeta “source files” (figura 10).

8

Figura 9.Agregar archivo a proyecto

Figura 10.Muestra de programa adherido

9

COMPILAR PROYECTO La compilación de un proyecto es uno de los pasos fundamentales en la grabación de un programa dentro del Pic; ésta opción permite al usuario identificar los errores en la sintaxis y en algunos casos, en la coherencia del programa. El MPLAB despliega mensajes de advertencia en los direccionamientos de los registros y se configura el uso antes de grabarlo al microcontrolador para proteger el dispositivo. Por otro lado se recaban todos los datos requeridos por el proyecto como librerías, actualizaciones de los comandos y el programa realizado sólo con las instrucciones necesarias, se hace el programa más eficiente al eliminar innecesarias. OBJETIVO: Conocer los pasos que permiten compilar los programas correctamente, así como el uso de ventanas e instrucciones que son necesarias para ésta tarea. 1. Capturar el programa previamente escrito 2. Seleccionar de la barra principal la opción “project” 3. Elegir la opción “build all” o presionar la tecla f10 (figura 11) Posteriormente se despliega un cuadro de dialogo donde aparece el estado de la compilación y el porcentaje que se ha completado (figura 12) al llegar al 100% se despliega otra ventana que muestra los errores si los hay y mensajes o advertencias de compilación.

Figura 11.pasos para compilar el proyecto

10

Figura 12.Avance del compilador La figura 13 muestra la ventana que aparece cuando existe una compilación sin errores en ella se visualiza el mensaje “build succeded” y la fecha de construcción.

Figura 13.Ventana de compilación completa y sin errores

11

SIMULACIONES

La simulación es una herramienta muy útil dentro del grabado de programas en el microcontrolador debido a que permite al usuario visualizar el comportamiento de la secuencia desde la misma computadora y sin necesidad de realizar los circuitos electrónicos.

También permite verificar subrutinas de tiempos, cambio de estado en los registros tanto internos (propios del programa) como externos (designado por el usuario) así como elegir el inicio de simulación, selección de un bloque de programa o probarlo paso a paso para una visualización más detallada.

Tiene la opción de introducir estímulos externos para sustituir las señales dadas por un microswitch. La aplicación inmediata es cambiar el estado lógico de 0 a 1 en un pin.

OBJETIVO: Desarrollar las habilidades y conocimientos necesarios para realizar y comprender la visualización del programa mediante las herramientas del MPLAB. Inicialmente se debe agregar a la barra de herramientas los íconos de acción que permiten efectuar la simulación, para ello es necesario oprimir el botón “debugger”de la barra de herramientas principal, posteriormente dar clic en “select tool” y finalmente en “mplab sim”(figura 14) aparecen los íconos mostrados en la figura 15.

Figura 14.Pasos para agregar íconos de acción

12

SIMULACIÓN CON “WATCH”

De la barra de herramientas seleccionar el boton view y presionar la opción watch.

BOTONES DE ACCIÓN DEL SIMULADOR

Figura 15.Botones de acción para simulación

Dentro de la figura 16 se muestra la incorporación de los registros en los cuales se pueden apreciar los cambios que surgen al efectuar la simulación

Figura 16.Visualización de registros

13

PRÁCTICA 2

OPERACIONES ARITMÉTICAS CON NUMEROS BINARIOS

MARCO TEÓRICO La principal utilización de las operaciones con números binarios consiste en redireccionamientos de registros o localidades de memoria. OBJETIVO: Recordar el concepto de suma, resta, multiplicación y división con números binarios para ser aplicados dentro de la programación de microcontroladores. Suma o adición en binario La tabla de sumar, en binario más sencilla que en decimal. Sólo hay que recordar cuatro combinaciones posibles:

+ 0 1

0 0 1

1 1 0 + 1

Figura 17. Método de suma en binario

Las sumas 0 + 0, 0 + 1 y 1 + 0 son evidentes:

0 + 0 = 0 0 + 1 = 1 1 + 0 = 1

Pero la suma de 1+1, se sabe que es 2 en el sistema decimal, debe escribirse en binario con dos cifras (10) y, por tanto 1+1 es 0 y se arrastra una unidad, que se suma a la posición siguiente a la izquierda. Algunos ejemplos de lo anterior se muestran a continuación:

0 1 0 + 1 0 1

1 1 1 En decimal 210 + 510 = 710

0 0 1 1 0 1 + 1 0 0 1 0 1

1 1 0 0 1 0 En decimal 1310 + 3710 = 5010

14

1 0 1 1 0 1 1

+ 1 0 1 1 0 1 0 1 0 1 1 0 1 0 1

En decimal 9110 + 9010 = 18110

Sustracción en binario La técnica de la resta en binario es muy similar a la misma operación en el sistema decimal. Pero conviene repasar la operación de restar en decimal para comprender la operación binaria, que es más sencilla. Los términos que intervienen en la resta se llaman minuendo, sustraendo y diferencia.

- 0 1

0 0 1

1 1 + 1 0

Figura 18. Método de resta en binario Las restas 0 - 0, 1 - 0 y 1 - 1 son evidentes:

0 – 0 = 0 1 – 0 = 1 1 – 1 = 0

La resta 0 - 1 se resuelve, igual que en el sistema decimal, tomando una unidad prestada de la posición siguiente: 10 - 1, es decir, 210 – 110 = 1. Esa unidad prestada debe devolverse, sumándola, a la posición siguiente. Veamos algunos ejemplos:

1 1 1 - 1 0 1

0 1 0 En decimal 710 – 510 = 210

1 0 0 0 1

0 0 1 1 1 - 0 1 0 1 0

En decimal 1710 – 1010 = 710

1 1 0 1 1 0 0 1 - 1 0 1 0 1 0 1 1

0 0 1 0 1 1 1 0 En decimal 21710 – 17110 = 4610

15

A pesar de lo sencillo que es el procedimiento de restar, es fácil confundirse. Debido a que siempre se ha utilizado el sistema decimal, por ello las restas se hacen mecánicamente, y se ha perdido el significado del arrastre. Para simplificar las restas y reducir la posibilidad de cometer errores hay varias soluciones: Dividir los números largos en grupos. En el siguiente ejemplo, se observa cómo se divide una resta larga en tres restas cortas:

100110011101 1001 1001 1101 010101110010 =

010000101011 0100 0010 1011 0101 0111 0010

Calculando el complemento a dos del sustraendo i. Complemento a dos. El complemento a dos de un número N, compuesto por n bits, se define como:

C2N = 2n – N

Ejemplo: para el número N = 1011012, que tiene 6 bits, y calculando su complemento a dos:

N = 4510 n = 6 26 = 64 y, por tanto: C2N = 64 – 45 = 19 =

0100112 Complemento a uno El complemento a uno de un número N, compuesto por n bits es, por definición, una unidad menor que el complemento a dos, es decir:

y, por la misma razón:

C1N = C2N - 1 C2N = C1N + 1

Calcular el complemento a uno del número del ejemplo anterior:

N = 101101, y su complemento a dos C2N = 010011

C1N = C2N – 1 = 010011 – 000001 =

010010

C1N = 010010 En realidad, el complemento a uno de un número binario es el número resultante de invertir los UNOS y CEROS de dicho número. Dado el número:

N = 110100101

16

se obtiene su complemento a uno invirtiendo ceros y unos, con lo que resulta:

y su complemento a dos es:

C1N = 001011010

C2N = C1N + 1 = 001011011

Un ejemplo más del cálculo de complementos. Sea:

N = 0110110101

El complemento a uno es:

C1N = 1001001010

y el complemento a dos es:

C2N = 1001001011

Resta en binario usando el complemento a dos

La resta binaria de dos números puede obtenerse sumando al minuendo el complemento a dos del sustraendo. Ejemplos:

1. Para la siguiente resta, 91 – 46 = 45, en binario:

1011011 – 0101110 = 0101101

Tiene alguna dificultad, cuando se acumulan los arrastres a la resta siguiente. Pero esta misma resta puede hacerse como una suma, utilizando el complemento a dos del sustraendo:

1011011 + 1010010 = 0101101

En el resultado de la suma sobra un bit, que se desborda por la izquierda. Pero, como el número resultante no puede ser más largo que el minuendo, el bit sobrante se desprecia.

2. Para la siguiente resta, 219 – 23 = 196, utilizando el complemento a dos:

21910 = 110110112, 2310 = 000101112 C223 = 11101001

El resultado de la resta será: 11011011 + 11101001 = 111000100

17

Y, despreciando el bit que se desborda por la izquierda, llegamos al resultado correcto:

110001002 = 19610

Multiplicación binaria La multiplicación en binario es más fácil que en cualquier otro sistema de

numeración. Como los factores de la multiplicación sólo pueden ser CEROS o UNOS, el producto sólo puede ser CERO o UNO:

X 0 1

0 0 0

1 0 1

Figura 19. Método de suma en binario

En una computadora, sin embargo, la operación de multiplicar se

realiza mediante sumas repetidas. Eso crea algunos problemas en la programación porque cada suma de dos UNOS origina un arrastre, que se resuelven contando el número de UNOS y de arrastres en cada columna. Si el número de UNOS es par, la suma es un CERO y si es impar, un UNO. Luego, para determinar los arrastres a la posición superior, se cuentan las parejas de UNOS.

Veamos, por ejemplo, una multiplicación:

Figura 20.Ejemplo de multiplicación en binario

Para comprobar que el resultado es correcto, convertimos los factores y el resultado al sistema decimal:

3349 * 13 = 43537

18

División binaria

Así como el producto, la división es muy fácil de realizar, porque no son posibles en el cociente otras cifras sino UNOS y CEROS.

Para el siguiente ejemplo, 42 / 6 = 7, en binario:

Se intenta dividir el dividendo por el divisor, empezando por tomar en ambos el mismo número de cifras (100 entre 110, en el ejemplo). Si no puede dividirse, se intenta la división tomando un dígito más (1001 entre 100).

Si la división es posible, entonces, el divisor sólo podrá estar contenido

una vez en el dividendo, es decir, la primera cifra del cociente es un UNO. En ese caso, el resultado de multiplicar el divisor por 1 es el propio divisor. Restamos las cifras del dividendo del divisor y bajamos la cifra siguiente.

El procedimiento de división continúa del mismo modo que en el

sistema decimal.

DESCRIPCIÓN DE LA PRÁCTICA

1. Realizar diagrama de flujo de las funciones restantes (multiplicación y división) 2. Explicar su funcionamiento.

3. Escriba el código para realizar el producto y la división de dos números.

19

A continuación se ilustran los diagramas de bloques de los programas para suma y resta.

20

PRÁCTICA 3

OPERACIONES LÓGICAS MARCO TEÓRICO Compuertas Lógicas Las compuertas lógicas son dispositivos que operan con aquellos estados lógicos “alto y bajo” (1 y 0) y funcionan igual que una calculadora, de un lado se ingresan los datos, la compuerta realiza una operación, y finalmente, muestra el resultado.

Figura 21.Diagrama a bloques de operación de compuertas lógicas

Cada una de las compuertas lógicas se representan mediante un Símbolo, y la operación que realiza (Operación lógica) corresponde con una tabla, llamada

Tabla de Verdad.

• Compuerta NOT

Se trata de un inversor, es decir, invierte el dato de entrada, por ejemplo; si pones su entrada a 1 (nivel alto) obtendrás en su salida un 0 (o nivel bajo), y viceversa. Esta compuerta dispone de una sola entrada. Su operación lógica es s igual a a invertida

Figura 22.Compuerta lógica NOT y tabla de verdad

• Compuerta AND

Una compuerta AND tiene dos entradas como mínimo y su operación lógica

es un producto entre ambas, no es un producto aritmético, aunque en este caso coincidan. La salida será alta si sus dos entradas están a nivel alto

Figura 23.Compuerta lógica AND y tabla de verdad

21

• Compuerta OR

Al igual que en el caso anterior posee dos entradas como mínimo y la

operación lógica, será una suma entre ambas, se trata de una compuerta en la que basta que una de ellas sea 1 para que su salida sea también 1

Figura 24.Compuerta lógica OR y tabla de verdad

• Compuerta OR-EX o XOR

La compuerta OR Exclusiva con dos entradas lo que realiza con ellas es una suma lógica entre a por b invertida y a invertida por b. *Al ser O Exclusiva su salida será 1 si una y sólo una de sus entradas es 1*

Figura 25.Compuerta lógica XOR y tabla de verdad

Compuertas Lógicas Combinadas.

Al agregar una compuerta NOT a cada una de las compuertas anteriores, los resultados de sus respectivas tablas de verdad se invierten, y dan origen a tres nuevas compuertas llamadas NAND, NOR y NOR-EX

• Compuerta NAND

Responde a la inversión del producto lógico de sus entradas, en su

representación simbólica se reemplaza la compuerta NOT por un círculo a la salida de la compuerta AND.

Figura 26.Compuerta lógica NAND y tabla de verdad

22

• Compuerta NOR

El resultado que se obtiene a la salida de esta compuerta resulta de la

inversión de la operación lógica OR. También, se agrega un círculo en la salida a la compuerta OR para obtener una NOR.

Figura 27.Compuerta lógica NOR y tabla de verdad

• Compuerta NOR-EX

Es simplemente la inversión de la compuerta OR-EX, los resultados se pueden apreciar en la tabla de verdad, que bien se podría comparar con la anterior y notar la diferencia, el símbolo que representa se tiene en la siguiente figura.

Figura 28.Compuerta lógica NOR EX y tabla de verdad

ACTIVIDADES

1. Realizar diagrama de flujo de las funciones restantes (not, nand, nor, y norex)

2. Explicar su funcionamiento. 3. Escriba el código para su implementación en microcontrolador

23

PRÁCTICA 4

COMPLEMENTOS El complemento de un número binario expresa el opuesto del valor lógico original, también es conocido como inversor Los complementos son empleados en la representación de números con signo, en base a la siguiente relación: El bit de signo será el bit más significativo; el cual es el bit 7 del siguiente registro de ocho bits

Signo – magnitud

bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 1 1 0 0 1 0 1 0

signo magnitud Existen dos tipos de complementos los cuales son complemento a 1 y el complemento a 2, estos se describen a continuación Complemento a 1. El complemento a 1 de un número se obtiene cambiando cada 0 por 1 y viceversa, es decir; se cambia cada bit del número por su complemento como se muestra a continuación

Numero binario original

Se complementa cada bit para formar el complemento a 1

Complemento a 2. El complemento a 2 de un número binario se obtiene tomando el complemento a 1 y se le suma 1 al bit menos significativo

11001010 equivalente binario

00110101 se complementa cada bit para formar el complemento a 1

+ 1 se suma 1 para obtener el complemento a 2

00110110 representación en complemento a 2 del número binario original

24

Representación de números con signo mediante el complemento a 2 El sistema complemento a 2 para representar números con signo, trabaja de la siguiente manera:

- Si el numero es positivo, la magnitud esta representada por su equivalente binario verdadero y se agrega un 0 antes del bit mas significativo. - Si el numero es negativo, la magnitud esta representada por su equivalente en complemento a 2 y se agrega un 1 antes del bit mas significativo

El sistema complemento a 2 se emplea para representar números con signos porque, permite efectuar la operación de sustracción mediante una adición. Esto es importante ya que significa que el dispositivo puede usar la misma circuiteria tanto para sumar como para restar, ahorrando así en memoria ACTIVIDADES DE LA PRÁCTICA 1. Comprobar diagrama de flujo en base al programa que ejemplifica la presente práctica. 2. Explicar su funcionamiento.

PROGRAMA DIAGRAMA A BLOQUES

LIST P=16F877 INCLUDE "P16F877.INC" dato EQU 0X2

resultado EQU 0x2

org 0x000

movlw 0x2f

movwf dato

comf dato,0

movwf resultado

nop

nop

nop

End

25

PRÁCTICA 5

SALTOS A SUBRUTINAS

Las subrutinas de trabajo son instrucciones que se agrupan para desarrollar una tarea en especifico, para declarar una subrutina es necesario definir un nombre con la cual será citada dentro del programa principal; cabe destacar que, cada vez que se cite la subrutina esta se cargará en el programa ensamblador pese a que en el compilador no se agregue toda la sintaxis SUBRUTINAS DE TRABAJO Para llamar a una subrutina de trabajo es necesario utilizar la instrucción call que permite rastrear la subrutina en cualquier parte del bloque de memoria; una vez localizada se ejecuta, por último al terminar de ejecutarse es empleado el comando return el cual permite regresar al programa principal en la siguiente instrucción de la que partió Existe otro comando de salto a subrutina, la instrucción goto; la cual direcciona una nueva posición dentro del programa principal; para poder realizar el salto es preciso especificar el nombre de la etiqueta o localidad del salto a efectuar, a diferencia de la instrucción anterior ésta no requiere regresar al punto inicial de partida; por ejemplo:

Goto etiqueta

P R O G R A M A

etiqueta

INSTRUCCIONES

SUBRUTINAS DE TIEMPO

Se pueden calcular las subrutinas de tiempo mediante la fórmula expresada a continuación [T= (No.ciclos instrucción)(4)/Fosc] que permite realizar aproximaciones a tiempos exactos; esto con la finalidad de ocasionar retardos en algún programa; se llega hasta la subrutina mediante la instrucción GOTO (referencia manual del pic 16F87X pp.136,139) NOTA: para calcular el tiempo es necesario tomar en cuenta que la frecuencia del cristal que se emplea será dividida entre cuatro debido a que 4 ciclos de reloj equivalen a 1

26

ciclo de instrucción. El tiempo varía de instrucción a instrucción de 1 a 2 ciclos (referencia set de instrucciones manual del pic)

DESCRIPCIÓN DE LA PRÁCTICA

1. Realizar diagrama de flujo en base al programa que ejemplifica la presente práctica de la subrutina de tiempo y de trabajo.

2. Explicar su funcionamiento.

SUBRUTINA DE TIEMPO SUBRUTINA DE TRABAJO LIST P=16F877

INCLUDE "P16F877.INC"

CounterA EQU 0X20 CounterB EQU 0X21 CounterC EQU 0X22

DATO EQU 0X20

LIST P=16F877 INCLUDE "P16F877.INC"

DATO EQU 0X20

ORG 0X000 GOTO INICIO

INICIO

ORG 0X000 GOTO INICIO Clrf dato movlw 0x85 movf dato call retardo nop nop goto inicio

INICIO

Clrf dato call PROG_0 nop nop nop call PROG_1 nop nop nop goto inicio

retardo

movlw D'26' movwf CounterC movlw D'119' movwf CounterB movlw D'85' movwf CounterA

PROG_0 movlw 0x85 movf dato

return

PROG_1

movlw 0x4A

loop decfsz CounterA,1 goto loop

27

decfsz CounterB,1 goto loop decfsz CounterC,1 goto loop RETURN

END

movf dato return END

28

PRÁCTICA 6

MANEJO DE APUNTADORES

Los apuntadores son empleados en el direccionamiento de localidades de memoria o registros; para ello es necesario contar con indicadores que expresen la dirección o nombre de dicha localidad y sean capaces de extraer o colocar valores en cada registro seleccionado

FSR. Por sus siglas en ingles (File Select Register). Es el registro en el cual se carga o escribe la dirección de la localidad de memoria a seleccionar

INDF. Es el registro que extrae el dato o valor, el cual puede ser empleado en forma directa o indirecta; es decir, utilizar el dato en el mismo registro INDF ò depositarlo en otro registro para su posterior aplicación

En la Figura 29 se ilustran los tipos de direccionamiento directo e indirecto

Figura 29 Representación del direccionamiento directo e indirecto

29

ACTIVIDADES DE LA PRÁCTICA

1. Comprobar diagrama de flujo en base al programa que ejemplifica la presente práctica de apuntadores.

2. Explicar su funcionamiento.

PROGRAMA LIST P=16F877 INCLUDE "P16F877.INC"

DATO_0 EQU 0X20 DATO_1 EQU 0X20 DATO_2 EQU 0X20 DATO_3 EQU 0X20 DATO_4 EQU 0X20

ORG 0X000 GOTO INICIO

INICIO

MOVLW 0X20 MOVWF FSR MOVLW 0X00 ;DATO_

0 MOVWF INDF INCF FSR MOVLW 0X01 ;DATO_

1 MOVWF INDF INCF FSR MOVLW 0X02 ;DAT0_

2 MOVWF INDF INCF FSR MOVLW 0X03 ;DATO_

3 MOVWF INDF INCF FSR MOVLW 0X04 ;DATO_

4 MOVWF INDF

MOVLW 0X20 MOVWF FSR MOVF INDF,1 ;DATO_0 MOVWF DATO_0 INCF FSR MOVF INDF,1 ;DATO_1 MOVWF DATO_1 INCF FSR MOVF INDF,1 ;DATO_2 MOVWF DATO_2 INCF FSR MOVF INDF,1 ;DATO_3 MOVWF DATO_3 INCF FSR MOVF INDF,1 ;DATO_4 MOVWF DATO_4 NOP NOP END

30

DIAGRAMA A BLOQUES PARA PRÁCTICA DE APUNTADORES

PARTE 1 PARTE 2 PARTE 3

Z Y

CARGAR VALOR 20 A FSR

MOVER INDF A REGISTRO W

MOVER INDF A REGISTRO W

MOVER REGISTRO W A DATO 3

MOVER REGISTRO W A DATO 0

INCREMENTAR FSR

INCREMENTAR FSR

MOVER INDF A REGISTRO W

MOVER INDF A REGISTRO W

MOVER REGISTRO W A DATO 4

MOVER REGISTRO W

A DATO 1

FIN

INCREMENTAR FSR

MOVER INDF A REGISTRO W

MOVER REGISTRO W A DATO 2

INCREMENTAR FSR

Y

31

PRÁCTICA 7

COMPARACIONES ( <, >, = )

Para poder realizar comparaciones es necesario conocer previamente los elementos que interactúan entre si, por ejemplo las banderas de estado, las cuales representan bits indicadores que se actualizan con cada instrucción ejecutada denotando que no todas las instrucciones causan efectos en dichos bits El registro STATUS registra los cambios de estado respecto a las banderas de acarreo entre registros, indica si el resultado de una operación aritmética o lógica es cero, por citar algunos ejemplos; por otro lado, contiene los bits de configuración de los bancos de memoria en forma directa e indirecta (Referencia revisar manual del pic 16f877 para la instrucción subwf, sublw , así como analizar el funcionamiento de las banderas de acarreo (c) y cero (z) del registro status) ACTIVIDADES DE LA PRÁCTICA

1. Realizar diagrama de flujo en base al programa que ejemplifica la presente práctica de comparación >,< e =.

2. Explicar su funcionamiento.

COMPARACIÓN = COMPARACIÓN > COMPARACIÓN < LIST P=16F877

INCLUDE "P16F877.INC"

DATO_1 EQU 0X20 DATO_2 EQU 0X21 SI_ES_IGUAL EQU 0X22 NO_ES_IGUAL EQU 0X23

ORG 0X000

GOTO INICIO INICIO

MOVLW 0X25 MOVWF DATO_1 MOVLW 0X30 MOVWF DATO_2 MOVF DATO_1,0 SUBWF DATO_2,0 BTFSC STATUS,Z GOTO NO

SI MOVLW 0XFF MOVWF NO_ES_IGUAL GOTO FIN

NO MOVLW 0XFF

LIST P=16F877 INCLUDE "P16F877.INC"

DATO_1 EQU 0X20 DATO_2 EQU 0X21 SI_ES_IGUAL EQU 0X22 NO_ES_IGUAL EQU 0X23

ORG 0X000

GOTO INICIO INICIO

MOVLW 0X25 MOVWF DATO_1 MOVLW 0X30 MOVWF DATO_2 MOVF DATO_1,0 SUBWF DATO_2,0 BTFSC STATUS,C GOTO NO

SI MOVLW 0XFF MOVWF NO_ES_IGUAL GOTO FIN

NO MOVLW 0XFF

LIST P=16F877 INCLUDE "P16F877.INC"

DATO_1 EQU 0X20 DATO_2 EQU 0X21 SI_ES_IGUAL EQU 0X22 NO_ES_IGUAL EQU 0X23

ORG 0X000

GOTO INICIO INICIO

MOVLW 0X25 MOVWF DATO_1 MOVLW 0X30 MOVWF DATO_2 MOVF DATO_1,0 SUBWF DATO_2,0 BTFSS STATUS,C GOTO NO

SI MOVLW 0XFF MOVWF NO_ES_IGUAL GOTO FIN

NO MOVLW 0XFF

32

PRÁCTICA 8

CONFIGURACIÓN DE PUERTOS

Para poder interactuar en el sistema microcontrolador-ambiente real es

necesario configurar los pines o bits periféricos, los cuales permiten ingresar o enviar datos como lo son cambios de estado, actualizaciones de valores digitales y analógicos, comunicación entre microcontroladores y a su vez con un CPU por citar algunos ejemplos

Los pines de propósito general I/O (input/Output) permiten revisar y

controlar otros dispositivos, algunos pines pueden ser seleccionados para activar otras funciones adicionales, cabe destacar el hecho que el bit no puede estar activado al mimo tiempo como pin de propósito general y pin de función especial

Para configurar los pines I/O es necesario establecer los pines que serán

denominados como entradas o salidas, el registro TRISX configura tales parámetros, especificando las direcciones de los puertos; para configurar un pin como entrada será necesario cargar o grabar un “1” lógico por cada bit del registro que se desee emplear, a su vez, grabar un “0” para activar el pin como salida. El símbolo “X en el registro TRISX representa el puerto que se haya elegido

El registro PORTX se emplea para leer el estado del puerto, además es

utilizado para colocar un dato o valor en el puerto seleccionado

Nota: Es muy importante conocer las características eléctricas del dispositivo como lo son: corriente y voltaje máximos que soporta cada pin y en conjunto como puerto, debido a que el microcontrolador es un dispositivo de control, y no un dispositivo de potencia

ACTIVIDADES DE LA PRÁCTICA

1. Configurar un puerto completo como entrada y otro puerto completo como salida, de tal forma que el mismo dato que se proporciona al puerto de entrada mediante un dipswitch o push botons sea el mismo que el microcontrolador envié a las salidas, as cuales serán conectadas con leds

2. Realizar diagrama de flujo en base al programa que ejemplifica la presente práctica de configuración de puertos 3. Explicar su funcionamiento.

33

PROGRAMA

LIST P=16F877 INCLUDE "P16F877.INC" ORG 0X000 GOTO INICIO INICIO BSF STATUS,RP0 MOVLW 0XFF MOVWF TRISB CLRF TRISD BCF STATUS,RP0

CICLO MOVF PORTB,W MOVWF PORTD GOTO CICLO END

34

PRÁCTICA 9

ARRANQUE Y PARO DE UN MOTOR DE DC ACTIVIDADES DE LA PRÁCTICA La práctica consiste en realizar las conexiones necesarias e investigar los elementos adecuados para la fase de potencia y con ello lograr el arranque y paro de un motor de 12 V de corriente directa usando como elemento base de control el PIC16F877. La comprensión del alambrado de ésta práctica es vital para la correcta comprensión de las siguientes prácticas, ya que permite elegir los elementos correctos dependiendo de sus características técnicas para ajustarlos al motor empleado y así proteger nuestro dispositivo de control y de acción. Para proceder de una manera adecuada al armado del circuito se sugiere lo siguiente: Obtener los datos de funcionamiento del motor de DC; como voltaje máximo y corriente de arranque, en base a ello seleccionar los dispositivos para la fase de potencia como drivers y/o transistores y elementos de aislamiento de protección como optoacopladores y/o relevadores. La elección de los dispositivos correctos dependerá de las necesidades y características técnicas requeridas. PARA ÉSTA PRÁCTICA ES NECESARIO REALIZAR UN REPORTE CON LOS SIGUIENTES ELEMENTOS:

-Introducción -Marco teórico -Desarrollo -Comentarios -Conclusiones

DIAGRAMA 1: Ver anexo B

35

PROGRAMA LIST P=16F877 INCLUDE "P16F877.INC" ORG 0X000 GOTO INICIO INICIO

CICLO

BSF STATUS,RP0 MOVLW 0XFF MOVWF TRISB CLRF TRISD BCF STATUS,RP0 BTFSS PORTB,0 GOTO ARRANQUE BTFSS PORTB,1 GOTO PARO GOTO CICLO

ARRANQUE

MOVLW 0X01 MOVWF PORTD GOTO CICLO

PARO

MOVLW 0X00 MOVWF PORTD GOTO CICLO END

36

PRÁCTICA 10

INVERSIÓN DE GIRO DE UN MOTOR DE CORRIENTE DIRECTA ACTIVIDADES DE LA PRÁCTICA Para la realización de la presente práctica es necesario comprender el arranque y paro mediante la utilización del pic 16F877 ya que es la base de la inversión de giro. En ésta práctica se requiere investigar qué elementos son adecuados para la fase de potencia, debido a que serán empleados en la práctica para interconectar la fase antes mencionada con la de control; así mismo se deberá conseguir la forma de aislar las 2 fases como método de protección. NOTA: Cada uno de los sentidos a los que gira el motor (horario y antihorario) se consideran como bobinas independientes y se alimentan cada una por separado de tal forma que cuando una esté con voltaje la otra esté aterrizada; esto con el propósito de mantener en buenas condiciones de funcionamiento al motor y evitar que los devanados se quemen. PARA ÉSTA PRÁCTICA ES NECESARIO REALIZAR UN REPORTE CON LOS SIGUIENTES ELEMENTOS:

-Introducción -Marco teórico -Desarrollo -Comentarios -Conclusiones

DIAGRAMA 2: Ver anexo A

37

PROGRAMA LIST P=16F877 INCLUDE "P16F877.INC" ORG 0X000 GOTO INICIO INICIO

BSF STATUS,RP0 MOVLW 0XFF MOVWF TRISB CLRF TRISD BCF STATUS,RP0

CICLO

BTFSS PORTB,0 GOTO IZQUIERDA BTFSS PORTB,1 GOTO DERECHA BTFSS PORTB,2 GOTO PARO GOTO CICLO

IQUIERDA MOVLW 0X01 MOVWF PORTD GOTO CICLO

DERECHA MOVLW 0X02 MOVWF PORTD GOTO CICLO

PARO

MOVLW 0X00 MOVWF PORTD GOTO CICLO END

38

PRÁCTICA 11

SIMULACIÓN DE COMPUERTAS AND, OR, XOR, NOT* (SEÑALES EXTERNAS)

OBJETIVO Simular las compuertas lógicas aplicando a las entradas señales lógicas externas

Realizar la comprobación de la tabla de verdad de las compuertas:

AND, OR, XOR, NOT

Desarrollando los siguientes puntos:

1. Crear un nuevo proyecto 2. Realizar programa 3. Compilar programa 4. Abrir simulador MPLAB SIM 5. Abrir simulador stimulus controller

En el menú principal seleccionar casilla Debugger; elegir la opción Stimulus controller y presionar en nuevo escenario, la Figura 30 ilustra la selección necesaria para abrir el menú stimulus controller

Figura 30. Representación del menú de selección del stimulus controller

39

6. Simular el programa paso a paso además de activar los estímulos a cada uno

de los pines según se requiera. La Figura 31 muestra la ventana del stimulus controller en la cual se selecciona el pin a activar así como la acción que ve a desempeñar el pin elegido

Figura 31 Ventana del stimulus controller

7. Grabar programa en el microcontrolador y ejecutarlo 8. Conclusiones

PROGRAMA LIST P=16F877

INCLUDE "P16F877.INC" DATO EQU 0X20 ORG 0X000

GOTO INICIO

INICIO BSF STATUS,RP0 MOVLW 0XFF MOVWF TRISB CLRF TRISC

40

BCF STATUS,RP0

CICLO

AND

BSFSS PORTB,7 BCF PORTC,7 BSFSC PORTB,6 GOTO AND BCF PORTC,7 GOTO SIGUE BSF PORTC,7

SIGUE

OR

BSFSC PORTB,5 GOTO OR BSFSC PORTB,4 GOTO OR BCF PORTC,6 GOTO SIGUE_2 BSF PORTC,6

SIGUE_2 MOVF PORTB,W IORLW 0X0C MOVWF DATO SUBLW 0X08 BSFSC STATUS,Z BSF PORTC,5 MOVF DATO,W SUBLW 0X04 BSFSS STATUS,Z GOTO XOR BCF PORTC,5 GOTO SIGUE_3

XOR BSF PORTC,5

SIGUE_3

BSFSC PORTB,1 GOTO NOT BSF PORTC,4 GOTO SIGUE_4

NOT BSF PORTC,4

SIGUE_4 GOTO CICLO END

41

PRÁCTICA 12

CONTADOR ASCENDENTE CON UN DISPLAY A 7 SEGMENTOS UTILIZANDO EL APUNTADOR

Display de 7 segmentos. Display ánodo común y cátodo común.

Este tipo de componente se utiliza para la representación de números en muchos dispositivos electrónicos por su simplicidad.

Este elemento se ensambla o arma de manera que se pueda activar cada segmento (diodo LED) por separado logrando de esta manera combinar los elementos y representar todos los números en el display (del 0 al 9). El display de 7 segmentos más común es el de color rojo, por su facilidad de visualización.

Cada elemento del display tiene asignado una letra que identifica su posición en el arreglo del display. Ver el gráfico

Numero Letras correspondientes Código en binario* 0 a,b,c,d,e,f 00111111 1 b,c 00000110 2 a,b,d,e,g 01011011 3 a,b,c,d,g 01001111 4 b,c,f,g 01100110 5 a,c,d,f,g 01101101 6 a,c,d,e,f,g 01111101 7 a,b,c 00000111 8 a,b,c,d,e,f,g 01111111 9 a,b,c,f 00100111

Punto decimal p.d. 10000000

* Nota: Estos datos son para un display de cátodo común, conectado a un puerto de 8bits, tomando en consideración la siguiente igualdad, a=bit0, b=bit1, c=bit2, d=bit3, e=bit4, f=bit5, g=bit6, p.d. =bit7.

42

El display ánodo común tiene todos los ánodos de los diodos LED unidos y conectados a la fuente de alimentación. En este caso para activar cualquier elemento hay que poner el cátodo del elemento a tierra a través de una resistencia para limitar la corriente que pasa por el elemento

El display cátodo común tiene todos los ánodos de los diodos LED unidos y conectados a tierra. Para activar un segmento de estos hay que poner el ánodo del segmento a encender a Vcc (tensión de la fuente) a través de una resistencia para limitar el paso de la corriente

También hay display alfanuméricos que permiten representar tanto letras como números

Para la realización de la presente práctica es necesario analizar y comprender la teoría sobre displays, subrutinas de trabajo, subrutinas de tiempo y manejo de apuntadores; de ello depende la correcta ejecución y aplicación de los contadores.

ACTIVIDADES DE LA PRÁCTICA

Realizar un contador ascendente automático, esto es, debe contar desde el cero (0) hasta el nueve (9) de forma autónoma con solo presionar un botón y debe pausarse al presionar otro botón. La elección del display dependerá de la forma de conexión deseada.

PARA ÉSTA PRÁCTICA ES NECESARIO REALIZAR UN REPORTE CON LOS SIGUIENTES ELEMENTOS:

-Introducción -Marco teórico -Desarrollo -Comentarios -Conclusiones

DIAGRAMA 3: Ver anexo A

43

PROGRAMA

LIST P=16F877 INCLUDE "P16F877.INC" COUNTER EQU 0X2B COUNTERA EQU 0X2C COUNTERB EQU 0X2D COUNTERC EQU 0X2E

ORG 0X000 GOTO INICIO

INICIO BSF STATUS,RP0 MOVLW 0X00 MOVWF TRISD MOVLW 0XFF MOVWF TRISB

;CONFIGURACION DE INTERUPCIONES

MOVLW 0XD0 MOVWF INTCON

BCF STATUS,RP0 MOVLW 0X00 MOVWF PORTD MOVWF PORTB MOVLW 0X20 MOVWF FSR MOVLW B'00111111' MOVWF INDF INCF FSR MOVLW B'00000110' MOVWF INDF INCF FSR MOVLW B'01011011' MOVWF INDF INCF FSR MOVLW B'01001111' MOVWF INDF INCF FSR MOVLW B'01100110' MOVWF INDF INCF FSR MOVLW B'01101101' MOVWF INDF INCF FSR MOVLW B'01111101' MOVWF INDF INCF FSR MOVLW B'00000111' MOVWF INDF INCF FSR

44

MOVLW B'01111111' MOVWF INDF INCF FSR MOVLW B'00100111' MOVWF INDF MOVLW 0X20 MOVWF FSR MOVFW INDF MOVWF PORTD

PREGUNTA BTFSS PORTB,1 GOTO INI GOTO PREGUNTA

INI INCF FSR MOVFW FSR SUBLW 0X2A BTFSC STATUS,Z GOTO CERO MOVFW INDF MOVWF PORTD CALL RET BTFSS PORTB,0 GOTO INI GOTO PREGUNTA

CERO MOVLW 0X20 MOVWF FSR MOVFW INDF MOVWF PORTD GOTO INI

RET ;PIC TIME DELAY = 2.0000004 S WITH OSC = 20.000000 MHZ MOVLW D'51' MOVWF COUNTERC MOVLW D'237' MOVWF COUNTERB MOVLW D'173' MOVWF COUNTERA

LOOP DECFSZ COUNTERA,1 GOTO LOOP DECFSZ COUNTERB,1 GOTO LOOP DECFSZ COUNTERC,1 GOTO LOOP RETURN END

45

PRÁCTICA 13 CORRIMIENTO DE BITS

El corrimiento de bits se refiere al movimiento o transferencia del valor lógico que posee un bit de registro, desplazándolo una casilla hacia la izquierda o derecha, agregando ceros en los espacios que anteriormente habían ocupado dichos bits. El corrimiento e bits es empleado para activar valores y dispositivos que requieran de una secuencia continua aplicada a sus terminales

A continuación se ejemplifica el corrimiento de bits para el número binario mostrado

Numero binario:

1 1 0 0 1 0 1 0

Corrimiento de bits hacia la derecha con un solo desplazamiento

0 1 1 0 0 1 0 1

Valor agregado después del desplazamiento

DESCRIPCIÓN DE LA PRÁCTICA

Conectar un led a cada una de las salidas de un puerto completo con la finalidad de hacer encender uno a la vez, y mediante el uso de las instrucciones de rotar, conseguir que la luz comience en el bit0 del puerto y termine el bit7 y vuelva al inicio de forma autónoma

DIAGRAMA 4: Ver anexo

A

PROGRAMA

LIST P=16F877 INCLUDE "P16F877.INC"

COUNTERA EQU 0X20

46

COUNTERB EQU 0X21 COUNTERC EQU 0X22

ORG 0X000 GOTO INICIO

INICIO

47

BSF STATUS,RP0 MOVLW 0XFF MOVWF TRISB MOVLW 0X00 MOVWF TRISD BCF STATUS,RP0

MOVLW 0X01 MOVWF

PORTD CICLO

BTFSC PORTB,0 GOTO CICLO

INCREMENTA

RLF PORTD CALL RETARDO BTFSC PORTB,1 GOTO INCREMENTA GOTO CICLO

RETARDO MOVLW D'26' MOVWF COUNTERC MOVLW D'119' MOVWF COUNTERB MOVLW D'85' MOVWF COUNTERA

LOOP DECFSZ COUNTERA,1 GOTO LOOP DECFSZ COUNTERB,1 GOTO LOOP DECFSZ COUNTERC,1 GOTO LOOP RETURN

END

48

PRÁCTICA 14 SEMÁFORO

DESCRIPCIÓN DE LA PRÁCTICA

El objetivo de la práctica radica en la comprensión y análisis de los retardos y envío de señales por medio del microcontrolador.

La lógica de señales visuales empleada en los semáforos es muy ilustrativa y permite cumplir el objetivo adecuadamente. El algoritmo es el siguiente:

-enciende luz verde -retardo -comienza a parpadear luz verde (5 a 8 parpadeos) -retardo -pasa a luz ambar -retardo -pasa a luz roja -retardo -pasa a luz verde

NOTA: Los tiempos (retardos) deberán ser adecuados para que la visualización sea efectiva.

PARA ÉSTA PRÁCTICA ES NECESARIO REALIZAR UN REPORTE CON LOS SIGUIENTES ELEMENTOS:

-Introducción -Marco teórico -Desarrollo -Comentarios -Conclusiones

PROGRAMA

LIST P=16F877 INCLUDE "P16F877.INC"

CounterA EQU 0X2

CounterB EQU 0X21 CounterC

DATO

EQU

0X20

0X22

ORG 0X000 GOTO INICIO

49

INICIO

50

BSF STATUS,RP0 MOVLW 0X00 MOVWF TRISB BCF STATUS,RP0

CICLO

MOVLW 0X01 MOVWF PORTB CALL RET_1 CALL RET_1 CALL RET_1 CALL RET_1 CALL RET_1 CALL RET_1 BCF PORTB,0 CALL RET_1 BSF PORTB,0 BCF PORTB,0 CALL RET_1 BSF PORTB,0 BCF PORTB,0 CALL RET_1 BSF PORTB,0 BCF PORTB,0 CALL RET_1 BSF PORTB,0 BCF PORTB,0 CALL RET_1 BSF PORTB,0 BCF PORTB,0 CALL RET_1 MOVLW 0X02 MOVWF PORTB CALL RET_1 CALL RET_1 MOVLW 0X04 MOVWF PORTB CALL RET_1 CALL RET_1 CALL RET_1 CALL RET_1 CALL RET_1 CALL RET_1 CALL RET_1

GOTO CICLO

RET_1

MOVLW D'26' MOVWF COUNTERC MOVLW D'119'

51

MOVWF

COUNTERB MOVLW

D'85' MOVWF

COUNTERA

52

LOOP DECFSZ COUNTERA,1

GOTO LOOP DECFSZ COUNTERB,1 GOTO LOOP DECFSZ COUNTERC,1 GOTO LOOP RETURN

END

53

MINIPROYECTOS PRIMERA SECCIÓN

PROYECTO 1 OPERACIONES ARITMÉTICAS

Realizar las siguientes operaciones en el microcontrolador:

a) 3E + 14 = b) 7F - 4A = c) 33 + F2 – 45 = d) E3 - 27 – 19 = e) 58 + D4 – FF + 16 - 43 =

PROYECTO 2 ACOMODO DE DATOS MAYOR A MENOR

Realizar un programa de forma tal que diez números dados al azar se acomoden en orden decreciente

PROYECTOS PRIMERA SECCIÓN

PROYECTO 3 ARRANQUE Y PARO DE UN MOTOR DE AC

La práctica consiste en realizar las conexiones necesarias e investigar los elementos adecuados para la fase de potencia y con ello lograr el arranque y

paro de un motor de 120 V de corriente alterna usando como elemento base de control el PIC16F877.

PROYECTO 4 CONTROL DE MOTOR A PASOS

La práctica consiste en realizar las conexiones necesarias e investigar los elementos adecuados para la fase de potencia y con ello lograr el arranque, paro e inversión de giro de un motor a pasos usando como elemento base de control el PIC16F877.

54

PROYECTO 5

CONTADOR ASCENDENTE Y DESCENDENTE CON UN DISPLAY DE 7 SEGMENTOS UTILIZANDO EL APUNTADOR

Por medio de los apuntadores realizar una tabla para desplegar los datos de cada uno de los números (del 0 al 9) en un display de 7 segmentos, de tal modo que mediante dos botones se pueda ir incrementando o decrementando el numero que aparezca en el display. Nota del 9 debe brincar al 0 y viceversa

PROYECTO 6 CONTROL DE UN MOTOR DE DC CON MENÚ EN DISPLAY

Basandose en el proyecto 5 para utilizar el display como un selector de menú, se tiene que agregar un terecer boton de enter de tal forma que dependiendo del número seleccionado sea el número de programa al que se accese:

programa1 1. Izquierda programa1 2. Derecha programa1 3. Izquierda-paro-derecha programa1 4. Cinco segundos derecha- dos segundos paro- tres

segundos izquierda programa1 5. Un segundo encendido izquierda

Un segundo apagado Dos segundos encendido derecha Un segundo apagado

Tres segundos encendido izquierda Un segundo apagado Cuatro segundos encendido derecha Un segundo apagado Cinco segundos encendido izquierda

55

PROYECTO 7 SEMÁFORO DE CRUCERO CON DISPLAY

Basándose en la practica del semáforo (practica 14) se debe representar un semáforo de crucero (los dos semáforos de una intersección) y mediante un display de 7 segmentos mostrar el contador de tiempo para el cruce del peatón

Nota. Un display por cada semáforo

56

ANEXO A

PRÁCTICA 9 DIAGRAMA A BLOQUES DE

ARRANQUE Y PARO DE UN MOTOR DE DC

M

DIAGRAMA 1 BLOQUES PARA ARRANQUE Y PARO

PRÁCTICA 10 DIAGRAMA A BLOQUES DE

INVERSIÓN DE GIRO DE UN MOTOR DE DC

M

DIAGRAMA 2 BLOQUES PARA INVERSIÓN DE GIRO

3

PRÁCTICA 12

DIAGRAMA DE CONEXIÓN PARA PRÁCTICA DE CONTADOR ASCENDENTE

DIAGRAMA 3. CONEXIÓN PARA CONTADOR

3

ASCENDENTE

DIAGRAMA 4. CONEXIÓN PARA SEGUIDOR DE DATOS 4

PRÁCTICA 13

DIAGRAMA DE CONEXIÓN PARA SEGUIDOR DE DATOS