Código:
infrarrojos:
pulso=0
contador=0
while portb.1=0 ' comprovamos si el primer pulso es vastante largo
contador=contador+1
wend
if contador<320 then fin_por_ruido
'
contador=0
while portb.1=1 ' lo mismo pero que no se pase de largo
contador=contador+1
if contador=420 then fin_por_ruido
wend
'
high porta.0
repeat 'una vez valido empezamos a leer los bit, maximo 64bit
infra=0
while portb.1=0
infra=infra+1 ' si el flanco se pasa de largo se pira
if infra=200 then fin_del_barrido
wend
casilla=pulso>>3 ' dividimos entre 8 para la casilla del bite
codigo[casilla]=codigo[casilla]<<1 ' desplaamos in bit ala izquierda para incrementar el nuevo
infra=0
while portb.1=1
infra=infra+1 ' leemos el bit con la informaion si se pas de rango salimos
if infra=255 then fin_del_barrido
if porta.4=0 then fin_del_barrido ' esta para acer vulto a 8mhz
wend
codigo[casilla]=codigo[casilla]+(b0|b1) 'introducimos el bit en el bite
pulso=pulso+1
until pulso=64
fin_del_barrido: ' por ahorrar programa
casilla=casilla-1 ' restamos una bite por el ultimo bit final
fin_por_ruido:
low porta.0
return