¡Descarga Manual teórico pic16f84a y más Guías, Proyectos, Investigaciones en PDF de Electrotecnia solo en Docsity!
LISTA DE FIGURAS
FIGURA 1.4.1.1 DIAGRAMA DE CONEXIONES DE LOS PIC12CXXX DE LA GAMA ENANA...................... 4
FIGURA 1.4.2.1. DIAGRAMA DE CONEXIONES DE LOS PIC DE LA GAMA BAJA QUE RESPONDEN A LA
NOMENCLATURA PIC16C54/56...................................................................... 5
FIGURA 1.4.3.1. DIAGRAMA DE CONEXIONES DE LOS PIC16C8X, MODELOS REPRESENTATIVOS DE LA
GAMA MEDIA................................................................................................. 6
FIGURA 1.4.4.1 DIAGRAMA DE CONEXIONES DE LOS PIC DE LA GAMA ALTA QUE CORRESPONDEN A LA
NOMENCLATURA PIC17C75X........................................................................ 7
FIGURA 2.1.1.1. DIAGRAMA DE PINES DEL PIC16F84.................................................................. 11
FIGURA 2.2.2.1. ARQUITECTURA INTERNA DEL PIC16F84A.......................................................... 14
FIGURA 2.2.4.1 LOS IMPULSOS DEL RELOJ EXTERNO (OSC1) SE DIVIDEN POR 4 FORMANDO LAS SEÑALES
Q1, Q2, Q3 Y Q4, QUE CONFIGURAN UN CICLO DE INSTRUCCIÓN....................... 16
FIGURA 2.2.4.2. LA SEGMENTACIÓN PERMITE TRASLAPAR EN EL MISMO CICLO LA FASE DE EJECUCIÓN DE
UNA INSTRUCCIÓN Y LA DE BÚSQUEDA DE LA SIGUIENTE, EXCEPTO EN LAS
INSTRUCCIONES DE SALTO.............................................................................. 16
FIGURA 2.3.1.1. ORGANIZACIÓN DE LA MEMORIA DE PROGRAMA...................................................... 18
FIGURA 2.3.2.1. ORGANIZACIÓN DE LA MEMORIA RAM DEL PIC16F84A..................................... 19
FIGURA 2.3.2.3.1. DIRECCIÓN Y MAPEO DE BITS DEL REGISTRO ESTADO (STATUS)..................... 22
FIGURA 2.3.2.3.2. DIRECCIÓN Y MAPEO DE BITS DEL REGISTRO OPTION Y TMR0......................... 24
FIGURA 2.3.2.4.1. MAPEO DE BITS DEL REGISTRO INTCON......................................................... 25
FIGURA 2.3.2.5.1 CARGA DEL CONTADOR DE PROGRAMA................................................................ 27
FIGURA 2.3.3.1. MAPEO GENERAL DE BANCOS DE LOS DISPOSITIVOS PIC.......................................... 29
FIGURA 2.3.3.1.1. DIRECCIONAMIENTO DIRECTO EN EL PIC16F84................................................. 30
FIGURA 2.3.3.2.1. DIRECCIONAMIENTO INDIRECTO EN LOS DISPOSITIVOS PIC.................................... 31
FIGURA 2.3.4.1. LA INSTRUCCIÓN CALL Y LA INTERRUPCIÓN, PROVOCAN LA CARGA AUTOMÁTICA DEL
CONTENIDO DEL PC EN LA PILA..................................................................... 33
FIGURA 2.3.4.2. LAS INSTRUCCIONES DE RETORNO DE SUBRUTINA O DE INTERRUPCIÓN DESCARGAN
AUTOMÁTICAMENTE EL CONTENIDO DEL NIVEL 1 DE LA PILA SOBRE EL PC............ 33
FIGURA 2.4.1. MAPEO DE DIRECCIONES DE LOS PUERTOS................................................................. 34
FIGURA 2.4.1.1. LOS PUERTOS NO UTILIZADOS SE DEBEN CONECTAR A LA FUENTE............................... 35
FIGURA 2.4.1.2. CAPACIDAD MÁXIMA DE CORRIENTE QUE SOPORTAN LOS PUERTOS.............................. 35
FIGURA 2.4.2.1. UBICACIÓN DE PORTA Y TRISA EN LOS BANCOS DEL PIC.................................. 36
FIGURA 2.4.2.2. DIAGRAMA DE CONEXIONES DE LOS PINES RA3-RA0 A LAS SEÑALES DEL PROCESADOR
FIGURA 2.4.3.1. UBICACIÓN DE PORTB Y TRISB EN LOS BANCOS DEL PIC.................................. 39
FIGURA 2.4.3.2. CONEXIONADO DE LOS PINES RB7 – RB4 Y LAS LÍNEAS CORRESPONDIENTES AL BUS
INTERNO DE DATOS Y LAS SEÑALES DE CONTROL. .............................................. 40
FIGURA 2.4.3.3. CONEXIONADO DE LOS PINES RB3 – RB0 Y LAS LÍNEAS CORRESPONDIENTES AL BUS
INTERNO DE DATOS Y LAS SEÑALES DE CONTROL................................................ 41
FIGURA 2.5.1. DIAGRAMA SIMPLIFICADOR DEL TEMPORIZADOR TMR0............................................. 44
FIGURA 2.5.2. ESQUEMA SIMPLIFICADO DEL CIRCUITO DE CONTROL DE TIEMPOS USADO EN LOS
PIC16X8X............................................................................................... 45
FIGURA 2.5.3. ESQUEMA GENERAL DEL FUNCIONAMIENTO DEL TMR0.
ii
FIGURA 2.7.2. ORGANIGRAMA DEL DESARROLLO DE UNA INTERRUPCIÓN, TENIENDO EN CUENTA EL PAPEL
FIGURA 2.7.2.2. LÓGICA DE CONTROL PARA LA GENERACIÓN DE UNA INTERRUPCIÓN EN LOS PIC16X8X
FIGURA 5.10.5.1. CIRCUITO DE APLICACIÓN PARA LA PRÁCTICA 10................................................ 194
FIGURA 5.11.3.1. DIAGRAMA DE FLUJO DE LA PRÁCTICA 11. ....................................................... 196
FIGURA 5.11.5.1. CIRCUITO DE APLICACIÓN PARA LA PRÁCTICA 11................................................ 200
v
LISTA DE TABLAS
TABLA 1.4.1.1 CARACTERÍSTICAS DE LOS MODELOS PIC12C(F)XXX DE LA GAMA ENANA................. 5
TABLA 1.4.2.1. PRINCIPALES CARACTERÍSTICAS DE LOS MODELOS DE LA GAMA BAJA............................. 6
TABLA 1.4.3.1. CARACTERÍSTICAS RELEVANTES DE LOS MODELOS PIC16X8X DE LA GAMA MEDIA........ 7
TABLA 1.4.4.1 CARACTERÍSTICAS MÁS DESTACADAS DE LOS MODELOS PIC17CXXX DE LA GAMA ALTA 8
TABLA 2.1.1.1. LISTA DE CARACTERÍSTICAS DEL PIC16F8X.......................................................... 10
TABLA 2.3.2.2.1. ORGANIZACIÓN DETALLADA DE LOS REGISTROS DEL PIC16F84A.......................... 21
TABLA 2.3.2.3.1 VALOR DE PREESCALA ASIGNADO AL DIVISOR DE FRECUENCIA................................ 25
TABLA 2.4.2.1. DESCRIPCIÓN DE LAS TERMINALES DEL PUERTO A.................................................... 38
TABLA 2.4.3. 1. DESCRIPCIÓN DE LAS TERMINALES DEL PUERTO B................................................... 42
TABLA 2.5.1.1. DISTRIBUCIÓN Y ASIGNACIÓN DE FUNCIONES DE LOS BITS DEL REGISTRO OPTION...... 49
TABLA 2.9.1.1. VALORES QUE TOMAN LOS BITS DE LOS REGISTROS SFR TRAS LOS POSIBLES RESET..... 73
TABLA 2.9.3.1. LOS BITS Y DEL REGISTRO DE STATUS DETERMINAN LA CAUSA QUE HA ORIGINADO EL
RESET........................................................................................................ 74
TABLA 2.10.1. CONSECUENCIAS DEL MODO DE REPOSO................................................................. 76
TABLA 2.10.1.1. STATUS Y SIGNIFICADO DE LOS SEÑALIZADORES Y ............................................ 77
TABLA 2.10.2.1. INSTRUCCIONES QUE EJECUTA EL PIC CUANDO “DESPIERTA”
POR UNA INTERRUPCIÓN SEGÚN EL VALOR DE BIT GIE....................................... 78
TABLA 2.11.1.1. VALORES RECOMENDADOS PARA LOS COMPONENTES DEL OSCILADOR RC
CON RESPECTO A LA FRECUENCIA DESEADA....................................................... 81
TABLA 2.11.2.1. TABLA DE SELECCIÓN DE CRISTAL Y CAPACITOR..................................................... 82
TABLA 2.12.2. COMBINACIONES PARA ELEGIR EL TIPO DE OSCILADOR............................................... 86
TABLA 2.15.1.1. CLASIFICACIÓN DE FORMATOS............................................................................. 90
TABLA 2.15.2.1. JUEGO DE INSTRUCCIONES DEL PIC16F84A...................................................... 91
TABLA 2.15.2.1.1. PRINCIPALES CARACTERÍSTICAS DE LAS INSTRUCCIONES DE LOS PIC16X8X ......... 92
TABLA 2.15.2.2.1. CARACTERÍSTICAS MÁS IMPORTANTES DE LAS DOS INSTRUCCIONES
QUE MANEJAN UN BIT DETERMINADO DE UN REGISTRO........................................ 93
TABLA 2.15.2.3.1. CARACTERÍSTICAS MÁS RELEVANTES DE LAS CUATRO INSTRUCCIONES CONDICIONALES
DE BRINCO.................................................................................................. 93
TABLA 2.15.2.4.1. CARACTERÍSTICAS MÁS IMPORTANTES DE LAS INSTRUCCIONES QUE MANEJAN
OPERANDOS INMEDIATOS (K).......................................................................... 94
TABLA 2.15.2.5.1. PRINCIPALES CARACTERÍSTICAS DE LAS INSTRUCCIONES DEL CONTROL DEL FLUJO DEL
PROGRAMA Y DE LAS ESPECIALES.................................................................... 95
vi
CAPÍTULO 1. INTRODUCCIÓN A LOS
MICROCONTROLADORES
1.1 ¿Qué es un microcontrolador?
El microcontrolador se emplea en aplicaciones concretas y no es universal como el
microprocesador.
Un microcontrolador es un circuito integrado que contiene una Unidad Central de
Proceso (CPU) y una serie de recursos internos en un solo encapsulado. El CPU permite
que el microcontrolador pueda ejecutar instrucciones almacenadas en una memoria. Los
recursos internos son memoria RAM, memoria ROM, memoria EEPROM, puerto serie,
puertos de entrada/salida, temporizadores, comparadores, etc. Se puede decir que es una
evolución del microprocesador, al añadirle a este último las funciones que antes era
necesario situar externamente con otros circuitos. El ejemplo típico esta en los puertos de
entrada/salida y en la memoria RAM, en los sistemas con microprocesadores es necesario
desarrollar una lógica de control y unos circuitos para implementar las funciones anteriores,
con un microcontrolador no hace falta porque lo lleva todo incorporado, además en el caso
de tener que ampliar el sistema ya ofrece recursos que facilitan esto. En resumen, un
microcontrolador es un circuito integrado independiente, que no necesita memoria ni
puertos externos pues los lleva en su interior, que facilita la tarea de diseño y reduce el
espacio, traduciéndose todo a una aplicación final más económica y fiable.
1.2 Diferencia entre microcontrolador y microprocesador
En el diseño de un sistema con un microprocesador, además del procesador y
dependiendo del circuito, se requiere de algunos circuitos integrados adicionales, como por
ejemplo: memorias RAM para almacenar los datos temporalmente y memorias ROM para
almacenar el programa que se encargará 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
electrónicos 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, salida y otros periféricos.
1.3 Historia de los microcontroladores
En 1965 GI formó una división de microelectrónica, destinada a generar las
primeras arquitecturas viables de memoria EPROM y EEPROM. De forma complementaria
GI Microelectronics División fue también responsable de desarrollar una amplia variedad
de funciones digitales y analógicas en las familias AY3-xxxx y AY5-xxxx.
GI también creó un microprocesador de 16 bit, denominado CP1600, a principios de
los 70’s. Este fue un microprocesador razonable, pero no particularmente bueno manejando
puertos de e/s. Alrededor del año 1975 GI diseño un controlador de interfase periférico
(PIC) para algunas aplicaciones muy específicas. Fue diseñado para ser muy rápido,
además de ser un controlador de e/s para una máquina de 16 bits pero sin necesitar una gran
cantidad de funcionalidades, por lo que su lista de instrucciones fue pequeña.
No es de extrañar que la estructura diseñada en 1975 es, sustancialmente, la
arquitectura del actual PIC16C5x. Además, la versión de 1975 fue fabricada con tecnología
NMOS y sólo estaba disponible en versiones de ROM de máscara, pero seguía siendo un
buen pequeño microcontrolador. El mercado, no obstante, no pensó así y el PIC quedó
reducido a ser empleado únicamente por grandes fabricantes.
Durante los 80’s, GI renovó su apariencia y se reestructuró, centrando su trabajo en
sus principales actividades, semiconductores de potencia esencialmente, lo cual siguen
haciendo actualmente con bastante éxito. GI Microelectronics Division cambió a GI
Microelectronics Inc (una especie de subsidiaria), la cual fue finalmente vendida en 1985 a
Venture Capital Investors, incluyendo la fábrica en Chandler, Arizona. La gente de Ventura
realizó una profunda revisión de los productos en la compañía, desechando la mayoría de
los componentes AY3, AY5 y otra serie de cosas, dejando sólo el negocio de los PIC y de
las memorias EEPROM y EPROM. Se tomó la decisión de comenzar una nueva compañía,
denominada Arizona Microchip Technology, tomando como elemento diferenciador sus
controladores integrados.
Tabla 1.4.1.1 Características de los modelos PIC12C(F)XXX de la gama enana
MODELO MEMORIA
PROGRAMA
MEMORIA
DATOS
FRECUENCIA
MÁXIMA
LÍNEAS
E/S
ADC
8 BITS
TEMPORIZADORES PINES
PIC12C508 512x12 25x8 4MHz 6 TMR0 + WDT 8
PIC12C509 1024x12 41x8 4MHz 6 TMR0 + WDT 8
PIC12C670 512x14 80x8 4MHz 6 TMR0 + WDT 8
PIC12C671 1024x14 128x8 4MHz 6 2 TMR0 + WDT 8
PIC12C672 2048x14 128x8 4MHz 6 4 TMR0 + WDT 8
PIC12C680 512x12 FLASH 16x8 EPROM^ 80x8 4MHz 6 4 TMR0 + WDT 8
PIC12C681 1024x14 FLASH 16x8 EPROM^ 80x8 4MHz 6 TMR0 + WDT 8
1.4.2 PIC16C5X Familia base (Gama baja o básica)
La familia 16C5X se consolidó como la base en el desarrollo de nuevas tecnologías
ofreciendo la solución costeable más efectiva. Estos microcontroladores cuentan con un
conjunto de instrucciones de 12 bits de ancho, 33 instrucciones, 2 niveles de acumulador,
sin interrupciones. En algunos casos la memoria es del tipo ROM, definida en fábrica y se
ofrecen en empaquetados de 18, 20 y 22 pines. En opciones de empaquetado SOIC o SSOP.
Con bajo voltaje de operación hasta de 2 volt, hacen de esta familia un elemento ideal para
ser operado en aplicaciones con baterías. En la figura 1.4.2.1 se muestra el PIC16C54,
microcontrolador perteneciente a la familia base. En la tabla 1.4.2.1 se muestran las
características de algunos microcontroladores que forman parte de la gama baja.
Figura 1.4.2.1. Diagrama de conexiones de los PIC de la gama baja que responden a la nomenclatura
PIC16C54/
Tabla 1.4.2.1. Principales características de los modelos de la gama baja
MODELO MEMORIA
PROGRAMA
(x12 Bits)
EEPROM ROM
MEMORIA
DATOS
(Bytes)
FRECUENCIA
MÁXIMA
LÍNEAS
E/S
TEMPORIZADORES PINES
PIC16C52 384 25 4 MHz 4 TMR0 + WDT 18
PIC16C54 512 25 20 MHz 12 TMR0 + WDT 18
PIC16C54A 512 25 20 MHz 12 TMR0 + WDT 18
PIC16CR54A 512 25 20 MHz 12 TMR0 + WDT 18
PIC16C55 512 24 20 MHz 20 TMR0 + WDT 28
PIC16C56 1 K 25 20 MHz 12 TMR0 + WDT 18
PIC16C57 2 K 72 20 MHz 20 TMR0 + WDT 28
PIC16CR57B 2 K 72 20 MHz 20 TMR0 + WDT 28
PIC16C58A 2 K 73 20 MHz 12 TMR0 + WDT 18
PIC16CR58A 2 K 73 20 MHz 12 TMR0 + WDT 18
1.4.3 PIC16CXXX Familia de rango medio (Gama media)
La familia de rango medio ofrece un amplio rango de opciones, desde
empaquetados de 18 hasta 44 pines, así como un alto nivel de integración de periféricos.
Esta familia cuenta con un conjunto de instrucciones de 14 bits de ancho, 35 instrucciones,
8 niveles de acumulador. El PIC16C84 posee memoria EEPROM. y la capacidad de
manejar interrupciones. En la figura 1.4.3.1 se muestra el PIC16C745, microcontrolador
perteneciente a la familia base. En la tabla 1.4.3.1 se muestran las características de algunos
microcontroladores que forman parte de la gama media.
Figura 1.4.3.1. Diagrama de conexiones de los PIC16C8X, modelos representativos de la gama media.
Tabla 1.4.4.1 Características más destacadas de los modelos PIC17CXXX de la gama alta
MODELO (^) PROGRAMAMEMORIA MEMORIA DATOS RAM (Bytes) REGISTROS ESPECÍFICOS TEMPORIZADORES^ CAP^ PWM^ CAD 10 bit INTERRUPCIONES^ E/S^ MULTIPLICADOR HARDWARE PINES PIC17C42A 2Kx16 232 48 4 + WDT 2 2 11 33 8 x 8 40/ PIC17C43 4Kx16 454 48 4 + WDT 2 2 11 33 8 x 8 40/ PIC17C44 8Kx16 454 48 4 + WDT 2 2 11 33 8 x 8 40/ PIC17C752 8Kx16 454 76 4 + WDT 4 3 12 18 50 8 x 8 64/ PIC17C756 16Kx16 902 76 4 + WDT 4 3 12 18 50 8 x 8 64/ CAP= Capturador; PWM= Modulador por ancho de pulso; CAD= Convertidor Análogo/Digital
CAPÍTULO 2. CARACTERÍSTICAS DEL PIC16F84A
2.1 Generalidades del PIC16F84A
2.1.1 Descripción general del PIC16F84A
El PIC16F84 al igual que la versión mejorada de mayor velocidad PIC16F84A
pertenecen a la familia de microcontroladores de 8 bits PIC16CXX, los cuales son de bajo
costo, alto rendimiento y CMOS. Este grupo contiene los siguientes dispositivos:
• PIC16F
• PIC16F
• PIC16F84A
• PIC16CR
• PIC16CR
Todos los microcontrollers de PICmicro™ emplean una avanzada Arquitectura
RISC (Computadores de Juego de Instrucciones Reducido). Los dispositivos PIC16F8X
han reforzado características principales, pila profunda de ocho niveles y múltiples fuentes
de interrupción internas y externas.
La separación del bus de instrucciones y del bus de datos en la arquitectura Harvard
da lugar a un ancho de la palabra de instrucción de 14 bits, con un bus de datos separado de
8 bits de ancho. Los dos conductos de fase de instrucción permite que todas las
instrucciones se ejecuten en un solo ciclo, excepto por los saltos del programa, los cuales
requieren dos ciclos.
Un total de 35 instrucciones (Juego de instrucciones reducido) están disponibles.
Adicionalmente un set del registro largo es usado para lograr un nivel de alto rendimiento.
Los microcontroladores PIC16F8x típicamente logran una compresión de código de
2:1 y un incremento de 4:1 en la mejora de velocidad (a 20 MHz) sobre otros
microcontroladores de 8 bits de su misma clase.
En la tabla 2.1.1.1 se muestran las características principales de la serie de
microcontroladores PIC16F8x.
Esto es muy útil en situaciones, donde el dispositivo es difícilmente accesible.
También es útil en aplicaciones remotas donde el código necesita ser actualizado.
El PIC16F8x encaja perfectamente en rangos de aplicaciones donde se requiere
controlar pequeños motores, en la utilización de censores remotos de baja potencia, cerrojos
electrónicos y pequeñas tarjetas con dispositivos de seguridad.
La tecnología Flash/EEPROM optimiza los programas de aplicación (transmisión de
códigos, velocidad de motores, receptor de frecuencias, códigos de seguridad, etc. )
volviéndolos extremadamente rápidos y convenientes.
Los pequeños empaques hacen perfectos a esta serie de microcontroladores para
todas las aplicaciones con limitaciones de espacio.
Bajo costo, bajo consumo de energía, alto rendimiento, fácil de usar y flexibilidad
en las entradas/salidas, hacen muy versátil al PIC16F8x en áreas donde no se habían
considerado los microcontroladores (funciones de temporizador, comunicación serie,
capturadores, comparadores, moduladores por ancho de pulso, y aplicaciones como
procesador).
La medida de programación serial en el sistema (por medio de dos pines), ofrece
flexibilidad en la optimización del producto después de haber sido ensamblado y probado.
Esta característica puede ser usada para agregar un número de serie a un producto,
una calibración o reestablecimiento de datos o programar el dispositivo con la firma de
software correspondiente antes de enviarlo.
El diagrama de pines del microcontrolador PIC16F84 se puede apreciar en la figura
Figura 2.1.1.1. Diagrama de pines del PIC16F
2.1.2 Características de la estructura RISC del CPU.
Las características de la estructura RISC del CPU son las siguientes:
- Solo 35 sencillas instrucciones para aprender.
- Todas las instrucciones son de un ciclo, excepto los saltos de programa que son
de dos ciclos.
- Velocidad: 20MHz (0.2us por instrucción)
- Memoria de programa de 1024 palabras
- Memoria RAM de 68 bytes
- Memoria EEPROM de 64 Bytes
- Palabras de instrucción de 14 bits de ancho
- Bytes de datos de 8 bits de ancho
- 15 registros de función especial en el hardware
- Pila de hardware de 8 niveles de profundidad
- Modos de direccionamiento directo e indirecto
- Cuatro fuentes de interrupción:
- Pin externo de RB0/INT
- Temporizador TMR0 de sobreflujo
- Interrupción en cambio PORTB <RB7:RB4>
- Escritura completa de la memoria EEPROM
2.1.3 Características de los periféricos
- 13 pines de entrada / salida con control individual de dirección
- Fuente / sumidero de alta corriente para controlador directo de LED.
- Sumidero de 25mA máximo por pin.
- Fuente de 25mA máximo por pin.
- Temporizador/ contador de 8 bits TMR0 con escala programable de 8
bits.