You are on page 1of 17

UNIVERSIDAD CATOLICA DE SANTA MARIA GRUPO: 01

"Ao de la Diversificacin Productiva y del Fortalecimiento de la Educacin"

UNIVERSIDAD CATOLICA DE SANTA MARIA

Facultad de Ciencias e Ingenieras Fsicas y Formales

Escuela Profesional de Ingeniera Mecnica, Mecnica Elctrica y


Mecatrnica.

MICROCONTROLADORES Y MICROPROCESADORES

Jefe de Practicas: Ing. MESTAS RAMOS, Sergio Orlando

INFORME Nro.1: SOFTWARE DE PROGRAMACION DE

MICROCONTROLADORES

Alumno:

ONQUE QUIRITA, Marcos Everaldo

Semestre: VII

Grupo: 01

2015

MICROCONTROLADORES Y MICROPROCESADORES Pgina 1


UNIVERSIDAD CATOLICA DE SANTA MARIA GRUPO: 01

Informe Nro. 01: SOFTWARE DE PROGRAMACION DE

MICROCONTROLADORES
I. OBJETIVOS:

Comprobar el funcionamiento de diferentes programas con microcontroladores.


Utilizar distintas herramientas para realizar una simulacin y un debug de los programas
anteriores.

II. INSTRUMENTOS:

Computador
MPLAB
Protoboard
Microcontrolador
Dispositivos varios
MPLAB PC o Laptop
Entrenador
III. DESARROLLO DE LA PRACTICA:

A. MANEJO DE E/S:

1. Edite el siguiente programa en MPLAB.


2. Compile el programa.
3. Simule el programa y abra las ventanas de Memoria de programa, registros de funcin especial
(FSR) y la ventana de estimulus para el puerto de entrada.

MANEJO DE ENTRADAS
Y SALIDAS

List p=16F84;
include "P16F84.INC";
org 0x00;
goto Inicio
org 0x05;
Inicio clrf PORTB;
bsf STATUS,RP0;
clrf TRISB;
movlw b'00011111'
movwf TRISA;
bcf STATUS,RP0;
Leer movf PORTA,W;
movwf PORTB;
goto Leer;
end

MICROCONTROLADORES Y MICROPROCESADORES Pgina 2


UNIVERSIDAD CATOLICA DE SANTA MARIA GRUPO: 01

4. Anote en una tabla el valor del PLC, W, TRISA, TRISB, PORTA y PORTB para cada corrida del
programa.

EJECUCION STATUS PLC WORK TRISA TRISB PORTA PORTB

0 00011111 00000000 00011111 00011111 11111111 00000000 00000000


1 00011111 00000101 00011111 00011111 11111111 00000000 00000000
2 00011111 00000110 00011111 00011111 11111111 00000000 00000000
3 00111111 00000111 00011111 00011111 11111111 00000000 00000000
4 00111111 00001000 00011111 00011111 00000000 00000000 00000000
5 00111111 00001001 00011111 00011111 00000000 00000000 00000000
6 00111111 00001010 00011111 00011111 00000000 00000000 00000000
7 00111111 00001011 00011111 00011111 00000000 00000000 00000000
8 00011111 00001100 00000000 00011111 00000000 00000000 00000000
9 00011111 00001101 00000000 00011111 00000000 00000000 00000000
10 00011111 00001011 00000000 00011111 00000000 00000000 00000000
11 00011111 00001100 00000000 00011111 00000000 00000000 00000000
12 00011111 00001101 00000000 00011111 00000000 00000000 00000000
13 00011111 00001011 00000000 00011111 00000000 00000000 00000000

MICROCONTROLADORES Y MICROPROCESADORES Pgina 3


UNIVERSIDAD CATOLICA DE SANTA MARIA GRUPO: 01

5. Dibuje el diagrama de flujo del programa anterior.

6. Determine cul es el propsito del programa.

El objetivo es permitirnos analizar la forma de programar las lneas de Entrada/Salidas de un


PIC(16F84). A travs de las cuales se conectan los distintos perifricos que se desean gobernar.

Esas 13 lneas se agrupan en dos puertas. La puerta A est representada en la posicin 0x05 del
rea de datos. Cualquier instruccin de un programa que implique leer o escribir sobre esta
posicin, conlleva obtener o sacar informacin binaria por las cinco lneas que componen dicha
puerta y que se denominan RA0-RA4. Los tres bits de ms peso de la posicin 0x05 no estn
reflejados en ninguna lnea, por lo que no tienen ningn valor.

MICROCONTROLADORES Y MICROPROCESADORES Pgina 4


UNIVERSIDAD CATOLICA DE SANTA MARIA GRUPO: 01

B. CONTROL DE UNA LAMPARA:

7. Edite el siguiente programa en MPLAB.


8. Compile el programa.
9. Simule el programa y abra las ventanas de Memoria de programa, registros de funcin especial
(FSR) y la ventana de estimulus para el puerto de entrada.

CONTROL DE UNA
COMENTARIOS
LAMPARA

List p=16F84; Tipo de procesador


include "P16F84.INC"; Incluye el fichero con los nombres de los registros
Temp equ 0x0c; Variable temporal que se almacena en la posicin
org 0x00; 0x0c
goto Inicio Vector de Reset
org 0x05;
Inicio clrf PORTB; Salva el vector de interrupcin
bsf STATUS,RP0; Borra los latch de salida
clrf TRISB; Selecciona banco 1 de la memoria de datos
movlw b'00000011' Puerta B se configura como salida
movwf TRISA;
bcf STATUS,RP0; RA0 y RA1 se configuran como entrada
clrf Temp; Selecciona banco 0 de la memoria de datos
Loop movf PORTA,W; Pone a 0 el registo o variable temporal
andlw b'00000011'; Leer el estado de la puerta A
movwf Temp; Filtra la informacin para quedarnos con RA0 y
btfsc STATUS,Z; RA1
goto Apagar ; Almacena temporalmente
movlw b'00000001' RA0=0 y RA1=0 ??
subwf Temp,W Si, la lmpara se apaga
btfsc STATUS,Z;
goto Encender;
movlw b'00000010' ;RA0=1 y RA1=0 ??
subwf Temp,W Si, la lmpara se enciende
btfsc STATUS,Z;
goto Encender; RA0=0 y RA1=1 ??
Apagar bcf PORTB,0; Si, la lmpara se enciende
goto Loop No, la lmpara se apaga
Encender bsf PORTB,0;
goto Loop
end; La lmpara se enciende

Fin del programa fuente

MICROCONTROLADORES Y MICROPROCESADORES Pgina 5


UNIVERSIDAD CATOLICA DE SANTA MARIA GRUPO: 01

Memoria de programa, registros de

funcin especial

10. Anote en una tabla el valor del PLC, W, TRISA, TRISB, PORTA y PORTB para cada corrida del
programa.

EJECUCION STATUS PLC WORK TRISA TRISB PORTA PORTB

0 00011100 00000000 00000000 00011111 11111111 00000000 00000000


1 00011100 00000101 00000000 00011111 11111111 00000000 00000000
2 00011100 00000110 00000000 00011111 11111111 00000000 00000000
3 00111100 00000111 00000000 00011111 11111111 00000000 00000000
4 00111100 00001000 00000000 00011111 00000000 00000000 00000000
5 00111100 00001001 00000011 00011111 00000000 00000000 00000000
6 00111100 00001010 00000011 00000011 00000000 00000000 00000000
7 00011100 00001011 00000011 00000011 00000000 00000000 00000000
8 00011100 00001100 00000000 00000011 00000000 00000000 00000000
9 00011100 00001101 00000000 00000011 00000000 00000000 00000000
10 00011100 00001110 00000000 00000011 00000000 00000000 00000000
11 00011100 00001111 00000000 00000011 00000000 00000000 00000000
12 00011100 00010000 00000000 00000011 00000000 00000000 00000000
13 00011100 00011001 00000000 00000011 00000000 00000000 00000000
14 00011100 00011010 00000000 00000011 00000000 00000000 00000000
15 00011100 00001100 00000000 00000011 00000000 00000000 00000000

MICROCONTROLADORES Y MICROPROCESADORES Pgina 6


UNIVERSIDAD CATOLICA DE SANTA MARIA GRUPO: 01

11. Dibuje el diagrama de flujo del programa anterior.

12. Determine cul es el propsito del programa.

Como metfora central podemos ubicar este caso de una habitacin con una instalacin
conmutada en la que una lmpara se puede manipular el encendido o apagado desde dos
interruptores colocados en posiciones distantes entre s.

Su funcionamiento se puede determinar a travs de la siguiente tabla:

Entradas Salida Estado de


RA0 RA1 RB0 lmpara
0 0 0 APAGADA
0 1 1 ENCENDIDA
1 0 1 ENCENDIDA
1 1 0 APAGADA

MICROCONTROLADORES Y MICROPROCESADORES Pgina 7


UNIVERSIDAD CATOLICA DE SANTA MARIA GRUPO: 01

C. CONTROL COMBINACIONAL:

13. Edite el siguiente programa en MPLAB.

14. Comente cada una de las lneas del programa.

15. Compile el programa.

16. Simule el programa y abra las ventanas de Memoria de programa, registros de funcin especial
(FSR) y la ventana de estimulus para el puerto de entrada.

CONTROL
COMENTARIOS
COMBINACIONAL

List p=16F84 Tipo de procesador.


include "P16F84.INC" Incluimos ficheros con los nombres de los registros.
Temp equ 0x0c Variable temporal que se almacena en la posicin 0x0c.
org 0x00 Vector de Reset.
goto Inicio
org 0x05 Salva el vector de interrupcin.
Inicio clrf PORTB Borra los latch de salida.
bsf STATUS,RP0 Ponemos a 1 el bit RP0.
clrf TRISB Puerta B se configura como salida.
movlw b'00001001' Introducimos el numero b'00001001' al trabajo.
movwf OPTION_REG Movemos lo que esta en el trabajo al registro OPTION_REG.
movlw b'00000011' Introducimos el numero b'00000011' al trabajo.
movwf TRISA Movemos lo que esta en el trabajo a al registro TRISA.
bcf STATUS,RP0 Ponemos a 0 el bit RP0.
Loop: clrwdt Limpiamos nuestro perro guardian por lo cual refrescamos.
movf PORTA,W Movemos el PORTA a nuestro trabajo.
andlw b'00000011' Operamos un AND al trabajo con b'00000011'.
movwf Temp Almacenamos temporalmente.
btfsc STATUS,Z Analizamos si Z=0 o Z=1??
goto Secuencia_00 Salto incondicional a al registro Secuencia_00.
movlw b'00000001' Introducimos el numero b'00000001' al trabajo.
subwf Temp,W Sustraemos el trabajo a almacenamiento temporal y luego al W

MICROCONTROLADORES Y MICROPROCESADORES Pgina 8


UNIVERSIDAD CATOLICA DE SANTA MARIA GRUPO: 01

btfsc STATUS,Z Analizamos si Z=0 o Z=1??


goto Secuencia_01 Salto incondicional a al registro Secuencia_01.
movlw b'00000010' Introducimos el numero b'00000001' al trabajo.
subwf Temp,W Sustraemos el trabajo a almacenamiento temporal y luego al W.
btfsc STATUS,Z Analizamos si Z=0 o Z=1??
goto Secuencia_10 Salto incondicional a al registro Secuencia_10.
Secuencia_11 Registro: Secuencia_11
movlwb'11110000' Introducimos el numero b'00001001' al trabajo.
movwf PORTB Movemos lo que esta en el trabajo al registro PORTB
goto Loop Salto incondicional a al registro LOOP.
Secuencia_00 Registro: Secuencia_00
movlw b'10101010' Introducimos el numero b'1010101010' al trabajo.
movwf PORTB Movemos lo que esta en el trabajo al registro PORTB
goto Loop Salto incondicional a al registro LOOP.
Secuencia_01 Registro: Secuencia_01
movlw b'01010101' Introducimos el numero b'0101010101' al trabajo.
movwf PORTB Movemos lo que esta en el trabajo al registro PORTB
goto Loop Salto incondicional a al registro LOOP.
Secuencia_10 Registro: Secuencia_10
movlw b'00001111' Introducimos el numero b'00001111' al trabajo.
movwf PORTB Movemos lo que esta en el trabajo al registro PORTB
goto Loop Salto incondicional a al registro LOOP.
end Fin de programa.

MICROCONTROLADORES Y MICROPROCESADORES Pgina 9


UNIVERSIDAD CATOLICA DE SANTA MARIA GRUPO: 01

Memoria de programa, registros

de funcin especial

17. Anote en una tabla el valor del PLC, W, TRISA, TRISB, PORTA y PORTB para cada corrida del
programa.

EJECUCION STATUS PLC WORK TRISA TRISB PORTA PORTB

0 00011100 00000000 00000000 00011111 11111111 00000000 00000000


1 00011100 00000101 00000000 00011111 11111111 00000000 00000000
2 00011100 00000110 00000000 00011111 11111111 00000000 00000000
3 00111100 00000111 00000000 00011111 11111111 00000000 00000000
4 00111100 00001000 00000000 00011111 00000000 00000000 00000000
5 00111100 00001001 00001001 00011111 00000000 00000000 00000000
6 00111100 00001010 00001001 00011111 00000000 00000000 00000000
7 00111100 00001011 00000011 00011111 00000000 00000000 00000000
8 00111100 00001100 00000000 00000011 00000000 00000000 00000000
9 00011100 00001101 00000000 00000011 00000000 00000000 00000000
10 00011100 00001110 00000000 00000011 00000000 00000000 00000000
11 00011100 00001111 00000000 00000011 00000000 00000000 00000000
12 00011100 00010000 00000000 00000011 00000000 00000000 00000000
13 00011100 00011001 00000000 00000011 00000000 00000000 00000000
14 00011100 00011010 00000000 00000011 00000000 00000000 00000000
15 00011100 00001100 00000000 00000011 00000000 00000000 00000000
16 00011100 00001100 10101010 00000011 00000000 00000000 00000000

MICROCONTROLADORES Y MICROPROCESADORES Pgina 10


UNIVERSIDAD CATOLICA DE SANTA MARIA GRUPO: 01

18. Dibuje el diagrama de flujo del programa anterior.

19. Determine cul es el propsito del programa.

Este programa no es muy diferente al anterior las puertas RB0-RB7 actan como salidas y se
activan en funcin del estado de las entradas RA0-RA1. La diferencia entre el problema anterior
y el de ahora es que emplea WDT este acta como temporizador que podemos encontrarlos en
la mayora de PICs.
El WDT se encarga de provocar un reinicio al sistema cada vez que sobrepase su intervalo de
tiempo indicado. Para evitar sobrepasamientos debemos colocar la funcin CLRWDT que nos
permitir refrescar y as evitar reinicios.

MICROCONTROLADORES Y MICROPROCESADORES Pgina 11


UNIVERSIDAD CATOLICA DE SANTA MARIA GRUPO: 01

D. CONTROL SECUENCIAL:

20. Edite el siguiente programa en MPLAB.


21. Comente cada una de las lneas del programa.
22. Compile el programa.
23. Simule el programa y abra las ventanas de Memoria de programa, registros de funcin especial
(FSR) y la ventana de estimulus para el puerto de entrada.

CONTROL
COMENTARIOS
COMBINACIONAL

List p=16F84 Tipo de procesador.


include "P16F84.INC" Incluimos ficheros con los nombres de los registros.
org 0x00 Variable temporal que se almacena en la posicin 0x0c.
goto Inicio Salto incondicional a Inicio.
org 0x05 Vector de Reset.
Inicio clrf PORTB Borramos los bits de PORTB
bsf STATUS,RP0 Ponemos a 1 el bit RP0.
clrf TRISB Borramos los bits de TRISB
movlw b'00001001' Introducimos el numero b'00001001' al trabajo.
movwf OPTION_REG Movemos lo que esta en el trabajo al registro OPTION_REG.
movlw b'00000011' Introducimos el numero b'00000011' al trabajo.
movwf TRISA Movemos lo que esta en el trabajo a al registro TRISA.
bcf STATUS,RP0 Ponemos a 0 el bit RP0 del registro STATUS
Loop: clrwdt Limpiamos nuestro perro guardian por lo cual refrescamos.
btfsc PORTA,0 Analizamos en PORTA si RA0=0 o RA0=1??
goto Alarma_On Salto incondicional a al registro a Alarma_On.
btfss PORTA,1 Analizamos en PORTA si RA0=1 o RA1=1??
goto Loop Salto incondicional a Loop.
Alarma_Off bcf PORTB,0 En Alarma_Off borramos el bits RB0 de PORTB
goto Loop Salto incondicional a Loop.
Alarma_On btfsc PORTA,1 En Alarma_Off analizamos en PORTA si RA0=1 o RA1=1??
goto Alarma_Off Salto incondicional a Alarma_Off
bsf PORTB,0 Ponemos a 1 el bit 0 de PORTB
goto Loop Salto incondicional a Loop.
end Fin del programa

MICROCONTROLADORES Y MICROPROCESADORES Pgina 12


UNIVERSIDAD CATOLICA DE SANTA MARIA GRUPO: 01

24. Anote en una tabla el valor del PLC, W, TRISA, TRISB, PORTA y PORTB para cada corrida del
programa.

EJECUCION STATUS PLC WORK TRISA TRISB PORTA PORTB

0 00011100 00000000 00000000 00011111 11111111 00000000 00000000


1 00011100 00000101 00000000 00011111 11111111 00000000 00000000
2 00011100 00000110 00000000 00011111 11111111 00000000 00000000
3 00111100 00000111 00000000 00011111 11111111 00000000 00000000
4 00111100 00001000 00000000 00011111 00000000 00000000 00000000
5 00111100 00001001 00001001 00011111 00000000 00000000 00000000
6 00111100 00001010 00001001 00011111 00000000 00000000 00000000
7 00111100 00001011 00000011 00011111 00000000 00000000 00000000
8 00111100 00001100 00000011 00000011 00000000 00000000 00000000
9 00011100 00001101 00000011 00000011 00000000 00000000 00000000
10 00011100 00001110 00000011 00000000 00000000 00000000 00000000
11 00011100 00001111 00000011 00000011 00000000 00000000 00000000
12 00011100 00010000 00000011 00000011 00000000 00000000 00000000
13 00011100 00011001 00000011 00000011 00000000 00000000 00000000
14 00011100 00011010 00000011 00000011 00000000 00000000 00000000
15 00011100 00001100 00000011 00000011 00000000 00000000 00000000
16 00011100 00001100 00000011 00000011 00000000 00000000 00000000

MICROCONTROLADORES Y MICROPROCESADORES Pgina 13


UNIVERSIDAD CATOLICA DE SANTA MARIA GRUPO: 01

25. Dibuje el diagrama de flujo del programa anterior.

26. Determine cul es el propsito del programa.

Se desea armar un sistema de tipo secuencial en el que la salida no depende del estado actual de
las entradas, sino que tambin depende del estado anterior.

Si se activa el pulsador OFF, la alarma se desconecta y se mantiene en este estado aunque el


pulsador OFF vuelva a la posicin de reposo y se desactive. Si ambos pulsadores permanecen
activados simultneamente, la alarma permanecer desactivada.
Podemos simplificar nuestro sistema a travs de la siguiente tabla de verdad.

Estado de
Entradas
la alarma
0 0 --U.E.--
0 1 APAGADA
1 0 ENCENDIDA
1 1 APAGADA

MICROCONTROLADORES Y MICROPROCESADORES Pgina 14


UNIVERSIDAD CATOLICA DE SANTA MARIA GRUPO: 01

IV. CUESTIONARIO FINAL:

1. Realice un programa que funcione segn la siguiente tabla, considerando que el puerto B es
entrada y el A es salida.

RB2 RB1 RB0 RA4 RA3 RA2 RA1 RA0


0 0 0 0 1 0 1 0
0 0 1 1 1 0 0 1
0 1 0 1 0 0 1 1
0 1 1 0 1 1 1 0
1 0 0 1 0 1 0 0
1 0 1 0 1 1 1 0
1 1 0 1 1 0 1 1
1 1 1 1 0 1 0 1

2. Para el programa anterior repita los pasos desarrollados en cada uno de los programas
anteriores.

CUESTIONARIO FINAL subwf Temp,PORTB; clrw; Secuencia_011


btfss STATUS,Z; movlw b'00000110'; movlw b'00001110';
List p=16F84; goto Secuencia_010 movwf Temp; movwf PORTA;
include "P16F84.INC"; clrw; subwf Temp,PORTB; goto Inicio
org 0x00; movlw b'00000010'; btfss STATUS,Z;
goto Inicio movwf Temp; goto Secuencia_100 Secuencia_100
org 0x05; subwf Temp,PORTB; clrw; movlw b'00010100';
Inicio clrf PORTA; btfss STATUS,Z; movlw b'00000111'; movwf PORTA;
bsf STATUS,RP0; goto Secuencia_010 movwf Temp; goto Inicio
clrf TRISA; clrw; subwf Temp,PORTB;
movlw b'00000111'; movlw b'00000011'; btfss STATUS,Z; Secuencia_101
movwf TRISB; movwf Temp; goto Secuencia_100 movlw b'00001110';
bcf STATUS,RP0; subwf Temp,PORTB; movwf PORTA;
movlw b'00000000'; btfss STATUS,Z; Secuencia_000 goto Inicio
movwf Temp; goto Secuencia_011 movlw b'00001010';
subwf Temp,PORTB; clrw; movwf PORTA; Secuencia_110
btfss STATUS,Z; movlw b'00000100'; goto Inicio movlw b'00011011';
goto Secuencia_000 movwf Temp; movwf PORTA;
clrw; subwf Temp,PORTB; Secuencia_001 goto Inicio
movlw b'00000001'; btfss STATUS,Z; movlw b'00011001';
movwf Temp; goto Secuencia_100 movwf PORTA; Secuencia_111
subwf Temp,PORTB; clrw; goto Inicio movlw b'00010101';
btfss STATUS,Z; movlw b'00000101'; movwf PORTA;
goto Secuencia_001 movwf Temp; Secuencia_010 goto Inicio
clrw; subwf Temp,PORTB; movlw b'00011001';
movlw b'00000010'; btfss STATUS,Z; movwf PORTA; end
movwf Temp; goto Secuencia_100 goto Inicio

MICROCONTROLADORES Y MICROPROCESADORES Pgina 15


UNIVERSIDAD CATOLICA DE SANTA MARIA GRUPO: 01

DIAGRAMA DE FLUJO

MICROCONTROLADORES Y MICROPROCESADORES Pgina 16


UNIVERSIDAD CATOLICA DE SANTA MARIA GRUPO: 01

V. CONCLUSIONES Y OBSERVACIONES:

MPLAB-IDE es una Plataforma de Desarrollo Integrada bajo Windows, con mltiples prestaciones,
que permite escribir el programa para los PIC en lenguaje ensamblador (assembler) o en C (el
compilador C se compra aparte), crear proyectos, ensamblar o compilar , simular el programa y
finalmente programar el componente, si se cuenta con el programador adecuado.

MPLAB incorpora todas las utilidades necesarias para la realizacin de cualquier proyecto y, para
los que no dispongan de un emulador, el programa permite editar el archivo fuente en lenguaje
ensamblador de nuestro proyecto, adems de ensamblarlo y simularlo en pantalla, pudiendo
ejecutarlo posteriormente en modo paso a paso y ver como evolucionaran de forma real tanto sus
registros internos, la memoria RAM y/o EEPROM de usuario como la memoria de programa,
segn se fueran ejecutando las instrucciones. Adems el entorno que se utiliza es el mismo que si
se estuviera utilizando un emulador.

Para comenzar un programa desde cero para luego grabarlo al C en MPLAB v7.XX los pasos a
seguir son:
1) Crear un nuevo archivo con extensin .ASM y nombre cualquiera
2) Crear un Proyecto nuevo eligiendo un nombre y ubicacin
3) Agregar el archivo .ASM como un SOURCE FILE
4) Elegir el microcontrolador a utilizar desde SELECT DEVICE del men CONFIGURE

Una vez realizado esto, se est en condiciones de empezar a escribir el programa respetando las
directivas necesarias y la sintaxis para luego compilarlo y grabarlo en el PIC.

Una vez escrito y depurado el programa, se procede a la compilacin. Para esto, desde el men
PROJECT se elige la opcin BUILD ALL (construir todo) que, si no existen errores, devolver un
mensaje como BUILD SUCCESFULL. Los errores que muestra el compilador son del tipo
sintcticos, es decir que si el programa "construido" llegara a tener un error, por ejemplo que
esperase a que se ponga un bit en 0 y nunca pasase, se estar en un bucle infinito a pesar de que
el compilador compilar perfectamente porque no hay error de sintaxis.

VI. BIBLIOGRAFA:

http://perso.wanadoo.es/pictob/mplab.htm
https://espanol.answers.yahoo.com/question/index?qid=20081205041556AA1wN0i
http://es.wikipedia.org/wiki/MPLAB
centros.edu.xunta.es/iesperdouro/files/MPLAB-V8.00.pdf
es.slideshare.net/victorpe/uso-mplab-presentation
www.info-ab.uclm.es/labelec/Solar/Microcontroladores/UsodeMplab.htm
www.unioviedo.es/ate/alberto/Entorno%20MPLAB_v7xx.pdf

MICROCONTROLADORES Y MICROPROCESADORES Pgina 17