MICROCONTROLADORES

:

Realizado por: Ing Ender Pereira (Msc)

MICROCONTROLADORES

Memoria volátil RAM para almacenar datos

Circuitería interna I/O para disponer de Puertos de entrada y salida

algunos con conversores A/D. etc. ± La Gama Alta: PIC17CXXX. ± Gama baja o básica: PIC16C5X. ± Gama enana : PIC12C(F)XXX de 8 pines. ± La Gama mejorada la componen los PIC18CXXX ± La Gama PICAXE ± dsPIC . ± La Gama media lo componen las familias 16C6X/ 7X/ 8X. comparadores.MICROCONTROLADORES Microcontroladores PIC de Microchip PIC = Controlador de interfaz periférico ‡ Los PIC se divide en familias de microcontroladores. interrupciones.

mientras sus Datos son de 8 bits (máximo valor de un dato ³255d.D. 3 Timers.C. Frecuencia hasta 20 Mhz ‡ 15 Tipos de Interrupción. ‡ Voltaje de alimentación comprendido entre 2 y 5. Comunicación serie.FFh.B.E) Sus Instrucciones son de 14 bits. ‡ Memoria RAM: 368 Bytes.CARACTERISTICAS DE LOS MICROCONTROLADORES PIC16F877A ‡ Procesador de arquitectura RISC avanzada con un SET de 35 instrucciones de 14 bits de longitud. Convertidor A/D de 10 bits ‡ 40 pines y 5 Puertos de E/S (A. ‡ Memoria de Datos EEPROM : 256 Bytes.5 V. ‡ Memoria de Programa tipo Flash: De 8K x 14 bits.11111111b´) .

RB3. RD1. RC7 VDD: Alimentación y VSS: Tierra OSC1/CLKIN-OSC2/CLKOUT: conexión del oscilador MCLR#/VPP: Reset y tensión de programación PUERTO D = RD0. RC3. RB4. RA3. RD7 PUERTO E = RE0. RB5. RC1. RE1. RD4. RD6.ARQUITECTURA EXTERNA 33 Pines I/O PUERTO A= RA0. RA4. RE2 . RB2. RD2. RC6. RC2. RA2. RA1. RB7 PUERTO C = RC0. RC5. RC4. RB6. RD3. RD5. RA5 PUERTO B = RB0. RB1.

Se activa cuando tiene un "0" lógico en su entrada. .ARQUITECTURA EXTERNA MCLR: El Reset del Microcontrolador (Master Clear).

. Los pines que no se estén usando se deben conectar a la fuente de alimentación +5V con una resistencia. nunca dejarlos al aire por que se puede dañar el integrado. todos los pines deben estar conectado a alguna parte.ARQUITECTURA EXTERNA ‡ Como este dispositivo es de tecnología CMOS. Capacidad de corriente de los pines I/O La máxima capacidad de corriente de cada uno de los pines de I/O en modo sumidero es de 25 mA y en modo fuente es de 20 mA.

. (Máximo 8 direcciones de retorno).) . por eso allí se debe escribir toda la programación necesaria para atender dicha interrupción. VECTOR DE INTERRUPCION Cuando el Microcontrolador recibe una señal de interrupción el contador de programa apunta a la dirección 04h de la memoria de programa.. en la primera dirección del programa se debe escribir todo lo relacionado con la iniciación del mismo. Prog Princ Sub A Sub B Sub C . Por esta razón. de estructura LIFO. la configuración de los puertos.Memoria de Programa Se encarga de almacenar todas las instrucciones del Programa de Control VECTOR DE RESET Cuando ocurre un Reset o se enciende el Microcontrolador. PILA Posee 8 niveles. donde se almacenan las direcciones de retorno para las subrutinas o para interrupciones. (por ejemplo. el contador de programa se pone en cero (0000h).

‡ La memoria está dividida en 4 bancos (cada una de las columnas): banco 0.Memoria de Datos ‡ Es de tipo RAM ya que los datos que manejan los programas varían continuamente. (GPR).2 y 3. . ‡ Las primeras posiciones de cada banco están ocupadas por los Registros de Propósito Especial (SFR). Éstos son empleados para guardar cualquier dato que necesitemos durante la ejecución del programa.1. son los encargados de controlar ciertas funciones específicas del PIC. Estos registros. ‡ Las posiciones siguientes son los denominados Registros de Propósito General.

El contador de programa (PC) tiene una longitud de 13 bits. Normalmente solo se usa el PCL. esta información la tiene la RAM. No hay mayor misterio para estos dos registros solamente almacenan temporalmente la información actual de la dirección de la memoria de programa que se ejecutara.PCL Y PCLATH ‡ El PCL y PCLATH son dos registros de la RAM. se tiene que usar dos registros para esta información. y como esta tiene solamente registros de 8 bits. ‡ ‡ . el PCL almacena los 8 primeros bits del PC y el PCLATH almacena en sus primeros 5 bits. entonces si se estaría usando el PCLATH. que le informa al microcontrolador cual es la siguiente posición de memoria que contiene la instrucción que debe ejecutarse. ahora si nuestro programa tiene mas de 255 líneas de programa. los últimos 5 bits del PC.

. el motivo de RESET y los bits de selección del banco de memoria RAM. Cada bit de este registro tiene su función específica.STATUS Informa sobre el estado de la unidad aritmético-lógica.

.

El puerto A posee 6 líneas bidireccionales.. .El Puerto A Registro PORTA (05H)... Cada uno de los 6 bits menos significativos (RA5.Cada bit de este registro configura cada un de los pines del Puerto A como entrada o salida.. Registro TRISA (85H)..RA0) de este registro están asociados a la línea física correspondiente del puerto..

El Puerto B .

Los Puertos C. D y E .

Instrucciones sobre registro orientadas a bytes Instrucciones sobre registro orientadas a bits Instrucciones para operaciones con literales y de control .

#. 5Ah. D¶5¶ H¶5A¶ B¶10100110¶ µ$¶ . B¶#¶ µCARACTER¶ #h. D¶#¶ H¶#¶ EJEMPLOS 0X5A. . .Parámetros y Datos TIPO HEXADECIMAL DECIMAL BINARIO ASCII ESCRITURA OX#.5.

Instrucciones sobre registro orientadas a bytes .

Instrucciones sobre registro orientadas a bits .

Instrucciones para operaciones con literales y de control .

status (z=1) F >= W. k = W.Operación resta: Además de realizar una simple resta sirve para obtener las siguientes comparaciones. para ver si son iguales o diferentes F = W. status (c=0) Ejemplos: F. k = W.k W 5 6 2 5 0 z=1 2 +4 c=1 6 -4 - c=0 Operación XOR: Sirve para comparar. status (c=1) F < W. bien sea entre un registro (f) y el acumulador (w) o una constante (k) y el acumulador (w). bien sea entre un registro (f) y el acumulador (w) o una constante (k) y el acumulador (w) F = W. k < W. k 11001100 W 11001100 00000000 z=1 11110010 11001100 00111110 z=0 . status (z=1) Ejemplos: F . k >= W.

Operación lógica AND: Uno de sus usos es eliminar una porción de bit sin importancia. que se encuentran en un puerto de 8 bits. Nota: Esto también sirve si el valor esta en una constante. Ejemplo: Tomar 2 valores de 4 bits. colocando en este. es decir una constante y W PORTx Z3 Z2 Z1 Z0 Y3 Y2 Y1 Y0 AND W 0 0 0 0 1 1 1 1 LSB 0 0 0 0 Y3 Y2 Y1 Y0 PORTx Z3 Z2 Z1 Z0 Y3 Y2 Y1 Y0 AND W 1 1 1 1 0 0 0 0 Z3 Z2 Z1 Z0 0 0 0 0 SWAPF MSB 0 0 0 0 Z3 Z2 Z1 Z0 . Todo se basa en realizar una operación AND del registro que contiene la información y el acumulador (W). unos en los bits del registro que deben mantenerse y ceros en los que desean eliminarse.