Professional Documents
Culture Documents
. DE MXICO
FACULTAD DE INGENIERA
INTRODUCCION A MICROCONTROLADORES
PIC CON C
Diseadores
Gerardo Ramos Vsquez
Juan Francisco Hernndez Medina
Carlos Ignacio Garca Snchez
Presentacin.
Este curso tiene como propsito difundir el uso de las tecnologas asociadas a los micros
controladores para crear materiales de apoyo a los alumnos que les permita tener un mejor
desarrollo en sus clases y entender mejor el concepto desde un enfoque terico prctico.
Con una herramienta micro controladores que es de uso cotidiano en dispositivos
electrnicos digitales actuales (hornos de microondas, relojes, alarmas de incendios, de
automviles, cerraduras electrnicas, etc.).
Actividades.
El curso est formado en tres partes, la primera es una introduccin en la que a los
asistentes se les motiva al estudio de la teora bsica necesaria para entender el
funcionamiento y programacin de los micros controladores, as como las aplicaciones
actuales de estos dispositivos. La segunda parte consta de sesiones donde se exponen los
conceptos necesarios para poder emplear de manera correcta los micros controladores. En
la tercera y ltima parte se realizaran sesiones prcticas donde los asistentes ponen a
prueba los conocimientos adquiridos en el curso al programar micro controladores para
crear aplicaciones.
Evaluacin.
A considerar para el instructor.
Materiales
Para el instructor:
Una PC, con sistema operativo Windows donde se pueda instalar el software para la
programacin de los micro controladores.
Software y manuales necesarios para el curso.
PIC16F877A
Cable de conexin para puerto serial.
Display tipo LCD de 16x2 caracteres.
Sensor de temperatura LM35.
8 Resistencias de 680 a de watt.
8 Leds de colores de 5mm.
4 Push botton de dos terminales
4 Resistencias de 10 k a de watt.
Eliminador de bateras de 9V.
Circuito Integrado L293D driver de motores.
Una tableta tipo Protoboard de las grandes para armar los circuitos.
Pinzas de punta y de corte para electrnica.
TEMA 1
MICROCONTROLADOR PIC16F877A
1. Qu es un micro controlador?
1.1. Diferencia entre micro controladores y microprocesadores.
1.2. Conceptos importantes
1.3. Condigo fuente
1.4. Ensambladores
1.5. Interpretes
1.6. Compiladores
2. La familia de los PICs
2.1. Porque los PICs se han colocado en el mercado
2.2. Gama baja o bsica
2.3. Gama media
2.4. Gama alta
2.5. Gama mejorada
2.6. Los de 8 pines
3. El PIC16f877
3.1. El micro controlador PIC 16F877A
3.2. Recursos
3.3. Diagrama de sus pines
3.4. Descripcin de sus pines y puertos
3.5. Organizacin de la memoria
3.6. Bancos y registros
3.7. Palabra de configuracin
3.8. Instrucciones orientadas a bits
3.9. Instrucciones orientadas a constantes y de control
3.10.
Instrucciones bsicas para el compilador CCS
3.11.
Un poco de orden
3.12.
El PWM (pulse wide modulation)
Microcontrolador
Dispositivo electrnico que posee todas las caractersticas de una PC, claro que en pequea
escala. Pues cuenta con puertos de entrada y salida de informacin, puertos de comunicacin,
Unidad aritmtica Lgica, memoria interna (RAM y ROM), Y una Unidad Central de Procesos.
Microprocesador
Este elemento en cambio, solo es un Unidad Central de Procesos, que de manera externa
(desde un punto de vista de una PC) hay que conectarle la memoria, puertos y unidades de
almacenamiento (por eso se monta en una tarjeta madre para poder utilizarlo), tiene la ventaja
de ser mas escalable que un microcontrolador.
Cdigo Fuente
EI cdigo fuente, es almacenado en el archivo fuente, este archivo est escrito con el
American Standar Code for Information Interchange (ASCII) y contiene las sentencias
del programa y comentarios (utilizados para que los humanos puedan entender lo que
el programa est ejecutando). EI archivo fuente es creado en un editor estndar (como
NotePad 0 WordPad) 0 puede ser construido en un editor IDE (ambientes de desarrollo
integrado) que posee mltiples aplicaciones que apoyan en el desarrollo de la
aplicacin. EI archivo fuente es usado como entrada para los ensambladores,
interpretes 0 compiladores que producen las instrucciones necesarias para controlar un
dispositivo. En el caso de un ensamblador 0 compilador, el cdigo fuente es convertido
en un archivo objeto o archivo hex, que finalmente ser grabado dentro del
microcontrolador que controla el dispositivo. El intrprete es construido dentro del
microcontrolador del dispositivo y ejecuta el archivo fuente que es una serie de
instrucciones y comandos que determinan inmediatamente salidas a procesos
intermedios.
El archivo fuente puede incluir otros archivos que proveen que adiciones al cdigo
fuente o prototipos para las libreras de funciones o datos requeridos por la aplicacin.
Los archivos include para ensamblar lenguajes de programacin generalmente
terminan con *.inc que es la extensin con la que terminan los archivos de sistema. Los
archivos include para el lenguaje de programacin C tienen como extensin una *.h
los ensambladores y compiladores proveen de estos archivos include para hacer las
tareas del desarrollo de aplicaciones ms sencillas, basndose en los requerimientos
de tu aplicacin. Al finalizar las operaciones de ensamblar o compilar se produce en un
archivo objeto (usualmente terminado en *.obj) o un archivo hex. El archivo hex es la
aplicacin completa, lista para programarse dentro de un microcontrolador.
El archivo objeto est conectado a otros archivos objeto para producir el archivo hex. El
ms popular de los formatos para archivos hex es el formato Intel 8 bit conocido como
INHXM8. Otros ejemplo de un formato diferente utilizado por los microcontroladores y
programadores de microcontroladores de Motorola es el llamado *.S9 o *.S19.
Ensambladores
Al programar en un lenguaje ensamblador se producen los cdigos ms eficientes en
cuanto a tamao, numero de instrucciones y manejo de recursos del microprocesador.
En mi opinin es un lenguaje diseado por ingenieros electrnicos para ingenieros
electrnicos, las muchas crticas que recibe de los ingenieros en computacin es el no
poder implementar estructuras de control avanzados de manera estructurada. En
defensa del ensamblador podemos decir que con dos o tres lneas podemos prender un
led, resultado que no alcanzara ningn lenguaje de alto nivel despus de ser compilado.
Moraleja si el objeto es manejar en su totalidad y de manera eficiente un
microprocesador o microcontrolador programar en ensamblador. Si los recursos no son
limitados en cuanto a la memoria, pues se puede comprar el dispositivo que soporte las
necesidades del lenguaje de alto nivel y adems se requiere realizar operaciones
aritmticas complejas la mejor opcin es programar en un lenguaje de alto nivel. Hay
que decir que el lenguaje ensamblador es complicado. A pesar de esto, es el lenguaje
ms utilizado en los robots prototipo.
Los pic tienen un juego reducido de 35 poderosas instrucciones (familia 16Fxxx). Cabe
decir que los diferentes tipos de microprocesadores tienen muchas instrucciones
parecidas que son muy similares, lo cual hace muy difcil el poder programar diferentes
microcontroladores sabiendo utilizar un lenguaje
Ensamblador de manera eficiente.
Simulador:
Cuando tu ya ests viendo fluir tu cdigo en algn simulador, estas en el comienzo de
convertirte en un experto desarrollador de lenguaje ensamblador. "Myke Predko"
Los inconvenientes de programar en ensamblador son:
1.- EI cdigo no es totalmente portable. (Un cdigo para un micro puede no funcionar en
un micro diferente).
2.- Es muy difcil explicar la pelcula que observamos en nuestra cabeza a otro
programador.
3.- Es difcil pasar de un lenguaje ensamblador a uno de alto nivel.
PRINCIPALMENTE a pesar de los comentarios negativos anteriores, el programar en
ensamblador es muy conveniente en los siguientes casos:
1.- Desarrollo de prototipos robticos sencillos.
Sencillez de Manejo
Buena Informacin
Precio
Dentro de esta gama se halla el PIC16F877A que es el microcontrolador que vamos a utilizar en
el robot. El repertorio de Instrucciones es de 35 a 14 bits cada una y compatible con el de la
gama baja. Sus distintos modelos contienen todos los recursos que se precisan en las
aplicaciones de los microcontroladores de 8 bits. Tambin dispone de interrupciones y unas Pila
(stack) de 8 niveles que permite el anidamiento de subrutinas.
1.2.4 Gama Alta PIC17CXXX con instrucciones de 16 bits
Se alcanzan las 58 instrucciones de 16 bits en el repertorio y sus modelos disponen de un
sistema de gestin de interrupciones sectorizadas muy potente. Tambin incluyen variados
controladores de perifricos, puertas de comunicacin serie y paralelo con elementos externos y
un multiplicador hardware de gran velocidad.
Quizs la caracterstica ms destacable de los componentes de esta gama es su arquitectura
abierta, que consiste en la posibilidad de ampliacin del microcontrolador con elementos
externos. Para este fin, las patitas sacan el exterior las lneas de los buses de datos, direcciones
y control, a las que se conectan las memorias o controladores de perifricos. Esta filosofa de
construccin del sistema es la que se emplea en los microprocesadores y no suele ser prctica
habitual cuando se emplean microcontroladores.
1.2.5 Gama Mejorada PIC18FXXX con instrucciones de 16 bits
En los inicios del tercer milenio Microchip present la gama mejorada de los microcontroladores
PIC con la finalidad de soportar las aplicaciones avanzadas en las reas de automocin,
comunicaciones, Ofimtica y control industrial. Sus modelos destacaron por su alta velocidad
(40 MHz) y su gran rendimiento.
1.2.6 Los de 8 pines PIC12(C) FXXX
Se trata de PICs que ha acaparado la atencin del mercado. Su principal caracterstica es su
reducido tamao, al disponer un encapsulado de 8 patitas. Se alimenta con un voltaje de
corriente continua comprendido entre 2.5 V Y 5.5 V, Y consumen menos de 2 mA cuando trabaja
a 5 V Y 4 MHz El formato de sus instrucciones puede ser de 12 o 14 bits y su repertorio es de 33
o 35 instrucciones, segn pertenezca a la gama baja o media respectivamente.
1.3. El PIC16F877 A
1.3.1 El microcontrolador PIC16F8777 A
Este microcontrolador pertenece a la familia PIC 16F87x, son una combinacin del PIC16F84 con la
inclusin de los recursos de los PIC16C73 y 74. Incorporan la memoria FLASH, con una capacidad
de 4k 8k (segn el modelo), sin cambiar la estructura interna del procesador y conservando el
mismo repertorio de instrucciones.
1.3.2 Recursos
Tiene una estructura de 4 bancos, seleccionables a travs de con los bits RPO y RP1 del registro
STATUS. El nmero de puertos en los PIC16F876 y 873 es de 3 (28 pines) y el nmero de puertos
en los PIC16F877 y 874 es de 5 (40 pines).
Caractersticas:
1.- Poseen dos mdulos CCP (captura, comparacin y pwm).
2.- Comunicacin Serie (rs232, 12C y SPI)
3.- Comunicacin Paralelo
4.- Convertidor AD.
Diagrama de pines
Descripcin de sus pines y puertos
Los microcontroladores PIC16F87X encapsulados con 28 pines disponen de tres puertos de E/S
(A, S Y C), mientras que los que tienen 40 pines poseen cinco (A, S, e, D y E). Todas las lneas
de estas puertas son multifuncionales, es decir, realizan diversas funciones segn estn
programadas. Sin embargo, todas tienen la capacidad de trabajar como lneas de E/S digitales.
Puerto A
Slo dispone de 6 lneas, denominadas RAO-RA5. El registro que las configura como entras o
salidas se llama TRISA. Si el bit O del registro TRISA se pone a 1, la lnea O (RAO) de la puerta
A funciona como entrada. Si se pone a O funciona como salida.
Los pines RAO/ANO, RA1/AN1, adems de funcionar como E/S digitales tambin pueden
actuar como canales de entrada al convertidor analgico digital (CAD). Los pines RA2/AN2Nrefy RA3/AN3Nref+, pueden funcionar como E/S digitales, como canales AN2 y AN3 del CAD y
como entradas de voltaje de referencia para el CAD. El pin RA4/TOCKI acta como E/S digital y
como entrada de la seal de conteo para el Timer 0.
Por ltimo, la patita RA5/AN4/ SS tiene tres funciones E/S digital, canal 4 del CAD y seleccin
del modo esclavo cuando se trabaja con la comunicacin serie sncrona.
Puerto B
Dispone de 8 lneas bidireccionales digitales cuya funcin se elige mediante la programacin del
registro TRISS. Todos los pines del Puerto S poseen de una resistencia interna de pull-up al
positivo de la alimentacin, que queda conectada cuando el bit RSPU (7) del registro OPTION,
tiene valor O.
Las lneas RS<7-4> ~y RSO/ INT pueden programarse para generar una interrupcin externa
cuando alguna de ellas cambia de estado.
Puerto C
Consta de 8 lneas bidireccionales cuyo sentido se configura mediante el registro TRISC. Todas
las patitas de esta puerta tienen multiplexadas diferentes funciones.
RCOIT10S01T1CKI: Esta lnea puede actuar como E/S digital, como salida del Timer1 o como
entrada de impulsos para el Timer1.
RC11T10SIICCP2: E/S digital, entrada del oscilador del Timer1, entrada del mdulo de
captura2, salida del comparador 2, salida del PWM2.
RC2/CCP1: E/S digital, entrada del modulo de de captura1, salida del comparador, 1 salida del
PWM1.
.
RC3/SCK/SCL: E/S digital, seal de reloj en modo SPI, seal de reloj en modo 12C.
RC4/SDI/SDA: E/S digital, entrada de datos en modo SPI, lnea de datos en modo 12C.
RC5/SDO: E/S digital, salida de datos en modo SPI.
RC6ITX/CK: E/S digital, lnea de Tx en el USART, seal de reloj sncrona en transmisin serie.
RC7IRX1DT: E/S digital, lnea de Rx en el USART, lnea de datos en transmisin serie sncrona.
Puerto D
Este puerto es de 8 bits, slo lo poseen los encapsulados de 40 pines de la familia P16F877x,
su registro de configuracin es el TRISD. Adems de usarse como lneas de E/S digitales
normales, implementan una puerta paralela esclava de 8 lneas (PSP), que
sirve
para
permitir la comunicacin en paralelo con otros elementos del sistema.
.
Puerto E
Este puerto es de 3 bits, slo lo poseen los encapsulados de 40 pines de la familia P16F877x,
su registro de configuracin es el TRISE, las funciones de capa patita son las siguientes:
REOI RDIAN5: E/S digital, seal de lectura en el modo de PSP, canal 5 del
CAD. RE1/WRIAN6: E/S digital, seal de escritura en modo PSP, canal 6 del
CAD. RE21 es IAN7: E/S digital, seleccin de chip en el modo PSP, canal 7
del CAD.
Bancos-y-registros
registros
Void main ()
{
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_comparator(NC_NC);
setup_vref(FALSE);
set_tris_a(0x00);
//con esta instruccion programas que el puerto sea unicamente salida
for(;;)
{
output_high(PIN_A0);
delay_us(9);
output_low(PIN_A0);
delay_us(9);
}
// TODO: USER CODE!!
}
pone a 0) cuando otro comparador detecta la coincidencia del valor existente en CCPR1H con
el de la parte alta del TMR2. De esta manera, variando los valores que se cargan en PR2 y en
CCPR1 L (que luego se pasa a CCPR1 H) se vara el intervalo de tiempo en el que el pin de
salida est en 1 0.
Ejemplo
#include <18F452.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
void main()
{
setup_ccp1(CCP_COMPARE_CLR_ON_MATCH);
// Configure CCP1 in COMPARE mode
setup_timer_1(T1_INTERNAL);
// Set up timer to instruction clk
while(TRUE)
{
while(input(PIN_B0)) ;
setup_ccp1(CCP_COMPARE_CLR_ON_MATCH);
// Configure CCP1 in COMPARE
// mode and to pull pin C2
// low on a match with timer1
delay_ms(1000);
}
}
TEMA 2
PROGRAMACiN EN "C" E IMPLEMENTACIN DEL PIC16F877
Una gran ventaja de los PIC y que los hace estar entre el microcontrolador preferido a nivel
mundial; es su bajo costo, tanto del chip en si, como de sus componentes electrnicos
necesarios para hacerla funcionar. Otra situacin es que Microchip opto por que sus software's
programadores fueran sencillos y no necesitaran de licencias especiales para programar la
memoria de los integrados. Estas dos estrategias le han funcionado de maravilla a Microchip.
Actualmente hay un esfuerzo mundial entre fanticos de los PICs para crear herramientas para
programarlos y el mejoramiento de estas herramientas es constante. Actualmente el software
ms rpido para programar un Pie y que tiene muy buena compatibilidad con muchas PCs es el
WinPIC800.
Para instalar el software WinPic800, bastar con ejecutar el archivo Winpic800.exe, se instalara
en la carpeta C:\Winpic800.
Una vez hecho esto ejecutar el EXE con doble click y establecer la configuracin del hardware.
Es muy pequeo para todas las versiones de PIC 16F, 18F Y dsPIC. (ocupa menos de
100 palabras).
Permite escribir en memoria FLASH o EEPROM y las palabras de configuracin.
Despus de un reset espera 1 segundo (puede ajustarse a mas o menos tiempo) a que
la PC responda.
Permite seleccionar fcilmente la velocidad de baudaje.
El bit de inicio debe ser siempre un nivel bajo. Los bits de datos, marcados con Dn,
pueden ser 4,5,6,7 u 8. El bit de paridad puede estar o no presente. Tambin existe el
bit de parada que puede ser 1, 1 1/2, 2 bits. De esta forma, una comunicacin serie
debe empezar siempre con un nivel bajo y acabar con un nivel alto. El bit de paridad
sirve para detectar errores en la comunicacin.
Estandar RS-232C
Para que una comunicacin serie funcione correctamente se necesita, a parte de las
caractersticas ya mencionadas, que los niveles de voltaje, que representan el "1" Y el
"O" sea iguales para cada caso; se necesita tambin de unas seales de protocolo
para preparar a los dispositivos a trasmitir o recibir. Todo esto se incluye en el estndar
RS-232C que se explica a continuacin.
Publicado par la Asociacin de Industrias Electrnicas (EIA por sus inciales en ingls),
el estndar RS-232C define las seales de protocolo, los niveles de voltaje de las
seales y un conectar de 25 terminales, necesarios para la comunicacin serie
actualmente este estndar es el ms usado para la comunicacin serie y es el que
viene incluido en la mayora de las computadoras personales. Esta especificado para
una distancia mxima de 15m (50 pies) a una velocidad mxima de 20,000 baudios
(bits por segundo). Para velocidades de transmisin menores, se pueden usar cables
de 610 a 915 m (2000 a 3000 pies). Existen otras versiones de este estndar, como el
RS-422 y el RS-423, en los que se ve mejorada la velocidad de transmisin
principalmente.
El conectar RS-232C tiene 25 terminales, aunque en la mayora de los sistemas serie,
slo se ocupan las terminales 1 a 8 y I~ 20; existiendo inclusive computadoras que
traen un conectar serie RS-232 de 9 terminales. La razn de esta reduccin de
terminales es que las patas restantes son lneas secundarias, es decir, lneas que
tienen la misma funcin pero que nos son usadas a menos que sean sistemas muy
complejos de transmisin. Por este motivo se describirn slo las terminales ms
comunes.
Las terminales descritas en amabas figuras con excepcin de TxD, RxD y GND, son las que
conforman las seales de protocolo. Un protocolo es la forma en que la computadora y la interfaz se
piden permiso para trasmitir datos, para avisar que ya estn preparados para recibir datos, para
interrumpir la transmisin, etc.
El protocolo es la forma en que dialogan computadoras e interfaz y se lleva a cabo de la siguiente
manera: despus de encender la computadora, sta corre una rutina de auto verificacin y enva la
seal DTR a la interfaz. La interfaz responde con la seal DSR para indicar que est funcionando. La
computadora enva la seal RTS a la interfaz y despus de un intervalo apropiado de tiempo, la
interfaz responde con CTS. La computadora entonces enva los datos serie por la terminal TxD.
Cuando la computadora debe recibir datos, el protocolo es el mismo, slo que la computadora enva
las seales que enviaba la interfaz y viceversa, enviando la interfaz, adems, la seal CD.
Un protocolo posterior puede llevarse a cabo, ya dentro del programa, para indicarle al dispositivo
externo el inicio de la transmisin y el fin de datos, o por parte del dispositivo hacia la computadora
para pedirle ms datos, etc. Este protocolo se explicar cuando se desarrolle el programa de
comunicacin definitivo.
En cuenta a los niveles de voltaje, las seales RS-232C estn estandarizadas a los siguientes
valores; Un "1" lgico o marca es un voltaje entre -3 y -15 volts. Un "O" lgico o espacio es un voltaje
entre +3 y +15 volts.
Debido a que la interfaz trabajar con circuitos TIL y CMOS deben convertirse estos voltajes a
niveles de +5 volts para el "1" Y O volts para el "O". Esto se logra utilizando un circuito integrado el
MAX232.
Comunicacin sncrona
La comunicacin se realiza sobre dos lneas, la DT que traslada en los dos sentidos los bits a la
frecuencia de los impulsos de reloj que salen por la lnea CK desde el maestro. Se utiliza para
comuncarse con perifricos como memorias, conversores, etc.
En ambos modos las lneas de comunicacin son las dos de ms peso de la Puerta C:
RC6ITX/CK y RC7/RX/DT.
Como nuestro fin es la comunicacin con un dispositivo que posea comunicacin serie y no a un
nivel de comunicacin circuito integrado con circuito integrado (esclavo y maestro). Se describir la
comunicacin Asncrona.
Configuracin Comunicacin Asncrona
Los cuatro bloques que configuran la arquitectura del USART, en modo asncrono, son:
1. Circuito Maestro
2. Generador de baudios
3. Transmisor asncrono
Mdulo de comunicacin USART del PIC16F877
Este mdulo es capaz de soportar la comunicacin serie sncrona y asncrona
Comunicacin asncrona
Las transferencias de informacin se realizan sobre dos lneas TX (transmisin) y RX (recepcin),
saliendo y entrando los bits por dichas lneas al ritmo de una frecuencia controlada internamente por
el USART (Universal Synchronous Asynchronous Receiver Transmitter). Se utiliza para comunicarse
con dispositivos tales como el monitor CRT, el ratn, mdems o el ordenador PC.
Receptor asncrono
Circuito maestro
Acta sobre la patita RC7/RX/DT, que es por donde se recibe el bit de informacin o control y se
encarga de muestrear tres veces su valor, para decidir ste por mayora.
Transmisor asncrono
El dato que se desea transmitir por el USART transmisor se deposita en el registro TXREG y a
continuacin se traspasa al registro de desplazamiento TSR, que va sacando los bits
secuencialmente y a la frecuencia establecida. Adems, antes de los bits del dato de informacin
incluye un bit de inicio y despus de sacar todos los bits aade un bit de PARADA. El USART
receptor recibe uno a uno, los bits, elimina los dos de control y los de informacin una vez que han
llenado el registro de desplazamiento RSR los traslada automticamente al registro RCREG, donde
quedan disponibles para su posterior procesamiento.
Receptor asncrono
Los datos se reciben en serie, bit a bit, por la patita RC7 y se van introduciendo secuencialmente en
el registro desplazamiento RSR, que funciona a una frecuencia 16 veces ms rpida que la de
trabajo. Cuando el dato consta de 9 bits hay que programar el bit RX9 = 1 Y el noveno bit de
informacin se colocar en el bit RX9D del registro RESTA. Cuando CREN = 1 en el registro RCSTA,
se habilita la recepcin.
1. Hay que configurar las lneas RC6 como salida y RC7 como entrada
2. Poner SYNC = O Y SPEN = 1 para activar la comunicacin asncrona y la comunicacin puerto
serie respectivamente.
3. Se carga con el valor X al registro SPBRG para trabajar con la frecuencia deseada, controlando
adems el valor de BRGH.
4. Si se desea que se genere una interrupcin con la llegada del bit PARADA,
se pone RCIE = 1, adems de habilitar las interrupciones en general.
5. Poner RX9 = 1 para permitir la recepcin del bit 9.
6. Para detectar la direccin, poner ADDEN = 1.
7. SE habilita la recepcin poniendo CREN= 1.
8. Al complementarse la recepcin RCIF se pondr a 1 y se produce una interrupcin si se
haba permitido.
9. Se lee el registro Resta y se averigua si se ha producido algn error.
10. Lee los 8 bits del registro RCREG para determinar si el dispositivo ha sido el direccionado.
11. Si se ha producido algn error, poner CREN=0.
12. Si ha sido direccionado el dispositivo, poner ADDEN=0 para permitir la recepcin de la
informacin.
http://verona.fi-p.unam.mx/crofi/
http://www.microchip.com/
http://es.wikipedia.org/wiki/Microcontrolador_PIC
http://ww1.microchip.com/downloads/en/devicedoc/39582b.pdf