Microcontrolador
Enviado por jorgeo23 • 30 de Agosto de 2011 • 5.416 Palabras (22 Páginas) • 626 Visitas
DISEÑO, PROGRAMACIÓN E IMPLANTACIÓN DE UN SISTEMA DE CONTROL CON EL MICROCONTROLADOR PIC 16F84
INTRODUCCIÓN
En el siguiente proyecto de Microcontroladores PIC haremos una explicación teórica sobre su funcionamiento, programación y sus características principales, para así llegar al desarrollo del diseño y su implantación práctica. Para este proyecto se utilizara el
PIC 16F84 o en su defecto el PIC 16C84.
Ya que el " PIC 16F84 " es un MICROCONTROLADOR con memoria de programa tipo FLASH, lo que representa gran facilidad en el desarrollo de prototipos y en su aprendizaje ya que no se requiere de borrado con luz ultravioleta como las versiones EPROM sino, permite reprogramarlo nuevamente sin ser borrado con anterioridad. Por esta razón, lo usaremos en la mayoría de aplicaciones que se desarrollan a lo largo del estudio.
El PIC 16C84 es un microcontrolador de la familia MICROCHIP, totalmente compatible con el PIC 16F84. Su principal característica es que posee memoria "EEPROM" en lugar de memoria Flash, pero su manejo es igual. Con respecto al PIC16F84, este microcontrolador presenta dos diferencias:
• La memoria de datos tiene menor tamaño, aquí se tienen 32 registros de propósito general (el mapa de memoria de datos llega hasta 2Fh).
• En el momento de programar el microcontrolador, el fusible de selección del temporizador de arranque (Power Up Timer) trabaja de forma inversa, es decir, si en el PIC 16F84 se selecciona la opción "Low" para activarlo, en el PIC 16C84 se debe seleccionar "High".
Este microcontrolador ha sido reemplazado de forma gradual por el PIC 16F84, por lo tanto, los diseños que lo utilicen como elemento de control deben ser actualizados. Aunque, como se ve, es un proceso casi transparente.
Este microcontrolador se basa en la Arquitectura Harvard, en la cual el programa y los datos se pueden trabajar desde memorias separadas, lo que posibilita que las instrucciones y los datos posean longitudes diferentes. Esta misma estructura es la que permite la superposición de los ciclos de búsqueda y ejecución de las instrucciones, lo cual se ve reflejado en una mayor velocidad del microcontrolador.
MARCO TEÓRICO
- MEMORIA DE PROGRAMA
Es una memoria de 1 K byte de longitud con palabra de 14 bits. Como es del tipo FLASH se puede programar y borrar eléctricamente, en otras palabras, se puede programar o borrar sin necesidad de un borrador de luz ultravioleta, lo que facilita el desarrollo de programas y la experimentación. Como el PIC 16F84 tiene un contador de programa de 13 bits, tiene una capacidad de direccionamiento de 8K x 14, pero solamente tiene implementado el primer 1K x 14 (000h hasta 03FFh). Si se direccionan posiciones de memoria superiores a 3FFh se causará un solapamiento o desborde con el espacio del primer 1K.
- VECTOR DE RESET
Cuando ocurre un reset o se enciende el microcontrolador, el contador de programa se pone en ceros (000h). Por esta razón, en la primera dirección del programa se debe escribir todo lo relacionado con la iniciación del mismo.
- VECTOR DE INTERRUPCION
Cuando el microcontrolador recibe una señal de interrupción el contador de programa apunta a la dirección 04h de la memoria de programa, por eso allí se debe escribir toda la programación necesaria para atender dicha interrupción.
- REGISTROS (Memoria RAM)
El PIC 16F84 puede direccionar 128 posiciones de memoria RAM, pero solamente tiene implementado físicamente los primeros 80 (0 a 4Fh). De estos los primeros 12 son registros que cumplen un propósito especial en el control del microcontrolador y los 68 siguientes son registros de uso general que se pueden usar para guardar los datos temporales de la tarea que se esta ejecutando. Los registros están organizados como dos bancos (paginas) de 128 posiciones de 8 bits cada una (128 x 8); todas las posiciones se pueden accesar directa o indirectamente (estas ultimas a través del registro FSR). Para seleccionar que pagina de registro se trabaja en un momento determinado se utiliza el bit RP0 del registro STATUS.
- PINES Y FUNCIONES
Los PUERTOS son el puente entre el microcontrolador y el mundo exterior. Son líneas 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 líneas y el puerto B con 8 líneas. Cada pin se puede configurar como entrada o como salida independiente programado por un par de registros diseñados 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 través de una resistencia.
- PUERTO B
RB0/INT = Pin de Entrada/Salida o entrada de interrupción 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 Interrupción por cambio de Flanco (TTL).
RB5 = Pin de Entrada/Salida con Interrupción por cambio de Flanco (TTL).
RB6 = Pin de Entrada/Salida con Interrupción por cambio de Flanco (TTL/ST).
RB7 = Pin de Entrada/Salida con Interrupción por cambio de Flanco (TTL/ST).
- PINES ADICIONALES
MCLR = Pin de Reset del Microcontrolador (Master Clear). Se activa (el pic se resetea) cuando tiene un "0" lógico 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 actúa 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 automáticamente en un pin si este se programa como salida. El pin RB0/INT se puede configurar por software para que funcione como interrupción externa.
El pin RA4/TOCKI del puerto A puede ser configurado
...