Implementações:
-Esperar 5s sempre que o sensor for interrompido para a esteira voltar ao funcionamento.
-LED vermelho piscando enquanto esteira pausa 5s.
Video:
Aí segue o novo código do PIC:
#include
__CONFIG _WDT_OFF & _INTRC_OSC_NOCLKOUT & _MCLRE_OFF & _LVP_OFF
CBLOCK 0x20 ;ENDEREÇO INICIAL DA MEMÓRIA DE USUÁRIO
TEMPO
ENDC
#DEFINE BANK0 BCF STATUS,RP0
#DEFINE BANK1 BSF STATUS,RP0
#DEFINE LED PORTA,0
#DEFINE MOTOR PORTA,2
#DEFINE INFRA PORTA,1
#DEFINE LEDV PORTA,3
ORG 0x00
GOTO INICIO
ORG 0x04
GOTO TRATA_TIMER
INICIO
CLRF PORTA
BANK1
MOVLW B'00000111'; bit do 0 ao 2, configuraçãode Preescale - 111 = 1:256 Timmer0; bit 8, habilita uso de periféricos.
MOVWF OPTION_REG ; Move o byte de configuração do Work para o registrador OPTION_REG
MOVLW B'11110010'
MOVWF TRISA
BANK0
MOVLW b'00001111'
MOVWF CMCON
MOVLW .20 ; Atribui 5 para W
MOVWF TEMPO ; Atribui valor de Wpara TEMPO
MAIN
BTFSS INFRA
CALL PARA
BTFSC INFRA
CALL LIGADO
GOTO MAIN
LIGADO
BSF LEDV
BCF LED
BSF MOTOR
RETURN
PARA
BCF LEDV
BSF LEDBCF MOTOR
MOVLW .20
MOVWF TEMPO
MOVLW B'10100000'; BIT: 7-INTERRUPÇÃO, 5-TIMMER, 2-Flag Timmer
MOVWF INTCON ; Move o byte de configuração do Work para o registrador INTCON
LOOP
GOTO LOOP
RETURN
TRATA_TIMER ; Trata a interrupção gerada pelo Timmer0
BCF INTCON, T0IF ; Desabilita flag de Timmer0
BCF INTCON, GIE ; Habilita Interrupção Geral
BTFSS INFRA
GOTO MAIN
DECFSZ TEMPO ; Decrementa Variavel TEMPO2 e testa se TEMPO2 = 0 pula a proxima linha.
GOTO TESTALED
GOTO MAIN
TESTALED
BTFSC LED
GOTO ASCENDE
BTFSS LED
GOTO APAGA
ASCENDE
BCF LED
RETFIEAPAGA
BSF LED
RETFIE
END
Nenhum comentário:
Postar um comentário