en otra ventana

Anuncio
Apéndice C
Programación del Microcontrolador
;Código desarrollado por Luis Pablo Menéndez Poo
;
;Control de robot escalador
list
#include
definitions
+++ROBES+++
p=16f877
; list directive to define processor
<p16f877.inc>
;
processor
specific
variable
;Definición de variables
CONTADOR1
CONTADOR2
CONTADOR3
VAR1
EQU 0X20
EQU
0X21
EQU
0X22
EQU
0X23
;**Configuracion inicial del micro
ORG
NOP
NOP
BSF
0x000
STATUS,RP0
MOVLW 0XF1
ENTRADA Y
; processor reset vector
; nop required for icd
; Cambiamos de Banco 0 a Banco 1
;CONFIGURAR
EL
RB0,4,5,6,7
;TODOS LOS DEMAS DE SALIDA
COMO
SEÑAL
DE
MOVWF TRISB
MOVLW 0X0F
MOVWF TRISC
MOVLW 0X11
TODAS
MOVWF TRISA
;CONFIGURAR EL RA4
;LAS DEMAS SALIDAS
BCF
;REGRESO AL BANCO 0
STATUS,RP0
MOVLW 0X0C
MOVWF PORTB
COMO
SEÑAL
DE
ENTRADA
;PRENDER LAS DOS BOMBAS DE VACIO
INICIO
BTFSS PORTC,1
GOTO $-1
;ESPERAR BOTON INICIO
BTFSS PORTB,5
CALL APL
CALL APC
;CHECAR POSICION INICIAL
GOTO INICIO
;SUBRUTINA PARA AVANZAR PARTE CENTRAL
APC
BCF
PORTB,2
;APAGAR BOMBA CENTRALES
CLRF
CLRF
CLRF
MOVLW
MOVWF
CONTADOR1
CONTADOR2
CONTADOR3
.25
CONTADOR3
;BORRAR CONTADORES
%
;SE MANDA UN 25 DECIMAL AL CONTADOR 3
LOOP1
DECFSZ
CONTADOR1,1
GOTO LOOP1
DECFSZ
CONTADOR2,1
GOTO LOOP1
DECFSZ
CONTADOR3,1
GOTO LOOP1
NOP
BSF
PORTB,1
;LOOP QUE ESPERA QUE VACIO TERMINE
;ESPERA 4.9 SEGUNDOS
;PRENDER MOTOR PRINCIPAL
%
BTFSS PORTB,4
GOTO $-1
;ESPERAR QUE TOQUE MICRO ABAJO
%
BCF
;APAGAR MOTOR PRINCIPAL
%
PORTB,1
Y
BSF
CLRF
CLRF
CLRF
MOVLW
MOVWF
PORTB,2
CONTADOR1
CONTADOR2
CONTADOR3
.15
CONTADOR3
;PRENDER BOMBA CENTRALES
%
;LIMPIANDO CONTADORES
LOOP2
DECFSZ
CONTADOR1,1
VENTOSAS
GOTO LOOP2
DECFSZ
CONTADOR2,1
GOTO LOOP2
DECFSZ
CONTADOR3,1
GOTO LOOP2
NOP
BTFSS PORTB,6
GOTO $-1
CALL
;LOOP
QUE
ESPERA
QUE
PEGUEN
LAS
;ESPERA 2.9 SEGUNDOS
;CICLAR HASTA QUE HAYA VACIO %
APL
;^^^^^^^^SUBRUTINA PARA AVANCE PARTE LATERALES
APL
BCF
PORTB,3
;APAGAR BOMBA LATERALES
%
CLRF
CLRF
CLRF
MOVLW
MOVWF
CONTADOR1
CONTADOR2
CONTADOR3
.25
CONTADOR3
;LIMPIANDO CONTADORES
DECFSZ
CONTADOR1,1
GOTO LOOP3
DECFSZ
CONTADOR2,1
GOTO LOOP3
DECFSZ
CONTADOR3,1
GOTO LOOP3
NOP
;LOOP QUE ESPERA QUE VACIO TERMINE
LOOP3
;BTFSS
;GOTO $-1
PORTB,7
;ESPERA 4.9 SEGUNDOS
;ESPERAR A QUE NO HAYA VACIO EN
; LATERALES
BSF
PORTB,1
;PRENDER MOTOR PRINCIPAL
BTFSS PORTB,5
GOTO $-1
BCF
PORTB,1
;ESPERAR TOQUE DEL MICRO ARRIBA
BSF
;PRENDER BOMBAS LATERALES
CLRF
CLRF
CLRF
MOVLW
MOVWF
;APAGAR MOTOR PRINCIPAL
PORTB,3
CONTADOR1
CONTADOR2
CONTADOR3
.15
CONTADOR3
;LIMPIANDO CONTADORES
LOOP4
DECFSZ
CONTADOR1,1
VENTOSAS
GOTO LOOP4
DECFSZ
CONTADOR2,1
GOTO LOOP4
DECFSZ
CONTADOR3,1
GOTO LOOP4
NOP
;LOOP
QUE
ESPERA
QUE
PEGUEN
;ESPERA 2.9 SEGUNDOS
BTFSS PORTB,7
GOTO $-1
CALL
APC
END
;*****************************************************************
Descargar