Você está na página 1de 15

MECATRONICA

SISTEMAS MICROCONTROLADOS

SISTEMAS MICROCONTROLADOS

Captulo 3
PIC 16F88X

3.1 El PIC16F88X
Microchip inicia su introduccin al mercado con el 16F84 y aunque tienen a disponibilidad una gran variedad de PICs, este resulta ser uno de los ms utilizados en todo el mundo, luego es descontinuado y remplazado por el PIC16F62X. Pero sus prestaciones limitadas y tamao le dieron paso (la menos en nuestro medio) a la familia de 16F87X que nos brindaban una gran versatilidad lo que los ha convertido en uno de los modelos que ms usan los desarrolladores, al momento la familia 16F88X se basa en la 16F87X, pero los han mejorado ya que traen versiones de perifricos actualizados a los que los llaman extendidos y otra caracterstica adicionales.

3.2 Caractersticas Generales del PIC16F887.


Entre las caractersticas ms sobresalientes de este dispositivo, se tienen las siguientes: CPU tipo RISC de alto rendimiento: Set reducido de instrucciones solo 35 Instrucciones: - Todas las instrucciones se ejecutan en un solo ciclo exceptuando bifurcaciones. Velocidad de operacin: - DC 20 MHz oscillator/clock input - DC 200 ns ciclo de instruccin Capacidad de interrupcin. La Pila (Stack) del Hardware de 8 Niveles. Direccionamiento directo, Indirecto y direccionamiento relativo. Las Caractersticas Especiales del Microcontrolador: La Precisin el Oscilador Interno: - La fbrica calibrada para 1 % - Frecuencia interna seleccionable por software de 8 MHZ y 31KHZ con afinacin por software. - Modo de trabajo de dos velocidades Start-Up. - Deteccin de fallo del Cristal en aplicaciones crticas. - El modo del reloj cambia durante la operacin ahorro de energa. Modo SLEEP para ahorro de energa. Rango de Voltaje de trabajo (2.0V-5.5V).

38

Unidad Educativa Tcnico Salesiano

Ing. Pablo Rodas

MECATRONICA SISTEMAS MICROCONTROLADOS

Power-on Reset (POR) Power-up Timer (PWRT) y Oscilador Start-up Timer (OST) Brown-out Reset (BOR) con opcin de control por software. Watchdog Timer Extendido Baja-Correitne (WDT) con oscilador interno (seleccionable por software, nominal 268 segundos con full prescaler) habilitacin por software. Multiplexado del Master Clear Reset con Pull-up/Input Pin. Proteccin de cdigo programable. Flash/EEPROM de alta resistencia : - 100,000 escrituras en la FLASH - 1,000,000 escrituras en la EEPROM - Retencin en la Flash/Data EEPROM: > 40 years Memoria de programa Read/Write durante ejecucin. In-Circuit Debugger (en placa). Las Caractersticas de Bajo consumo: Correinte en Standby: - 50 nA 2.0V, tpico Corriente de trabajo: - 11 uA @ 32 kilohercio, 2.0V, tpico - 220 uA @ 4 megahertzio, 2.0V, tpico La Corriente del Timer del Perro Guardin: - 1 uA @ 2.0V, tpico Las Caractersticas Perifricas: 35 Pines de I/O con Control Individual de Direccin: - Fuente de alta corriente para manejo de LED directo. - Deteccin de interrupcin por cambio en el Pin. - Pull-ups programables individuamente. - Ultra Low-Power Wake-up (ULPWU). El Mdulo Analgico del Comparador con: - Dos comparadores analgicos. - Referencia de voltaje Programable on-chip (CVREF) mdulo (el % de VDD). - Referencia fija (0.6V) de voltaje. - Entradas y salidas de comparador externamente accesible. - El modo SR Latch. - Timer 1 Puerta externa (cuenta habilitada). Conversor A / D: - Resolucin de 10-bit y 14 canales. Timer0: Contador/temporizador de 8-bits con pre-escala programable El Timer1 Extendido:

39

Unidad Educativa Tcnico Salesiano

Ing. Pablo Rodas

MECATRONICA SISTEMAS MICROCONTROLADOS


-

Contador/temporizador de 16-bits con pre-escala El modo de entrada externa. Oscilador dedicado de 31 el oscilador de kilohercio en modo bajo consumo. Timer2: Contador/temporizador de 8-bits con 8 bits de periodo, Prescaler y Postscaler. Modulo extendido Compara, captura PWM. - La captura de 16 bits, resolucin mxima de 12.5 ns - Haga una comparacin, tope. decisin 200 ns - PWM de 10 bits con 1, 2 o 4 canales de salida programables, "tiempo muerto" Frecuencia mxima de salida 20 kilohercios. - Control de la direccin de salida PWM Captura, Compare, PWM Module: - La captura de 16 bits, max. resolucin 12.5 ns. - Compara de 16 bits, max. resolucin de 200 ns. - PWM de 10 bits, max. frecuencia 20 kilohercios. USART realzado Module: - Soporte RS-485, RS-232, y LIN 2.0 - El Autobaudio Detecte - El auto wake-up con un Start-bit. In-Circuit Serial ProgrammingTM (ICSPTM) por dos pines. Modulo Master Synchronous Serial Port (MSSP) soporta 3-wire SPI (los 4 moods) e I2C. en modos Maestros y Esclavos con I2C Address Mask. Cada una de sus pines puede proveer mximo hasta 25mA de corriente.

3.2.1 Familia 16F88X


Aunque los PICs de esta familia tienen una constitucin interna similar cada uno tiene sus caractersticas y los podremos utilizar de acurdo a nuestras necesidades.

Caractersticas Frecuencia Mxima Memoria de programa FLASH-14bits Posiciones SRAM de datos

16F882 20Mhz

16F883 20Mhz

16F884 20Mhz

16F886 20Mhz

16F887 20Mhz

2KB

4KB

4KB

8KB

8KB

128

128

256

256

368

40

Unidad Educativa Tcnico Salesiano

Ing. Pablo Rodas

MECATRONICA SISTEMAS MICROCONTROLADOS


16F882 16F883 16F884 16F886

Caractersticas Posiciones EEPROM de datos Ports E/S N de Pines Interrupciones Timers Mdulos CCP y ECCP Comunicaciones Serie EUSART/ MSSP Comparadores analgicos Convertidor A/D de 10 bits

16F887

128

256

256

256

256

24 28 10 3 1/1

24 28 11 3 1/1

35 40 13 3 1/1

24 28 14 3 1/1

35 40 13 3 1/1

1/1

1/1

1/1

1/1

1/1

11

11

14

11

14

3.3 Arquitectura Interna:


A continuacin se da una breve descripcin de los bloques ms importantes de este dispositivo: Memoria de Programa y de Datos: Estos bloques son muy importantes ya que nos permiten almacenar el programa a ejecutarse y las variables temporales que el programa necesite. Buses de Datos, Direcciones y Control: Son los encargados de transmitir las seales y la informacin para controlar a todos los distintos bloque del microcontrolador. Contador de Programa: Es el encargado de direccionar una por una, en orden ascendente, las casillas de la memoria de programa, excepto cuando se trata de subrutinas, saltos o interrupciones. Este contador siempre empieza en cero, es decir, siempre lee la casilla cero de la memoria de programa despus de un reset o del encendido del uC.

41

Unidad Educativa Tcnico Salesiano

Ing. Pablo Rodas

MECATRONICA SISTEMAS MICROCONTROLADOS

Pila (Stack): Cuando como resultado de una subrutina o interrupcin el contador de programa tiene que dejar de contar en orden normal, para cargar una nueva direccin, la direccin actual se guarda en la pila, de esta manera cuando el uC sabe dnde estaba antes de ir a la subrutina o a la interrupcin. Control y decodificador de Instrucciones: En este bloque se entiende la orden o instruccin guardada en la memoria de programa, y por ende es el encargado de controlar todo el resto del uC. Generador de Tiempos: Aqu se recibe la seal del reloj externo (reloj significa un tren de pulsos), y se distribuye por todo el sistema de manera que todos trabajan a la misma velocidad. ALU (Unidad Lgica Aritmtica): La ALU es la encargada de realizar las operaciones aritmticas y lgicas entre las que se incluyen suma, resta, AND, OR, XOR y NOT. Registro Acumulador o W (working): Este registro es el ms importante de todos, porque a travs de l, se realizan un sin nmero de operaciones e instrucciones, en especial aquellas relacionadas con la ALU. Registro de Estado (STATUS): Este se utiliza para indicar entre otras cosas, el resultado de una operacin en la ALU. Por ejemplo si una suma dio como resultado un nmero mayor a 8 bits, un bit dentro de este registro indica esta condicin (bit de carry), por otra parte si el resultado de cualquier operacin fue cero, otro bit indicar esta condicin (bit zero).

42

Unidad Educativa Tcnico Salesiano

Ing. Pablo Rodas

MECATRONICA SISTEMAS MICROCONTROLADOS

Figura 3.1 Arquitectura interna del uC

43

Unidad Educativa Tcnico Salesiano

Ing. Pablo Rodas

MECATRONICA SISTEMAS MICROCONTROLADOS

3.4 Descripcin de pines


La mayora de los pines del microcontrolador PIC16F887 son multipropsito como se muestra en la figura anterior. Por ejemplo, la asignacin RA3/AN3/Vref+/C1IN+ para el quinto pin del microcontrolador indica que ste dispone de las siguientes funciones:

RA3 Tercera entrada/salida digital del puerto A AN3 Tercera entrada analgica Vref+ Referencia positiva de voltaje C1IN+ Entrada positiva del comparador C1

La funcionalidad de los pines presentados anteriormente es muy til puesto que permite un mejor aprovechamiento de los recursos del microcontrolador sin afectar a su funcionamiento. Estas funciones de los pines no se pueden utilizar simultneamente, sin embargo se pueden cambiar en cualquier instante durante el funcionamiento.

Figura 3.2 Distribucin de pines del PIC 16F88X

Las siguientes tablas se refieren al microcontrolador DIP de 40 pines.

44

Unidad Educativa Tcnico Salesiano

Ing. Pablo Rodas

MECATRONICA SISTEMAS MICROCONTROLADOS

Tabla 3.1 Descripcin de pines

45

Unidad Educativa Tcnico Salesiano

Ing. Pablo Rodas

MECATRONICA SISTEMAS MICROCONTROLADOS

46

Unidad Educativa Tcnico Salesiano

Ing. Pablo Rodas

MECATRONICA SISTEMAS MICROCONTROLADOS

47

Unidad Educativa Tcnico Salesiano

Ing. Pablo Rodas

MECATRONICA SISTEMAS MICROCONTROLADOS

Puertos de Propsito General (PORT A, B, C, D, E): Los puertos no son ms que los pines externos del uC, estos puertos pueden ser programados para actuar como entradas de datos (ej. Observar el estado de un pulsante, dipswitch, sensores, teclados, etc.) o como salida de datos (ej. Controlar el encendido de Leds, Displays, Motores, etc.). Perifricos Especficos: Son un conjunto de circuitos especializados que realizan funciones especficas (Temporizadores, Conversor Analgico Digital, etc.), comparten pines con los puertos, es decir, cuando los pines son utilizados por los perifricos especficos no se pueden utilizar los puertos como simples entrada y salidas. Pin de Reset: Cuando se da un cero (tierra) en esta pin, el uC vuelve a cero, es decir el contador de programa regresa a la casilla cero y empieza de nuevo. Funciones Especiales del CPU: Son un conjunto de bloques que permiten mejorar el rendimiento y la utilizacin de este dispositivo. Entre los ms importantes estn: detector de baja tensin, autoreset de inicializacin, temporizador contra fallos, circuito para programacin en lnea, etc.

3.5 Descripcin de memoria. 3.5.1 Memoria de Programa:


La familia de uC PIC16XXXX es capaz de soportar hasta 8K (8096 casillas) de memoria de programa ordenadas en pginas de 2K. Como ya se haba mencionado, para leer cada casilla de memoria se hace uso del Contador de Programa el cual no es ms que la unin de dos registros llamados PCL y PCLATH cada uno de 8 bits, juntos pueden leer todas las casillas de memoria.

48

Unidad Educativa Tcnico Salesiano

Ing. Pablo Rodas

MECATRONICA SISTEMAS MICROCONTROLADOS

FIGURA 3.3 Memoria de programa

Normalmente estos dos registros siempre cuentan en forma normal, es decir, con cada ciclo de mquina aumentan uno a su conteo binario. Pero existen instrucciones u rdenes que hacen que estos registros cambien su conteo normal, y en vez de leer la siguiente casilla se dirijan a otras casillas de memoria. Adicionalmente al Contador de Programa, se encuentra la pila de programa o pila de direcciones, que es un espacio de 8 casillas independiente de la memoria del dispositivo, que el contador de programa utiliza para guardar la direccin de la ltima casilla leda ms uno, a la cual debe regresar siempre que se va a producir un salto del que se tiene que regresar (ej. Subrutinas e Interrupciones).

49

Unidad Educativa Tcnico Salesiano

Ing. Pablo Rodas

MECATRONICA SISTEMAS MICROCONTROLADOS

3.5.2 Memoria de Datos tipo RAM:

Figura 3.4 Memoria RAM

50

Unidad Educativa Tcnico Salesiano

Ing. Pablo Rodas

MECATRONICA SISTEMAS MICROCONTROLADOS

La memoria de datos tipo RAM al igual que la de programa tambin se encuentra dividida en bloques o bancos, especficamente se tienen 4 bancos de memoria de datos cada uno con 128 registros (00 hasta 7F). Cada banco se subdivide en dos grupos de registros denominados: Registros de Funciones Especiales y Registros de Propsito General.
Los registros especiales se utilizan entre otras cosas para: analizar el comportamiento de la ALU, seleccionar bancos de memoria, configurar interrupciones o activar/desactivar, leer/escribir o configurar un perifrico especfico. Por otro lado los registros de propsito general, son los lugares en donde se colocaran a las variables que sean utilizadas en el programa.

3.5.3 Memorias de Datos tipo EEPROM:


Este sector de memoria encuentra gran aplicabilidad en proyectos que incluyan guardar datos en forma no voltil, es decir, datos que no se pierdan incluso despus de quitar la alimentacin del uC. Como ejemplos se encuentran los sistemas de alarmas para casas, edificios, etc. donde es necesario cambiar los cdigos de acceso, constantemente sin que para eso se tenga que volver a grabar el programa original con la clave cambiada, otro ejemplo pueden ser sistemas de temporizacin de eventos para invernaderos, luces automticas, ventiladores, etc., para los cuales puede ser necesario configurar peridicamente diferentes tiempos de activacin y desactivacin. En general la EEPROM de datos que dispone el uC, se caracteriza por tener un sistema de grabado y borrado integrado, lo cual elimina la necesidad de tener una fuente adicional ya que funciona con la misma tensin que es alimentado el integrado, adems los tiempos de programacin son muy pequeos (5ms o menos). Sin embargo una desventaja es que solo se disponen de 256 bytes que pueden ser programados, aunque para la gran mayora de aplicaciones esto es ms que suficiente.

3.6 Puertos de Entrada y Salida:


Las puertas de E/S digital son el perifrico ms simple de todos los que aparecen en los PIC y nos servirn para leer o escribir valores digitales desde o hacia el exterior. En algunos puertos estos pines estn multiplexados con otras funciones alternativas (convertidores A/D, E/S serie, etc.). En el caso que lo tengamos para esa funcin, el pin no podr funcionar como E/S digital. Los pines de las puertas E/S pueden ser seleccionados de forma individual para que acten como pines de entrada o de salida, a travs de los registros TRIS, de tal forma que si TRISX<n> es:

0 => Pin n de la puerta X acta como salida. 1 => Pin n de la puerta X acta como entrada. 51 Unidad Educativa Tcnico Salesiano

Ing. Pablo Rodas

MECATRONICA SISTEMAS MICROCONTROLADOS

Cuando se produce un reset TRIS se pone a 1, configurando as las puertas como entradas y evitando que se active indebidamente algn dispositivo externo que estuviera conectado al PIC. La configuracin tpica para las puertas E/S se ve en la figura/

Figura 3.5 Circuito de un puerto general

En el PIC16F88x se dispone de 6 puertos de entrada y salida de propsito general que multiplexan funciones con los perifricos internos. PORTA: Posee 8 lneas, este puerto junto con el PORTE, son las entradas del Mdulo conversor A/D y del TIMER 0. PORTB: Posee 8 lneas, este puerto es comnmente utilizado para el manejo de teclados matriciales y en general cualquier tipo de pulsante o interruptor ya que posee resistencias internas de pull-up configurables e interrupciones programables por cambio de estado. PORTC: Posee 8 lneas, este puerto es usado por el puerto de comunicaciones seriales (USART), el TIMER1 y el Mdulo de CCP. PORTD: Posee 8 lneas, este puerto es usado por el Mdulo de Comunicaciones Paralelas como bus de Datos. PORTE: Posee 4 lneas, este es utilizado para generar las seales de control para el Mdulo de Comunicaciones Paralelas.
Cada lnea de un puerto puede ser programada para operar como entrada o como salida independientemente de cmo estn programadas el resto de lneas del mismo puerto. Esto resulta de gran ayuda para evitar el desperdicio de lneas, considere como ejemplo de desperdicio el puerto paralelo de una computadora. Para permitir esta funcionalidad de los puertos, cada uno posee dos registros llamados TRISX y PORTX (X = A,B,C,D,E) cada uno de 8 bits (en el caso de puertos con menos de 8 lneas los bits sobrantes no se utilizan). El registro TRIS se utiliza para configurar una lnea como entrada (1) o como salida (0), en cambio que el registro PORT se utiliza para leer o escribir 1s o 0s en las lneas del puerto.

52

Unidad Educativa Tcnico Salesiano

Ing. Pablo Rodas