Sie sind auf Seite 1von 10

Descargar MPLAB IDE:

http://www.microchip.com/

DESIGN SUPPORTS

DEVELOPMENT TOOLS

DEVELOPMENT TOOLS OVERVIEW

DOWNLOADS ARCHIVE

http://www.microchip.com/development-tools/downloads-archive

MPLAB IDE Archives


MPLAB IDE v7.30 ( incluye crt0.s crt1.s, Ver. libro dsPIC)

Luego de instalar:

Project

Project Wizard

Siguiente

DSpic30F4013  siguiente

Encontrar el archivo que pide cada opción (por ejemplo: pic30-as.exe) y encontrar su dirección en la carpeta
de instalación del MPLAB :
Luego das siguiente y sale:

Escoges la carpeta donde el MPLAB va a armar el proyecto, y pones un nombre de proyecto.


Luego das siguiente y agregas el archivo crt0.s das en Add:

Luego agregas crt1.s:


Luego agregas p30f4013.gld que está en support >> gld :

Finalmente agregas p304013.inc que está en support >> inc .

Después marcas check a todos para que los archivos se copien al directorio del proyecto:

Luego le das siguiente, y después finalizar.


Aparecerá la carpeta del proyecto y el entorno IDE, le das a File>>New:

Luego le das de nuevo a File >>Save As y guardas con nombre el código principal, con extensión s En tu
directorio de proyecto:

Despues de guardar,ubicarse en Source File, clic derecho , Add files:


Le das en Abrir.

Finalmente, nuestro proyecto quedaría así quedando listo para ingresar el código:
Ingresamos (copia y pega) este código en el archivo MAIN.s :

.include "p30f4013.inc"

;Los retardos se hacen manualmente, por está razón no se incluye

;una librería adicional

;Declaración de variables y subprocesos

.global __reset ;Tambien compila sin esto :s

.global _main

.global _delay

.global _delay1

.text ; a partir de aca empezaran las instrucciones

; tambien compila sin esto :s

;Programa principal

_main:

;--------------------------------------------------------------------------------

;Almacenamiento de valores iniciales en registros de 16 bits W0,W1,W2,W3 :

mov #0x0100,W0; ;poner literal 256 en W0 W0 = 0000 0001 0000 0000

mov #0x0029,W1; ;poner literal 41 en W1 W1 = 0000 0000 0010 1001

mov #0x0000,W2; ;poner literal 0 en W2 W2 = 0000 0000 0000 0000

;--------------------------------------------------------------------------------

;Configuración del puerto B

mov W0,TRISB; ;configura I/0 en el SFR( registro de funcion especial) TRISB

;TRISB = 0000 0001 0000 0000

;como entrada (1) pin 8 , el resto como salidas (0).

;--------------------------------------------------------------------------------

;Encendido de Leds
mov W1,LATB ;configura el valor digital en el SFR LATB

;el cual representa el valor digital del puerto B

;LATB = W1 = 0000 0000 0010 1001

;y se muestra al exterior a través de leds

;--------------------------------------------------------------------------------

;registro para 50 iteraciones:

mov #0x0032,W3 ;poner literal 50 en W3

;--------------------------------------------------------------------------------

; Subrutina de Retardo en alto:

_delay: ;primera función de retardo

; decremento de W3: desde W3=50 hasta W3=1

dec W3,W4 ;W4=W3-1 ;para la primera vez: W4=50-1=49

mov W4,W3 ;W3=W4 ;para la primera vez: W3=49

; Repetición mil veces

repeat #0x03E8 ; repite 1000 veces la próxima instrucción ( nop )

; que dura 1 ciclo de instrucción por vez

nop ; no hace operación alguna, tiempo muerto

CP0 W4 ; compara si el registro W4 es cero ... W4=0?

bra NZ,_delay ;"branch if not zero" : redirige a _delay SI W4 NO ES CERO

;---------------------------------------------------------------------------------

;Apagado de leds

mov W2,LATB ;valor digital del puerto B

; LATB = W2 = 0000 0000 0000 0000

;---------------------------------------------------------------------------------

;Recarga del registro


mov #0x0032,W3 ;poner literal 50 en W3

;---------------------------------------------------------------------------------

; Subrutina de Retardo en bajo

_delay1: ; segunda función de retardo

; decremento de W3: desde W3=50 hasta W3=1

dec W3,W4 ;W4=W3-1 ;para la primera vez: W4=50-1=49

mov w4,w3 ;W3=W4 ;para la primera vez: W3=49

;Repetición mil veces

repeat #0x3E8 ; repite 1000 veces la proxima instruccion ( nop )

; que dura 1 ciclo de intruccion por vez

nop ; no hace operacion alguna, tiempo muerto

CP0 W4 ; compara si el registro W4 es cero ... W4=0?

bra NZ,_delay1 ;"branch if not zero" : redirije a _delay1 SI W4 NO ES CERO

;----------------------------------------------------------------------------------

;Bucle principal

bra _main ;"branch always”: llegado acá, siempre redirije a _main

;----------------------------------------------------------------------------------

.end ;lo que se ponga despues no se considera codigo


Una vez ingresado damos a la opcion Build ALL:

Luego en el Output sale

Y se van creando archivos como por ejemplo el. cof. y el. hex para quemar el microcontrolador con pickit2 o 3.

*como inconveniente este Mplab trae solo algunos microcontroladores de la familia dspic33F, y no son los 33F
que trae Proteus. Al no conseguirse el archivo HEX para la familia 33F del simulador, no se puede simular .

Como solución algunos copian los archivos crt0 y crt1 a las carpetas de sus proyectos y usan una versión
superior (MPLAB 8.92) ,pero esos archivos también quedaron obsoletos para esta version, pues tiene
reemplazos para en la versión MPLAB 8.92. aunque sean funcionales.

Das könnte Ihnen auch gefallen