POR CONTROLE REMOTO;ULTILIZANDO O PROTOCOLO (RC5) DESENVOLVIDO PELA PHILIPS ;PROTOCOLO ENVIA UMA SEQUENCIA DE 14BITS COM DURACAO DE 25MS;SENDO CADA BIT COM 1.77MS DE DURACAO;NESTE ALGORITIMO IREMOS TRABALHAR COM A LOGICA DE SINAIS INVERTIDA;DEVIDO AO FATO QUE O SENSOR INFRAVERMELHO INVERTE OS SINAIS ISTO E QUANDO O CONTROLE;ENVIA NL1 O SENSOR RECEBE E ENIA NL0 PARA O MICROCONTROLADOR E VICE VERSA.;=======================COMPOSICAO DO CODIGO RECEBIDO;BIT1|BIT2|BIT3|BIT4|BIT5|BIT6|BIT7|BIT8|BIT9|BIT10|BIT11|BIT12|BIT13|BIT4|;STARTBIT|TOGLE| ENDERECO | COMANDO COMPOSTO POR 6 BITS |;| DESCARTE | SINAIS QUE SERA USADO |;| DURACAO 13.6MS | DURACAO DE 10.2 MS | LIST P=16F84a ;define processador RADIX DEC ;define padrao decimal INCLUDE <P16F84a.INC> ;inclue arquivo com caracteristicas do 16f628 __CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC ERRORLEVEL -302;______________________________________SEL. BANCO DE MEMORIA#DEFINE BANK0 BCF STATUS,RP0#DEFINE BANK1 BSF STATUS,RP0;______________________________________VARIAVEIS CBLOCK 0X0C W_TEMP STATUS_TEMP ADRESS ;AQUI FICA ARMAZENADO OS 8 BITS INICIAIS COMAND ;AQUI FICA ARMAZENADO OS 6 BITS REFERENTE A TECLA DO CONTROLE GETCH ;ULTILISADA PARA LIMITAR QUANTIDADE DE BITS FLAGCIR ;VARIAVEL USADA COMO ESPELHO DA VARIAVEL COMAND STARTBIT ;AQUI FICA ARMAZENADOS OS 2 START BITS E O BIT TOOGLE FLAGTEC ;FLAG DE CONTROLE DE TECLAS APERTADA FLAGTEC1 ;FLAG DE CONTROLE DE TECLAS APERTADA TEMPO0 ;VARIAVEL USADA PARA TEMPORIZACAO TEMPO1 ;VARIAVEL USADA PARA TEMPORIZACAO TEMPO2 ;VARIAVEL USADA PARA TEMPORIZACAO TEMPO3 ;VARIAVEL USADA PARA TEMPORIZACAO ENDC;_____________________________________FLAGS CONTROL;;FLAGS DE RECEBIMENTO IR#DEFINE CONTROLE STARTBIT,0#DEFINE _1 STARTBIT,1#DEFINE _2 STARTBIT,2#DEFINE _3 STARTBIT,3#DEFINE _4 STARTBIT,4#DEFINE TOOGLE STARTBIT,5#DEFINE START2 STARTBIT,6#DEFINE START1 STARTBIT,7#DEFINE CINCO FLAGCIR,5#DEFINE ZERO FLAGCIR,0#DEFINE TC1 FLAGTEC,0#DEFINE TC2 FLAGTEC,1#DEFINE TC3 FLAGTEC,2#DEFINE TC4 FLAGTEC,3#DEFINE TC5 FLAGTEC,4#DEFINE TC6 FLAGTEC,5#DEFINE TC7 FLAGTEC,6#DEFINE TC8 FLAGTEC,7#DEFINE TC9 FLAGTEC1,0#DEFINE TC0 FLAGTEC1,1;_____________________________________CONSTANTES;;VALORES EQUIVALENTES A TECLAS ACIONADAS NO CONTROLE#DEFINE TECLA0 B'00111100'#DEFINE TECLA1 B'00111101' #DEFINE TECLA2 B'00111110' #DEFINE TECLA3 B'00111111' #DEFINE TECLA4 B'00111000' #DEFINE TECLA5 B'00111001' #DEFINE TECLA6 B'00111010'#DEFINE TECLA7 B'00111011' #DEFINE TECLA8 B'00110100' #DEFINE TECLA9 B'00110101' #DEFINE STANDBY B'11110011' #DEFINE MUTE B'11110010' #DEFINE VOLUME_UP B'11101111' #DEFINE VOLUME_DO B'11101110' ;_____________________________________DEFINICOES#DEFINE IR PORTA,0 ;SENSOR TSOP#DEFINE OUT0 PORTA,1 ;ACIONAMENTO DO RELE#DEFINE OUT1 PORTA,2 ;ACIONAMENTO DO RELE#DEFINE OUT2 PORTB,0 ;ACIONAMENTO DO RELE#DEFINE OUT3 PORTB,1 ;ACIONAMENTO DO RELE#DEFINE OUT4 PORTB,2 ;ACIONAMENTO DO RELE#DEFINE OUT5 PORTB,3 ;ACIONAMENTO DO RELE#DEFINE OUT6 PORTB,4 ;ACIONAMENTO DO RELE#DEFINE OUT7 PORTB,5 ;ACIONAMENTO DO RELE#DEFINE OUT8 PORTB,6 ;ACIONAMENTO DO RELE#DEFINE OUT9 PORTB,7 ;ACIONAMENTO DO RELE;_____________________________________MEMORIA DE PROGRAMA ORG 0X00 ;define nicio do trecho a seguir em 000 GOTO INICIO ;desvia para o inicio;_____________________________________ROTINA DE INTERRUPCAO ORG 0X04 RETFIE ;volta da interupcao;_____________________________________SUB.ROTINASLE_BIT BTFSC IR GOTO BIT1 GOTO BIT0BIT0 BCF STATUS,C RETURNBIT1 BSF STATUS,C RETURN _10MS MOVLW .10 MOVWF TEMPO1 MOVLW .250 MOVWF TEMPO0T_0 NOP DECFSZ TEMPO0,F GOTO T_0 NOP DECFSZ TEMPO1,F GOTO $-7 RETURN_1.7MS ;ESPERA 1.725 MS MOVLW .2 MOVWF TEMPO1 MOVLW .213 MOVWF TEMPO0T_1 NOP DECFSZ TEMPO0,F GOTO T_1 NOP DECFSZ TEMPO1,F GOTO $-7 RETURNDELAY_MS ;ESPERA 10.813 MS MOVLW .16 MOVWF TEMPO2RECARGA MOVLW .239 MOVWF TEMPO3T_2 NOP DECFSZ TEMPO3,F GOTO T_2 DECFSZ TEMPO2,F GOTO RECARGA RETURNTIME MOVLW .14 MOVWF TEMPO2RELOAD MOVLW .253 MOVWF TEMPO3T_4 NOP DECFSZ TEMPO3,F GOTO T_4 DECFSZ TEMPO2,F GOTO RELOAD RETURNTEMPO MOVLW .255 MOVWF TEMPO2TTT MOVLW .255 MOVWF TEMPO3T_5 NOP DECFSZ TEMPO3,F GOTO T_5 DECFSZ TEMPO2,F GOTO TTT RETURN;_____________________________________INICIO DO PROGRAMAINICIO: ; ESTE ENDERECO E' O IMEDIATAMENTE APOS O FIM DA INTERRUPCAO BANK1 MOVLW B'00000001' MOVWF TRISA MOVLW B'00000000' MOVWF TRISB