Puente garaje asm

Page 1

;**********PUENTE-GARAJE.ASM*******

;CONTROL DE LA PUERTA de un GARAJE o de un Puente levadizo ;. pag 283 y 284 del libro.ejercicio hecho por mi ;

;En reposo el sem{aforo rojo (SR)est{a encendido; Reposo RA0 ;Al entrar un vehiculo se acciona la llave (AP) -RA3- y se activa un rele ;(MA) -RB6- , simulado mediante un led, que pone en marcha el motor de ;apertura de la puerta. ;de la puerta . Cuando se abre totalmente la puerta y se activa el ;sensor (PA) -RA2-, ;se desactiva (MA) -RB6-, se ilumina el semaforo Verde (SV) -RB2-, y se ;apaga el rojo (SR)-RB0-

;La situacion anterior se mantiene durante 5sgs.

;Tras ese tiempo, se apaga el semaforo verde y se enciende el rojo, al mismo ;tiempo que se activa el rele (MC)-RB7-, que pone en marcha el motor ;de cierre de la puerta hasta retornar a la situacion de reposo.

;Si en la fase de cierre hay algun vehĂ­culo en la entrada(sensor DP)-RA1-), ;se inicia una nueva secuencia de apertura.

;DIRECTIVAS DEL PROGRAMA

LIST

P=16F84

RADIX HEX

; Se emplea el PIC16F84 ; Sistema de numeraci¢n hexadecimal

;ETIQUETAS DEL PROGRAMA

W

EQU 0x00 ; Registro de destino W : d=0 1


F

EQU 0x01 ; Registro de destino F : d=1

Z

EQU 0X02 ; Bit 2 del registro ESTADO

TMR0_OPT EQU 0x01 ; El registro TMR0 ocupa la direcci¢n 1 ; del banco 0 y el OPTION la direcci¢n 1 ; del banco 1 ESTADO EQU 0x03 ; El registro ESTADO ocupa la direcci¢n ; 3 de los dos bancos INTCON EQU 0x0B ; El registro INTCON ocupa la direcci¢n PUERTAA EQU 0x05 ; La PUERTA A ocupa la direcci¢n 5 del ; banco 0 y su registro de configuraci¢n ; la direcci¢n 5 del banco 1 PUERTAB EQU 0x06 ; La PUERTA B ocupa la direcci¢n 6 del ; banco 0 y su registro de configuraci¢n ; la direcci¢n 6 del banco 1 TEMPO1 EQU 0x0C ; Registro auxiliar para las rutinas de ; DELAY

;PROGRAMA PRINCIPAL

ORG

0

; El programa comienza en la direcci¢n 0 y

goto

INICIO

; salta a la direcci¢n 5 para sobrepasar el

ORG

5

; vector de interrupci¢n

ESTADO,5

; Selecci¢n del banco 1

INICIO bsf

movlw b'00001111'

; Se configura la PUERTA A como Entrada

movwf PUERTAA

;

clrf

PUERTAB

; Se configura la puerta B como salida

movlw b'00000111' movwf TMR0_OPT

; Se asigna el preescaler al TMR0

bcf

ESTADO,5

; Selecci¢n del banco 0

clrf

PUERTAA

; Se inicializan las dos puertas a

clrf

PUERTAB

; ceros

2


bsf

PUERTAB,0

;activa semaforo Rojo (SR)-RB0-

BUCLE0 btfsc PUERTAA,3 goto BUCLE0

BUCLEIR nop bcf

;Comprueba si la llave de apertura (AP)-RA3-

;esta activada.

;instruccion no valida para ajustar reloj

PUERTAB,7

;desactiva el motor de cierre MC

;para cuando retorne del Bucle_IRF bsf

PUERTAB,6

;Activa al T1 transistor de apertura

BUCLE1 btfsc PUERTAA,2

;Comprueba final carrera de apertura-RA2-

goto BUCLE1 bcf

PUERTAB,6

;Apaga motor de apertura (MA)-RB6- T1

bsf

PUERTAB,2

;activa semaforo Verde (SV)-RB2-

bcf

PUERTAB,0

;Apaga semaforo rojo (SR)

call DELAY5S

;Espera 5segundos para cerrar la puerta

bcf

PUERTAB,2

;Apaga semaforo Verde (SV) RB0

bsf

PUERTAB,0

;Activa Semaforo Rojo (SR) -RB0-

bsf

PUERTAB,7

;Activa Motor cierre (MC)-RB7- activa T2

BUC_IRF btfsc PUERTAA,1

;Verifica infrarrojos.

goto BUCLE2 goto BUCLEIR

;Si hay se¤al infrarrojos se va al bucleIR

;para realizar una secuencia de cierre. BUCLE2 btfsc PUERTAA,0

;verifica si se ha llegado a posicion de

;reposo. goto BUC_IRF

;Vuelve al buc_IRF para continuar chequeando

;el infrarrojos. bcf

PUERTAB,7

goto BUCLE0

;desactiva Motor cierre(MC)-RB7;Vuelta al bucle0 para reiniciar todo el proceso

3


;************RUTINA DE DELAY 5 SEGUNDOS Pasado este tiempo se cierra****** ; RUTINA DE DELAY DE 1 SEGUNDO

DELAY5S movlw 0x64 ;100 decimal para el contaje de 1segundo movwf TEMPO1 ; Carga la variable TEMPO1, que ser decrementada call DELAY10 ; en la rutina a la que se llama return

DELAY10 bcf INTCON,2 movlw 0x3D

; Borra el flag de estado del TMR0

;3D=61decimal; 256-61=195

movwf TMR0_OPT

; Carga del TMR0 para que cuente 195

;T1=(256-N)RANGO ; T1=(256-61)256=49920usg DELAY10_1 btfss goto

INTCON,2

DELAY10_1

decfsz TEMPO1,F goto DELAY10 return

; Espera el desbordamiento del TMR0

;registro auxiliar para el contaje hasta 5sg ;hace cien veces el decremento consiguiendo

;los 5sg. Exactamente: 4,942379sgs.

end ;***************************************************************************

4


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.