Documentos de Académico
Documentos de Profesional
Documentos de Cultura
; | | | | | | | | | | | |
; _|__|__|__|__|__|__|__|__|__|__|__|_ _\\|//_ Jose
; | | (| o-o |) Martinez
; | WWW.DISELC.ES | \ (_) / Ortiz
; |) | \_"_/
; | Ascensor de 5 plantas | __|U|__
; | | / \
; |_ __ __ __ __ __ __ __ __ __ __ __ _| / /| |\ \
; | | | | | | | | | | | | //| |\\
; | | | | | | | | | | | | "" |___| ""
;
;con el pic 16f84A solo disponia de pines para controlar 5 plantas, pero
;utilizando elmicrocontrolador 16f628 podemos controlar 7 plantas utilizando
;su reloj interno.
;******************************** igualdades
********************************
;tanto las salidas como las entradas se consideran que estan activadas cuando
;se encuentran en estado logico bajo
;******************************** inicio
**********************************
principio nop
call pulsadores ;compueba si hay algun pulsador dado, asi como la posicion
;de la cabina
goto principio
;
**********************************************************************
********
;************************** RUTINA DE SUBIDA
***************************
;
**********************************************************************
********
subida nop
sube2 btfsc portb,1 ;si esta activada la llamada2 salta la siguiente linea
goto sube3 ;comprueba sube3
sube3 btfsc portb,0 ;si esta activada la llamada3 salta la siguiente linea
goto sube4 ;comprueba sube4
sube4 btfsc porta,4 ;si esta activada la llamada4 salta la siguiente linea
goto sube5 ;comprueba sube5
sube5 btfsc porta,3 ;si esta activada la llamada5 salta la siguiente linea
goto subefin ;va al final de esta rutina
subefin nop
;
**********************************************************************
********
;************************** RUTINA DE BAJADA
***************************
;
**********************************************************************
********
bajada nop
baja4 btfsc porta,4 ;si esta activada la llamada4 salta la siguiente linea
goto baja3 ;comprueba baja3
btfss porta,0 ;si la cabina esta en la 5 planta ejecuta la
;siguiente linea
bsf porta,1 ;activa la bajada
baja3 btfsc portb,0 ;si esta activada la llamada3 salta la siguiente linea
goto baja2 ;comprueba baja2
baja2 btfsc portb,1 ;si esta activada la llamada2 salta la siguiente linea
goto baja1 ;comprueba baja1
baja1 btfsc portb,2 ;si esta activada la llamada4 salta la siguiente linea
goto bajafin ;va al final de esta rutina
;
**********************************************************************
********
;************************** RUTINA DE PULSADORES
***************************
;
**********************************************************************
********
;vamos a un bucle, para hacer tiempo para que la carga de los condensadores
;de filtro se estabilice
pulsadores nop
cabinafin nop
llama1 btfsc portb,2 ;si llama1 esta pulsado me salto la siguiente linea
goto llama2 ;si no voy a llama2
bsf status,5 ;acceso al banco 1
bcf trisb,2 ;configuro llama 1 como salida - enciende el led
bcf status,5 ;acceso al banco 0
llama2 btfsc portb,1 ;si llama2 esta pulsado me salto la siguiente linea
goto llama3 ;si no voy a llama3
bsf status,5 ;acceso al banco 1
bcf trisb,1 ;configuro llama 2 como salida - enciende el led
bcf status,5 ;acceso al banco 0
llama4 btfsc porta,4 ;si llama4 esta pulsado me salto la siguiente linea
goto llama5 ;si no voy a llama5
bsf status,5 ;acceso al banco 1
bcf trisa,4 ;configuro llama 4 como salida - enciende el led
bcf status,5 ;acceso al banco 0
llama5 btfsc porta,3 ;si llama5 esta pulsado me salto la siguiente linea
goto llamafin ;si no voy a llamafin
bsf status,5 ;acceso al banco 1
bcf trisa,3 ;configuro llama 5 como salida - enciende el led
bcf status,5 ;acceso al banco 0
llamafin nop
;
**********************************************************************
********
;************************** RUTINA DE COINCIDE
***************************
;
**********************************************************************
********
coincide nop
llamada1 btfsc portb,2 ;si llamada1 esta pulsada salto la siguiente linea
goto llamada2 ;si no voy a llamada2
btfsc portb,4 ;si la cabina esta el la 1 planta salto una linea
goto llamada2 ;si no salta a llamada2
llamada2 btfsc portb,1 ;si llamada2 esta pulsada salto la siguiente linea
goto llamada3 ;si no voy a llamada3
llamada3 btfsc portb,0 ;si llamada3 esta pulsada salto la siguiente linea
goto llamada4 ;si no voy a llamada4
llamada4 btfsc porta,4 ;si llamada4 esta pulsada salto la siguiente linea
goto llamada5 ;si no voy a llamada5
llamada5 btfsc porta,3 ;si llamada5 esta pulsada salto la siguiente linea
goto llamadafin ;si no voy a llamadafin
llamadafin nop
return ; vuelvo donde se hizo la llamada
;
**********************************************************************
********
;************************** RUTINA DE 5 SEGUNDOS
***************************
;
**********************************************************************
********
;con los tiempos aqui dados, cada 0,09seg comprobamos los pulsadores
;
**********************************************************************
********
;************************ RUTINA DE CONDENSADORES
*************************
;
**********************************************************************
********
end