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 ;*****************************************************************