Sunteți pe pagina 1din 10

UNIVERSIDAD NACIONAL DE INGENIERIA

Facultad de Ingeniería Eléctrica y Electrónica


Sección de Proyección Social y Extensión Universitaria

SESIÓN 2

INTRODUCCIÓN AL MICROCONTROLADOR
PIC16F877A

2.1 Características generales

El PIC16F877A de Microchip pertenece a la familia de


microcontroladores de 8 bits. Sus principales características son:
 Memoria FLASH de 8 K x 14 bits.
 Memoria de datos de 368 bytes RAM y 256 bytes de EEPROM.
 Hasta 14 fuentes de interrupción.
 Sistema de vigilancia WatchDog Timer.
 Temporizadores: 1 de 8 bits (Timer 0); 1 de 16 bits (Timer 1); 1 de 8 bits
(Timer 2).
 Periféricos de E/S : 6 del puerto A, 8 del puerto B, 8 del puerto C, 8 del
puerto D y 3 del puerto E, además de 8 entradas análogas multiplexadas
en el puerto A y puerto E.
 Módulos de Captura, Comparación y PWM:
 Convertidor Análogo/Digital de 10 bits multicanal (8 canales de entrada).
 Puerto serial síncrono (SSP) para los buses SPI e I²C.
 Módulo USART (Universal Synchronous Asynchronous Receiver
Transmitter).

MICROCONTROLADORES PIC NIVEL I - PROF.ING.JOSE ESTRADA MONTES PAGINA 15 DE 95


UNIVERSIDAD NACIONAL DE INGENIERIA
Facultad de Ingeniería Eléctrica y Electrónica
Sección de Proyección Social y Extensión Universitaria

2.2 Arquitectura del PIC16F877A


La arquitectura de los PIC de 8 bits es la arquitectura Harvard que
reemplaza a la arquitectura tradicional Von Newman, en la cual la unidad
central de proceso o CPU, está conectada a una memoria única que contiene
las instrucciones del programa y los datos (ver Figura 2.1). Las dos principales
limitaciones de la arquitectura Von Newman son:

1. La longitud de las instrucciones está limitada por la unidad de longitud


de los datos, por lo que el microprocesador debe hacer varios accesos a
memoria para buscar instrucciones complejas,

2. La velocidad de operación (o ancho de banda de operación) está


limitada por el efecto de cuello de botella que significa un bus único para
datos e instrucciones que impide superponer ambos tiempos de acceso.

En la arquitectura Harvard el CPU accede a la memoria de


instrucciones y la memoria de datos por buses diferentes (ver Figura 2.2). Al
ser los buses independientes, la CPU puede acceder a los datos para
completar la ejecución de una instrucción, y al mismo tiempo leer la siguiente
instrucción a ejecutar.

MICROCONTROLADORES PIC NIVEL I - PROF.ING.JOSE ESTRADA MONTES PAGINA 16 DE 95


UNIVERSIDAD NACIONAL DE INGENIERIA
Facultad de Ingeniería Eléctrica y Electrónica
Sección de Proyección Social y Extensión Universitaria

El PIC16F877A tiene un procesador segmentado de tipo “pipe-line” que


realiza simultáneamente la ejecución de una instrucción y realiza la búsqueda
del código de la siguiente instrucción (ver Figura 2.3) esto permite que una
instrucción se pueda ejecutar en un ciclo, donde cada ciclo de instrucción
equivale a cuatro ciclos de reloj. La mayoría de las instrucciones se realizan en
un ciclo de ciclo de instrucción excepto las instrucciones de salto que necesitan
dos ciclos para ejecutarla.

2.2.1 Unidad Aritmético Lógica (ALU)


La ALU efectúa sus operaciones con dos operandos, uno que proviene
del registro W (Work) y el otro proviene de un registro de la memoria RAM. En
la Figura 2.4 se muestra el esquema de operación para un microprocesador
tradicional y un microcontrolador PIC. Se puede observar que la principal
diferencia entre ambos radica en la ubicación del registro de trabajo, para los
PIC’s se denomina W, y para los tradicionales es el Acumulador (A).
En los microcontroladores tradicionales todas las operaciones se
realizan sobre el acumulador. La salida del acumulador está conectada a una
de las entradas de la ALU, por lo tanto éste es siempre uno de los dos
operandos de cualquier instrucción. La salida de la ALU va solamente a la
entrada del acumulador, por lo tanto el resultado de cualquier operación
siempre quedara en este registro.
En los microcontroladores PIC, la salida de la ALU va al registro W y
también a la memoria de datos, por lo tanto el resultado puede guardarse en
cualquiera de los dos destinos. En las instrucciones de doble operando, uno de
los dos datos siempre debe estar en el registro W, como ocurría en el modelo
tradicional con el acumulador. En las instrucciones de simple operando el dato

MICROCONTROLADORES PIC NIVEL I - PROF.ING.JOSE ESTRADA MONTES PAGINA 17 DE 95


UNIVERSIDAD NACIONAL DE INGENIERIA
Facultad de Ingeniería Eléctrica y Electrónica
Sección de Proyección Social y Extensión Universitaria

en este caso se toma de la memoria. La gran ventaja de esta arquitectura es


que permite un gran ahorro de instrucciones ya que el resultado de cualquier
instrucción que opere con la memoria, ya sea de simple o doble operando,
puede dejarse en la misma posición de memoria o en el registro W, según se
seleccione con un bit de la misma instrucción. Las operaciones con constantes
provenientes de la memoria de programa (literales) se realizan solo sobre el
registro W.

2.2.2 El contador de programa (PC)


Este registro conocido como PC (Counter Program) contiene la
dirección de la próxima instrucción a ejecutar. Se incrementa automáticamente
al ejecutar cada instrucción de manera que la secuencia natural de ejecución
del programa es lineal es decir una instrucción después de la otra. Algunas
instrucciones que llamaremos de control, cambian el contenido del PC
alterando la secuencia lineal de ejecución. Dentro de estas instrucciones se
encuentran el GOTO y el CALL que permiten cargar en forma directa un valor
constante en el PC haciendo que el programa salte a cualquier posición de la
memoria.
EL PIC16F877A tiene un contador de programa (PC) de 13 bits, cuyos
bits de menos peso corresponden a los 8 bits del registro PCL y los cinco bits
de mayor peso del PC corresponden con los cinco bits de menor peso del
registro PCLATH (ver Figura 2.5). El registro PCLATH no puede ser leído pero
si puede ser escrito. El PC permite direccionar hasta 8k x 14 bits, que pueden
dividirse en páginas de 2k x 14 bits.

MICROCONTROLADORES PIC NIVEL I - PROF.ING.JOSE ESTRADA MONTES PAGINA 18 DE 95


UNIVERSIDAD NACIONAL DE INGENIERIA
Facultad de Ingeniería Eléctrica y Electrónica
Sección de Proyección Social y Extensión Universitaria

MICROCONTROLADORES PIC NIVEL I - PROF.ING.JOSE ESTRADA MONTES PAGINA 19 DE 95


UNIVERSIDAD NACIONAL DE INGENIERIA
Facultad de Ingeniería Eléctrica y Electrónica
Sección de Proyección Social y Extensión Universitaria

2.3 Organización de la memoria


2.3.1 Memoria de datos (RAM)
El PIC16F877A posee cuatro bancos de memoria RAM (ver Figura 2.7),
cada banco posee 128 bytes. Una parte de cada banco es reservada para los
registros SFR (Special Function Register) que son registros propios del
microcontrolador, la memoria restante pueden ser usada por el programador
para almacenar datos de forma temporal. Todas las posiciones o registros de
memoria se pueden acceder directa o indirectamente esta última a través del
registro FSR. Para seleccionar un banco de memoria se usan los bits RP0 y
RP1 del registro STATUS.

MICROCONTROLADORES PIC NIVEL I - PROF.ING.JOSE ESTRADA MONTES PAGINA 20 DE 95


UNIVERSIDAD NACIONAL DE INGENIERIA
Facultad de Ingeniería Eléctrica y Electrónica
Sección de Proyección Social y Extensión Universitaria

2.3.2 Memoria de programa (FLASH)


La memoria FLASH del PIC16F877A tiene 8K de longitud con datos de 14 bits
en cada posición. La memoria de programa está dividida en cuatro bancos o páginas
de 2K cada página una como se muestra en la Figura 2.8. En esta memoria se graba o
almacena el código que el microcontrolador debe ejecutar.

2.3.3 Stack
Es una memoria interna dedicada a guardar las direcciones de retorno
de subrutinas e interrupciones. Tiene una estructura LIFO (Last In First Out),
lo que significa que el último dato que se guarda es el primero que sale (ver
Figura 2.9).
El stack o pila tiene 8 niveles con una longitud de 13 bits cada uno, la única
forma de cargar la pila es a través de la instrucción CALL o por una interrupción, lo
cual hará que se cargue el contenido de (PC+1) en la pila. Para recuperar un valor de
la pila hay que ejecutar la instrucción RETURN, RETLW o RETFIE.

MICROCONTROLADORES PIC NIVEL I - PROF.ING.JOSE ESTRADA MONTES PAGINA 21 DE 95


UNIVERSIDAD NACIONAL DE INGENIERIA
Facultad de Ingeniería Eléctrica y Electrónica
Sección de Proyección Social y Extensión Universitaria

2.4 Oscilador
Los PIC de rango medio permiten hasta 8 diferentes modos para el oscilador.
El usuario puede seleccionar uno de estos 8 modos, programando 2 bits de
configuración del dispositivo denominados: FOSC1 y FOSC0, ubicados en un registro
especial de configuración en la localidad 2007H de la memoria de programa. La
palabra de configuración se muestra en la Figura 2.10. Los modos de operación para
el oscilador se muestran en la Figura 2.11.

MICROCONTROLADORES PIC NIVEL I - PROF.ING.JOSE ESTRADA MONTES PAGINA 22 DE 95


UNIVERSIDAD NACIONAL DE INGENIERIA
Facultad de Ingeniería Eléctrica y Electrónica
Sección de Proyección Social y Extensión Universitaria

Los modos LP, XT y HS usan un cristal o resonador externo. En la Figura 2.12


se muestran los rangos de frecuencia así como los capacitores recomendados para un
oscilador en base a cristal.

2.5 Puertos
Los pines de entrada/salida del PIC16F877A están organizados en cinco
puertos, el puerto A con 6 líneas, el puerto B con 8 líneas, el puerto C con 8
líneas, el puerto D con 8 líneas y el puerto E con 3 líneas. El pin de cada puerto
puede ser configurado como entrada o salida configurando el registro TRIS
correspondiente (TRISA, TRISB, TRISC, TRISD y TRISE). Los pines del puerto
A y del puerto E son especiales ya que pueden ser configurados como pines
analógicos o digitales.
El PUERTO A es un puerto de 8 bits. Todos los pines, excepto RA5,
pueden ser configurados como entrada o salida. El pin RA4 esta multiplexado
con la entrada de reloj T0CKI, como salida se comporta como colector abierto
por lo que debe llevar una resistencia pull-up a Vdd. El pin RA5 es un
disparador Schmitt que puede ser configurado solo como entrada ya que no
cuenta con controladores de salida, según la configuración puede ser usado
como pin de reset además este pin se usa para entrar en el modo de
programación cuando se aplica una tensión igual a Vpp (13,4V mínimo).
Los demás pines del puerto sin son líneas de entrada trabajan como un
disparador de Schmitt Trigger y como salida con lógica CMOS. Los pines RA0-RA3
sirven de entrada para los comparadores analógicos y por defecto vienen asociados a
ellos, así que para usarlos como I/O digital deben ser previamente configurados. Los
pines RA6 y RA7 cuando no se usan para la entrada externa de reloj y salida de
oscilador dependiendo de su configuración.

MICROCONTROLADORES PIC NIVEL I - PROF.ING.JOSE ESTRADA MONTES PAGINA 23 DE 95


UNIVERSIDAD NACIONAL DE INGENIERIA
Facultad de Ingeniería Eléctrica y Electrónica
Sección de Proyección Social y Extensión Universitaria

El PUERTO B es un puerto bidireccional de 8 bits, por software se


pueden habilitar resistencias de pull-up internas. El PORTB es multiplexado
con interrupciones externas, tales como detección de flanco por RB0, cambio
de nivel por RB4 a RB7, USART, el módulo CCP y el reloj de entrada/salida
TMR1.

La máxima capacidad de corriente que puede proporcionar cualquier pin de un


puerto (modo source) es de 20 mA o que puede drenar (modo sink o sumidero) es de
25 mA. La máxima corriente de un puerto de 8 pines en modo source es 100 mA y en
modo sink es de 150 mA. Esto se muestra en la Figura 2.13.

2.6 Pin de reset


El reset en un microcontrolador provoca la reinicialización de su
funcionamiento, un “comenzar a funcionar desde condiciones iniciales”. En los
microcontroladores se requiere de un pin de reset para reiniciar el
funcionamiento del sistema cuando sea necesario. El pin de reset se denomina
MCLR (Master Clear) y se produce un reset cada vez que se aplica un nivel
lógico bajo.
El diagrama básico de conexiones para el PIC16F877A y las
herramientas necesarias para grabar un programa se pueden encontrar en el
Apéndice B.

MICROCONTROLADORES PIC NIVEL I - PROF.ING.JOSE ESTRADA MONTES PAGINA 24 DE 95

S-ar putea să vă placă și