Criei esse porjecto recentemente, só nao posso postar a sequencia até a compilaçao porque nao estou em casa.
;--------------------------------------------------------------
;Este projecto é uma Automatização para Furação de Caixas -
; -
;criado por LeoPUENA aos 18.04.2011 -
;------------------------------------------------------------
list p=16f877
Include <p16f877.inc>
__Config _xt_osc & _wdt_off & _Cp_off & _pwrte_on
;********************************************************************
Digital equ b'00000110'
CBLOCK 20H
ATRASO
POSICAO
FLAG2
FLAG
DISPLAY
CONTADOR
CODIGO
ENDC
#DEFINE BOB1 PORTB,0 ;------
#DEFINE BOB2 PORTB,1 ;BOBINAS DO MOTOR DE PASSO
#DEFINE BOB3 PORTB,2 ; (TAPETE ROLANTE)
#DEFINE BOB4 PORTB,3 ;------
#DEFINE SENSOR_C PORTC,0 ;SENSOR DE QUEDA DE CAIXA
#DEFINE SENSOR_P1 PORTC,1 ;------
#DEFINE SENSOR_P2 PORTC,2 ;SENSORES DE POSIÇÃO DO TAPETE
#DEFINE SENSOR_P3 PORTC,3 ;------
#DEFINE PIST2_A PORTD,0
#DEFINE PIST2_B PORTD,1
#DEFINE BROCA_A PORTD,2
#DEFINE BROCA_B PORTD,3
#DEFINE BROCA_L PORTC,4
#DEFINE PIST1_A PORTD,4
#DEFINE PIST1_B PORTD,5
#DEFINE ALIM PORTD,6
#DEFINE ON PORTE,0 ;BOTÃO DE INICIALIZAÇÃO
#DEFINE INI PORTE,1 ;BOTÃO DE RESET
#DEFINE LED PORTE,2
;PROGRAMA AS PORTAS
ORG 0x000 ;INICIO DA COMPILACAO
BSF STATUS,RP0 ;SELECIONA BANK 1
movlw Digital
movwf ADCON1
MOVLW 0X00 ;PROGRAMA TODOS OS BITS PARA OUT (00)
MOVWF TRISA ;NA PORTA A (0X00)
MOVLW 0X00 ;PROGRAMA TODOS OS BITS PARA OUT (0)
MOVWF TRISB ;NA PORTA B (00)
MOVLW 0X00
MOVWF TRISD
MOVLW B'00001111'
MOVWF TRISC
MOVLW 0X03
MOVWF TRISE
movlw b'10000111'
movwf Option_reg
BCF STATUS,RP0 ;VOLTA AO BANK 0
;FIM DA configuração ENTRA NO LOOP PRINCIPAL
clrf intcon
INICIO
CLRF PORTA
CLRF PORTC
CLRF PORTD
CLRF PORTB
CLRF PORTE
CLRF FLAG
CLRF FLAG2
MOVLW D'9'
MOVWF DISPLAY
;********************************************************************
MAIN
MOVLW D'100'
MOVWF FLAG
MOVLW D'20'
MOVWF FLAG2
BSF LED
BTFSC INI
GOTO INICIO
BTFSS ON
GOTO $-3
BCF LED
LOOP
MOVLW D'100'
MOVWF FLAG
MOVLW D'20'
MOVWF FLAG2
CALL AVANCA
BTFSS SENSOR_P1
GOTO $-2
BSF ALIM
CALL DELAY
BTFSC SENSOR_C
GOTO $+4
DECFSZ FLAG
GOTO $-4
GOTO ALERT
BCF ALIM
BTFSC INI
GOTO MAIN
CALL AVANCA
BTFSS SENSOR_P2
GOTO $-4
BSF BROCA_A
BSF PIST1_B
CALL PAUSA
BCF BROCA_A
BCF PIST1_B
BSF BROCA_L
CALL DELAY
CALL DELAY
BCF BROCA_L
CALL DELAY
CALL DELAY
DECFSZ FLAG2
GOTO $-7
BSF BROCA_B
BSF PIST1_A
CALL PAUSA
BCF BROCA_B
BCF PIST1_A
BTFSC INI
GOTO INICIO
CALL AVANCA
BTFSS SENSOR_P3
GOTO $-4
BSF PIST2_A
CALL PAUSA5
BCF PIST2_A
CALL DELAY
CALL DELAY
BSF PIST2_B
CALL PAUSA5
BCF PIST2_B
BTFSC INI
GOTO INICIO
INCF PORTA
DECFSZ DISPLAY
GOTO LOOP
GOTO FIM
ALERT
MOVLW 0X0E
MOVWF PORTA
BSF LED
CALL DELAY
CALL DELAY
BCF LED
CALL DELAY
CALL DELAY
BTFSS INI
GOTO ALERT
GOTO INICIO
FIM
CALL PAUSA
MOVLW 0X0F
MOVWF PORTA
BSF LED
CALL DELAY
CALL DELAY
BCF LED
CALL DELAY
CALL DELAY
BTFSS INI
GOTO $-7
GOTO INICIO
;********************************************************************
;*****************************VELOCIDADES****************************
AVANCA ;AVANÇAR O TAPETE COM VELOCIDADE 1
MOVLW B'00001000'
MOVWF PORTB
CALL DELAY
CALL DELAY
CALL DELAY
CALL DELAY
MOVLW B'00000100'
MOVWF PORTB
CALL DELAY
CALL DELAY
CALL DELAY
CALL DELAY
MOVLW B'00000010'
MOVWF PORTB
CALL DELAY
CALL DELAY
CALL DELAY
CALL DELAY
MOVLW B'00000001'
MOVWF PORTB
CALL DELAY
CALL DELAY
CALL DELAY
CALL DELAY
RETURN
;********************************************************************
;********************************************************************
;=======================================================================
;=======================================================================
PAUSA
MOVLW D'100'
MOVWF ATRASO
PAUSA1
CALL DELAY
DECFSZ ATRASO
GOTO PAUSA1
RETURN
;=======================================================================
PAUSA5
MOVLW D'50'
MOVWF ATRASO
PAUSA15
CALL DELAY
DECFSZ ATRASO
GOTO PAUSA15
RETURN
;---------------------------------DELAY de 10ms------------------------------
DELAY
movlw d'217'
movwf TMR0
bcf INTCON,T0IF
btfss INTCON,T0IF
goto $-1
return
END ;FIM DA COMPILACAO