Vous êtes sur la page 1sur 3

2) Realizar un programa para encender y apagar de forma

intermitente dos leds ubicados en el puerto B, como indica la


figura.
a) Realizar el diagrama de flujo del programa

SUBRUTINA DELAY

b) Escribir el programa de forma comentada


.include "p33fj12gp202.inc"
;Declaracin de variables y subprocesos
.global _main
.global _delay
.global _delay1
; section
.text
; Programa principal
_main:
mov #0b1111111111111100,W0
; declaramos los puertos
que queremos
; habilitar
como salida y entrada
mov #0x0000,W1
; W1=0
mov #0x0001,W2
; W2=0
mov #0x0000,W5
; W5=0
; Repeticiones x1000 para la creacin de los retardos
mov #0x03E8,W3
; 0x03E8h = 1000d
mov W0,TRISB
; Configuracin el puerto B como salida
mov W1,LATB
; Apagado del puerto RB0
bset LATB,#0x1
; Encendido del puerto RB1
_delay:
dec W3,W4
;
mov W4,W3
;
repeat #0x03E8 ;
nop
CP0 W4
bra NZ, _delay
mov #0x03E8,W3 ;
mov W2,LATB
bclr LATB,#0x1
;
_delay1:
dec W3,W4
mov w4,w3
repeat #0x3E8
nop
CP0 W4
bra NZ, _delay1
bra _main
.end

; Subrutina de Retardo en alto


W4=W3-1
W3=W
Repeticin mil veces
; no operacin
; comparo W4=0
; si no es cero salta a _delay
Recarga del nmero de repeticiones x1000
; Encendido RB0
apagado RB1

;
;
;
;

Subrutina de Retardo en bajo


resta 1 al registo W3
W4=W3
Repeticin mil veces
; no operacin
; comparo W4=0
; si no es cero salta a _delay1
; Bucle regresa a _main

c) Hacer pruebas en el Simulador Proteus

R3
10k

U1
1
20

28
27

2
3
9
10
12

X1
CRYSTAL

MCLR

RB0/CN4/RP0/AN2/EMUD1/PGD1
RB1/CN5/RP1/AN3/EMUC1/PGC1
VDDCORE
RB2/CN6/RP2/AN4
RB3/CN7/RP3/AN5
RB4/CN1/RP4/SOSCI/EMUD3/PGD3
RB5/CN27/RP5/ASDA1
AVDD
RB6/CN24/RP6/ASCL1
AVSS
RB7/CN23/RP7/INT0
RB8/CN22/RP8/SDA1/TCK
RB9/CN21/RP9/SCL1/TCK
RB10/CN16/RP10/TDI
RA0/CN2/VREF+/AN0/EMUD2/PGD2
RB11/CN15/RP11/TMS
RA1/CN3/VREF-/AN1/EMUC2/PGC2
RB12/CN14/RP12/AN9
RA2/CN30/CLKI/OSCI
RB13/CN13/RP13/AN8
RA3/CN29/CLKO/OSCO
RB14/CN12/RP14/AN7
RA4/CN0/T1CK/SOSCO/EMUC3/PGC3
RB15/CN11/RP15/AN6

4
5
6
7
11
14
15
16
17
18
21
22
23
24
25
26

D1

D2

LED-YELLOW

LED-YELLOW

DSPIC33FJ12GP202

R3
10k

U1
1
20

28
27

X1
CRYSTAL

2
3
9
10
12

MCLR

RB0/CN4/RP0/AN2/EMUD1/PGD1
RB1/CN5/RP1/AN3/EMUC1/PGC1
VDDCORE
RB2/CN6/RP2/AN4
RB3/CN7/RP3/AN5
RB4/CN1/RP4/SOSCI/EMUD3/PGD3
RB5/CN27/RP5/ASDA1
AVDD
RB6/CN24/RP6/ASCL1
AVSS
RB7/CN23/RP7/INT0
RB8/CN22/RP8/SDA1/TCK
RB9/CN21/RP9/SCL1/TCK
RB10/CN16/RP10/TDI
RA0/CN2/VREF+/AN0/EMUD2/PGD2
RB11/CN15/RP11/TMS
RA1/CN3/VREF-/AN1/EMUC2/PGC2
RB12/CN14/RP12/AN9
RA2/CN30/CLKI/OSCI
RB13/CN13/RP13/AN8
RA3/CN29/CLKO/OSCO
RB14/CN12/RP14/AN7
RA4/CN0/T1CK/SOSCO/EMUC3/PGC3
RB15/CN11/RP15/AN6
DSPIC33FJ12GP202

4
5
6
7
11
14
15
16
17
18
21
22
23
24
25
26

D1

D2

LED-YELLOW

LED-YELLOW

Vous aimerez peut-être aussi