Está en la página 1de 8

12F675 Receptor IR Rx

Descripcin
Este trabajo est basado en un control remoto de la TV de mi casa, para controlar un PIC
12F675
Es un trabajo didctico, para e!perimentar controlando un PIC "olo se pretende leer el
c#di$o % sacarlo por un puerto serie so&, al '%perterminal del (indo)s *P
Por ser didctico, el Firm)are ocupa muc+a memoria de pro$rama % ,-., /ue no es
necesaria en una aplicaci#n real, como por ejemplo prender % apa$ar un &oco de iluminaci#n
El control remoto emite un tren de pulsos de iluminaci#n in&rarroja, /ue consta de una serie
de pulsos de onda cuadrada, montada sobre una onda portadora de 06 1+2
El receptor /ue se 3e en el es/uema, recibe el tren con portadora % lo con3ierte en un tren
de ondas cuadradas, /ue es recibido por el PIC, % la decodi&ica a cuatro 3ariables4
15 Codigo, /ue es el 3alor de todo el c#di$o emitido % recibido, /ue se di3ide en tres
partes
25 Toggle, es el 3alor de los primeros tres 6IT recibidos
05 Sistema, es el 3alor de los cinco 6IT si$uientes
75 Numero, es el 3alor de los 8ltimos cinco 6IT recibidos
"e calculan % muestran esta cuatro 3ariables, /ue en una aplicaci#n, tal 3e2 con la 8ltima
alcance % sobre
Este trabajo est basado en el anterior4 9ector de C#di$os de Control ,emoto In&rarrojo
Consideramos /ue es importante /ue lo bajen % lean, pues +a% muc+os detalles $r&icos
sobre los trenes de pulsos, /ue a/u: no repetiremos 6ajarlo al documento
Esta es la norma usada mas o menos, por mi control remoto, con di&erencia en el n8mero de
6IT -/u: son 0;5;6 % en mi control son 0;5;5 9os tiempos tambi<n 3ar:an un po/uito
"i el control de =stedes &uera al$o distinto, es poco lo /ue +a% /ue adaptar para corre$irlo
>a 3ern
s!uema
Foto del "onta#e
Todo el montaje est +ec+o sobre pla/uetas e!istentes, /ue se bajan de esta p$ina (E6,
sin soldaduras Es el sistema /ue uso normalmente para desarrollos
Firm$are
Est +ec+o % compilado en C de CC" % es lo /ue lle3# mas trabajo resol3er Primero
comenc< con interrupciones de dos tipos, pero nin$una trabajaba con estabilidad, sin
cometer errores 9es muestro el tren de pulsos /ue es la base del Firm)are4
9a tensi#n normal es 1 ?@5 Volt5 % se mantiene mientras no lle$a seAal Cuando se pone a
cero, comien2a el ciclo de lectura
)+ile?Puerto7 BB 15 CsetDtimer1?E5FG ;; Espera +asta /ue lle$ue la seAal de tecla pulsada
mientras mantiene en cero el timmer1
t1BEFHum B 10FIrden B 1FTo$$le B EF"istema B EFHumero B EF CodBEF ;; Valores iniciales
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
"e /ueda esperando el cero, mientras mantiene en cero el Timer1
9ue$o comien2a el ciclo de lectura por el estado cero, el /ue al &inali2ar pasa al uno Esto
corresponde al primer 6IT Como pasa de estado cero a uno, el 3alor del 6IT es 1, se$8n se
3e en la tablita del es/uema Esta es la base de la decodi&icaci#n del tren de pulsos /ue se
repite +asta pasar los 10 6IT
)+ile?HumJE5
C
)+ile?Puerto7 BB E5F ;; Espera +asta /ue suba el estado del
puerto
Tiempo B $etDtimer1?5F ;; HumKB1F es Hum B Hum K1F ;; Valor le:do
i& ??TiempoKt15 J T5 C Cero?5FFHumKB1F G ;; ,e$istra el 6it si es B E
i& ??TiempoKt15 L T MM Irden BB 25 C Cero?5FF6andera B 1F HumKB1FG;; ,e$istra el 6it si es
B E
i& ??TiempoKt15 L T MM Irden BB 15 CIrden B 2F G ;; Ho re$istra 6it si orden B 1
I& ?6anderaBB15 CIrden B 1F6andera B EFG
t1 B TiempoF ;; Cambia el 3alor del Timer anterior
)+ile?Puerto7 BB 15F ;; Espera +asta /ue baje el estado del
puerto
Tiempo B $etDtimer1?5F ;; El 3alor es le:do
i& ??TiempoKt15 J T5 C=no?5F HumKB1F G ;; ,e$istra el 6it si es B 1
i& ??TiempoKt15 L T MM Irden BB 25 C=no?5F 6andera B 1FHumKB1FG;; ,e$istra el 6it si es
B 1
i& ??TiempoKt15 L T MM Irden BB 15 CIrden B 2F G ;; Ho re$istra 6it si orden B 1
I& ?6anderaBB15 CIrden B 1F6andera B EFG
t1B TiempoF ;; Cambia el 3alor del Timer anterior
G ;; Fin del )+ile Hum
9as dos subrutinas ?Cero?5 % =no?5, car$an el 3alor del 6IT en la 3ariable correspondiente
-/u: usamos 7 3ariables con &ines didcticos, pero en una aplicaci#n, puede /ue se use una
sola, % en ese caso no se usan subrutinas, sino /ue se car$an los 3alores directamente
Void Cero?3oid5 ;; -rma las 7 3ariables &inales
C
bitDclear?Cod, HumK15F
i& ?Hum LB 10 MM Hum JB 115 CbitDclear?To$$le, HumK115FG ;; el si$no MM es -HN
i& ?Hum LB 1E MM Hum JB 65 CbitDclear?"istema,HumK65 FG
i& ?Hum LB 5 MM Hum JB 15 CbitDclear?Humero, Hum K15FG
G
Void =no?3oid5 ;; -rma las 7 3ariables &inales
C
bitDset?Cod, HumK15F
i& ?Hum LB 10 MM Hum JB 115 CbitDset?To$$le, HumK115FG
i& ?Hum LB 1E MM Hum JB 65 CbitDset?"istema,HumK65 FG
i& ?Hum LB 5 MM Hum JB 15 CbitDset?Humero, HumK15 FG
G
9os comandos bitDclear % bitDset, son del CC", % car$an en las 3ariables el 3alor del 6IT, si
es cero o uno 9ue$o con print& se muestra las 3ariables con el &ormato en /ue &ue de&inida
sea intO o int16 Tambi<n se usan en ese &ormato, no como binarias
Salida del %&perTerminal
"e 3e la salida del n8mero 0, con los dos To$$les % el n8mero P
Ibser3ar /ue siempre coincide el To$$le con el primer d:$ito i2/uierdo del C#di$o
'aria(le )SC*+ del ,IC
En la posici#n de memoria 0FFF, el 3alor es E!077O, o sea 7O ?sacando el 075 o sea
EbE1EE1EEE, para marcar el PIC ?Ver n8mero 5P de )))arossinicomar 5
'a% /ue poner E!077O en el Firm)are Qrom E!0&& B CE!077OG
Esto es para este PIC Cada uno debe leer el su%o % escribirlo en el pro$rama
Este pro$rama calcula los 3alores e indica como marcar el PIC 6ajarlo

También podría gustarte