Escolar Documentos
Profissional Documentos
Cultura Documentos
MICROCONTROLADORES PIC
Arquitectura
Arquitectura
UNIDAD CENTRAL DE
PROCESAMIENTO CPU
UNIDAD CENTRAL DE
PROCESAMIENTO CPU
UNIDAD CENTRAL DE
PROCESAMIENTO CPU
En las arquitecturas tradicionales el acumulador (ACC) est a la salida de la ALU, de
modo que el resultado de cualquier operacin aritmtica o lgica siempre es
depositado en el ACC.
En los PICs, en cambio, el resultado de una operacin aritmtica o lgica puede
depositarse en el registro de trabajo (W) o puede llevarse directamente a cualquier
registro de la memoria de datos, y esto proporciona una gran flexibilidad y potencia.
EL registro de Estado o Status (PSW), est estrechamente relacionado con el
registro de trabajo (W). Cuenta con algunos bits que indican determinadas
caractersticas del resultado de la operacin realizada en la ALU (si el resultado es
cero, si se ha producido acarreo o prstamo, si el resultado es positivo o negativo,
etc.)
LA MEMORIA EN LOS
MICROCONTROLADORES
La memoria es un conjunto de celdas o localizaciones que se identifican por su
direccin. En cada celda se almacena una palabra.
Una palabra es la unidad lgica de informacin almacenada en un celda de memoria.
Se utilizan palabras de 1, 8, 12, 14 o 16 bits de longitud. Una palabra de bits es un
octeto o byte.
LA MEMORIA EN LOS
MICROCONTROLADORES
La direccin de una celda es el ente que identifica la celda en la memoria. La forma
ms simple de identificar las celdas es asignar a cada una un nmero entero
consecutivo.
La direccin es el nmero binario (o hexadecimal) que denota la posicin de la
celda en la memoria.
0, 1, 2, ,
LA MEMORIA EN LOS
MICROCONTROLADORES
Ejemplo:
Se tiene una memoria donde para formar la direccin de una celda de 8 bits (1
byte) cualquiera se necesitan 10 bits (
10), as pues la cantidad de celdas que
componen la memoria est dada por
2
1024.
Las direcciones posibles son
0, 1, 2, , 1023 (nmeros enteros). Expresando
estos nmeros en el sistema de numeracin hexadecimal, tal como es costumbre, se
tiene
0 ,1 ,2 ,,3
.
Entonces la capacidad de la memoria es de 1024 bytes o en forma simplificada 1kB.
TIPOS DE MEMORIA
Memoria de Programa: es no voltil y bsicamente de slo lectura. Pueden ser
de tipo ROM (Read-Only Memory), EPROM (Erasable Programmable ROM), OTP (One
Time Programmable) y FLASH.
Memoria de Datos: es fundamentalmente de lectura y escritura y no hace falta
que la informacin permanezca en ella al interrumpir el suministro de energa al
microcontrolador, es decir, la memoria es voltil. Se utilizan memorias RAM (Random
Access Memory) estticas.
Memoria EEPROM (Electrically Erasable Programmable Read-Only
Memory): Muchos microcontroladores PIC utilizan cierta de cantidad adicional de
memoria (externa) de lectura y escritura, no voltil, como parte de la memoria de
datos. El objetivo de esta memoria es permitir el almacenamiento de datos fijos o
poco variables.
Memoria RAM: Es una memoria de lectura y escritura. Hay dos variantes: la
esttica y la dinmica. Esttica: la informacin permanece estable indefinidamente
mientras no se suprima la tensin de alimentacin. Dinmica: requieren un
refrescamiento peridico de la informacin almacenada.
MICROCONTROLADOR PIC16F877A
Repertorio de 35 instrucciones de 14 bits cada una.
La memoria FLASH de programa tiene una capacidad de 8k (8192) palabras de 14
bits y se organiza en pginas de 2k (2048) palabras cada una.
La memoria de datos (SRAM esttica) est formada por registros de 8 bits, tiene
una capacidad de 368 bytes y est organizada en 4 bancos.
Posee una memoria EEPRON de datos de 256 bytes.
Tiene una pila de 8 niveles, donde se almacenan direcciones de la memoria de
programa.
Posee un sistema de interrupciones para atender interrupciones internas y
externas.
Cuenta con 5 puertos paralelos (A, B, C, D y E) para la comunicacin paralela con
dispositivos externos.
Posee tres temporizadores (Timer0, Timer1 y Timer2), dos mdulos de capturacomparacin-modulacin de ancho de pulso (CPP1, CCP2).
Posee puertos serie para comunicacin serie asincrnica y sincrnica, un
convertidor A/D de 10 bits asociado a un multiplexor con varias entradas
analgicas.
Los registros de funciones especiales (SFR: Special Function Registers) son los
registros a travs de los cuales se controla al microcontrolador y se accede a sus
diferentes perifricos (convertidor A/D, mdulo de comunicacin serial), se
programan sus funciones, etc.
Los registros de propsito general (GPR: General Purpose Registers) constituyen
la memoria de datos propiamente dicha, disponible para el libre uso del usuario en
sus programas.
SFR
STATUS
OPTION
PCON
Contador de programa
PCLATH, PCL
Direccionamiento Indirecto
FSR
Interrupciones
INTCON
PIR1, PIE1
PIR2, PIE2
Puertos paralelos
PORTA, TRISA
PORTB, TRISB
PORTC, TRISC
PORTD, TRISD
PORTE, TRISE
Timer 0
Timer 1
Timer 2
Mdulos CCPx(x = 1, 2, 3)
Convertidor A/D
EEADRH, EEADR,
EECON1, EECON2
EEDATH,
EEDATA,
MEMORIA DE PROGRAMA
En esta memoria se almacenen todas las instrucciones del programa de control.
Debido a su caracterstica de no volatilidad la memoria mantiene su contenido
an sin alimentacin.
La informacin contenida debe ser grabada previamente mediante un equipo fsico
denominado programador o grabador.
La memoria de programa se organiza en pginas. En El PIC16F877A posee 4 pginas
de 2048 palabras cada una, por tanto, la capacidad de memoria es de 8192 palabras.
Las palabras de este PIC son de 14 bits.
DIRECCIONAMIENTO DE LA MEMORIA DE
PROGRAMA
El contador de programa PC (Program Counter) es el registro del microcontrolador
cuya funcin es direccionar la memoria de programa.
El PC almacena direcciones de instrucciones, ms precisamente, en el PC est la
direccin de la siguiente instruccin que hay que ejecutar.
En los microcontroladores de gama media, el PC es de 13 bits, de modo que puede
direccionar el espacio de 8000 palabras de la memoria de programa.
Como la memoria de programa est paginada, los bits 12 y 11 del PC dan el nmero
de la pgina, mientras que los bits del 10 al 0 dan la direccin dentro de la pgina o
desplazamiento.
LA PILA (STACK)
LA PILA (STACK)
La pila (stack en ingls) es una zona de memoria que se encuentra separada tanto de
la memoria de programa como de la de datos dentro del microcontrolador .
Consiste en un conjunto de ocho registros de 13 bits cada uno y en donde se
almacenan direcciones de la memoria de programa.
Es un tipo de estructura de datos con organizacin LIFO (Last In First Out): lo ltimo
que entra en la pila es lo primero que sale de ella.
Antes de que el microcontrolador se ponga a ejecutar una subrutina o al ocurrir
una interrupcin, la direccin de la siguiente instruccin en ser ejecutada
(almacenada en el PC) se coloca en la pila (se apila), o sea, en uno de los registros.
Gracias a eso, despus de ejecutarse una subrutina o una interrupcin, el
microcontrolador sabe dnde continuar con la ejecucin del programa. Esta
direccin se borra (se desapila) despus de volver al programa, ya que no es
necesario guardarla, disponiendo automticamente esas localidades de la pila para
un uso futuro.
LA PILA (STACK)
Dado el tamao de la pila, se pueden anidar hasta 8 subrutinas; es decir, desde el
programa principal se puede llamar a una primera subrutina y desde sta a una
segunda subrutina, y de sta a una tercera, y as sucesivamente hasta completar un
total de 8 llamadas.
La novena vez se sobrescribe el valor que se almacen al apilar el dato por primera
vez. La dcima vez que se apile, se sobrescribe el valor que se almacen al apilar el
dato por segunda vez, etc. Datos sobrescritos de esta manera no se pueden
recuperar.
No hay ningn bit de estado para indicar el estado de desbordamiento o
subdesbordamiento de pila. Por esta razn hay que tener un especial cuidado al
escribir un programa.
Los pulsos generados por el oscilador principal (OSC1) son divididos internamente
para generar cuatro seales denominadas Q1, Q2, Q3 y Q4, que sincronizan todo el
trabajo interno del microcontrolador.
Cada cuatro pulsos del oscilador principal se tiene un ciclo de mquina (CM).
REGISTRO DE CONFIGURACIN
Permiten que el usuario programe ciertas caractersticas del microcontrolador para
adaptarlo mejor a las necesidades de la aplicacin.
Cuando se pone en marcha el dispositivo, el estado de estos bits determina la forma
en que operar el microcontrolador.
Aunque estos bits normalmente forman parte de la memoria de programa, ocupan
una direccin que no es accesible durante el funcionamiento normal del
microcontrolador. Slo se puede acceder a ellos durante la programacin del
microcontrolador.
Las caractersticas que se programan en los bits de configuracin son las siguientes:
El tipo de oscilador
La habilitacin o no del perro guardin.
La proteccin de la memoria de programa.
La proteccin de la memoria EEPROM de datos.
Las caractersticas del reset y la alimentacin del dispositivo.
Los bits de configuracin del PIC16F877A se agrupan en una palabra de
configuracin que ocupa la direccin 2007h de la memoria de programa.
OSCILADOR O RELOJ
Todo microcontrolador requiere de un circuito que le indique la velocidad de
trabajo, es el llamado oscilador o reloj.
El oscilador genera una onda cuadrada de alta frecuencia (seal de reloj) que se
utiliza como seal para sincronizar todas las operaciones del sistema.
Generalmente todos los componentes del reloj se encuentran integrados en el
propio microcontrolador y tan solo se requieren unos pocos componentes
externos, como un cristal de cuarzo o una red RC, para definir la frecuencia de
trabajo.
Existen microcontroladores PIC que tienen un oscilador interno (RC) y no
requieren de componentes externos. La frecuencia de reloj mxima depender del
tipo de microcontrolador elegido.
La eleccin de la frecuencia de la seal de reloj depender de la precisin y
velocidad que la aplicacin a controlar requiera.
OSCILADOR O RELOJ
El modo de funcionamiento del oscilador (fuente de la seal de reloj, oscilador
interno o externo) se selecciona por medio de los bits de la Palabra de
Configuracin, cargados en el microcontrolador durante la programacin.
El oscilador en los modos LP, XT y HS utilizan un oscilador externo dentro del microcontrolador
como una fuente de reloj. La frecuencia de reloj est determinada por un cristal de cuarzo o por
resonadores cermicos conectados a los pines OSC1 y OSC2.
Modo LP: Para aplicaciones de baja potencia. Se utiliza slo para trabajar con cristales de
cuarzo de baja frecuencia (32 kHz a 200 kHz). Al utilizar este modo el consumo de corriente
ser menor que en los dems modos.
Modo XT: Se utiliza para cristales de cuarzo de frecuencias intermedias (100 kHz a 4 MHz).
El consumo de corriente es media en comparacin con los dems modos.
Modo HS: Para aplicaciones de alta velocidad. Se utiliza para cristales de reloj de frecuencia
ms alta (4 MHz a 20 MHz). Al utilizar este modo el consumo de corriente ser mayor que
en los dems modos.
OSCILADOR INTERNO
OSCILADOR INTERNO
OSCILADOR INTERNO EN MODO INTOSC: El pin OSC1 est disponible para ser
utilizado como pin de E/S de propsito general. La seal de frecuencia del oscilador interno
dividida por 4 est disponible en el pin OSC2.
OSCILADOR INTERNO EN MODO INTOSCIO: los dos pines estn disponibles como
pines de E/S de propsito general.
2.
3.
FUENTES DE RESET
Cuando el microcontrolador est en estado de reset, est virtualmente detenido, es
decir, no ejecuta ninguna instruccin del programa.
Cuando el microcontrolador sale del estado de reset, el contador de programa PC
adquiere el valor 00h, de modo que se ejecutan todas las instrucciones que estn a
partir de esa posicin de memoria apuntada por el PC.
RESET EXTERNO: ocurre cuando se pone a 0 el terminal MCLR. El terminal
MCLR debe estar a 1 durante el funcionamiento normal del microcontrolador. Puede
ocurrir durante el funcionamiento normal del microcontrolador o cuando est en
modo de bajo consumo.
FUENTES DE RESET
RESET POR ENCENDIDO (PUESTA EN MARCHA): ocurre si se conecta el
de alimentacin del microcontrolador (por un
terminal MCLR al terminal
pequeo lapso de tiempo).
El microcontrolador detecta la tensin de alimentacin (flanco de subida en
),
provocando con ello un reset que garantiza el correcto inicio de trabajo del
microcontrolador.
FUENTES DE RESET
RESET POR DESBORDAMIENTO DEL PERRO GUARDIAN: ocurre
cuando se desborda el temporizador denominado perro guardin (WDT: Watchdog
Timer). El desbordamiento se produce si desde el programa que est ejecutando el
microcontrolador, no se borra a tiempo el resultado del conteo que realiza este
temporizador.
El reset por desbordamiento del perro guardin puede ocurrir durante
funcionamiento normal del microcontrolador.
el
FUENTES DE RESET
RESET POR FALLO DE ALIMENTACIN (BROWN-OUT RESET):
Ocurre cuando hay una disminucin brusca y transitoria de la tensin de
alimentacin. El microcontrolador incluye un circuito que produce un reset en estas
condiciones y mantiene dicho estado mientras la tensin de alimentacin
est
por debajo de un cierto umbral.
Cuando
se recupera, el estado de reset se mantiene durante un periodo de 72
ms. De esta forma se garantiza que el oscilador principal y
estn en sus valores
nominales cuando salga del estado de reset.