'****************************************************************
'* Name : UNTITLED.BAS *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright (c) 2012 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 17/03/2012 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
@ DEVICE PIC16F628A
@ DEVICE INTRC_OSC_NOCLKOUT
@ DEVICE WDT_OFF
@ DEVICE PWRT_OFF
@ DEVICE MCLR_OFF
@ DEVICE BOD_OFF
@ DEVICE LVP_OFF
@ DEVICE CPD_OFF
@ DEVICE PROTECT_OFF
INCLUDE "modedefs.bas"
DEFINE OSC 4
CMCON = 0
TRISA = %00000000
TRISB = %00000010
PORTA = %00000000
PORTB = %00000000
BIT_IR VAR BYTE(8)
COMANDO VAR BYTE
SYMBOL IN_TSOP = PORTB.1
SYMBOL TX = PORTB.2
CLEAR
INICIO:
DETECCION_DE_IR:
COMANDO = 0
PULSIN IN_TSOP,0,BIT_IR(0) 'PRIMER PULSO NEGADO SE GUARDA EN BIT_IR
IF BIT_IR(0) = 0 THEN GOTO DETECCION_DE_IR 'Si no se recibe nada se queda en DETECCION_DE_IR
IF BIT_IR(0) < 240 THEN GOTO DETECCION_DE_IR 'si el pulso no dura 2.4ms se queda en DETECCION_DE_IR
EXTRAE_BITS:
PULSIN IN_TSOP,0,BIT_IR(1)
IF BIT_IR(1) < 120 THEN 'SI EL BIT 1 DE BIT_IR ES MENOR A 120
COMANDO.bit0 = 0 'EL BIT 0 DE COMANDO ES IGUAL A 0
ELSE 'SI NO
COMANDO.bit0 = 1 'EL BIT 0 DE COMANDO ES IGUAL A 1
ENDIF
PULSIN IN_TSOP,0,BIT_IR(2)
IF BIT_IR(2) < 120 THEN 'SI EL BIT 2 DE BIT_IR ES MENOR A 120
COMANDO.bIT1 = 0 'EL BIT 1 DE COMANDO ES IGUAL A 0
ELSE 'SI NO
COMANDO.bIT1 = 1 'EL BIT 1 DE COMANDO ES IGUAL A 1
ENDIF
PULSIN IN_TSOP,0,BIT_IR(3)
IF BIT_IR(3) < 120 THEN 'SI EL BIT 3 DE BIT_IR ES MENOR A 120
COMANDO.bit2 = 0 'EL BIT 2 DE COMANDO ES IGUAL A 0
ELSE 'SI NO
COMANDO.bit2 = 1 'EL BIT 2 DE COMANDO ES IGUAL A 1
ENDIF
PULSIN IN_TSOP,0,BIT_IR(4)
IF BIT_IR(4) < 120 THEN 'SI EL BIT 4 DE BIT_IR ES MENOR A 120
COMANDO.bit3 = 0 'EL BIT 3 DE COMANDO ES IGUAL A 0
ELSE 'SI NO
COMANDO.bit3 = 1 'EL BIT 3 DE COMANDO ES IGUAL A 1
ENDIF
PULSIN IN_TSOP,0,BIT_IR(5)
IF BIT_IR(5) < 120 THEN 'SI EL BIT 5 DE BIT_IR ES MENOR A 120
COMANDO.bit4 = 0 'EL BIT 4 DE COMANDO ES IGUAL A 0
ELSE 'SI NO
COMANDO.bit4 = 1 'EL BIT 4 DE COMANDO ES IGUAL A 1
ENDIF
PULSIN IN_TSOP,0,BIT_IR(6)
IF BIT_IR(6) < 120 THEN 'SI EL BIT 6 DE BIT_IR ES MENOR A 120
COMANDO.bit5 = 0 'EL BIT 5 DE COMANDO ES IGUAL A 0
ELSE 'SI NO
COMANDO.bit5 = 1 'EL BIT 5 DE COMANDO ES IGUAL A 1
ENDIF
PULSIN IN_TSOP,0,BIT_IR(7)
IF BIT_IR(7) < 120 THEN 'SI EL BIT 7 DE BIT_IR ES MENOR A 120
COMANDO.bit6 = 0 'EL BIT 6 DE COMANDO ES IGUAL A 0
ELSE 'SI NO
COMANDO.bit6 = 1 'EL BIT 6 DE COMANDO ES IGUAL A 1
ENDIF
SEROUT TX,N2400,["COMANDO: " ,#COMANDO,10]
IF COMANDO < 10 THEN
COMANDO = COMANDO + 1
SEROUT TX,N2400,["BOTON: " ,#COMANDO,10]
ENDIF
IF COMANDO = 16 THEN
SEROUT TX,N2400,["BOTON: +CANAL",10]
ENDIF
IF COMANDO = 17 THEN
SEROUT TX,N2400,["BOTON: -CANAL",10]
ENDIF
IF COMANDO = 18 THEN
SEROUT TX,N2400,["BOTON: +VOMUMEN",10]
ENDIF
IF COMANDO = 19 THEN
SEROUT TX,N2400,["BOTON: -VOMUMEN",10]
ENDIF
IF COMANDO = 20 THEN
SEROUT TX,N2400,["BOTON: SILENCIO",10]
ENDIF
IF COMANDO = 21 THEN
SEROUT TX,N2400,["BOTON: PODER",10]
ENDIF
IF COMANDO = 59 THEN
SEROUT TX,N2400,["BOTON: PODER",10]
ENDIF
SEROUT TX,N2400,["PULSO 1 : ",#BIT_IR(1),10]
SEROUT TX,N2400,["PULSO 2 : ",#BIT_IR(2),10]
SEROUT TX,N2400,["PULSO 3 : ",#BIT_IR(3),10]
SEROUT TX,N2400,["PULSO 4 : ",#BIT_IR(4),10]
SEROUT TX,N2400,["PULSO 5 : ",#BIT_IR(5),10]
SEROUT TX,N2400,["PULSO 6 : ",#BIT_IR(6),10]
SEROUT TX,N2400,["PULSO 7 : ",#BIT_IR(7),10]
GOTO DETECCION_DE_IR