guia 1 microcontroladores grado 11

20
Sistema de Gestión de la Calidad Servicio Nacional de Aprendizaje SENA Regional CUNDINAMARCA Centro de Formación: Centro de Desarrollo Agroempresarial Chía Programa de formación: TECNICO EN INSTALACIONES ELECTRICAS EN BAJA TENSION Guía 1 (Microcontroladores Pic 16F84A) Fecha: JULIO de 2011 Versión 1.0 Página 1 de 20 1 1. IDENTIFICACIÓN DE LA GUÍA DE APRENDIZAJE Nombre del Proyecto: MEJORAMIENTO DE INSTALACIONES Y MAQUINARIA ELÉCTRICA DEL COLEGIO APLICANDO LA NORMATIVIDAD VIGENTE. (Duración en horas) Número de horas 3960 Fase del Proyecto: PLANEACIÓN (Duración en horas) 264 Código de la Guía 290201083 Nombre de la Actividad: Mejorar el funcionamiento de máquinas y procesos buscando su eficiencia y productividad (Lógica cableada y programable) Equipo Ejecutor MAURICIO DIAZ GARCIA Resultados de Aprendizaje 29020108301 Esquematizar e implementar a su alcance el problema planteado. 29020108302 Recopilar la información de acuerdo a la solución adoptada del automatismo requerido como análisis de componentes: mecánicos, eléctricos, de control, proveedores y costos 29020108303 Presentar alternativas de solución que respondan en su totalidad con cada una de las funciones del automatismo 29020108304 Valorar alternativas económicas del estudio preliminar de acuerdo a la solución adoptada 29020108305 Definir detalladamente la estructura del automatismo de acuerdo a la metodología establecida 29020108306 Seleccionar los sensores, actuadores y controladores requeridos para la solución del problema. 29020108307 Aplicar normas de seguridad vigentes para la alternativa de solución Código del resultado + consecutivo1083-01

Upload: mauricio-diaz-garcia

Post on 09-Jul-2015

542 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Guia 1 microcontroladores grado 11

Sistema de

Gestión de la

Calidad

Servicio Nacional de Aprendizaje – SENA

Regional CUNDINAMARCA

Centro de Formación: Centro de Desarrollo Agroempresarial Chía

Programa de formación: TECNICO EN INSTALACIONES ELECTRICAS EN BAJA TENSION

Guía 1 (Microcontroladores Pic 16F84A)

Fecha:

JULIO de 2011

Versión 1.0

Página 1 de 20

1

1. IDENTIFICACIÓN DE LA GUÍA DE APRENDIZAJE

Nombre del

Proyecto: MEJORAMIENTO

DE INSTALACIONES

Y MAQUINARIA

ELÉCTRICA DEL

COLEGIO

APLICANDO LA

NORMATIVIDAD

VIGENTE.

(Duración en horas) Número de horas

3960

Fase del

Proyecto:

PLANEACIÓN

(Duración en horas) 264

Código de la

Guía 290201083

Nombre de la

Actividad:

Mejorar el funcionamiento de máquinas y procesos

buscando su eficiencia y productividad

(Lógica cableada y programable)

Equipo Ejecutor

MAURICIO DIAZ GARCIA

Resultados de Aprendizaje

29020108301 Esquematizar e implementar a su alcance el problema planteado.

29020108302

Recopilar la información de acuerdo a la solución adoptada del

automatismo requerido como análisis de componentes: mecánicos,

eléctricos, de control, proveedores y costos

29020108303 Presentar alternativas de solución que respondan en su totalidad con

cada una de las funciones del automatismo

29020108304 Valorar alternativas económicas del estudio preliminar de acuerdo a la

solución adoptada

29020108305 Definir detalladamente la estructura del automatismo de acuerdo a la

metodología establecida

29020108306 Seleccionar los sensores, actuadores y controladores requeridos para la

solución del problema.

29020108307 Aplicar normas de seguridad vigentes para la alternativa de solución

Código del resultado + consecutivo1083-01

Page 2: Guia 1 microcontroladores grado 11

Sistema de

Gestión de la

Calidad

Servicio Nacional de Aprendizaje – SENA

Regional CUNDINAMARCA

Centro de Formación: Centro de Desarrollo Agroempresarial Chía

Programa de formación: TECNICO EN INSTALACIONES ELECTRICAS EN BAJA TENSION

Guía 1 (Microcontroladores Pic 16F84A)

Fecha:

JULIO de 2011

Versión 1.0

Página 2 de 20

2

2. INTRODUCCIÓN

La guía de aprendizaje contiene la informaciónnecesaria para programar un

Microcontrolador, las herramientas requeridas de hardware y software. Y la implementación

de sistemas de control basado en microcontroladores. Se abordan los siguientes temas:

Descripción de un Microcontrolador.

Manejo del software Mplab para generar código Asembler y lenguaje de máquina.

El ejercicio propuesto genera destrezas en la programación de procesos de control,

donde los pequeños microswich pueden ser reemplazados por diversos tipos de

sensores, y las salidas por sistemas de potencia. De esta forma tenemos un Control

Lógico Programable (PLC) construido y programado con bajo presupuesto, y alto

contenido didáctico.

3.CONOCIMIENTOS PREVIOS

c-108301 Normatividad técnica y legal

c-108302 Interpretación de planos y catálogos

c-108303 Conocimientos de inglés

c-108304 Usos de medios de información, internet

c-108305 Manejo de manuales técnicos

c-108306 Sistemas informáticos

c-108307 Fundamentos de mecánica, electrotecnia

c-108308 Neumática, hidráulica, electrónica y sensores

c-108309 Equipos y programas para control de procesos

c-108310 Principios de sistemas automáticos de control

c-108311 Elaboración de planos.

c-108312 Controles lógicos programables.

c-108313 Normalización: simbología estandarizada

c-108314 Normas de seguridad industrial.

Page 3: Guia 1 microcontroladores grado 11

Sistema de

Gestión de la

Calidad

Servicio Nacional de Aprendizaje – SENA

Regional CUNDINAMARCA

Centro de Formación: Centro de Desarrollo Agroempresarial Chía

Programa de formación: TECNICO EN INSTALACIONES ELECTRICAS EN BAJA TENSION

Guía 1 (Microcontroladores Pic 16F84A)

Fecha:

JULIO de 2011

Versión 1.0

Página 3 de 20

3

4. MATERIAL DE CONSULTA

Estructura curricular cód.: 832223

Internet:www.cdachiaindustrial.blogspot.com http://micropic.galeon.com http://www.ithinkweb.com.mx/capacita/algoritmo.html http://www.ate.uniovi.es/fernando/Doc2006/Sed_06/Presentaciones/Programacion%20en%20ensamblador.pdf

Tutorial Microcontrolador PIC.

Referencia PIC 16f84, por ser de uso más común entre los estudiantes. El primer paso importante es ver el diagrama de pines del PIC16F84, en el cual se observa cómo están distribuidos sus pines. Este circuito integrado cuenta con 2 puertos configurables como entradas o salidas según sea el caso y consta de 18 pines los cuales se encuentran asignados de la siguiente manera:

Pin 1: -----------RA2 Pin 2: -----------RA3 Pin 3: -----------RA4/TOCKI Pin 4:------------Reset Pin 5:------------Tierra (GND) Pin 6:------------RB0/INT Pin 7:------------RB1 Pin 8:-------------RB2 Pin 9:------------RB3 Pin 10:----------RB4 Pin 11:----------RB5 Pin 12:----------RB6 Pin 13:----------RB7 Pin 14:----------Vcc Pin 15:----------Osc2 Pin 16:----------Osc1 Pin 17:----------RA0 Pin18:-----------RA1

El puerto A está denotado por el color Azul oscuro, el cual tiene sólo cinco pines que

puedes configurar como entrada o salida. La pata 3, o sea, RA4/TOCKI puede ser configurado a su vez como entrada/salida o como temporizador/contador. Cuando es salida se comporta como

Page 4: Guia 1 microcontroladores grado 11

Sistema de

Gestión de la

Calidad

Servicio Nacional de Aprendizaje – SENA

Regional CUNDINAMARCA

Centro de Formación: Centro de Desarrollo Agroempresarial Chía

Programa de formación: TECNICO EN INSTALACIONES ELECTRICAS EN BAJA TENSION

Guía 1 (Microcontroladores Pic 16F84A)

Fecha:

JULIO de 2011

Versión 1.0

Página 4 de 20

4

colector abierto, por lo tanto debemos poner una resistencia Pull-up a Vcc de 1 Kohm. Cuando es configurada como entrada, funciona como disparador Schmitt Trigger por lo que puede reconocer señales con un poco de distorsión. El puerto B está denotado por el color anaranjado, y tiene ocho pines que igualmente se pueden configurar como entrada o salida. Los pines 15 y 16 son únicamente para el oscilador externo el cual estudiaremos con más detalle más adelante. El pin 4, o sea, el Reset se debe conectar con una resistencia de 10 Kohm a Vcc para que el Pic funcione, si lo queremos resetear entonces pondremos un micropulsador con una resistencia de 100 Ohm a tierra. La máxima capacidad de corriente para los puertos se muestra en la siguiente tabla:

PUERTO A PUERTO B

MODO SUMIDERO 80 mA 150 mA

MODO FUENTE 50 mA 100 mA

Por último tenemos los pines 14 y 5 que son la alimentación la cual no debe sobrepasar los 5 Voltios.

Oscilador Externo:

Es necesario para que nuestro PIC pueda funcionar, puede ser conectado de cuatro maneras diferentes. En la siguiente tabla encontraras los diagramas necesarios para su conexión y una breve descripción de cada uno.

XT

Oscilador compuesto por un cristal y dos condensadores.

Page 5: Guia 1 microcontroladores grado 11

Sistema de

Gestión de la

Calidad

Servicio Nacional de Aprendizaje – SENA

Regional CUNDINAMARCA

Centro de Formación: Centro de Desarrollo Agroempresarial Chía

Programa de formación: TECNICO EN INSTALACIONES ELECTRICAS EN BAJA TENSION

Guía 1 (Microcontroladores Pic 16F84A)

Fecha:

JULIO de 2011

Versión 1.0

Página 5 de 20

5

RC

Oscilador compuesto por una resistencia y un condensador.

HS Oscilador compuesto por un cristal de

alta velocidad.

LP

Oscilador compuesto por un cristal de baja frecuencia y bajo consumo de

potencia.

El siguiente paso importante para tener claro como debemos empezar a programar es conocer la tabla de registros. Esta tabla está dividida en dos partes llamadas BANCO 0 y Banco 1. Nos debemos interesar momentáneamente en: STATUS, PORTA, PORTB, TRISA y TRISB.

Para que nuestro PIC pueda trabajar debemos configurar sus puertos como entrada o como salida según sea el caso, si le asignamos un CERO(0) a un pin éste será SALIDA y si asignamos un UNO (1) éste será ENTRADA.

Esta asignación de pines se hace programando los registros TRISA y TRIS B.

TRISA es el registro donde se almacenan los bits que asignan un pin como entrada o salida del PUERTO A. Recordemos que el puerto A sólo tiene 5 pines, por lo tanto un ejemplo de esto sería:

Si TRISA (puerto A) es igual a 19 (11001) entonces esto se leería,

TRISA ASIGNACIÓN ESTADO

RA0 1 ENTRADA

RA1 0 SALIDA

RA2 0 SALIDA

RA3 1 ENTRADA

RA4 1 ENTRADA

Page 6: Guia 1 microcontroladores grado 11

Sistema de

Gestión de la

Calidad

Servicio Nacional de Aprendizaje – SENA

Regional CUNDINAMARCA

Centro de Formación: Centro de Desarrollo Agroempresarial Chía

Programa de formación: TECNICO EN INSTALACIONES ELECTRICAS EN BAJA TENSION

Guía 1 (Microcontroladores Pic 16F84A)

Fecha:

JULIO de 2011

Versión 1.0

Página 6 de 20

6

El bit menos significativo se asigna desde RA0.

Si TRISB (puerto B) es igual a 32 (00110010), entonces esto se leería,

TRISA ASIGNACIÓN ESTADO

RA0 0 SALIDA

RA1 1 ENTRADA

RA2 0 SALIDA

RA3 0 SALIDA

RA4 1 ENTRADA

RA5 1 ENTRADA

RA6 0 SALIDA

RA7 0 SALIDA

NOTA: Todos los valores mencionados y que se mencionarán, están expresados en valores

hexagesimales.

En la siguiente parte, comenzaremos a programar el PIC y sabremos como ingresar estos valores en el TRIS A o TRIS B según sea el caso.

Tutorial Microcontrolador PIC.

Segunda parte.

Para comenzar a trabajar con el programa MPLAB debemos simplemente abrir un nuevo archivo en la ventana File opción New como muestra la imagen 1.

Nota: El MPlab es un programa, no es inteligente y no sabe que hacer por si solo. Es

mas, les debemos dar las ordenes una a una y muy bien explicadas para que este las entienda. Estas ordenes estarán acompañadas por parámetros que le dirán a la máquina como se realizará esa tarea. De otra manera, esta no se ejecutará.

Page 7: Guia 1 microcontroladores grado 11

Sistema de

Gestión de la

Calidad

Servicio Nacional de Aprendizaje – SENA

Regional CUNDINAMARCA

Centro de Formación: Centro de Desarrollo Agroempresarial Chía

Programa de formación: TECNICO EN INSTALACIONES ELECTRICAS EN BAJA TENSION

Guía 1 (Microcontroladores Pic 16F84A)

Fecha:

JULIO de 2011

Versión 1.0

Página 7 de 20

7

Fig. 1. Iniciando un nuevo programa.

A continuación analizaremos las siguientes líneas: list p=16f84

#include p16f84.inc

port_a equ 5

port_b equ 6

trisb equ 86

trisa equ 85

estado equ 3

valor1 equ 0C

valor2 equ 0D

clrf estado

clrf port_a

bsf estado,5 ;selección del banco 1

movlw 0x19

movwf port_a

clrf port_b

movlw 0x32

movwf port_b

bcf estado,5 ;selecciona el banco 0

clrf port_a

clrf port_b

Antes de analizar estas líneas debemos tener en claro los siguiente: para mantener un orden, se presionar la tecla TAB entre la instrucción y el parametro

El símbolo de Punto y Coma " ; " indica el comienzo de un comentario, sirve para ubicarse

Page 8: Guia 1 microcontroladores grado 11

Sistema de

Gestión de la

Calidad

Servicio Nacional de Aprendizaje – SENA

Regional CUNDINAMARCA

Centro de Formación: Centro de Desarrollo Agroempresarial Chía

Programa de formación: TECNICO EN INSTALACIONES ELECTRICAS EN BAJA TENSION

Guía 1 (Microcontroladores Pic 16F84A)

Fecha:

JULIO de 2011

Versión 1.0

Página 8 de 20

8

mejor en el avance del programa y luego encontrar mas rápidamente una línea o bloque determinado. Todo lo que siga a un " ; " no generará código hexagesimal en nuestro proyecto. En pocas palabras, lo que siga al " ; " no influye en el programa.

1. Primero debemos especificar con que microcontrolador estamos trabajando, en las dos primeras líneas especificamos que vamos a trabajar con el PIC 16F84.

2. Luego definimos la posición en memoria de nuestros registros, el mapa de memoria lo presento en la figura 2:

Figura 2: Mapa de memoria del PIC 16f84.

Para comenzar destacaremos los registros:

PORTA posición 05h

PORTB posición 06h

TRISA posición 85h

TRISB posición 86h

STATUS posición 03h

El registro STATUS que en este caso le hemos llamado "estado" se compone de la siguiente forma:

7 6 5 4 3 2 1 0

IRP RP1 RP0 TO PD Z DC C

Si en la casilla 5 (RP0) del registro STATUS hay un CERO entonces estamos en el BANCO 0. Si en la casilla 5 (RP0) del registro STATUS hay un UNO entonces estamos en el BANCO 1. Desde la tercera a la séptima línea definimos los nombres de nuestros registros, en el caso del

Page 9: Guia 1 microcontroladores grado 11

Sistema de

Gestión de la

Calidad

Servicio Nacional de Aprendizaje – SENA

Regional CUNDINAMARCA

Centro de Formación: Centro de Desarrollo Agroempresarial Chía

Programa de formación: TECNICO EN INSTALACIONES ELECTRICAS EN BAJA TENSION

Guía 1 (Microcontroladores Pic 16F84A)

Fecha:

JULIO de 2011

Versión 1.0

Página 9 de 20

9

Puerto A lo llamamos port_a - es importante que siempre que nos queramos referir al Puerto A lo

hagamos en minúsculas, ya que aquí lo definimos así (PORT_A port_a) si en un principio se define con mayúsculas, siempre nos tendremos que referir a este con mayúsculas -

Otro ejemplo, si en la tercera línea en lugar de "port_a equ 5" colocamos "hola equ 5" cada vez que queramos referirnos al Puerto A debemos hacerlo como "hola".

En la octava y novena línea, definimos nuestro registros personales, los que vamos a ocupar en nuetro programa, según el mapa de memoria este comienza en la posición 0Ch.

NOTA: Recuerden que todos los valores mencionados y que se mencionarán, están expresados

en valores hexagesimales.

El siguiente paso es definir los pines de entrada y salida, recordemos el último bloque de nuestro programa:

clrf estado ; limpiar el registro estado clrf port_a ; limpiar el puerto a bsf estado,5 ; selección del banco 1

Nota: La instrucción BSF (Bit Set f) carga un 1 en el registro (en este caso el registro estado) en el

bit (en este caso el 5), como vimos anteriormente el registro estado al tener un 1 en el 5to bit, entonces estamos trabajando en el banco 1, esto para poder definir los pines de entrada o salida del micro. movlw 0x19 ;cargo un 11001 en el acumulador movwf port_a ; muevo el contenido del acumulador ;al puerto a, defino los pines 0, 1 y 4 ;como entrada y 2 y 3 como salida

Nota: El método para definir los pines del puerto b es exactamente el mismo clrf port_b ;limpiar el puerto b movlw 0x32 ;cargo un 00110010 al acumulador movwf port_b ;defino los pines 1, 4 y 5 como entrada y ;los 0, 2, 3, 6 y 7 como salida bcf estado,5 ;selecciona el banco 0 clrf port_a ; limpiar el puerto a clrf port_b ;limpiar el puerto b

En la siguiente parte, haremos un pequeño programa demostrativo y veremos cómo detectar errores y simularlo.

Page 10: Guia 1 microcontroladores grado 11

Sistema de

Gestión de la

Calidad

Servicio Nacional de Aprendizaje – SENA

Regional CUNDINAMARCA

Centro de Formación: Centro de Desarrollo Agroempresarial Chía

Programa de formación: TECNICO EN INSTALACIONES ELECTRICAS EN BAJA TENSION

Guía 1 (Microcontroladores Pic 16F84A)

Fecha:

JULIO de 2011

Versión 1.0

Página 10 de 20

10

Tutorial Microcontrolador PIC.

Tercera parte.

En la parte anterior vimos como inicializar un PIC, ahora, usando esa información haremos un pequeño programa el cual solo encenderá un LED según el interruptor que se presione.

Lo primero es visualizar lo que queremos, (ordenar nuestro pines de entrada y salida por ejemplo) y según eso empezar a trabajar.

Figura 3: Circuito a implementar.

Según el circuito anterior, vemos que el puerto A lo usaremos como entrada y el puerto B como salida, a los cuales hemos conectado LED'S para poder ver los resultados.

El puerto A está conectado directamente a la alimentación con lo cual sabemos que normalmente tiene una entrada de +5 V ( 1 lógico) y al activarse el interruptor tendremos un 0 lógico.

Nota: Es muy importante que todos los pines de entrada queden bien definidos si están en un nivel alto o bajo por que de lo contrario el PIC entrará en un estado de incertidumbre y no trabajará de manera correcta. Los pines de salida, no es necesario que se conecten si no los vamos a usar.

Page 11: Guia 1 microcontroladores grado 11

Sistema de

Gestión de la

Calidad

Servicio Nacional de Aprendizaje – SENA

Regional CUNDINAMARCA

Centro de Formación: Centro de Desarrollo Agroempresarial Chía

Programa de formación: TECNICO EN INSTALACIONES ELECTRICAS EN BAJA TENSION

Guía 1 (Microcontroladores Pic 16F84A)

Fecha:

JULIO de 2011

Versión 1.0

Página 11 de 20

11

Comenzando con el programa.

Como vimos anteriormente, para abrir una nueva ventana de programación pinchamos en la ventana FILE y le damos a la opción NEW, luego debemos inicializar nuestro PIC, en este caso será:

; **************************************** ; * Ejemplo tutorial PIC * ; * Este programa enciende un led dependiendo * ; * de que interruptor sea activado * ; **************************************** list p=16f84 #include p16f84.inc

port_a equ 5 port_b equ 6 trisb equ 86 trisa equ 85 retard equ 11 ;RETARDO estado equ 3

clrf estado clrf port_a bsf estado,5 ;selección del banco 1 movlw 0x1f movwf port_a ;define RA0 como entrada clrf port_b movlw 0x00 movwf port_b ;define puerto B como salida bcf estado,5 clrf port_a clrf port_b

Luego podemos hacer que vaya preguntando a cada pin de entrada, recordemos que según nuestro circuito los pines están normalmente en un nivel alto, y en nuestro caso si este esta en un nivel alto hacemos que testee el siguiente, de lo contrario lo mandamos a un subrutina donde encendemos el LED correspondiente.

Page 12: Guia 1 microcontroladores grado 11

Sistema de

Gestión de la

Calidad

Servicio Nacional de Aprendizaje – SENA

Regional CUNDINAMARCA

Centro de Formación: Centro de Desarrollo Agroempresarial Chía

Programa de formación: TECNICO EN INSTALACIONES ELECTRICAS EN BAJA TENSION

Guía 1 (Microcontroladores Pic 16F84A)

Fecha:

JULIO de 2011

Versión 1.0

Página 12 de 20

12

Para esto usamos la instrucción btfss (Bit Test F, Skip if Set), es decir, testea el bit f y salta (skip) si esta en un nivel alto (set), el salto se refiere a que la siguiente instrucción no la considera y salta hasta la subsiguiente.

Al empezar un programa, marcamos el inicio de un bloque, en este caso lo llamaremos "inicio".

inicio btfss port_a,0 ;si el bit 0 del puerto a esta en nivel alto se salta una instrucción call enci0 call retardo btfss port_a,1 ;si el bit 1 del puerto a esta en nivel alto se salta una instrucción call enci1 call retardo btfss port_a,2 ;si el bit 2 del puerto a esta en nivel alto se salta una instrucción call enci2 call retardo btfss port_a,3 ;si el bit 3 del puerto a esta en nivel alto se salta una instrucción call enci3 call retardo btfss port_a,4 ;si el bit 4 del puerto a esta en nivel alto se salta una instrucción call enci4 call retardo goto inicio

En la primera línea, como dice el comentario adjunto, testea el bit 0 del puerto a, si este esta en un nivel alto entonces el programa se salta una instrucción llegando a la instrucción call (llamar) la cual llama a una subrrutina llamada retardo, de lo contrario, si está en un nivel bajo el programa considera la siguiente instrucción y ejecuta la instrucción call enci0, en la cual se activa el pin 0 del puerto b que es el puerto se salida. El resto del programa:

enci0 movlw 0x00 movwf port_b call retar2 movlw B'01' movwf port_b return enci1 movlw 0x00 movwf port_b call retar2 movlw B'10' movwf port_b return enci2 movlw 0x00

Page 13: Guia 1 microcontroladores grado 11

Sistema de

Gestión de la

Calidad

Servicio Nacional de Aprendizaje – SENA

Regional CUNDINAMARCA

Centro de Formación: Centro de Desarrollo Agroempresarial Chía

Programa de formación: TECNICO EN INSTALACIONES ELECTRICAS EN BAJA TENSION

Guía 1 (Microcontroladores Pic 16F84A)

Fecha:

JULIO de 2011

Versión 1.0

Página 13 de 20

13

movwf port_b call retar2 movlw B'100' movwf port_b return enci3 movlw 0x00 movwf port_b call retar2 movlw B'1000' movwf port_b return enci4 movlw 0x00 movwf port_b call retar2 movlw B'10000' movwf port_b return

retardo movlw 0x96 movwf retard reta3 decfsz retard,1 goto reta3 return end

En la primera línea lo que hacemos es cargar un cero en el acumulador: movlw 0x00 (MOVe Literal to W) y luego la información que tiene el acumulador (W) la movemos la puerto b: movwf port_b (MOVe W to F), con esto nos aseguramos que todos los LED's del puerto b están apagados.

En la tercera línea llamamos un retardo, lo cual siempre es bueno hacer para evitar que el pic colapse, este retardo esta casi al final del programa y el mecanismo de trabajo es muy parecido al anterior:

1. Mover el literal 96 (Hexadecimal) en el acumulador, es cargar un 96 en el acumulador. 2. Mover el contenido del acumulador al registro retard, el cual fue definido al comienzo de

programa y ubicado en la posición 11 en la memoria del pic, ahora el registro retard tiene cargado un 96.

3. Decrementar en una unidad el registro retard y el valor resultante se guarda en el mismo registro y cuando el valor de este sea cero, saltar una línea en el programa, con lo cual caerá en la instrucción return con lo cual vuelve a la posición desde donde se llamo a la subrutina. decfsz f,d (DECrement F, Skip if Zero) (decrementa el registro indicado y salta si es cero) si el valor de "d" es cero entonces el resultado se guarda en el acumulador, si este valor en cambio es uno entonces el valor se almacena en el mismo registro.

Page 14: Guia 1 microcontroladores grado 11

Sistema de

Gestión de la

Calidad

Servicio Nacional de Aprendizaje – SENA

Regional CUNDINAMARCA

Centro de Formación: Centro de Desarrollo Agroempresarial Chía

Programa de formación: TECNICO EN INSTALACIONES ELECTRICAS EN BAJA TENSION

Guía 1 (Microcontroladores Pic 16F84A)

Fecha:

JULIO de 2011

Versión 1.0

Página 14 de 20

14

4. Luego va al bloque de nombre "reta 3" con lo cual se volverá a decrementar el registro, esto lo hará durante 96 veces hexadecimales, es decir, 150 veces.

Al volver a la 4ta línea de este bloque movlw B'01' hacemos algo muy parecido al paso anterior, sólo que ahora cargo un 1 binario en el acumulador y luego movemos esta información al puerto b, con lo cual tendremos en la salida del puerto b un 00001 considerando que se cuenta desde RB4 hasta RB0 por lo tanto se enciende el LED correspondiente al pin 0 del puerto b.

De esto deducimos que si queremos encender por ejemplo el pin 3 del puerto b, debemos cargar el acumulador con un B'1000' para luego pasar esta información al puerto b.

Otra alternativa seria: movlw 0x08 ya que 08h = 1000b.

Finalmente debemos guardar este programa, para esto pinchamos en la opcion File y luego en Save As y elegimos el directorio y un nombre, en este caso le pondremos ejemplo.asm

Figura 4

En la siguiente parte veremos como compilar este programa y detectar los errores de programación.

Page 15: Guia 1 microcontroladores grado 11

Sistema de

Gestión de la

Calidad

Servicio Nacional de Aprendizaje – SENA

Regional CUNDINAMARCA

Centro de Formación: Centro de Desarrollo Agroempresarial Chía

Programa de formación: TECNICO EN INSTALACIONES ELECTRICAS EN BAJA TENSION

Guía 1 (Microcontroladores Pic 16F84A)

Fecha:

JULIO de 2011

Versión 1.0

Página 15 de 20

15

Tutorial Microcontrolador PIC.

Cuarta parte.

En la parte anterior hicimos un programa el cual prende un LED según el interruptor que se activa. Ahora vamos a compilar este programa en lengua hexa el que finalmente cargaremos en el PIC.

Lo primero es pinchar en el menú en la opción project y luego en new project, como indica la img:

El siguiente paso es darle un nombre al proyecto, se recomienda darle el mismo nombre que al archivo en assembler, en este caso ejemplo.pjt.

Page 16: Guia 1 microcontroladores grado 11

Sistema de

Gestión de la

Calidad

Servicio Nacional de Aprendizaje – SENA

Regional CUNDINAMARCA

Centro de Formación: Centro de Desarrollo Agroempresarial Chía

Programa de formación: TECNICO EN INSTALACIONES ELECTRICAS EN BAJA TENSION

Guía 1 (Microcontroladores Pic 16F84A)

Fecha:

JULIO de 2011

Versión 1.0

Página 16 de 20

16

Una vez echo esto, aparece la siguiente ventana:

En la parte de abajo, donde dice Project Files pinchamos la opción ejemplo [.hex] al hacer esto se activa la opción Node Properties que esta abajo a la derecha, debemos pinchar esta y se abre la siguiente ventana:

Page 17: Guia 1 microcontroladores grado 11

Sistema de

Gestión de la

Calidad

Servicio Nacional de Aprendizaje – SENA

Regional CUNDINAMARCA

Centro de Formación: Centro de Desarrollo Agroempresarial Chía

Programa de formación: TECNICO EN INSTALACIONES ELECTRICAS EN BAJA TENSION

Guía 1 (Microcontroladores Pic 16F84A)

Fecha:

JULIO de 2011

Versión 1.0

Página 17 de 20

17

En esta sección, debemos dejar las cosas por defecto (es lo mejor) y simplemente pinchar en OK. Luego volveremos a la ventana anterior solo que ahora se activó la opción Add Node algunas>opciones mas arriba de la ultima que pinchamos, por supuesto elegimos esta y>abre

Page 18: Guia 1 microcontroladores grado 11

Sistema de

Gestión de la

Calidad

Servicio Nacional de Aprendizaje – SENA

Regional CUNDINAMARCA

Centro de Formación: Centro de Desarrollo Agroempresarial Chía

Programa de formación: TECNICO EN INSTALACIONES ELECTRICAS EN BAJA TENSION

Guía 1 (Microcontroladores Pic 16F84A)

Fecha:

JULIO de 2011

Versión 1.0

Página 18 de 20

18

Pinchamos en la opción Browse que esta a la derecha y buscamos en el directorio el programa original, en este caso ejemplo.asm y luego en OK, con esto estamos relacionando un archivo de assembler con el proyecto en hexa. Y finalmente volvemos a la primera pantalla y le damos al OK que esta en la parte superior. A continuación debemos verificar que no haya errores para eso vamos nuevamente a la opción project y veremos que hay nuevas opción que antes no estaban disponibles, elegimos Build All, y si todo esta correcto aparecerá una pantalla como esta:

Donde en la parte final podemos leer: Build completed successfully.

En caso de haber algún error, podemos hacer doble clic en el mensaje de error y este nos enviará directamente a esta línea.

Page 19: Guia 1 microcontroladores grado 11

Sistema de

Gestión de la

Calidad

Servicio Nacional de Aprendizaje – SENA

Regional CUNDINAMARCA

Centro de Formación: Centro de Desarrollo Agroempresarial Chía

Programa de formación: TECNICO EN INSTALACIONES ELECTRICAS EN BAJA TENSION

Guía 1 (Microcontroladores Pic 16F84A)

Fecha:

JULIO de 2011

Versión 1.0

Página 19 de 20

19

5. EVIDENCIAS Y EVALUACION

EVIDENCIA:

Tipo de

Evidencia: Desempeño x Conocimiento x Producto x

Resultados de

aprendizaje

asociados a la

evidencia:

FECHA:____________________________________, INSTRUCTOR: MAURICIO DIAZ GARCIA

MATERIAL DE CONSULTA:

http://micropic.galeon.com http://www.ithinkweb.com.mx/capacita/algoritmo.html http://www.ate.uniovi.es/fernando/Doc2006/Sed_06/Presentaciones/Programacion%20en%20ensamblador.pdf

PIC 16F84A COMO INTERRUPTOR

ESQUEMA DEL CIRCUITO

APRENDICES: GRUPO ___________ 1. _______________________________________ 2. _______________________________________ 3. _______________________________________ 4. _______________________________________

MATERIALES:

HERRAMIENTAS:

DESCRIPCION FUNCIONAL DEL CIRCUITO:

PSEUDOCODIGO

DIAGRAMA DE FLUJO CODIGO FUENTE

Page 20: Guia 1 microcontroladores grado 11

Sistema de

Gestión de la

Calidad

Servicio Nacional de Aprendizaje – SENA

Regional CUNDINAMARCA

Centro de Formación: Centro de Desarrollo Agroempresarial Chía

Programa de formación: TECNICO EN INSTALACIONES ELECTRICAS EN BAJA TENSION

Guía 1 (Microcontroladores Pic 16F84A)

Fecha:

JULIO de 2011

Versión 1.0

Página 20 de 20

20

Descripción: Programación de un Microcontrolador

Producto

entregable:

Circuito funcional, Pseudocódigo, Diagrama de flujo y Código fuente

Forma de

entrega:

Formato informe indicado.

Criterios de

Evaluación:

• Esquematiza e implementa a su alcance el problema planteado.

• Recopila la información de acuerdo a la solución adoptada del automatismo

requeridocomo análisis de componentes: mecánicos, eléctricos, de control, proveedores

ycostos.

• Presenta alternativas de solución que respondan en su totalidad con cada una de las

funciones del automatismo

• Valora alternativas económicas del estudio preliminar de acuerdo a la solución adoptada

• Define detalladamente la estructura del automatismo de acuerdo a la metodología

establecida.

• Selecciona los sensores, actuadores y controladores requeridos para la solución del

problema.

• Aplica normas de seguridad vigentes para la alternativa de solución.

Instrumento de

Evaluación:

Tipo Código

Cuestionario x

Lista Chequeo x

Lista de Verificación

Otro: