Líneas disponibles por Puerto: 1.- Puerto
A= 7 líneas E/S. 2.-Puerto B = 8 líneas
E/S. 3.-Puerto C = 5 líneas E/S (RCO, RCI,
RC2, RC6 y RC7) y 2 líneas de sólo
entrada (RC4 y RC5). 4.-Puerto D = 8
líneas E/S, incluye resistencias pull.up.
4.-Puerto D = 8 líneas E/S, incluye
resistencias pull-up. 5.-Puerto E = 8
líneas E/S (REO, REÍ y RE2) y una línea de
sólo (RE3).
ADC: -13 canales de
conversión. -Permite
conversión de una entrada
analógica a su correspondiente
valor digital de 10 bits. -Usa
tensiones de referencia VREF+
y VREF- seleccionables por
software como VDD y VSS o las
aplicadas en las terminales
RA3/RA2.-Funciona en modo
"sleep" porque posee el
oscilador RC interno propio.
PUERTOS
SERIALES
USART: 1.- Configurar líneas pin RX y pin TX como entrada y
salida respectivamente, a través del registro TRISC. 2.- Configurar
el modo Síncrono o Asíncrono. 3.- Configurar el Baud-Rate del
USART a través del registro UBRRH. 4.- Configurar Tamaño de byte
8/9 bits. 5.- Habilitar la Transmisión y Recepción a través de los
bits TXEN y RCEN respectivamente. 6.- Habilitar la Interrupción
de Transmisión/Recepción a través de los bits TXIE y RCIE
respectivamente (opcional).
1.- UART, adaptador de comunicación serie asíncrona. 2.- USART, adaptador de comunicación serie síncrona y
asíncrona. 3.- Puerta paralela esclava para poder conectarse con los buses de otros microprocesadores. 4.-
USB, bus serie moderno para los PC. 4.- Bus I2C, interfaz serie de dos hilos desarrollado por Philips. 5.- CAN
es un protocolo de comunicaciones desarrollado por la firma alemana Robert Bosch GmbH, basado en una
topología bus para la transmisión de mensajes en ambientes distribuidos, además ofrece una solución a la
gestión de la comunicación entre múltiples CPUs.
MANEJO DE PUERTOS
Configurar, escribir o leer un Pin de
cada PUERTO; 1.-TRISX:
Escribiendo en cada bit (“1” lógico =
Entrada y “0” lógico = Salida).
2.-LATX: Escribiendo en cada bit la
salida tendrá un nivel de Voltaje
(“1” lógico = 5v | “0” lógico = 0v).
3.-PORTX: Este registro es de solo
Lectura (5v =”1” lógico | 0v =“0”
lógico).
Lectura de un PUERTO: 1.-
Valor = PORTA [ RA0 ] : El
estado lógico del pin A0 se
escribe en la variable valor
2.- Valor = PORTA : El
estado lógico del todo el
Puerto A se escribe en
valor. *Para poder
Habilitar la resistencia
PULL-UP en un pin
determinado, es necesario
que dicho pin este
configurado como entrada
y luego escribir “0” lógico
en el bit RBPU del registro
INTCON2.
Configuración
de los pines IO
de un PUERTO:
1.- TRISA =
0b11111111;
Configura
todos los pines
del Puerto A
como Entrada.
2.- TRISA =
0b00000000;
Configura
todos los pines
del Puerto A
como Salida.
3.- TRISA =
0b00001111;
Los pines Altos
como Salida y
el resto como
Entrada.
Escritura de pines
en un PUERTO: 1.-
LATA =
0b11111111;
Todos los pines
del Puerto A con
una salida de 5v.
2.- LATA =
0b00000000;
Todos los pines
del Puerto A con
una salida de 0v.
3.- LATA =
0b00001111; Los
pines Altos a 0v y
los pines Bajos a
5v.
Los pines de E/S presentan las
siguientes características en sus
puertos IO: -3 Registro
independientes para Configurar,
Escribir y Leer cada PUERTO
(TRISx, LATx y PORTx).
-Selección de resistencia
PULL-UP sólo para el Puerto B.
CONFIGURACIÓN DEL
RELOJ
Usando software MPlab; Se crea un
nuevo proyecto, seleccionar el PIC y
crear archivo principal. Acceder a la
carpeta "Source file", click derecho
para desplegar el menú y seleccionar
"C main file" y configurar los bits. Se
genera un código, el cual puede
copiarse en el archivo principal o
vincularlo en la carpeta "Header files".
También se muestra el diagrama del
oscilador y sus opciones de
configuración disponibles.
Perro guardián o “Watchdog”: Es
un temporizador que cuando se
desborda y pasa por cero provoca
un reset automáticamente en el
sistema.
MICROPROCESADOR: La mayoría estàn basados en la Arquitectura de Von Neuman
CPU
Realiza: Operaciones
lógicas y aritméticas,
auxilia en la toma de
decisiones. Permite el
intercambio de datos
entre localidades de
memorias y/o periféricos.
Arquitectura General de un
Microcontrolador
1.-CPU. 2.-Interrupciones.
3.-Control de bus 4.-Memoria
RAM (registros temporales de
datos). 5.-Memoria ROM para
programa.
6.-Temporizadores/contadores.
7.-Puertos E/S. 8.-ADC.
Timers: Cuenta con 4
módulos; TIMER0,
TIMER1, TIMER2 y
TIMER3, emplean
para contabilizar
intervalos de tiempo
o para contar flancos
que aparecen en
terminales externas
del micro.
Interrupciones: Se les
asigna un nivel de
prioridad ya sea. 1.-
Alto; Vector de
interrupción 00008h.
2.- Bajo; Vector de
interrupción 000018h.
CPP(CAPTURE/COMPARE/PWM)
Módulo en modo PWM utiliza
el Timer2 para generar un tren
de pulsos de amplitud y ciclo de
trabajo variable (señal PWM ).
2 módulos CCP, cada
módulo contiene un
registro de 16 bits que
puede operar como un
capturador, como un
comparador o como un
PWM. 1.- CCP1 funciona
como un CCP mejorado,
con un modo capturador
y comparador estándar y
un modo PWM mejorado.
2.- CCP2 asociado a los
registros CCPR1 y CCPR2
pines RC2 (CCP1) y
RC1/RB3 (CCP2).
ORGANIZACIÓN DE LA MEMORIA
Tipos de memorias que incluye: A. Memoria de Programa. - 32.768 bytes. B.
Memoria RAM de datos - 2048 bytes. C. Memoria EEPROM de datos - 256
bytes. D. Bloque de 31 palabras de 21 bytes. E. Memoria de Configuración - 12
bytes de memoria flash y 2 bytes de memoria de sólo lectura.
Tipo de almacenamiento: A. Instrucciones, constantes/datos. B. Datos de forma temporal durante la ejecución
del programa y puede ser escrita / leída en tiempo de ejecución mediante diversas instrucciones. C. Datos que
se deben conservar aun en ausencia de tensión de alimentación, la cual puede ser escrita/leída en tiempo de
ejecución a través de registros. D. Dirección de la instrucción que debe ser ejecutada después de una
interrupción o subrutina. E. Configuración y los registros de identificación.