Professional Documents
Culture Documents
INDICE
1) INTRODUCCIN 2) PATILLAJE 3) PIC - FUNCIONAMIENTO INTERNO
- ARQUITECTURA
4) INSTRUCCIONES DE PROGRAMACIN
INTRODUCCIN
El PIC 16F84 es un microcontrolador, es decir un computador completo pero de limitadas prestaciones, insertado en un chip de circuito integrado y con la fundamental caracterstica de ser programable, se utiliza para controlar una sola tarea mediante el programa introducido y que alberga en su memoria. La familia de los microcontroladores PIC sali al mercado en el ao 1985 de mano de la empresa Microchip Technology. Esta familia incluye un gran nmero de microcontroladores, entre ellos el 16F84. Su aplicacin hoy da es casi ilimitada y podemos encontrar uno para una necesidad concreta por lo cual tambin podemos encontrar infinidad de campos de trabajo de diseo y fabricacin, por ejemplo: La industria informtica acapara gran parte de los microcontroladores que se fabrican
La gran aceptacin del 16F84 se deben en gran medida a la facilidad de programacin, su reducido coste y su probada fiabilidad e incluso durabilidad ya que puede resistir el borrado y grabado 10.000 veces aproximadamente.
Patillas 6, 7, 8, 9, 10, 11, 12, 13 RB0-RB7: Es el PORT B. Corresponden a 8 lneas bidireccionales de E/S. Pueden manejar niveles TTL cuando la tensin de alimentacin aplicada en VDD es de 5V +/- 5%. RB0 puede programarse adems como entrada de interrupciones externas INT. Los pines de RB4 a RB7 pueden programarse para responder a interrupciones por cambio de estado. Las lneas RB6 y RB7 se corresponden con las lneas de entrada de reloj y entrada de datos respectivamente, cuando est en modo programacin del integrado. Patillas 15 y 16 OSC1/CLKIN y OSC2/CLKOUT. Corresponden a los pines de la entrada externa de reloj y salida de oscilador a cristal respectivamente. El PIC 16F84 contiene todas las partes de un computador en su interior y son las siguientes:
1)Procesador:
De arquitectura Harvard para conseguir elevados rendimientos en el procesamiento de las instrucciones frente a los tradicionales procesadores que utilizaban la arquitectura Von neumann.
2- EPROM: Se graba con un dispositivo mediante un ordenador, se borra con rayos UV para reprogramarse.
3- OTP: Se graba igual que la EPROM pero esta no se puede borrar. 4- EEPROM: La grabacin se realiza como la EPROM, es decir elctricamente y el borrado se realiza igual que la grabacin. Esta es la que utiliza el PIC 16F84. 5- FLASH: Posee las mismas caractersticas que la EEPROM pero el consumo es mucho menor y la capacidad de almacenamiento es mucho mayor.
5)Recursos auxiliares:
Circuito de reloj: Genera los impulsos que sincronizan el funcionamiento de todo el sistema.
Temporizadores: Necesarios para controlar tiempos. Perro guardin: Es el encargado de provocar una reinicializacin cuando el programa queda bloqueado. Conversores AD y DA: Permite enviar y recibir seales analgicas. Comparadores analgicos: Para verificar el valor de una seal analgica. Estado de reposo o de bajo consumo: En el que el sistema queda <congelado> y el consumo de energa se reduce al mximo.
La arquitectura interna del 16F84 incorpora tres caractersticas avanzadas de los grandes computadores como son el procesador tipo RISC, procesador segmentado y arquitectura Harward ya nombrada anteriormente. La arquitectura consta de 7 bloques que se muestran en la figura siguiente.
Los bloques de la arquitectura del procesador del PIC 16F84 son los siguientes:
1- Memoria de programa EEPROM de 1 K x 14 bits 2- Memoria de datos formada por dos reas. Una RAM de 58 registros y la otra EEPROM de 64 bytes. 3- Lnea de datos con una ALU de 8 bits y un registro de trabajo que recibe un operando y enva un resultado. El otro operando puede provenir del bus de datos o del propio cdigo de la instruccin. 4- Diversos recursos conectados al bus de datos, tales como Puertas de E/S, Temporizador TMR0,etc. 5- Base de tiempos y recursos auxiliares. 6- Direccionamiento de la memoria de programa en base al contador de programa ligado a una pila de 8 niveles de profundidad. 7- Direccionado directo e indirecto de la memoria RAM.
Memoria de programa:
El mapa de memoria de programa es capaz de contener 8.192 instrucciones de 14 bits cada una. El PIC 16F84 solo tiene implementadas 1 K posiciones, como se ver en la figura de la siguiente diapositiva, por lo que ignora los 3 bits de ms peso del contador de programa. El contador de programa est implementado sobre un par de posiciones de la memoria RAM. Los 8 bits de menos peso del PC residen en el registro PCL que ocupa la posicin de los dos bancos de memorias de datos. Los bits de ms peso residen en los 5 bits de menos peso del registro PCLATH, que ocupa la posicin 0A H de los dos bancos de la memoria RAM. Con los dos bits ms significativos del PC se apunta a una de las 4 pginas de 2 K del mapa de memoria. Pila caracterizada por ser zona aislada de las memorias de instrucciones y datos, tener estructura LIFO, 8 niveles de profundidad cada uno con 13 bits y posee un buffer circular.
CONTADOR DE PROGRAMA
Direccionamiento de la memoria de datos: En los PIC de la gama media la memoria de datos est organizada para alojar un mximo de 4 bancos de 128 bytes cada uno. El 16F84 solo tiene implementados los bancos 0 y 1. Se toman 9 bits para seleccionar una localidad en la memoria de bits como se ve en la siguiente figura.
MAPA DE REGISTROS
Registro STATUS:
Contiene el estado aritmtico de la ALU, el estado del reset y los bits para la seleccin del banco.
Registro OPTION:
Contiene varios bits de control para configurar el divisor de frecuencia o prescaler del TMR0/WDT, la interrupcin externa INT, TMR0 y los pull-ups en el PORTB
Registro INTCON
Contiene los bits para habilitar cada una de las fuentes de interrupcin.
instruccin
Descripcin
Suma el contenido del registro W al contenido del registro F, y almacena el resultado en W si d=0 y en el registro F si d=1. Si se produce acarreo el flag C se pone a 0. Realiza la operacin AND lgico entre el contenido del registro W y el contenido del registro F , y almacena el resultado en W si d=0 y en F si d=1. Se borra el contenido del registro F y el flag Z se activa ponindose a 1
Cdigo op
ADDWF f,d
ANDWF f,d
CLRF f
CLRW
COMF f,d
Realiza el complemento a 1 del contenido del registro f bit a bit. El resultado se almacena en el registro f si d=1 y en el registro W si d=0, en este caso f no varia. Se decrementa el contenido del registro f en una unidad. El resultado se almacena en f si d=1 y en W si d=0, en este caso f no varia.
DECF f,d
Decrementa el contenido del registro f DECFSZ f,d en una unidad, el resultado se almacena en f si d=1 y en W si d=0, en este caso f no vara. Si el resultado del decremento es 0, se ignora la siguiente instruccin y en este caso la instruccin tiene una duracin de dos ciclos.
INCF f,d
Se incrementa en una unidad el contenido del registro f, si d=1 el resultado se almacena en f, si d=0 el resultado se almacena en w, en este caso el resultado de f no vara.
INCFSZ f,d
Decrementa en una unidad el contenido de f, el resultado se almacena en f si d=1 y en w si d=0, en este caso f no vara. Si el resultado del decremento es 0, se ignora la siguiente instruccin y en este caso la instruccin tiene una duracin de dos ciclos.
El contenido del registro f se carga en el registro destino dependiendo del valor de d. Si d=0 el destino es el registro w, si d=1 el destino es el propio registro f . Esta instruccin permite verificar dicho registro ya que el flag Z queda afectado.
MOVF f,d
IORWF f,d
Efecta la operacin lgica OR entre los contenidos de los registros w y f, y almacena el resultado en f si d=1 y en w si d=0. Mueve el contenido del registro W al registro f. No realiza ninguna operacin, consume un ciclo de reloj sin hacer nada. Rotacin de un bit a la izquierda del contenido del registro f, pasando por el bit de acarreo C. Si d=1 el resultado se almacena en f, si d=0 el resultado se almacena en w. Rotacin de un bit a la derecha del contenido del registro f, pasando por el bit de acarreo C. Si d=1 el resultado se almacena en f, si d=0 el resultado se almacena en w.
MOVWF f
NOP
RLF f,d
RRF f,d
SUBWF f,d
Resta por complemento a dos el contenido del registro f menos el contenido del registro W y almacena el resultado en W si d = 0 y en f si d = 1. Los cuatro bits de mas peso del registro f se intercambian con los cuatro bits de menos peso del mismo registro. Si d = 0 el resultado se almacena en W y si d = 1 se almacena en f.
Realiza la operacin OR exclusiva entre el contenido del registro W y la constante k de 8 bits, el resultado se almacena en W.
SWAPF, f,d
XORWF f,d
BCF f,d
BSF f,d
BTFSC f,d
Si el bit b del registro f es cero, la instruccin que sigue a esta se ignora y se trata como un NOP. En este caso esta instruccin necesita dos ciclos para ejecutarse.
Si el bit b del registro f es uno, la instruccin que sigue a esta se ignora y se trata como un NOP. En este caso la instruccin necesita dos ciclos para ejecutarse. Suma el contenido del registro W al literal k , y almacena el resultado en W. Si se produce acarreo el flag C se pone a 1. Realiza la operacin AND lgico entre el contenido del registro W y el literal k, el resultado se almacena en W.
BTFSS f,d
ADDL W K
ANDL W K
CALL K
Llamada a subrutina cargada previamente en el PC. Antes guarda la direccin de vuelta en la pila.
Borra el registro WDT o Watchdog y su preescaler. Los bits #TO y #PD del registro de estado se ponen a 1. Salto incondicional, se utiliza normalmente para para llamar a la subrutina situada en la direccin que se carga en el PC. Realiza la operacin lgica OR entre el contenido del registro W y el literal k. El resultado se almacena en el registro W.
CLRWDT
GOTO K
IORL W K
MOVL W K
RETFIE
RETLW K
RETURN
SLEEP
Pone al microcontrolador en modo stand by con parada del oscilador. El flag #PD se pone a 0 y el flag #TO se pone a 1. Se puede salir por: 1- Activacin de mclr# para provocar un reset. 2- Desbordamiento del watchdog si quedo activado. 3- Generacin de una interrupcin que no sea TMRO ya que esta se desactiva con la instruccin SLEEP. Resta por el mtodo de complemento s dos del contenido del literal k al contenido del registro W, y almacena en resultado en W. Realiza la operacin OR- exclusiva entre el contenido del registro W y la constante k de 8 bits. El resultado se almacena en W.
SUBLW K
XORLW K
Estas son las instrucciones necesarias para programar el PIC 16F84 y se realizan mediante programas informticos, por ejemplo el MPLAB en el que se escribe el cdigo y adems te permite hacer una simulacin y ver el estado de los registros, las puertas y las variables. Cuando se tiene el cdigo se introduce en el chip insertando ste en un programador y conectndolo al puerto serie o paralelo del PC. Mediante un programa informtico se realiza la comunicacin con el programador, el IC-PROG se utiliza si el programador est conectado al puerto serie y el PICME micro trainer si est conectado al puerto paralelo.
___________________________________________________________