PIC 16F886
cvelasquez2 de Julio de 2014
28.469 Palabras (114 Páginas)526 Visitas
CURSO
BÁSICO
DE
PIC16F877
Raúl Peralta Meza
Carlos Quiñones Quispe
Generalidades
Historia e importancia de los microcontroladores
Metodología de estudio
Microcontroladores Microchip 16F87X
Arquitectura 16F87X
Arquitectura interna 16F87x
Ciclo de instrucción
Organización de la memoria
Herramientas
Módulo 1: Manejo de Puertos Digitales
Registros para el manejo de puertos digitales
Descripción general de las instrucciones
Lectura y escritura en puertos
Partes de un programa en ASM
Primer programa en ensamblador
Uso del MPLAB
Principales registros del PIC16F877 (STATUS)
Ejercicios
Reconocimiento del In Circuit Debugger
Ejercicio
Módulo 2: Manejo de Temporizadores
Módulo Timer 0
Diagrama de bloque y forma de operación del TMR0
Estructura Interna y Funcionamiento del TMR1
Operación del Timer1 en modo Temporizador
Timer1 en modo Contador Sincrono
Timer1 en modo Contador Asíncrono
Ejercicios
Módulo 3 : Convertidor Análogo Digital
Introducción
Descripción General
Requerimientos para la adquisición A/D
Selección del clock de conversión Analógica Digital
Configuración de los pines de los puertos para que trabajen de forma analógica
Conversiones A/D
Registros que almacenan el resultado de la conversión
Operación del módulo A/D durante la operación SLEEP
Efectos en el RESET
Ejercicios
Módulo 4: Comunicación Serie Asíncrona
Generalidades
Generador de Baudios
Trasmisor Asíncrono
Receptor Asíncrono
Ejercicios
Módulo 5 : Manejo de interrupciones
Interrupciones
Registro de Control de Interrupciones (INTCON)
Registro de permiso de interrupciones 1 (PIE1)
Registro de permiso de interrupciones 2 (PIE2)
Registros de los señalizadores de interrupciones 1 y 2 (PIR1 y PIR2)
Lógica de Interrupciones
Ejercicios
Módulo 6: Memoria EEPROM
Memoria de Datos EEPROM y Memoria FLASH de Programa
Los registros EECON1 y EECON2
Operación de lectura de la memoria de datos EEPROM
Operación de escritura en la memoria de datos EEPROM
Protección contra escrituras espurias
Ejercicios
Módulo 7 : Manejo de Páginas de Memoria y
Watch Dog
PCL Y PCLATCH
La Pila
Paginación de la memoria de programa
Metodología de acceso a funciones por medio de una solo página
Ejercicios
Perro guardian (WDR: WATCHDOG TIMER)
Modo de reposo o de bajo consumo
Ejercicio
Anexos
Tabla de códigos ASCII
Juego de instrucciones PIC16F877
Relación de ejercios
Generalidades
Historia e importancia de los microcontroladores
Hasta antes de la aparición de los microprocesadores (1971), la mayor parte de las
aplicaciones digitales en electrónica se basaban en la llamada lógica cableada, es decir, si
existía un problema este era analizado y se sintetizaba una función en base a la lógica de
boole que era la solución al problema planteado.
Con la aparición de los microprocesadores, se varió el esquema de diseño de tal forma que
un problema era descompuesto en una serie de tareas mas simples, el microprocesador
ejecutaba una serie de pasos o instrucciones para llevar a efecto cada una de las tareas, en
ocasiones no era necesario volver a armar un circuito para solucionar otro problema sino
que se cambiaba las instrucciones (programa) para obtener otra aplicación
Desde luego el microprocesador es como el cerebro que ejecuta operaciones de índole
aritméticas y lógicas por tanto no manejaba líneas externas (periféricos) más aún tampoco
tenia un lugar donde almacenar el programa y los datos que necesitaba el programa para
encontrar la respuesta al problema. El microprocesador buscaba una instrucción y la
ejecutaba; al conjunto de circuitos (hardware) que daban el soporte necesario al
microprocesador se le llamo sistema mínimo.
Con el pasar de los años el sistema mínimo se convirtió en un estándar, por otro lado la
escala de integración mejoro y posibilito (1976) sintetizar en un solo chip un sistema
mínimo, al cual se le llamo SISTEMA A que no era otra cosa que el primer
microcontrolador.
En consecuencia definimos así a un microcontrolador; como un procesador con su sistema
mínimo en un chip (incluye memoria para programa y datos, periféricos de entrada / salida,
conversores de AD y DA, módulos especializados en la transmisión y recepción de datos).
Desde luego que hay diferencias sustanciales como la arquitectura cerrada de un
microcontrolador, en cambio en un microprocesador es abierta, podemos sumar nuevos
dispositivos en hardware en función a las necesidades que la aplicación demande.
Otra diferencia entre los microcontroladores y los microprocesadores es que los primeros
cuentan con un set de instrucciones reducido en cambio la mayoría de los
microprocesadores tienen mayor cantidad de instrucciones. Por otro lado la mayoría de los
microcontroladores posee una arquitectura Harvard frente a una arquitectura Von Neuman
de los microprocesadores.
Los microcontroladores se especializan en aplicaciones industriales para resolver problemas
planteados específicos por ejemplo: los encontramos en los teclados o mouse de las
computadoras, son el cerebro de electrodomésticos, también los encontramos en las
industria automotriz, en el procesamiento de imagen y video.
Cabe señalar que los el aumento progresivo de la escala de integración y las técnicas de
fabricación hacen que cada vez aparezcan microcontroladores mas poderosos y rápidos.
Metodología de estudio
En el presente curso pretendemos aprender a usar microcontroladores. Aprender significa:
•Entender como funciona la arquitectura.
•Comprender y aplicar las instrucciones que tiene el dispositivo.
•Plantear soluciones a problemas.
•Aprender a usar la herramientas de programación y depuración. (ICD
•Detectar y corregir los errores sintácticos y lógicos.
•Optimizar el programa final.
En el desarrollo de texto implementaremos circuitos simples pero demostrativos de las
bondades y posibilidades de los microcontroladores. El proceso de diseño puede ser
expresado a través del siguiente diagrama de flujo:
Como podemos apreciar todo principia en una idea la cual se ha de plasmar en diagramas
de flujo o automatas o alguna otra metodologia que ayude al modelamiento, una vez
superado este punto procedemos a usar un editor de texto para codificar el diagrama de
flujo a través de las instrucciones con que cuenta el microcontrolador.
A continuación presentamos ese archivo a un programa ensamblador (si es que usamos el
lenguaje ensamblador) o un compilador (si usamos otro lenguaje como el C o Basic) aqui se
depuran los errores sintácticos que son errores en la estructura del lenguaje de
programación.
Una vez que superamos esa etapa procedemos a usar un software, para simular el
programa verificando que la solución es válida. En caso que la simulación indique errores
procedemos a replantear la solución retomando el punto inicial. Si la solución es la que
deseamos procedemos a grabar el programa (debidamente compilado) en el
microcontrolador haciendo uso de una herramienta (grabador de microcontroladores). En
este punto es posible aplicar un emulador o un ICD a fin de verificar que los resultados
elaborados por el simulador son apropiados, el emulador o ICD a diferencia del simulador
trabaja sobre hardware real. En caso que falle en este punto retomamos el diseño original.
Superada ambas fases procedemos a colocarlo sobre el hardware final que ha de operar.
Microcontroladores Microchip 16F87X
Casi todos los fabricantes de microprocesadores lo son también de microcontroladores, en el
mercado existen una serie de marcas bastante conocidas y reconocidas como es el caso de
Microchip, Motorola, Hitachi, etc. Hemos seleccionado a Microchip y en particular la serie
16F87X, motivos para usar este dispositivo sobran, el principal de ellos es la abundante
información y herramientas de diseño existente en el mercado (tanto local como
internacional). También salta a la vista el hecho que es sencillo en el manejo y contiene un
buen promedio elevado en los parámetros (velocidad, consumo, tamaño, alimentación).
Las principales características con que cuenta el 16F87X son:
• Procesador de arquitectura RISC avanzada
• Juego de 35 instrucciones con 14 bits de longitud. Todas ellas se ejecutan en un ciclo
de instrucción menos las de salto que tardan 2.
• Frecuencia de 20 Mhz
• Hasta 8K palabras de 14 bits para la memoria de codigo, tipo flash.
• Hasta 368 bytes de memoria de datos RAM
• Hasta 256 bytes de memoria de datos EEPROM
• Hasta 14 fuentes de interrupción internas y externas
• Pila con 8 niveles
...