PRACTICA Nro. 1 Automatización PIC

download PRACTICA Nro. 1 Automatización PIC

of 18

Transcript of PRACTICA Nro. 1 Automatización PIC

MINISTERIO DE EDUCACION SUPERIOR INSTITUTO UNIVERSITARIO DE TECNOLOGIA AGRO INDUSTRIAL PROGRAMA DE FORMACION EN ELECTRICIDAD SAN CRISTOBAL ESTADO TACHIRA

DEPARTAMENTO: PNF Electricidad UNIDAD CURRICULAR: Automatizacin I TRIMESTRE: X

ESPECIALIDAD: Electricidad CODIGO: UNID/CREDITO: 03 PRACTICA N 1

PROGRAMACIN PIC-LENGUAJE C

OBJETIVOS: Programar entradas y salidas de microcontroladores usando lenguaje C Compilar y depurar los programas Simular y comprobar el funcionamiento.

MARCO TEORICO:A continuacin se explicar brevemente sobre los microcontroladores, algunas caractersticas principales del PIC 16F84A, directivas de programacin en lenguaje C, para as llegar al desarrollo de pequeos proyectos y su simulacin.

Microcontroladores:Un microcontrolador es un circuito integrado o chip que incluye en su interior las tres unidades funcionales de una computadora: CPU, Memoria y Unidades de E/S, es decir, se trata de un computador completa en un solo circuito integrado. Figura 1. Microcontroladores

Material preparado por: MSc. Ing. Carlos Camargo

C-4222/1

Un microcontrolador difiere de un microprocesador normal, debido a que es ms fcil convertirla en una computadora en funcionamiento, con un mnimo de chips externos de apoyo. La idea es que el chip se coloque en el dispositivo, enganchado a la fuente de energa y de informacin que necesite, y eso es todo. Un microprocesador tradicional no le permitir hacer esto, ya que espera que todas estas tareas sean manejadas por otros chips. Hay que agregarle los mdulos de entrada/salida (puertos) y la memoria para almacenamiento de informacin. Por ejemplo, un microcontrolador (Figura 2) tpico tendr un generador de reloj integrado y una pequea cantidad de memoria RAM y ROM/EPROM/EEPROM/FLASH, significando que para hacerlo funcionar, todo lo que se necesita son unos pocos programas de control y un cristal de sincronizacin. Los microcontroladores disponen generalmente tambin de una gran variedad de dispositivos de entrada/salida, como convertidores de analgico a digital, temporizadores, UARTs y buses de interfaz serie especializados, como I2C y CAN. Frecuentemente, estos dispositivos integrados pueden ser controlados por instrucciones de procesadores especializados. Los modernos microcontroladores frecuentemente incluyen un lenguaje de programacin integrado, como el Lenguaje C y BASIC que se utiliza bastante con este propsito. Figura 2. Estructura General de un Microcontrolador

Familia de Microcontroladores: Entre los PIC mas utilizados tenemos: PIC16F84 (Considerado obsoleto, pero imposible de descartar y muy popular) PIC16F84A (Buena actualizacin del anterior, algunas versiones funcionan a 20 MHz, compatible 1:1) La familia PIC16F87X y PIC16F87XA (los hermanos mayores del PIC16F84, con cantidad de mejoras incluidas en hardware. Bastante comn en proyectos de aficionados) Otros.

En la Figura 3 se representa el diagrama de bloques del PIC 16C84 del que podemos resaltar las siguientes Material preparado por: MSc. Ing. Carlos Camargo C-4222/2

caractersticas: Memoria de programa EEPROM de 1Kx14 bits Memoria de datos dividida en 2 reas: o rea RAM formada por 22 registros de propsito especfico (SFR) y 36 de propsito general (GPR). o rea EEPROM formada por 64 bytes. Recursos conectados al bus de datos: Puerto A de 5 bits , Puerto B de 8 bits , Temporizador con Preescaler (divisor) TMR0, etc. Figura 3. PIC16F84

Material preparado por: MSc. Ing. Carlos Camargo

C-4222/3

- PINES Y FUNCIONES Los PUERTOS son el puente entre el microcontrolador y el mundo exterior. Son lneas digitales que trabajan entre cero y cinco voltios y se pueden configurar como entradas o como salidas. El PIC 16F84 tiene dos puertos. El puerto A con 5 lneas y el puerto B con 8 lneas. Cada pin se puede configurar como entrada o como salida independiente programado por un par de registros diseados para tal fin. En ese registro un "0" configura el pin del puerto correspondiente como salida y un "1" lo configura como entrada. - PUERTO A RA0 = Pin de Entrada/Salida (TTL). RA1 = Pin de Entrada/Salida (TTL). RA2 = Pin de Entrada/Salida (TTL). RA3 = Pin de Entrada/Salida (TTL). RA4/TOCKI = Pin de Entrada/Salida o entrada de Reloj Externo para el TMR0, cuando este pin se configura como salida es de tipo Open Drain (ST), cuando funciona como salida se debe conectar a Vcc (+5V) a travs de una resistencia( pruebe con PULL-UP). - PUERTO B RB0/INT = Pin de Entrada/Salida o entrada de interrupcin externa. (TTL/ST). RB1 = Pin de Entrada/Salida (TTL). RB2 = Pin de Entrada/Salida (TTL). RB3 = Pin de Entrada/Salida (TTL). RB4 = Pin de Entrada/Salida con Interrupcin por cambio de Flanco (TTL). RB5 = Pin de Entrada/Salida con Interrupcin por cambio de Flanco (TTL). RB6 = Pin de Entrada/Salida con Interrupcin por cambio de Flanco (TTL/ST). RB7 = Pin de Entrada/Salida con Interrupcin por cambio de Flanco (TTL/ST). Material preparado por: MSc. Ing. Carlos Camargo C-4222/4

- PINES ADICIONALES MCLR = Pin de Reset del Microcontrolador (Master Clear). Se activa (el pic se resetea) cuando tiene un "0" lgico en su entrada. Vss = Ground o Tierra VDD = Fuente Positiva (+5V) OSC2/CLKOUT = Entrada del Oscilador del Cristal. Se conecta al Cristal o Resonador en modo XT (Oscilador de Cristal). En modo RC (Resistencia-Condensador), este pin acta como salida el cual tiene 1/4 de la frecuencia que entra por el pin OCS1/CLKIN. OSC1/CLKIN = Entrada del Oscilador del Cristal / Entrada de reloj de una Fuente Externa. El Puerto B tiene Internamente unas resistencias de pull-up conectadas a sus pines (sirven para fijar el pin a un nivel de cinco voltios), su uso puede ser habilitado o deshabilitado bajo control del programa. Todas las resistencias de pull-up conectan o desconectan a la vez. La resistencia de pull-up es desconectada automticamente en un pin si este se programa como salida. El pin RB0/INT se puede configurar por software para que funcione como interrupcin externa. El pin RA4/TOCKI del puerto A puede ser configurado como un pin de entrada/salida como se mencionaba anteriormente o como entrada del temporizador/contador. Cuando este pin se programa como entrada digital, funciona como un disparador de Schmitt (Schmitt trigger, ST), esto quiere decir que puede reconocer seales un poco distorsionadas y llevarlas a niveles lgicos (cero y cinco voltios). Cuando se usa como salida digital se comporta como colector abierto, por lo tanto se debe poner una resistencia de pull-up (resistencia externa conectada a un nivel lgico de cinco voltios). Como salida, la lgica es inversa: un "0" escrito al pin del puerto entrega en el pin un "1" lgico. FUSIBLES DE CONFIGURACION El PIC 16F84 posee cinco fusibles, cada uno de los cuales es un bit. Estos fusibles se pueden programas para seleccionar varias configuraciones del dispositivo: tipo de oscilador, proteccin de cdigo, habilitacin del circuito de vigilancia y el temporizador al encendido. Cuando se programa la proteccin del cdigo, el contenido de cada posicin de la memoria no se puede leer completamente, de tal manera que el cdigo del programa no se puede reconstruir. Adicionalmente, todas las posiciones de memoria del programa se protegen contra la reprogramacin. Una vez protegido el cdigo, el fusible de proteccin solo puede ser borrado (puesto a 1) si se borra toda la memoria del programa y la de datos.

Material preparado por: MSc. Ing. Carlos Camargo

C-4222/5

Programacin de Microcontroladores (PIC) Si queremos realizar la programacin de los microcontroladores PIC en un lenguaje como el C, es preciso utilizar un compilador de C. Dicho compilador nos genera archivos en formato Intel-hexadedimal (codigo maquina), que es el necesario para programar (utilizando un programador de PIC) un microcontrolador de 6, 8, 18 40 patillas. El compilador de C que vamos a utilizar es el PCW de la casa CCS Inc. A su vez, el compilador lo integraremos en un entorno de desarrollo integrado (IDE) que nos va a permitir desarrollar todas y cada una de las fases que se compone un proyecto, desde la edicin hasta la compilacin pasando por la depuracin de errores. La ltima fase, a excepcin de la depuracin y retoques hardware finales, ser la simulacin con Proteus. Al igual que el compilador de Turbo C, ste "traduce" el cdigo C del archivo fuente (.C) a lenguaje mquina para los microcontroladores PIC, generando as un archivo en formato hexadecimal (.HEX). Adems de ste, tambin genera otros seis ficheros. Es importante resaltar que el alumno maneja las instrucciones de lenguaje C vistas en la unidad curricular Computacin I, por lo tanto aqu explicaremos solo las instrucciones, las libreras y directivas propias de los microcontroladores. DIRECTIVAS DEL PREPROCESADOR #BYTE Identificador = X El identificador referenciar un objeto en la posicin de memoria x(un byte), donde x puede ser una constante u otro identificador. Ejemplos: #byte status = 3 #byte puerto_b = 6 #byte puerto_a = 5 Puede usar instrucciones como: puerto_b=0; puerto_b++; --puerto_a; Pone a cero todo el puerto B Incrementa el contenido del puerto B Decrementa en una unidad el puerto A.

DIRECTIVAS DEL C STANDAR #DEFINE Identificador CADENA Se utiliza simplemente para reemplazar el Identificador (ID) con CADENA Ejemplo: #define BITS 8 #define rotar(x) (x