Parpadeo de LED en ASM30 en un dsPIC
;Incluye la librería del dspic con sus macros escritas en lenguaje
;ensamblador
"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.
global _main.
global _delay.
global _delay1.
section .text.
;Programa principal
_main:
;Almacenamiento de valores de inicialización en W0,W1,W2,W3
mov #0x0000,W0;
mov #0x0001,W1;
mov #0x0000,W2;
;Repeticiones x1000 para la creación de los retardos
;0x0032h = 52d
mov #0x0032,W3;
;Configuración el puerto B como salida
mov W0,TRISB;
;Encendido del puerto RB0
mov W1,LATB;
;Subrutina de Retardo en alto
_delay:
dec W3,W4
mov W4,W3
;Repetición mil veces
repeat #0x03E8
nop
CP0 W4
bra NZ,_delay ;Bucle en alto
;Recarga del número de repeticiones x1000
mov #0x0032,W3;
;Apagado RB0
mov W2,LATB;
;Subrutina de Retardo en bajo
_delay1:
dec W3,W4
mov w4,w3
;Repetición mil veces
repeat #0x3E8
nop
CP0 W4
bra NZ,_delay1 ;Bucle principal
;Bucle lazo repetitivo principal
bra _main
;EOF
.end
MAS CODIGOS EN:
http:// robrechtsmith en blogspot punto com
;Incluye la librería del dspic con sus macros escritas en lenguaje
;ensamblador
"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.
global _main.
global _delay.
global _delay1.
section .text.
;Programa principal
_main:
;Almacenamiento de valores de inicialización en W0,W1,W2,W3
mov #0x0000,W0;
mov #0x0001,W1;
mov #0x0000,W2;
;Repeticiones x1000 para la creación de los retardos
;0x0032h = 52d
mov #0x0032,W3;
;Configuración el puerto B como salida
mov W0,TRISB;
;Encendido del puerto RB0
mov W1,LATB;
;Subrutina de Retardo en alto
_delay:
dec W3,W4
mov W4,W3
;Repetición mil veces
repeat #0x03E8
nop
CP0 W4
bra NZ,_delay ;Bucle en alto
;Recarga del número de repeticiones x1000
mov #0x0032,W3;
;Apagado RB0
mov W2,LATB;
;Subrutina de Retardo en bajo
_delay1:
dec W3,W4
mov w4,w3
;Repetición mil veces
repeat #0x3E8
nop
CP0 W4
bra NZ,_delay1 ;Bucle principal
;Bucle lazo repetitivo principal
bra _main
;EOF
.end
MAS CODIGOS EN:
http:// robrechtsmith en blogspot punto com