You are on page 1of 5

CODIGO PARA LA IMPLEMENTACION.

.include "p30f4013.inc"
;Laboratorio 3:De microcontroladores
; Configuration bits:
;..............................................................................
config __FOSC,CSW_FSCM_OFF&XT_PLL4 ;use cristal oscilador con el 4x PLL
config __FWDT,WDT_OFF ;Desabilitado Watchdog Timer
config __FBORPOR,PBOR_ON&MCLR_EN
;Set Brown-out Reset voltage and
;and set Power-up Timer to 16msecs
config __FGS,CODE_PROT_OFF ;Desabilitado protecion de codigo
;***************** Declaración de variables y subprocesos ****************
.global MODO
.global __reset
.global apagar
.global SENSORMAX
.global INICIO
.global SENSORMIN
.global MANUAL
.global BOMBA2
.text
;*************Programa principal *****************
__reset:
goto main
.org 100

main:
nop
;*******************************Configuracion de puertos**************
mov #0x0000,W0
mov W0,TRISB ;PUERTO B COMO SALIDA.
mov #0xffff,W0
mov W0,TRISF ;RFn COMO ENTRADAS.
mov #0xffff,W0
mov W0,ADPCFG ;CONFIGURACION DIGITAL DEL PUERTO B
;***********************************************
clr PORTF ;LIMPIAMOS EL PUERTO F(RFn==0)
clr PORTB ;LIMPIAMOS EL PUERTO B(RBn==0)
;***********************************************

INICIO:
BTSC PORTF,#02 ; VERIFICAMOS EL INICIO DEL PROCESO.
bra INICIO

MODO: BTSC PORTF,#3 ; (RF3==0,AUTOMATICO. RB3==1, MANUAL)


bra MANUAL
;*********************************************

xx: BTSC PORTF,#02 ;VERIFICAMOS LA ACTIVIDAD DEL PROCESO


bra APAGAR
BTSC PORTF,#3 ; VERIFICAMOS EL MODO
bra MANUAL
BTSS PORTF,#00 ;SENSOR MINIMO
BSET PORTB,#01 ;PRENDEMOS LA BOMBA 2
BTSC PORTB,#00
bra zz
mov #0xfff1,W0
mov W0,LATB ;PRENDEMOS LA BOMBA 1
zz: BTSC PORTF,#02 ; VERIFICAMOS LA ACTIVIDAD DEL PROCESO
bra APAGAR
BTSC PORTF,#3 ; VERIFICAMOS EL MODO
bra MANUAL
BTSC PORTF,#01 ;VERIFICAMOS SENSOR MAX.
bra xx

SENSORMAX: BTSC PORTF,#02 ; VERIFICAMOS LA ACTIVIDAD DEL PROCESO


bra APAGAR
BTSC PORTF,#3 ; VERIFICAMOS EL MODO
bra MANUAL
BTSC PORTF,#01 ;VERIFICAMOS SI EL NIVEL ES MAXIMO,CASO CONTRARIO SALTA
UNA INSTRUCCION.
bra SENSORMAX
bra yy
yy:
mov #0x0004,W1
mov W1,LATB ;APAGAMOS LAS B1 Y B2 Y ACTIVAMOS LA VALVULA DE
VACIADO
SENSORMIN: BTSC PORTF,#02 ;VERIFICAMOS SI EL INTERRUPTOR DE INICIO SIGUE
CERRADO
bra APAGAR
BTSC PORTF, #3 ; VERIFICAMOS EL MODO
bra MANUAL
BTSS PORTF, #00 ;VERIFICAMOS SI EL NIVEL ES MINIMO RF1==0
bra SENSORMIN
bra MODO

MANUAL: BTSC PORTF, #02 ;VERIFICAMOS SI EL INTERRUPTOR DE INICIO SIGUE


CERRADO
bra APAGAR
BTSS PORTF, #3 ; VERIFICAMOS EL MODO
bra MODO
BSET PORTB,#0 ;ACTIVACION DE B1
BSET PORTB,#1 ;ACTIVACION DE B2
BRA MODO
;*******************apagar*************************
APAGAR:
clr PORTF
clr PORTB
return
;****************************************************
.end
CODIGO PARA SIMULACION EN PROTEUS.
Para la simulación en proteus utilizaremos el dsPIC33fj1212MC202 ya que el dsPIC30f4013 no
se encuentra en este software, para ello utilizamos el siguiente código.

.equ __33fj12MC202,1
.include "p33fj12MC202.inc"
;Laboratorio 3:De microcontroladores. simulacion en PROTEUS
; Configuration bits:
;..............................................................................
config __FOSCSEL, FNOSC_FRCDIV16 & IESO_ON
config __FOSC, POSCMD_NONE & OSCIOFNC_ON & FCKSM_CSDCMD
config __FWDT, FWDTEN_OFF
config __FGS, GCP_OFF
;***************** Declaración de variables y subprocesos ****************
.global MODO
.global __reset
.global apagar
.global SENSORMAX
.global INICIO
.global SENSORMIN
.global MANUAL
.global BOMBA2
.text
;*************Programa principal *****************
__reset:
goto main
.org 100

main:
nop
;*******************************Configuracion de puertos**************
mov #0x0008,W0
mov W0,TRISB ;RB3==INPUT/LAS DEMAS SALIDAS
mov #0xffff,W0
mov W0,TRISA ;RAn COMO ENTRADAS.
mov #0xffff,W0
mov W0,ADPCFG ;CONFIGURACION DIGITAL DE PUERTOS A/D
;***********************************************
clr PORTA ;LIMPIAMOS EL PUERTO A(RAn==0)
clr PORTB ;LIMPIAMOS EL PUERTO B(RBn==0)
;***********************************************

INICIO:
BTSC PORTA,#04 ; VERIFICAMOS EL INICIO DEL PROCESO.
bra INICIO

MODO: BTSC PORTB,#3 ; (RF3==0,AUTOMATICO. RB3==1, MANUAL)


bra MANUAL
;*********************************************
xx: BTSC PORTA,#04 ;VERIFICAMOS LA ACTIVIDAD DEL PROCESO
bra APAGAR
BTSC PORTB,#3 ; VERIFICAMOS EL MODO
bra MANUAL
BTSS PORTA,#00 ;SENSOR MINIMO
BSET PORTB,#01 ;PRENDEMOS LA BOMBA 2
BTSC PORTB,#00
bra zz
mov #0xfff1,W0
mov W0,LATB ;PRENDEMOS LA BOMBA 1
zz: BTSC PORTA,#04 ; VERIFICAMOS LA ACTIVIDAD DEL PROCESO
bra APAGAR
BTSC PORTB,#3 ; VERIFICAMOS EL MODO
bra MANUAL
BTSC PORTA,#01 ;VERIFICAMOS SENSOR MAX.
bra xx

SENSORMAX: BTSC PORTA,#04 ; VERIFICAMOS LA ACTIVIDAD DEL PROCESO


bra APAGAR
BTSC PORTB,#3 ; VERIFICAMOS EL MODO
bra MANUAL
BTSC PORTA,#01 ;VERIFICAMOS SI EL NIVEL ES MAXIMO,CASO CONTRARIO SALTA
UNA INSTRUCCION.
bra SENSORMAX
bra yy
yy:
mov #0x0004,W1
mov W1,LATB ;APAGAMOS LAS B1 Y B2 Y ACTIVAMOS LA VALVULA DE
VACIADO
SENSORMIN: BTSC PORTA,#04 ;VERIFICAMOS SI EL INTERRUPTOR DE INICIO SIGUE
CERRADO
bra APAGAR
BTSC PORTB, #3 ; VERIFICAMOS EL MODO
bra MANUAL
BTSS PORTA, #00 ;VERIFICAMOS SI EL NIVEL ES MINIMO RF1==0
bra SENSORMIN
bra MODO

MANUAL: BTSC PORTA, #04 ;VERIFICAMOS SI EL INTERRUPTOR DE INICIO SIGUE


CERRADO
bra APAGAR
BTSS PORTB, #3 ; VERIFICAMOS EL MODO
bra MODO
BSET PORTB,#0 ;ACTIVACION DE B1
BSET PORTB,#1 ;ACTIVACION DE B2
BRA MODO
;*******************apagar*************************
APAGAR:
clr PORTB
return
;****************************************************
.end
EJECUCION

U1
1 4
MCLR RB0/CN4/RP0/AN2/EMUD1/PGD1
20 5
VDDCORE RB1/CN5/RP1/AN3/EMUC1/PGC1
6
RB2/CN6/RP2/AN4
7
RB3/CN7/RP3/AN5
11
RB4/CN1/RP4/SOSCI/EMUD3/PGD3
RB5/CN27/RP5/ASDA1
14 R5
28 15 330
AVDD RB6/CN24/RP6/ASCL1
27 16
AVSS RB7/CN23/RP7/INT0
17
RB8/CN22/RP8/SCL1/PWM2H1/TCK
18
RB9/CN21/RP9/SDA1/PWM2L1/TDO
21
RB10/CN16/RP10/PWM1H3/TDI
2 22
RA0/CN2/VREF+/AN0/EMUD2/PGD2RB11/CN15/RP11/PWM1L3/TMS
X1 3
RA1/CN3/VREF-/AN1/EMUC2/PGC2 RB12/CN14/RP12/PWM1H2
23 BOMBA1 BOMBA2 VALVULA
9 24
RA2/CN30/CLKI/OSCI RB13/CN13/RP13/PWM1L2
1 2 10 25
RA3/CN29/CLKO/OSCO RB14/CN12/RP14/PWM1H1
12 26
RA4/CN0/T1CK/SOSCO/EMUC3/PGC3 RB15/CN11/RP15/PWM1L1
CRYSTAL
DSPIC33FJ12MC202

R1 R2 R3 R4
10k 10k 10k 10k

INICIO MODO MINIMO MAXIMO

You might also like