Aca adjunto una pequeña rutina que realice en PBP, que se encarga de leer los controles remotos de tv de 12 bits, y muestra el codigo leido en binario en el display.
El circuito utilizado es muy simple, solo un 16f877a, display 16x2, y un receptor IR de 3 patas.
Rutina:
Saludos.
El circuito utilizado es muy simple, solo un 16f877a, display 16x2, y un receptor IR de 3 patas.
Rutina:
Código:
' 16f877a leer codigo control remoto IR 12 bits y mostralo en display.
DEFINE LCD_DREG PORTD ' Indica que el Bus estará conectado en el Puerto D
DEFINE LCD_BITS 4 ' El bus será de cuatro bits.
DEFINE LCD_DBIT 4 ' Selección del Bit de inicio del puerto en el uC para el
DEFINE LCD_RSREG PORTD ' Indica al uC que el pin "RS" estará en el Puerto D
DEFINE LCD_RSBIT 2 ' "RS" estará conectado en RD2
DEFINE LCD_EREG PORTD ' Indica al uC que el pin "E" estará en el Puerto D
DEFINE LCD_EBIT 3 ' "E" estará conectado en RD3
Define Osc 4
trisa=$00 ' esta linea no se usa
trisb.0=1
x var byte
buzer var porta.0 'esta linea no se usa
codigo var bit[12]
lec var byte
buzer=0 ' este linea no se usa
inicio:
LCDOut $fe, 1
LCDOut "Lectura IR"
LCDOut $fe, 2
LCDOut $fe,$C0,"Cod:",#codigo[1],#codigo[2],#codigo[3],#codigo[4],#codigo[5],#codigo[6],#codigo[7],#codigo[8],#codigo[9],#codigo[10],#codigo[11],#codigo[12]
pulsin portb.0,1,lec
if lec>150 then leer
pause 50
goto inicio
leer:
For x=1 to 12
pulsin portb.0,1,lec
if lec > 100 then
codigo[x]=1
else
codigo[x]=0
endif
next x
goto inicio
end
Saludos.
Última edición por un moderador: