You are on page 1of 9

PIC 16F877

Se denomina microcontrolador a un dispositivo programable capaz de realizar


diferentes actividades que requieran del procesamiento de datos digitales y del
control y comunicacin digital de diferentes dispositivos.
Los microcontroladores poseen una memoria interna que almacena dos tipos
de datos; las instrucciones, que corresponden al programa que se ejecuta, y los
registros, es decir, los datos que el usuario maneja, as como registros
especiales para el control de las diferentes funciones del microcontrolador.

Los microcontroladores se programan en Assembler y cada microcontrolador


vara su conjunto de instrucciones de acuerdo a su fabricante y modelo. De
acuerdo al nmero de instrucciones que el microcontrolador maneja se le
denomina de arquitectura RISC (reducido) o CISC (complejo).
Los microcontroladores poseen principalmente una ALU (Unidad Lgico
Aritmtica), memoria del programa, memoria de registros, y pines I/O (entrada
y/0 salida). La ALU es la encargada de procesar los datos dependiendo de las
instrucciones que se ejecuten (ADD, OR, AND), mientras que los pines son los
que se encargan de comunicar al microcontrolador con el medio externo; la
funcin de los pines puede ser de transmisin de datos, alimentacin de
corriente para l funcionamiento de este o pines de control especifico.
En este proyecto se utilizo el PIC 16F877. Este microcontrolador es fabricado
por MicroChip familia a la cual se le denomina PIC. El modelo 16F877 posee
varias caractersticas que hacen a este microcontrolador un dispositivo muy
verstil, eficiente y practico para ser empleado en la aplicacin que
posteorimente ser detallada.
Algunas de estas caractersticas se muestran a continuacin:
Soporta modo de comunicacin serial, posee dos pines para ello.
Amplia memoria para datos y programa.
Memoria reprogramable: La memoria en este PIC es la que se denomina
FLASH; este tipo de memoria se puede borrar electrnicamente (esto
corresponde a la "F" en el modelo).
Set de instrucciones reducido (tipo RISC), pero con las instrucciones necesarias
para facilitar su manejo.
CARACTERISTICAS
En siguiente tabla de pueden observar las caractersticas ms relevantes del
dispositivo:
CARACTERSTICAS
Frecuencia mxima

Memoria de programa flash palabra de 14 bits


Posiciones RAM de datos
Posiciones EEPROM de datos
Puertos E/S
Nmero de pines
Interrupciones
Timers
Mdulos CCP
Comunicaciones Serie
Comunicaciones paralelo
Lneas de entrada de CAD de 10 bits
Juego de instrucciones
Longitud de la instruccin
Arquitectura
CPU
Canales Pwm
Pila Harware
Ejecucin En 1 Ciclo Mquina

Descripcin de los puertos:


Puerto A:
Puerto de e/s de 6 pines

RA0 RA0 y AN0

RA1 RA1 y AN1

RA2 RA2, AN2 y Vref-

RA3 RA3, AN3 y Vref+

RA4 RA4 (Salida en colector abierto) y T0CKI(Entrada de reloj del modulo Timer0)

RA5 RA5, AN4 y SS (Seleccin esclavo para el puerto serie sncrono)

Puerto B:
Puerto e/s 8 pines

Resistencias pull-up programables

RB0 Interrupcin externa

RB4-7 Interrupcion por cambio de flanco

RB5-RB7 y RB3 programacion y debugger in circuit

Puerto C:
Puerto e/s de 8 pines

RC0 RC0, T1OSO (Timer1 salida oscilador) y T1CKI (Entrada de reloj del modulo Timer1).

RC1-RC2 PWM/COMP/CAPT

RC1 T1OSI (entrada osc timer1)

RC3-4 IIC

RC3-5 SPI

RC6-7 USART

Puerto D:
Puerto e/s de 8 pines

Bus de datos en PPS (Puerto paralelo esclavo)

Puerto E:

Puerto de e/s de 3 pines

RE0 RE0 y AN5 y Read de PPS

RE1 RE1 y AN6 y Write de PPS

RE2 RE2 y AN7 y CS de PPS

Arquitectura interna
Este trmino se refiere a los bloques funcionales que componen en
PIC internamente, como la memoria RAM, la memoria FLASH, la lgica de
control, etc.

Estructura interna del PIC 16F877.


El PIC 16F877 se basa en la arquitectura Harvard, en la cual el programa y los
datos se pueden trabajar con buses (un bus es un conjunto de lneas que
transportan informacin entre 2 o ms mdulos) y memorias separadas, lo
cual permite que las instrucciones y los datos tengan longitudes diferentes.
Memoria de programa (FLASH)
Es una memoria de 8K de capacidad con posiciones de 14 bits. En ella se
graba o almacena el programa o cdigos que el microcontrolador debe
ejecutar.

Mapa de memoria de programa (FLASH).

La memoria est dividida en cuatro pginas de 2K cada una. La Pgina

0 va de la posicin de memoria 0005h a la 07FFh, la Pgina 1 de 0800h


a 0FFFh, la Pgina 2 de 1000h a 17FFh y la Pgina 3 de 1800h a 1FFFh.
El contador de programa (en este caso es de 13 bits) nos indica la

direccin de la instruccin a ejecutar.


Pila (Stack): son registros que no forman parte de ningn banco de
memoria (los bancos de memoria los explico ms abajo) y no permiten
el acceso por parte del usuario. Se usan para guardar el valor del

contador de programa cuandose hace un llamado a una subrutina o a


una interrupcin. Cuando el micro vuelva a ejecutar su tarea
normalmente, el contador de programa recupera su valor leyndolo en
la pila. Al tener una pila de 8 niveles, se pueden acumular 8 llamadas a
subrutinas sin tener problemas.
Vector de RESET: cuando se resetea el microcontrolador el contador de

programa se pone a cero (0000h). Por esto, en la primera direccin del


programa se debe escribir todo lo relacionado con la iniciacin del
mismo.
Vector de Interrupcin: cuando el microcontrolador recibe una llamada

a una interrupcin, el contador de programa apunta a la direccin 04H


de la memoria de programa, por eso all se debe escribir toda la
informacin necesaria para atender dicha interrupcin.
Memorias de datos
Como he mencionado anteriormente, el PIC 16F877 tiene 2 memorias de
datos:
Memoria SRAM (Static Random Access Memory): es una memoria de tipo
voltil (cuando deja de recibir alimentacin se borran los datos que tenga
almacenados) que est dividida en 4 bancos de 128 bytes cada uno. De esos
128 bytes los 32 primeros estn dedicados a los SFRs (Registros de
Funciones Especiales, cumplen un propsito general en el control y
configuracin del microcontrolador) y los 96 siguientes a los GPRs
(Registros de Propsitos Generales, se pueden usar para guardar los datos
temporales de la tarea que se est ejecutando).

Tabla de registros del PIC 16F877 y sus direcciones.


-Memoria EEPROM: es una memoria no voltil (guarda los datos aunque le
falte alimentacin) con una capacidad de 256 bytes, que permite realizar
operaciones de lectura y escritura sin interferir con el funcionamiento normal
del microcontrolador.
Reloj u Oscilador
El pequeo ciruito externo que los microcontroladores necesitan para que se
les indique la velocidad de trabajo es conocido como reloj u oscilador. En
funcin del montaje que se realice se puede conseguir ms o menos
precisin. En el momento de programar (o quemar los fusibles) el PIC se debe
especificar el tipo de oscilador externo que se va a utilizar. El PIC 16F877
puede utilizar 4 tipos de oscilador diferentes:

XT: Cristal genrico (de 1 a 4 MHz).


RC: Oscilador con resistencia y condensador.
HS: Cristal de alta frecuencia (de 10 a 20 MHz).
LP: Cristal para baja frecuencia y bajo consumo.

Las configuraciones ms utilizadas son la XT y RC:


-XT: se suele utlizar con un cristal de 4 MHz, pues garantiza precisin y es
bastante comercial. Internamente esta frecuencia es dividida entre 4, lo que
hace que la frecuencia efectiva de trabajo sea de 1 MHz en este caso, por lo
que cada instruccin se ejecuta en 1 s (1 microsegundo):

Oscilador XT: el cristal debe ir acompaado de 2 condensadores.


-RC: se utiliza si no se precisa una gran precisin y se quiere economizar
dinero:

Oscilador RC: slo se necesita una resistencia y un condensador.


Qu son los ciclos mquina?
Un ciclo mquina se define como el tiempo mnimo necesario para ejecutar
una instruccin, el cual est formado por un nmero determinado de ciclos o
perodos de reloj (en la mayora de los PIC estn constituidos por 4 ciclos de
reloj).

En la tabla de instrucciones superior del PIC 16F877 los recuadros rojos indican los ciclos
mquina que tarda en ejecutarse cada instruccin que, en este caso, son de 1 2 ciclos.

You might also like