Sei sulla pagina 1di 11

1.1. Breves antecedentes relacionados.

Inicialmente cuando no existan los microprocesadores las personas se ingeniaban en disear sus circuitos electrnicos y los resultados estaban expresados en diseos que implicaban muchos componentes electrnicos y clculos matemticos. Un circuito lgico bsico requera de muchos elementos electrnicos basados en transistores, resistencias, etc; pero en el ao 1971 apareci el primer microprocesador el cual origin un cambio decisivo en las tcnicas de diseo de la mayora de los equipos. Al principio se crea que el manejo de un microprocesador era para aquellas personas con un coeficiente intelectual muy alto; por lo contrario con la aparicin de este circuito integrado todo sera mucho mas fcil de entender y los diseos electrnicos serian mucho mas pequeos y simplificados. Entre los microprocesadores mas conocidos tenemos el popular Z80 y el 8085. Los diseadores de equipos electrnicos ahora tenan equipos que podan realizar mayor cantidad de tareas en menos tiempo y su tamao se redujo considerablemente; sin embargo, despus de cierto tiempo aparece una nueva tecnologa llamada microcontrolador que simplifica aun mas el diseo electrnico. 1.2. Diferencias entre un Microprocesador y un Microcontrolador. Si usted tuvo la oportunidad de realizar un diseo con un microprocesador pudo observar que dependiendo del circuito se requeran algunos circuitos integrados adicionales ademas del microprocesador como por ejemplo: memorias RAM para almacenar los datos temporalmente y memorias ROM para almacenar el programa que se encargara del proceso del equipo, un circuito integrado para los puertos de entrada y salida y finalmente un decodificador de direcciones. Un microcontrolador es un solo circuito integrado que contiene todos los elementos electrnicos que se utilizaban para hacer funcionar un sistema basado con un microprocesador; es decir contiene en un solo integrado la Unidad de Proceso, la memoria RAM, memoria ROM, puertos de entrada, salidas y otros perifricos. 1.3. Ventajas de un Microcontrolador Vs. un Microprocesador. Estas ventajas son reconocidas inmediatamente para aquellas personas que han trabajado con los microprocesadores y despus pasaron a trabajar con los microcontroladores. Estas son las diferencias mas importantes: Por ejemplo la configuracin mnima bsica de un microprocesador estaba constituida por un Micro de 40 Pines, Una memoria RAM de 28 Pines, una memoria ROM de 28 Pines y un decodificador de direcciones de 18 pines; pero un microcontrolador incluye todo estos elementos en un solo Circuito Integrado por lo que implica una gran ventaja en varios factores: En el ciruito impreso por su amplia simplificacin de circuiteria, el costo para un sistema basado en microcontrolador es mucho menor y, lo mejor de todo, el tiempo de desarrollo de su proyecto electrnico se disminuye considerablemente. Existen unos microcontroladores mas avanzados que otros por los componentes especiales que estos incluyen. Algunos solamente contienen puertos de entrada y de salida, otros incluyen pines hasta de 12 Bits para conversiones analgicas digitales entre otros. Podemos mencionar algunas caractersticas especiales que poseen los microcontroladores actuales: Modulacin por ancho de pulso, Comunicacin Serial Sincrona, Comunicacion Serial Asincrona, Temporizadores, Contadores, etc. 1.4. Los Microcontroladores, aspecto bsico general. En la actualidad existen muchos microcontroladores de diferentes empresas reconocidas mundialmente, pero nuestra meta especifica es tratar el microcontrolador de la empresa Microchip Tecnologies modelo 1

PIC16F84. El archivo tiene una longitud de 1.6 Mega Byte y contiene 100 hojas en formato PDF que podrs observar con el Acrobat Reader. En ese archivo encontraras cualquier mnimos detalle que necesites conocer del microcontrolador PIC16F84 1.5. Que es un Microcontrolador ?. Un microcontrolador es un circuito integrado programable que contiene internamente todos los componentes de un computador. Este se utiliza para controlar el funcionamiento de una tarea determinada. Sus pines de entradas y salidas se utilizan para conectar motores, relays, actuadores, etc. Una vez que el microcontrolador esta programado, se encargara de ejecutar al pie de la letra la tarea encomendada. 1.6. Conociendo al Microcontrolador PIC16F84. El microcontrolador PIC16F84 es un circuito integrado fabricado por la empresa Microchip Tecnologies y es actualmente uno de los mas utilizados a nivel mundial, la razn de esto es por que son sencillos, rpidos, modernos y principalmente baratos, se podrn escribir los programas y borrarlos muchsimas veces, poseen gran documentacin a nivel mundial en la Red de Internet y esta accesible para la mayora de los bolsillos. Existen microcontroladores que una vez programados con el programa de control estos tienen que ser borrados con luz ultra violeta en el caso de requerir borrar el programa. Para el caso del PIC16F84, este podr ser programado Elctricamente con una circuiteria que proporciona la empresa Microchip Tecnologies. Este programador es sumamente sencillo y debe ser conectado al puerto paralelo de su computador. 1.7. Caractersticas Bsicas del PIC16F84. El Microcontrolador PIC16F84 es un circuito integrado de 18 pines fabricado con tecnologa CMOS, existen en diferentes versiones de encapsulado como por ejemplo el DIP (Version convensional ) y el SOIC ( Montaje superficial ). La frecuencia de trabajo esta entre 4 Mhz y 20 Mhz. Las versiones que se estipulan en una frecuencia de trabajo de 4 Mhz podrn trabajar sin ningn problema hasta los 10 Mhz, prueba que hemos realizado muchas veces en nuestros diseos. Observemos la siguiente imagen que muestra como estn organizados los pines del microcontrolador PIC16F84:

1.8. Identificacin de los Pines utilizados para los puertos de entrada y salidas. En la imagen anterior se podr observar claramente que el microcontrolador tiene dos puertos denominados "A" y "B". El puerto "A" tiene 5 lineas disponibles (RA0, RA1, RA2, RA3, RA4 ) y el puerto "B" tiene 8 lineas disponibles (RB0, RB1, RB2, RB3, RB4, RB5, RB6, RB7 ). Ambos Puertos suman un total de 13 lineas que podr ser programadas independientemente como entradas o como salidas. Estas son las lineas que estarn destinadas para comunicar el microcontrolador con el mundo exterior, como por ejemplo: Un motor Paso a Paso, Diodos Luminosos "Leds", Mdulos LCD, Teclados Matriciales, etc. Tambin observe que el Pin No. 3 perteneciente al puerto "A" = RA4 tambin tiene otra nomenclatura denominada "TOCKI" lo cual quiere decir que esta linea podr ser programada como entrada, salida y temporizador/contador. 1.9. Identificacin de los pines de alimentacin del Microcontrolador.

El microcontrolador trabaja con una tensin de 5 Vlts. DC y los pines para ello son el Pin No. 14 (+) y el Pin No. 5 (). 1.10. Oscilador para el PIC16F84. Todo microprocesador o microcontrolador requiere de un circuito que le indique a que velocidad debe trabajar. Este circuito es conocido por todos como un oscilador de frecuencia. Este oscilador es como el corazn del microcontrolador por lo tanto, este pequeo circuito no debe faltar. En el caso del microcontrolador PIC16F84 el Pin No. 15 y el Pin No. 16 son utilizados para introducir la frecuencia de reloj. Existen microcontroladores que tienen su oscilador internamente y no requieren de pequeos circuitos electrnicos externos. El microcontrolador PIC16F84 requiere de un circuito externo de oscilacin o generador de pulsos de reloj. La frecuencia de reloj mxima es de 20 Mhz; sin embargo, nosotros le recomendamos que comience a trabajar con una frecuencia de reloj de 4 Mhz. debido a que todos nuestros experimentos estarn basados en esta frecuencia. El microcontrolador PIC16F84 utiliza cuatro periodos completos de reloj por cada instruccin por lo tanto si usted tuviera un cristal que estuviera 4 Mhz, internamente en el microcontrolador se esta corriendo a 1 Mhz debido a que se toman 4 pulsos de reloj completos para cada instruccin. El PIC16F84 puede utilizar cuatro tipo diferentes de reloj oscilador externos. El tipo de oscilador depender de la precisin (ej: para las rutinas de tiempo), velocidad y potencia que usted necesite; por otro lado los costos que serian un aspecto significativo en una produccin en serie de algn tipo de proyecto electrnico y la velocidad de proceso mnima requerida para su proyecto electrnico. Podemos resumir entonces los diferentes tipos de osciladores: 1. Oscilador tipo "HS" para frecuencias mayores de 4 Mhz. en el caso del PIC16F84 podr instalarse un oscilador hasta 20 Mhz. 2. Oscilador tipo "XT" para frecuencias no mayores de 4 Mhz. 3. Oscilador tipo "LP" para frecuencias entre 32 y 200 Khz. 4. Oscilador tipo "RC" para frecuencias no mayores de 5.5 Mhz. En el momento de programar el microcontrolador se deber especificar en los parmetros el tipo de oscilador que usted utilizara en su proyecto electrnico basado especficamente en la frecuencia de trabajo. Por ejemplo si su frecuencia de trabajo es de 10 MHz entonces la configuracin del microcontrolador deber estar en "HS"; pero si su frecuencia de trabajo es de 4 Mhz entonces la configuracin del microcontrolador deber estar en "XT". En primer lugar tenemos un Oscilador tipo "HS" basado en un Cristal para frecuencias mayores a 4 Mhz. Esta versin es la mas costosa; pero representa la forma mas practica por la cantidad de conexiones y por la precisin en la seal de reloj emitida. En la siguiente imagen se muestra como debe conectarse al microcontrolador y las caractersticas del cristal. Estos tipos de cristales estn diseados especialmente para tecnologas TTL. La frecuencia (Mhz) disponibles para esta versin de cristal son muy amplias y las mas usuales son 1 1.8432 2 4 8 10 11.059 12 14.31818 16 20 25 32 33 40 50 80 y 100 Mhz.

En segundo lugar tenemos el oscilador tipo RC es el mas econmico por que tan solo se utiliza un condensador no polarizado y una resistencia. Este tipo de oscilador proporciona una estabilidad mediocre en la frecuencia y podr ser utilizado para aquellos proyectos que no se requiera precisin. Observe la siguiente imagen donde se muestra como debe ser conectado al microcontrolador al circuito RC.

Es importante saber que para valores de resistencia menor a 4 K, el sistema se hace inestable o se podra detener la frecuencia de oscilacin totalmente. Para valores de resistencias mayores a 100 Megas, el oscilador se hace susceptible al ruido, humedad y a la temperatura por lo tanto se recomienda que este tipo de oscilador se encuentre en el siguiente rango ( 5K < R < 100 K ). Por otro lado se recomienda utilizar un condensador no polarizado de 20 pico por el ruido del medio y la estabilidad del sistema. A continuacin le proporcionamos una pequea tabla de valores de frecuencia de oscilacin segn el condensador y la resistencia. Tambin es importante saber que la tensin de alimentacin que tendr el microcontrolador influye directamente en la frecuencia final. 1.11. Inicializacin "RESET" del Microcontrolador. El microcontrolador cuando se le suministra el voltaje de alimentacin ejecuta automticamente un RESET y todos los registros son colocados es sus estados lgicos originales; sin embargo los microcontroladores dispones de un Pin destinado especficamente para ejecutar un RESET en el caso de una falla o cuando sea necesario aplicarle un RESET. Cuando se ejecuta un RESET, se aplican dos acciones importantes: 1. El contador de programa se vuelve a colocar en el principio del programa desde la direccin 0 ( Principio del Programa ). 2. Los registros modificados vuelven a su estado normal. 4

En la siguiente imagen se puede observar como est conectado el pequeo circuito requerido para el RESET. Cuando el pulsador "S" es accionado, se aplica un nivel lgico bajo en el Pin No. 4 del microcontrolador y automticamente se ejecutan los dos eventos mencionados anteriormente.

El microcontrolador PIC16F84 tambin dispone de otras formas de "RESET", entre ellas tenemos el Reset denominado "POWER ON RESET", el cual debe ser activado mediante un bit de configuracin en el momento en el que se programe el PIC.

Para el circuito anterior existen algunas reglas bsicas importantes: Se recomienda una resistencia menos de 40 K ( R < 40 K ). Se recomienda a R1 entre 100 ohmios y 1 K que sern los elementos electrnicos que limitaran las corrientes que intenten entrar por el Pin del microcontrolador. El diodo D1 es utilizado para descargar el condensador rpidamente cuando el voltaje baja de su nivel normal.

1.12. Puertos del Microcontrolador PIC16F84. Los puertos del microcontrolador PIC16F84 son el medio de comunicacin con el mundo exterior, en ellos podremos conectar los perifricos o circuitos necesarios como por ejemplo los Mdulos LCD, motores elctricos, etc; pero estas conexiones no se podrn realizar arbitrariamente; es decir, existen unas reglas bsicas que debern cumplirse para que el microcontrolador no sufra daos o se destruya. Todo el truco esta en conocer los limites de corriente que puede manejar el microcontrolador.. 1.12.1. Limite de corriente para el Puerto "A" y el "B". El puerto "A" del microcontrolador y el puerto "B" podrn ser programados como entradas y salidas indiferentemente. Para el caso de que sean programadas como salida es denominado "Modo Fuente" por que suministran corriente y cuando las lineas sean programadas como entradas son llamadas "Sumidero" por que reciben corriente. Ahora, la mxima corriente que puede suministrar una linea programada como salida es de 20 miliamperios; pero si usted utiliza toda las lineas del puerto "A" programadas como salida; la mxima corriente no deber exceder de 50mA para todo el puerto "A" . Para el caso del puerto "B" en que todas las lineas sean programadas como salida la mxima corriente no deber exceder de 100 mA. Ahora cuando las lineas de los puertos son programadas como entradas ( Sumidero ), la corriente mxima que puede manejar una sola linea es de 25 mA. Para el caso del puerto "A" que sea programado con todas sus lineas como entrada, la mxima corriente que puede manejar es de 80 mA. Por otro lado, para el puerto "B" si todas las lineas son programadas como entrada, la mxima corriente que puede manejar es de 150 mA. Podemos entonces resumir:

Si usted esta interesado en manejar perifricos que manejan mayor cantidad de corriente de la especificada, tan solo deber aplicar un circuito acoplador como por ejemplo los buffers, transistores que se encarguen de controlar la corriente, etc. Tenemos algunos ejemplos bsicos para ello en la siguiente imagen:

1.13. ARQUITECTURA DEL PIC16F84 El microcontrolador PIC16F84 dispone de una estructura organizada interiormente conformado por bloques interconectados en donde se incluye la memoria RAM, los puertos de entrada y salida, la memoria EEPROM, etc. En la siguiente imagen se muestra la arquitectura interna del PIC16F84.

Nuestra intencin no abarca el detalle de como funciona internamente el microcontrolador; pero si usted esta interesado en ello, disponemos de un software educativo llamado PINPOKE en el cual usted podr observar visualmente como trabaja el microcontrolador PIC16F84. 1.14. REGISTROS IMPORTANTES DEL MICROCONTROLADOR PIC16F84 Antes de programar el microcontrolador, ser absolutamente necesario conocer algunos aspectos bsicos de la arquitectura del microcontrolador; especficamente en los detalles relacionados a la ubicacin del comienzo de la memoria RAM, Memoria EEPROM, Registros reservados, etc. En la siguiente imagen ( Lado derecho ) representamos el mapa de memoria del microcontrolador PIC16F84; bsicamente se puede observar que la estructura esta dividida en dos columnas denominadas banco 0 y banco 1. Los bancos difieren solamente en 7

algunos aspectos que sern explicados posteriormente; por los momentos, observe cuidadosamente y trate de identificar los bancos.

1.15. MEMORIA RAM: El microcontrolador PIC16F84 puede direccionar 128 posiciones diferentes de memoria RAM; pero Microchip Tecnologies solamente ha implementado 80 posiciones para este PIC, esta memoria esta dividida en dos partes: La primera parte consta de 16 registros que sern utilizados por funciones especiales del microcontrolador. En la figura anterior se puede observar los doce registros especiales: TMRO, PCL, STATUS, FSR, PORTA, PORTB, EEDATA, etc. La Segunda parte consta de 68 registros de memoria RAM que sern utilizados para almacenar datos temporales requeridos por el programa creado por el programador. Este tipo de memoria comienza en la posicin 0Ch y termina en la posicin 4Fh. La memoria RAM tiene la caracterstica bsica de perder los datos si se llegase a desconectar el microcontrolador o la tensin baja por debajo de los limites mnimos. La memoria RAM as como algunos registros especiales son los mismos en los dos bancos del mapa de memoria del PIC. 1.16. MEMORIA DE PROGRAMA TIPO EEPROM: Esta memoria tiene 1 K x 14 Bits de memoria tipo Flash. Esta memoria es la que utilizaremos para almacenar nuestro programa dentro del microcontrolador PIC16F84. El tipo de memoria utilizada en este microcontrolador, podr se escrita o borrada elctricamente; por otro lado, la memoria tipo Flash tiene la caracterstica de poderse borrar en bloques completos y no podr borrarse posiciones concretas o especificas. Este tipo de memoria no es voltil, es decir, no pierde los datos si la energa es interrumpida. En la siguiente imagen se muestra como esta organizada la memoria dentro del microcontrolador.

La memoria del programa comienza desde la posicin 000h y termina en la posicin 03FFh. NOTA IMPORTANTE: El contador de programa del microcontrolador PIC16F84 tiene una longitud de 13 Bits por lo que implica que este podr direccionar cualquier posicin comprendida en un rango de los 8 K x 14; pero la empresa Microchip Tecnologies solamente ha implementado internamente 1 K que representa desde 000h hasta 03FFh. En el caso de que usted direcciones fuera del rango estipulado, automticamente causara un solapamiento. 1.17. CONJUNTO DE INSTRUCCIONES DEL PIC16F84: El microcontrolador PIC16F84 dispone de un total de 37 instrucciones de una sola palabra que usted podr aprenderse muy fcilmente. Nuestro curso va orientado a entender y programar el PIC16F84 de una manera sencilla y rpida por lo que explicaremos a continuacin el conjunto de instrucciones, su significado, modo de operacin y traduccin. Las instrucciones tienen algunas letras que van relacionadas y que tienen cierta interpretacin. Por ejemplo la letra "W" es el registro mas importante que tiene el microcontrolador y es denominado ACUMULADOR. En este registro todas las operaciones pasan a travs de el. No. Instruccin 1 ADDWF f,d Observacin Esta instruccin suma el contenido de un registro especfico Sumar W + f al contenido del registro de "W" donde "f" puede ser un registro cualquiera con un determinado valor. Descripcin Operacin lgica AND Observacin Esta instruccin realiza una operacin lgica "AND" entre el registro"W" y el registro "f". Observacin Operacin lgica AND entre un literal y W Esta instruccin borra un registro especifico. 9 Descripcin

No. Instruccin 2 ANDWF f,d

No. Instruccin 3 ANDLW k 3

Descripcin CLRF f

Borra registro No. Instruccin 4 CLRW Descripcin Borra el registro W Descripcin Complementa el registro f Observacin Esta instruccin borra el registro "W" solamente Observacin Esta instruccin complementa el registro "f"

No. Instruccin 5 COMP f,d

No. Instruccin 6 DECF f,d

Descripcin Observacin Decrementa un Esta instruccin decrementa en una sola unidad el registro registro f "f". Descripcin Decrementa y si es igual a cero salta. Descripcin Incrementa el registro "f" en una unidad Descripcin incrementa y si es igual a cero salta. Observacin Esta instruccin decrementa en una sola unidad el registro "f" en la cual si el registro "f" es igual a cero entonces salta a una instruccin Observacin Esta instruccin incrementa en una sola unidad el registro "f". Observacin Esta instruccin incrementa en una sola unidad el registro "f" en la cual si el registro "f" es igual a cero entonces salta a una instruccin

No. Instruccin 7 DECFSZ f,d

No. Instruccin 8 INCF f,d

No. Instruccin 9 INCFSZ f,d

No. Instruccin 10 IORWF f,d

Descripcin Observacin Se aplica un OR Esta instruccin aplica una operacin lgica llamada OR Inclusivo INCLUSIVO entre dos registros.

1.18. LAS BANDERAS Estas banderas se utilizan para dar informacin adicional cuando se realizan operaciones lgicas y aritmticas dentro del microcontrolador. Usted podr tomar decisiones segn el valor de cada una de las banderas. Existen diferentes tipos de banderas en un microcontrolador; entre ellas tenemos: 1.19. LAS BANDERAS EN LA SUMA: Los registros bsicos del microcontrolador PIC16F84 tienen una longitud de 8 bits expresados en forma binaria, lo cual quiere decir que el nmero mximo expresado en forma decimal ser el 255. En la suma existen tres tipos de banderas que pueden proporcionarnos mayor informacin del resultado. Estas banderas son denominadas CARRY (C), Acarreo de Dgito (DC) y el Estado Cero (Z). Todas estas banderas son activadas segn sea el caso:

10

Por ejemplo, en la suma, la bandera CARRY se coloca en "1" cuando el resultado supera el nmero 255 y permanecer en "0" indicando que no se present ningn sobreflujo; es decir que el resultado de la suma fue menor. Por otro lado, existe otra bandera denominada Acarreo de Dgito "DC" que expresa lo que sucede con los 4 Bits menos significativos; es decir, si los cuatro Bits menos significativos sobrepasa al numero 15 expresado en forma decimal, entonces la bandera DC = 1, en el caso contrario ser "0". Finalmente la bandera de estado "Z" se activa cuando la operacin aritmtica da como resultado un "1"; de lo contrario se coloca en "0". 1.20. LAS BANDERAS EN LA RESTA: En la resta de dos nmeros la bandera CARRY "C" se coloca en "1" cuando el resultado de la operacin sea un nmero positivo, o se pone en cero para el caso contrario. Esto tan sencillamente quiere decir por ejemplo que si tenemos A=20 y B=10 donde X=AB; el resultado ser X=10 ( Nmero Positivo ); para el caso contrario si tenemos A=10 y B=20 donde X=AB entonces X=10. obtenindose un resultado negativo. La bandera de acarreo de dgito "DC" se colocar en "1" cuando los cuatro Bits menos significativos del registro "W" sea menor que los cuatros bits menos significativos del registro que se desea restar, en caso contrario se colocar un cero. La bandera de estado "Z" solamente se activar cuando ambas cantidades sean iguales. 1.21. LAS BANDERAS EN LA ROTACION: El microcontrolador PIC16F84 tiene disponibles dos instrucciones de rotacin las cuales rotan los dgitos de un registro a la derecha o a la izquierda, segun se use. Por ejemplo, para la rotacin a la izquierda supongamos que nuestro registro " f = 00001111 " y que la bandera CARRY tiene un 0; cuando se aplica el comando RLF f,0 todos los nmeros del registro "f" se desplazan hacia la izquierda. El valor lgico que se encuentra en la bandera CARRY es colocado en el Bit No. 0 y el Bit No. 7 es colocado en la bandera CARRY. El resultado de nuestro ejemplo seria: f = 00011110. y CARRY seria 0. El orden lgico de los Bits lo tenemos definidos as:

11

Potrebbero piacerti anche