UNIVERSIDAD CATOLICA DE SANTA MARIA GRUPO: 01 "Año de la Diversificación Productiva y del Fortalecimiento de la Educac
Views 43 Downloads 2 File size 2MB
UNIVERSIDAD CATOLICA DE SANTA MARIA
GRUPO: 01
"Año de la Diversificación Productiva y del Fortalecimiento de la Educación"
UNIVERSIDAD CATOLICA DE SANTA MARIA Facultad de Ciencias e Ingenierías Físicas y Formales Escuela Profesional de Ingeniería Mecánica, Mecánica Eléctrica y Mecatrónica. 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
Página 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 simulación y un debug de los programas anteriores.
II.
INSTRUMENTOS: Computador MPLAB Protoboard Microcontrolador Dispositivos varios Entrenador
III.
MPLAB
PC o Laptop
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 función 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
Página 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 1 2 3 4 5 6
00011111 00011111 00011111 00111111 00111111
00000000 00000101 00000110 00000111 00001000
00011111 00011111 00011111 00011111 00011111
00011111 00011111 00011111 00011111 00011111
11111111 11111111 11111111 11111111 00000000
00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000
00111111 00111111
00001001 00001010
00011111 00011111
00011111 00011111
00000000 00000000
00000000 00000000
00000000 00000000
7 8 9 10 11 12 13
00111111 00011111
00001011 00001100
00011111 00000000
00011111 00011111
00000000 00000000
00000000 00000000
00000000 00000000
00011111 00011111
00001101 00001011
00000000 00000000
00011111 00011111
00000000 00000000
00000000 00000000
00000000 00000000
00011111 00011111
00001100 00001101
00000000 00000000
00011111 00011111
00000000 00000000
00000000 00000000
00000000 00000000
00011111
00001011
00000000
00011111
00000000
00000000
00000000
MICROCONTROLADORES Y MICROPROCESADORES
Página 3
UNIVERSIDAD CATOLICA DE SANTA MARIA
GRUPO: 01
5. Dibuje el diagrama de flujo del programa anterior.
6. Determine cuál es el propósito del programa. El objetivo es permitirnos analizar la forma de programar las líneas de Entrada/Salidas de un PIC(16F84). A través de las cuales se conectan los distintos periféricos que se desean gobernar. Esas 13 líneas se agrupan en dos puertas. La puerta A está representada en la posición 0x05 del área de datos. Cualquier instrucción de un programa que implique leer o escribir sobre esta posición, conlleva obtener o sacar información binaria por las cinco líneas que componen dicha puerta y que se denominan RA0-RA4. Los tres bits de más peso de la posición 0x05 no están reflejados en ninguna línea, por lo que no tienen ningún valor.
MICROCONTROLADORES Y MICROPROCESADORES
Página 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 función especial (FSR) y la ventana de estimulus para el puerto de entrada.
CONTROL DE UNA LAMPARA List p=16F84; include "P16F84.INC"; Temp equ 0x0c; org 0x00; goto Inicio org 0x05; Inicio clrf PORTB; bsf STATUS,RP0; clrf TRISB; movlw b'00000011' movwf TRISA; bcf STATUS,RP0; clrf Temp; Loop movf PORTA,W; andlw b'00000011'; movwf Temp; btfsc STATUS,Z; goto Apagar ; movlw b'00000001' subwf Temp,W btfsc STATUS,Z; goto Encender; movlw b'00000010' subwf Temp,W btfsc STATUS,Z; goto Encender; Apagar bcf PORTB,0; goto Loop Encender bsf PORTB,0; goto Loop end;
COMENTARIOS Tipo de procesador Incluye el fichero con los nombres de los registros Variable temporal que se almacena en la posición 0x0c Vector de Reset Salva el vector de interrupción Borra los latch de salida Selecciona banco 1 de la memoria de datos Puerta B se configura como salida RA0 y RA1 se configuran como entrada Selecciona banco 0 de la memoria de datos Pone a 0 el registo o variable temporal Leer el estado de la puerta A Filtra la información para quedarnos con RA0 y RA1 Almacena temporalmente RA0=0 y RA1=0 ?? Si, la lámpara se apaga
;RA0=1 y RA1=0 ?? Si, la lámpara se enciende RA0=0 y RA1=1 ?? Si, la lámpara se enciende No, la lámpara se apaga
La lámpara se enciende Fin del programa fuente
MICROCONTROLADORES Y MICROPROCESADORES
Página 5
UNIVERSIDAD CATOLICA DE SANTA MARIA
GRUPO: 01
Memoria de programa, registros de función 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 1 2 3 4 5 6
00011100 00011100 00011100 00111100
00000000 00000101 00000110 00000111
00000000 00000000 00000000 00000000
00011111 00011111 00011111 00011111
11111111 11111111 11111111 11111111
00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000
00111100 00111100
00001000 00001001
00000000 00000011
00011111 00011111
00000000 00000000
00000000 00000000
00000000 00000000
00111100 00011100
00001010 00001011
00000011 00000011
00000011 00000011
00000000 00000000
00000000 00000000
00000000 00000000
00011100 00011100
00001100 00001101
00000000 00000000
00000011 00000011
00000000 00000000
00000000 00000000
00000000 00000000
00011100 00011100
00001110 00001111
00000000 00000000
00000011 00000011
00000000 00000000
00000000 00000000
00000000 00000000
00011100 00011100
00010000 00011001
00000000 00000000
00000011 00000011
00000000 00000000
00000000 00000000
00000000 00000000
00011100 00011100
00011010 00001100
00000000 00000000
00000011 00000011
00000000 00000000
00000000 00000000
00000000 00000000
7 8 9 10 11 12 13 14 15
MICROCONTROLADORES Y MICROPROCESADORES
Página 6
UNIVERSIDAD CATOLICA DE SANTA MARIA
11.
GRUPO: 01
Dibuje el diagrama de flujo del programa anterior.
12. Determine cuál es el propósito del programa. Como metáfora central podemos ubicar este caso de una habitación con una instalación conmutada en la que una lámpara se puede manipular el encendido o apagado desde dos interruptores colocados en posiciones distantes entre sí. Su funcionamiento se puede determinar a través de la siguiente tabla: Entradas RA0 RA1 0 0 0 1 1 0 1 1 MICROCONTROLADORES Y MICROPROCESADORES
Salida RB0 0 1 1 0
Estado de lámpara APAGADA ENCENDIDA ENCENDIDA
APAGADA Página 7
UNIVERSIDAD CATOLICA DE SANTA MARIA
GRUPO: 01
C. CONTROL COMBINACIONAL: 13. Edite el siguiente programa en MPLAB. 14. Comente cada una de las líneas del programa. 15. Compile el programa. 16. Simule el programa y abra las ventanas de Memoria de programa, registros de función especial (FSR) y la ventana de estimulus para el puerto de entrada.
CONTROL COMBINACIONAL
COMENTARIOS
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 posición 0x0c.
org 0x00
Vector de Reset.
goto Inicio org 0x05
Salva el vector de interrupción.
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
Página 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
Página 9
UNIVERSIDAD CATOLICA DE SANTA MARIA
GRUPO: 01
Memoria de programa, registros de función 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 1 2 3 4 5 6 7
00011100 00011100 00011100 00111100 00111100 00111100 00111100 00111100 00111100
00000000 00000101 00000110 00000111 00001000 00001001 00001010 00001011 00001100
00000000 00000000 00000000 00000000 00000000 00001001 00001001 00000011 00000000
00011111 00011111 00011111 00011111 00011111 00011111 00011111 00011111 00000011
11111111 11111111 11111111 11111111 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00011100 00011100 00011100 00011100 00011100 00011100
00001101 00001110 00001111 00010000 00011001 00011010
00000000 00000000 00000000 00000000 00000000 00000000
00000011 00000011 00000011 00000011 00000011 00000011
00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000
00011100 00011100
00001100 00001100
00000000 10101010
00000011 00000011
00000000 00000000
00000000 00000000
00000000 00000000
8 9 10 11 12 13 14 15 16
MICROCONTROLADORES Y MICROPROCESADORES
Página 10
UNIVERSIDAD CATOLICA DE SANTA MARIA
GRUPO: 01
18. Dibuje el diagrama de flujo del programa anterior.
19. Determine cuál es el propósito del programa. Este programa no es muy diferente al anterior las puertas RB0-RB7 actúan como salidas y se activan en función del estado de las entradas RA0-RA1. La diferencia entre el problema anterior y el de ahora es que emplea “WDT” este actúa como temporizador que podemos encontrarlos en la mayoría 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 función CLRWDT que nos permitirá “refrescar” y así evitar reinicios.
MICROCONTROLADORES Y MICROPROCESADORES
Página 11
UNIVERSIDAD CATOLICA DE SANTA MARIA
GRUPO: 01
D. CONTROL SECUENCIAL: 20. 21. 22. 23.
Edite el siguiente programa en MPLAB. Comente cada una de las líneas del programa. Compile el programa. Simule el programa y abra las ventanas de Memoria de programa, registros de función especial (FSR) y la ventana de estimulus para el puerto de entrada.
CONTROL COMBINACIONAL
COMENTARIOS
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 posición 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
Página 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 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
00011100 00011100 00011100 00111100 00111100 00111100 00111100 00111100
00000000 00000101 00000110 00000111 00001000 00001001 00001010 00001011
00000000 00000000 00000000 00000000 00000000 00001001 00001001 00000011
00011111 00011111 00011111 00011111 00011111 00011111 00011111 00011111
11111111 11111111 11111111 11111111 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00111100 00011100
00001100 00001101
00000011 00000011
00000011 00000011
00000000 00000000
00000000 00000000
00000000 00000000
00011100 00011100 00011100 00011100 00011100 00011100 00011100
00001110 00001111 00010000 00011001 00011010 00001100 00001100
00000011 00000011 00000011 00000011 00000011 00000011 00000011
00000000 00000011 00000011 00000011 00000011 00000011 00000011
00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000
MICROCONTROLADORES Y MICROPROCESADORES
Página 13
UNIVERSIDAD CATOLICA DE SANTA MARIA
GRUPO: 01
25. Dibuje el diagrama de flujo del programa anterior.
26. Determine cuál es el propósito 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 también 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 posición de reposo y se desactive. Si ambos pulsadores permanecen activados simultáneamente, la alarma permanecerá desactivada. Podemos simplificar nuestro sistema a través de la siguiente tabla de verdad. Estado de la alarma
Entradas 0 0 1 1 MICROCONTROLADORES Y MICROPROCESADORES
0 1 0 1
--U.E.--
APAGADA ENCENDIDA
APAGADA Página 14
UNIVERSIDAD CATOLICA DE SANTA MARIA
IV.
GRUPO: 01
CUESTIONARIO FINAL: 1. Realice un programa que funcione según 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 1 1 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
0 1 1 0 1 0 1 1
1 1 0 1 0 1 1 0
0 0 0 1 1 1 0 1
1 0 1 1 0 1 1 0
0 1 1 0 0 0 1 1
2. Para el programa anterior repita los pasos desarrollados en cada uno de los programas anteriores.
CUESTIONARIO FINAL List p=16F84; include "P16F84.INC"; org 0x00; goto Inicio org 0x05; Inicio clrf PORTA; bsf STATUS,RP0; clrf TRISA; movlw b'00000111'; movwf TRISB; bcf STATUS,RP0; movlw b'00000000'; movwf Temp; subwf Temp,PORTB; btfss STATUS,Z; goto Secuencia_000 clrw; movlw b'00000001'; movwf Temp; subwf Temp,PORTB; btfss STATUS,Z; goto Secuencia_001 clrw; movlw b'00000010'; movwf Temp;
subwf Temp,PORTB; btfss STATUS,Z; goto Secuencia_010 clrw; movlw b'00000010'; movwf Temp; subwf Temp,PORTB; btfss STATUS,Z; goto Secuencia_010 clrw; movlw b'00000011'; movwf Temp; subwf Temp,PORTB; btfss STATUS,Z; goto Secuencia_011 clrw; movlw b'00000100'; movwf Temp; subwf Temp,PORTB; btfss STATUS,Z; goto Secuencia_100 clrw; movlw b'00000101'; movwf Temp; subwf Temp,PORTB; btfss STATUS,Z; goto Secuencia_100
MICROCONTROLADORES Y MICROPROCESADORES
clrw; movlw b'00000110'; movwf Temp; subwf Temp,PORTB; btfss STATUS,Z; goto Secuencia_100 clrw; movlw b'00000111'; movwf Temp; subwf Temp,PORTB; btfss STATUS,Z; goto Secuencia_100 Secuencia_000 movlw b'00001010'; movwf PORTA; goto Inicio Secuencia_001 movlw b'00011001'; movwf PORTA; goto Inicio Secuencia_010 movlw b'00011001'; movwf PORTA; goto Inicio
Secuencia_011 movlw b'00001110'; movwf PORTA; goto Inicio Secuencia_100 movlw b'00010100'; movwf PORTA; goto Inicio Secuencia_101 movlw b'00001110'; movwf PORTA; goto Inicio Secuencia_110 movlw b'00011011'; movwf PORTA; goto Inicio Secuencia_111 movlw b'00010101'; movwf PORTA; goto Inicio end
Página 15
UNIVERSIDAD CATOLICA DE SANTA MARIA
GRUPO: 01
DIAGRAMA DE FLUJO
MICROCONTROLADORES Y MICROPROCESADORES
Página 16
UNIVERSIDAD CATOLICA DE SANTA MARIA
V.
GRUPO: 01
CONCLUSIONES Y OBSERVACIONES: MPLAB-IDE es una Plataforma de Desarrollo Integrada bajo Windows, con múltiples 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 realización 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, además de ensamblarlo y simularlo en pantalla, pudiendo ejecutarlo posteriormente en modo paso a paso y ver como evolucionarían de forma real tanto sus registros internos, la memoria RAM y/o EEPROM de usuario como la memoria de programa, según se fueran ejecutando las instrucciones. Además 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 extensión .ASM y nombre cualquiera 2) Crear un Proyecto nuevo eligiendo un nombre y ubicación 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 compilación. Para esto, desde el menú PROJECT se elige la opción BUILD ALL (construir todo) que, si no existen errores, devolverá un mensaje como BUILD SUCCESFULL. Los errores que muestra el compilador son del tipo sintácticos, 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.
BIBLIOGRAFÍA: 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
Página 17