Autor Tema: comunicacion RF pic-pic  (Leído 17459 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado gazu_n

  • PIC10
  • *
  • Mensajes: 13
comunicacion RF pic-pic
« en: 01 de Marzo de 2006, 09:20:00 »
hola amigos necesito comunicar 2 pics por via RF a traves de los modulos de RF TLP434 y RLP434 (los pics son 16F627A tx y 16F877A rx) intente a traves de un pin por medio de un programa propio pero no tuve exito, despues trate de comunicar por medio del puerto USART de los pics pero tampoco tuve exito, les rogaria si me dieran una manito amigos que ya tuvieron experiencia en este tema ya sea con ejemplos de codigo, consejos.......
muchas gracias espero su ayuda

Desconectado mariano_pic

  • PIC18
  • ****
  • Mensajes: 498
    • Software Electronica Microncontroladores
Re: comunicacion RF pic-pic
« Respuesta #1 en: 28 de Enero de 2007, 16:16:22 »
Hola amigo soy nuevo y es la primera ves que meto la pata, pero te cuento que yo los trabajo muchisimo y son perfectos y casi inmortales, es desir es desir es dificil que fallen el problema es que en la comunicacion por radio hay muchos ruidos que se meten los cuales son interpretados como datos, te propongo que empieses haciendo un transmisor usando el usar del pic, a 9600 baudios sin pariada y 1 bit de parada, luego armes un reseptor pero lo conectas al pc y un programa monitor para que observes los datos que te salen y despues cuentas como te salio la cosa, lo anterior es para aprender a interpretar los datos ya que los puedes ver en la ventana del monitor. saludos bye
mariano_pic
Necesitas ayuda para tu proyecto electronico?
buscame, tal ves pueda colaborarte.
Blog: http://electronicosembebidos.blogspot.com.co/
mail: electronicosembebidos@gmail.com
Mi grupo de facebook: https://www.facebook.com/groups/ProgramandoPics/

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: comunicacion RF pic-pic
« Respuesta #2 en: 28 de Enero de 2007, 23:22:09 »
te comento que use esos integrados para una transmision de RF, hay mucho de eso sobre el tema, desde fotso de los componentes, etc, bastante date una buscadita, te dejo este link, porque fue el que ams me ayudo sobre el tema, sobre todo los aportes de código de Algec: http://www.todopic.com.ar/foros/index.php?topic=11964.20, creo que ta por ahi, sino avisame, qeu mi intenet esta pesimo
« Última modificación: 28 de Enero de 2007, 23:33:40 por Cryn »
.

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: comunicacion RF pic-pic
« Respuesta #3 en: 29 de Enero de 2007, 09:38:26 »
hola amigo gazu_n, me parece o segun lo que lei en tu post ya habia sintentado comunicarlos de forma alambrica y no tuvistes extio con tus 2 intentos, q raro? por ahi q hicistes algo mal un detalle minimo y no te salio, yo tb pase por eso muchas veces (y las sigo pasando  :mrgreen:), si insistes en las otras comunicaciones (un pin o el USART) me pasas la voz q te puedo pasar codigos q si funcionana y comprobadazossss jejeje.

sobre los mudolos RF no tengo mucha experiencia pero esta bien el camino q estas tomando, mucha gente lo hace de esa manera e informacion no te va a faltar  :-/ exitos!!!!
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado Giovanny

  • PIC12
  • **
  • Mensajes: 97
    • Supercomponentes
Re: comunicacion RF pic-pic
« Respuesta #4 en: 02 de Febrero de 2007, 23:50:42 »
saludos :P, este es mi primer mensaje en estos foros, y me gustaria ayudar a todos los que han sufrido sufrimos y sufriran con esto de los Rfs .. jejeje..  :-/ Yo tambien he  usado los modulos  RF TLP434 y RLP434 y tambien los TLP418 y RLP4318--- de acuerdo con mi pequeña experiencia con estos dos pares puedo recomendar que para los 418 trabajes a 1200 baudios y para los 434 a 2400 ( no me ha fallado asi).... ademas el truco de la comunicacion no es solo conectarlos adecuadamante.... sino la forma en que envias los datos.... de igual manera a como nos habla nuestro amigo mariano_pic siempre es bueno hacer prueba del receptor con el pc para hacer un analisis de los datos.... pero bueno.. aqui van dos trucos que puedes usar para que la comunicacion no moleste tanto con el ruido.
1. enviar datos constantemente, de esta forma la sincronizacion entre el Tx y el Rx se mantiene.
2. Para evitar enviar datos constantemente, suelo simular un nivel logico 0 y luego un 1 antes de enviar el dato que requiero.. enviando (0x00)(0xff)(dato)... de esta forma el dato que lea el Rx va a ser con referencia a los niveles que llegaron con anterioridad.

Ademas de estos dos truquillos, recomiendo tambien usar 'identificadores' antes y despues del dato (esto lo lei recientemente y creeme que funciona)... por ejemplo  enviar #(dato)*. si no coinciden entoces continuas recibiendo asi sea ruido pero no va a afectar tu pic receptor... ahora bien.. puedes hacer lo siguiente (0x00)(0Xff)(#)(dato)(*)...
de maravilla.....  espero les sea de gran ayuda...
ahh y otra cosita... debes usar antenas adecuadas... no tieen buen alcanze con 'cablecitos enroscados' :mrgreen:..
____________________________________________________

Saludos desde Colombia!... que hermoso país..
        Saludos desde Colombia! Que hermoso país....

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: comunicacion RF pic-pic
« Respuesta #5 en: 03 de Febrero de 2007, 20:08:56 »
Giovanny, usaste USART para hacer comunicacion RF?? pues a mi me dijeron que esa no es la forma, y antes hice la prueba y efectivamente no me funciono con USART, aunque solo enviaba DATO sin identificadores, pero ya el usart solito te coloca eso: BitStart-Dato-BitStop (un bit de start y uno o dos de stop segun programacion hecha), y envias un 0x00 con su start y stop despues un 0xff tb con sus bits start y stop; # y * de la misma forma y despues el dato, tb de la misma forma, y pues nose si sera muy efectivo. Creo que la mejor forma de hacerlo es enviar una trama sola directamente con bits de start y el dato, pero solo una trama, me referiero a que 0x00 0xff # * tengan un mismo bit de star por ejemplo:

quedaria asi: BitStar - 0x00 - 0xff - '#' - '*' - dato - BitStop                    Lo que daria como resultado una sola trama

y mas o menos es eso lo que realiza algec en el link que deje, utiizando el protocolo RC-5 de Philips; podira usarse cualquier protocolo, pero realizar el codigo para el mismo seria el reto, primero definiendo los bits de star y stop (este ultimo de ser necesario), y el equivalente a un uno y cero logicos, seran retardos nose mayores para un uno o cero, o seguir talvez las reglas qeu diga alguna codificacion como la Manchester por ejemplo u otra, y pues lo que qeuda será un UART diseñado, perfeccionado para este tipo de trabajos (RF) por tanto no se usará el USART interno del PIC y se usará cualquier pin y hasta funcionara con cualquier PIC (cuya memoria sea suficiente)

weno espero se haya comprendido, y pues aca dejo la pagina que segun mi opinion ha marcado el centro de todos los mensajes de este tipo: http://www.sbprojects.com/knowledge/ir/ir.htm

en el menu de la parte izquierda esta el link al protocolo rc-5 que mencione y estan otros mas, que podrias usar, solo debes implementar el código, en la pag que te deje de link en mi primer mensaje esta implementado para el RC5 por algec.

espero haber sido de ayuda, y pues si no quedo algo claro, o si escribe alguna tonteria, pues espero me lo hagan notar, pues nos leemos, adios!!
.

Desconectado mariano_pic

  • PIC18
  • ****
  • Mensajes: 498
    • Software Electronica Microncontroladores
Re: comunicacion RF pic-pic
« Respuesta #6 en: 03 de Febrero de 2007, 20:29:46 »
Amigo crim tengo años con estos tlp-rlp entre las cosas que he desarrollado es un recolector de datos de temperatura  con el usart de un pic16f877 y si tansmite perfectamente, aunque la resepcion la hago desde un pc. y creo que si se puede haser la resepcion con un usart,  y es la unica forma en que la he podido haser funcionar. Al prinsipio intente como tu dises pero nunca me dio.  Tambien logre la comunicion inalambrica entre 2 pic12f629 usando este protocolo pero en software.
La pagina que distes esta buenisima, pero solo es para comunicacion infraroja, que es diferente.
mariano_pic
Necesitas ayuda para tu proyecto electronico?
buscame, tal ves pueda colaborarte.
Blog: http://electronicosembebidos.blogspot.com.co/
mail: electronicosembebidos@gmail.com
Mi grupo de facebook: https://www.facebook.com/groups/ProgramandoPics/

Desconectado Giovanny

  • PIC12
  • **
  • Mensajes: 97
    • Supercomponentes
Re: comunicacion RF pic-pic
« Respuesta #7 en: 03 de Febrero de 2007, 20:33:27 »
hola cryn,
 
Citar
Giovanny, usaste USART para hacer comunicacion RF??
respondiendo a esa pregunta, si lo hago con la USART y me ha funcionado.
en realidad no entendi tu explicación... debe ser por eso que ni la apoyo ni la contradigo.. igual agradezco la informacion, me estare documentando sobre el tema...

Aprovechando que contamos con expertos rondando por estos foros.. quiero preguntar si alguien sabe como ajustar
la bobina de un receptor RLP4318  :shock: despues de jugar con ella?  :D :-)
        Saludos desde Colombia! Que hermoso país....

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: comunicacion RF pic-pic
« Respuesta #8 en: 03 de Febrero de 2007, 21:40:45 »
La pagina que distes esta buenisima, pero solo es para comunicacion infraroja, que es diferente.
mariano_pic
no es solo para comunicacion infrarroja mi buen amigo mariano, como podeis ver es un protocolo, no es exclusivamente para infrarrojos, ya que puede adaptarse facilmente para RF, como mencione yo hice RF; con los modulos TWSyRWS-433 que son identicos a los TLP, y use codigo de Algec para RF usando RC-5 de Phillips (un protocolo de mandos infrarrojos como se ve en la pagina qeu deje); el codigo está en el link qeu deje en mi primer post, y como menciono, me ha funcionado correctamente, y pues como digo es simplemente una Transmisión Recepcion Asincrona (digamos ART) como la USART del PIC, asi que no tendria porque no funcionar, solo se debe tener cuidado en la programacion, porque hice para sony y costo un poco, pero funciona, no dije que no funciona el USART del PIC, solamente que no es la forma (y que a mi no me funciono solo enviando un dato, porque este ya lleva el start y el stop bits)

De hacerlo como menciono Giovanny (un bit de start y stop para cada caracter de delimitacion), porque te genera el USART del PIC automaticamente esos bits de start y stop para cada byte enviado.

en realidad no entendi tu explicación... debe ser por eso que ni la apoyo ni la contradigo.. igual agradezco la informacion, me estare documentando sobre el tema...
creo que mas entendible sera esto:

lo que hace USART en el PIC, es ponerte un bit de start y un bit de stop siempre por cada dato enviado (dependiendo de la configuracion que le des, pueden ser creo hasta 2 bits de parada, y no estoy seguro si se puede omitir el bit de parada, creo que no), lo que harias con tu forma de envio:
Citar
Ademas de estos dos truquillos, recomiendo tambien usar 'identificadores' antes y despues del dato (esto lo lei recientemente y creeme que funciona)... por ejemplo  enviar #(dato)*. si no coinciden entoces continuas recibiendo asi sea ruido pero no va a afectar tu pic receptor... ahora bien.. puedes hacer lo siguiente (0x00)(0Xff)(#)(dato)(*)...
es:   BITSTART 00000000 BITSTOP BITSTART 11111111 BITSTOP BITSTART 01010110 BITSTOP BITSTART dato BITSTOP BITSTART 01001110 BITSTOP
los 8 ceros=0x00; 8 unos=0xff; 01010110= digamos qeu el codigo ascii del numeral; dato=la info enviada; 01001110=digamos que es el codigo ascii del asterisco
lo cual es bastante ineficiente, ya que se desperdicia el uso del canal por ejemplo, y otras cosas mas, que determinan la calidad de la comunicación, por tanto se debe hacer:

BITSTART 00000000 11111111  01010110 dato 01001110 BITSTOP
o mejor el bit de START seran los ceros y unos del principio (y pues sera byte de start) y quedará:

00000000 11111111 01010110 dato 01001110  ; siendo ese ultimo byte tb el bayte de stop o nose colocarle tb el mismo byte de start complementado

y bueno eso es lo que hace un protocolo de mandos infrarrojos (start y datos), por tanto puede ser reusable para RF, solo seguir sus definiciones de unos y ceros.

un poco sobre com asincrona: http://www.monografias.com/trabajos37/entrada-y-salida/entrada-y-salida.shtml

espero no haber confundido, jeje, pues es un tema amplio, y si hablamos todavia de la sincrona, bueno ya no me extiendo, saludos.
.

Desconectado josegranada

  • PIC10
  • *
  • Mensajes: 16
Re: comunicacion RF pic-pic
« Respuesta #9 en: 25 de Enero de 2010, 16:29:27 »
hola, necesitamos hacer una comunicacion inalambrica entre dos pic, la comunicaciion seria bidireccional, si nos pudiese ayudar, se lo agradeceriamos mucho.

si tiene algo de esquemas o codigo, y nos puede ayudar, le pediria que nos lo mostrara para poder ayudarnos.

le mostrare lo que llevamos de codigo en cuanto tengamos algo.

gracias de antemano

si quiere que hablemos por el msn es jose_eltuba_88@hotmail.com

Desconectado canival35

  • PIC10
  • *
  • Mensajes: 36
Re: comunicacion RF pic-pic
« Respuesta #10 en: 26 de Enero de 2010, 07:20:15 »
mira aqui hay un pequeño esquema con el RLP434, es sencillo, o tambien estan los zigbee a mayor frecuencia,

sobre la comunicacion te paso un codigo en asm para el pic18F no se que micro uses pero es facil acoplar el codigo

espero te sirva, esta facil...

lo que hace el codigo es transmitir y recibir por las termianles C0 (tx)y C1 (rx) (cabe mencionar que no es necesario que tu pic tenga hardware para comunicacion serial estas estan trabajando con entradas y salidas de datos digitales) , y en las salidas esta un arreglo de leds tipo matriz de 5x3, esto pues te despliega letras, tu puedes cambiar en el codigo las letras que ocupes o el tipo de datos, y las entradas B funcionan para que coloques el codigo a mandar, y con la entrada B5 creo!!, se manda la instruccion para mandar el codigo, esta fue una practica que hice en la escuela asi que le falta depurar, pero para algo didactico te puede serivr, saludos ;)



Código: [Seleccionar]

;Bloque de declaraciones y bla bla blah
; Nuestro formato de letras se llama codigo IEP el quebra cocos,  es de 5 bits


;00000  nulo
;00001  A
;00010 B
;00011 C
;00100 D
;00101 E
;00110 F
;00111 G
;01000  H
;01001  I
;01010 J
;01011 K
;01100 L
;01101 M
;01110 N
;01111 ñ N_
;10000  O
;10001  P
;10010 Q
;10011 R
;10100 S
;10101 T
;10110 U
;10111 V
;11000  W
;11001  X
;11010 Y
;11011
;11100 GUION BAJO _
;11101 <   
;11110 >
;11111 secuencia de prueba

#INCLUDE <p18F4550.inc>
LECTURA EQU 0x0050 ;Variable de estado
LECTURA_PRUEBA EQU 0x0055 ;Variable de estado
temp EQU 0x0054
temp_retraso EQU 0x0051
temp2_retraso EQU 0x0052
temp3_retraso EQU 0x0053
Ind_Buf EQU 0x00 ; Contador de número de datos copiados
Buf_Dat EQU 0x20 ; Bufer de recepción/transmisión
ORG 0x00 ;Vectorizacion 
; GOTO inicio

;------------------------------------------

. BCF INTCON,7 ;DESACTIVAR INTERRUPCIONES
BCF WDTCON,0 ;dESACTIVAR WDT
MOVLW b'00000000' ;timer 0 apagado
MOVWF T0CON ;
;registros de interrupciones
BCF   INTCON,7 ;deshabilitar interrupciones
; configurar puertos


CLRF PORTB ; Initialize LATB by clearing output data latches
CLRF LATB ; Alternate method to clear output data latches
MOVLW 0Eh ; Set RB<4:0> as
MOVWF ADCON1 ; digital I/O pins (required if config bit PBADEN is set)
MOVLW 0xFF ; Value used to initialize data direction
MOVWF TRISB ; Set RB<3:0> as inputs RB<5:4> as outputs RB<7:6> as inputs

CLRF PORTD
CLRF LATD
MOVLW 0x00 ;d SALIDA DE MATRIZ DE LEDS
MOVWF TRISD

CLRF PORTC
CLRF LATC
MOVLW 0xFE ;C configuramos primero para leer si hay cambios
MOVWF TRISC ;en las entradas de transmision, si los hay se va
;11111110 ;al codigp para recivir datos,
; para entrar en modo de transmision, al haber 1 en
; rb5 se pasa al codigo de transmision que debera de cargar
; MOVLW b'11111100' a TRISC


;==========================================================================================
;=========antes de hacer algo primero debe de comparar si estara como transmisor o receptor
;==========================================================================================

inicio:
;goto secuencia_prueba

;BTG LATC,0,0

BTFSC PORTB,7,0 ;leer B5 si es 0 salta
;goto LETRA_B
CALL transmisor
;BTG LATC,2,0
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
    ;goto LETRA_A
GOTO receptor
GOTO inicio ; aqui hay un ciclo infinito hasta que se precione B5 o reciba por primera vez





;============================================
;============TERMINA LA RECEPCION============
;============================================


;==PRUEBA PARA  SACAR EL DATO QUE MANDAMOS EN EL PUERTO B
loop_infinito
goto loop_infinito
;==PRUEBA PARA  SACAR EL DATO QUE MANDAMOS EN EL PUERTO B




; *****************
; *****************
; **TRANSMISOR*****
; *****************
; *****************
transmisor:     ;C0=CLK  CI=INFO
BCF LATC,0
CLRF LECTURA_PRUEBA ;BORRAME<,----------------

BSF   LATC,0 ;c0=CLK=1 ESTO INDICARA AL RECEPTOR QUE EMEPIECE A RECIVIR,  RECIBIRA DESPUES DEL SIGUEINTE PULSO ALTO
BCF   TRISC,1  ;C1=OUT --> C1=INFO ; EVENTO A- ESTO PONE cIN COMO SALIA PARA TRANSMITIR INFO, AL FINALIZAR LA TRANSMISION DEBE REGRESAR A C1=OUT
CALL  retraso_
BCF   LATC,0 ;C0=O clk=0
BCF   LATC,1 ; info=0
CALL  retraso_
   

;LECTURA DE B0
BTFSC PORTB,0,0 ;leer B0 SI B0=1 C1=1, SI NO LO MANTIEN EN SU ESTADO ANTERIOR, OSEA 0
BSF   LATC,1 ;C1=1 - INFO= 1
BSF   LATC,0 ;C0=1 - CLK =1
CALL  retraso_  ; aqui daremos u pequeño intervalo de tiempo para dalr tiempo al receptor en
   ; leer el codigo en c0 e interpretar el cambio de CLK
BCF   LATC,0 ; CLK=0
BCF   LATC,1 ; INFO=0----se borra para aplicar el criterio de coparacion siguietne
CALL  retraso_

BTFSC PORTB,0
BSF LECTURA_PRUEBA,0




;LECTURA DE B1
BTFSC PORTB,1,0 ;leer B1 SI B1=1 C1=1, SI NO LO MANTIEN EN SU ESTADO ANTERIOR, OSEA 0
BSF   LATC,1 ;C1=1 - INFO= 1
BSF   LATC,0 ;C0=1 - CLK =1
CALL  retraso_  ; aqui daremos u pequeño intervalo de tiempo para dalr tiempo al receptor en
   ; leer el codigo en c0 e interpretar el cambio de CLK
BCF   LATC,0 ; CLK=0
BCF   LATC,1 ; INFO=0----se borra para aplicar el criterio de coparacion siguietne
CALL  retraso_

BTFSC PORTB,1
BSF LECTURA_PRUEBA,1



;LECTURA DE B2
BTFSC PORTB,2,0 ;leer B2 SI B2=1 C1=1, SI NO LO MANTIEN EN SU ESTADO ANTERIOR, OSEA 0
BSF   LATC,1 ;C1=1 - INFO= 1
BSF   LATC,0 ;C0=1 - CLK =1
CALL  retraso_  ; aqui daremos u pequeño intervalo de tiempo para dalr tiempo al receptor en
   ; leer el codigo en c0 e interpretar el cambio de CLK
BCF   LATC,0 ; CLK=0
BCF   LATC,1 ; INFO=0----se borra para aplicar el criterio de coparacion siguietne
CALL  retraso_

BTFSC PORTB,2
BSF LECTURA_PRUEBA,2


;LECTURA DE B3
BTFSC PORTB,3,0 ;leer B3 SI B3=1 C1=1, SI NO LO MANTIEN EN SU ESTADO ANTERIOR, OSEA 0
BSF   LATC,1 ;C1=1 - INFO= 1
BSF   LATC,0 ;C0=1 - CLK =1
CALL  retraso_  ; aqui daremos u pequeño intervalo de tiempo para dalr tiempo al receptor en
   ; leer el codigo en c0 e interpretar el cambio de CLK
BCF   LATC,0 ; CLK=0
BCF   LATC,1 ; INFO=0----se borra para aplicar el criterio de coparacion siguietne
CALL  retraso_


BTFSC PORTB,3
BSF LECTURA_PRUEBA,3



;LECTURA DE B4
BTFSC PORTB,4,0 ;leer B4 SI B4=1 C1=1, SI NO LO MANTIEN EN SU ESTADO ANTERIOR, OSEA 0
BSF   LATC,1 ;C1=1 - INFO= 1
BSF   LATC,0 ;C0=1 - CLK =1
CALL  retraso_  ; aqui daremos u pequeño intervalo de tiempo para dalr tiempo al receptor en
   ; leer el codigo en c0 e interpretar el cambio de CLK
BCF   LATC,0 ; CLK=0
BCF   LATC,1 ; INFO=0----se borra para aplicar el criterio de coparacion siguietne
CALL  retraso_

BTFSC PORTB,4
BSF LECTURA_PRUEBA,4


BSF   TRISC,1  ;C1=INFO --> C1=IN ; EVENTO B- ESTO PONE cINFO COMO entrada PARA detectar una transmision
;proveniente de otro micro, AL zomenzar  LA TRANSMISION DEBE cambiar C0=OUT-->C0=info recivida (evendo 'c')

;====================================
; FIN DE LA TRANSMISION
;====================================

; MOVFF LECTURA_PRUEBA,LATD;  BORRAME<<<<<<<<<<<<<<<<<---------------








return ; REGRESARA DE DONDE LE HABLARON




;============================================
;============INICIA LA RECEPCION=============
;============================================
receptor:        ;c0=info  c1= clk

BSF TRISC,0     ; co=INFO OUT SE PONE EN IN Y RECIBIRA LA INFORMACION (evento 'c'), al temrinar debe de regresar c0=Cinfo --> C0=Cout
CLRF LECTURA
BTFSC PORTC,1,0 ;leer c1=clk y SALTARA hasta que clk=0   <<<salta si es cero>>>
goto receptor




; EMPIEZA CICLO PARA DIGITO 0

BTFSS PORTC,1,0 ;leer c1=clk SI ES 1 salta
BRA $-1
;LECTURA0
BTFSC PORTC,0,0 ;leer c0=INFO SI ES 1
BSF   LECTURA,0 ;ACTIVA LECTURA0

BTFSC PORTC,1,0 ;leer c1=clk SI ES 0 SALTA
BRA $-1

BTFSS PORTC,1,0 ;leer c1=clk SI ES 1 SALTA
BRA $-1
; FINALIZA CICLO PARA DIGITO 0
;LECTURA1
BTFSC PORTC,0,0 ;leer c0=INFO SI ES 1
BSF   LECTURA,1 ;ACTIVA LECTURA1

BTFSC PORTC,1,0 ;leer c1=clk SI ES 0 SALTA
BRA $-1

BTFSS PORTC,1,0 ;leer c1=clk SI ES 1 SALTA
BRA $-1
;LECTURA2

BTFSC PORTC,0,0 ;leer c0=INFO SI ES 1
BSF   LECTURA,2 ;ACTIVA LECTURA2

BTFSC PORTC,1,0 ;leer c1=clk SI ES 0 SALTA
BRA $-1

BTFSS PORTC,1,0 ;leer c1=clk SI ES 1 SALTA
BRA $-1
;LECTURA3

BTFSC PORTC,0,0 ;leer c0=INFO SI ES 1
BSF   LECTURA,3 ;ACTIVA LECTURA3

BTFSC PORTC,1,0 ;leer c1=clk SI ES 0 SALTA
BRA $-1

BTFSS PORTC,1,0 ;leer c1=clk SI ES 1 SALTA
BRA $-1
;LECTURA4

BTFSC PORTC,0,0 ;leer c0=INFO SI ES 1
BSF   LECTURA,4 ;ACTIVA LECTURA4

BTFSC PORTC,1,0 ;leer c1=clk SI ES 0 SALTA
BRA $-1


BCF TRISC,0
;============================================
;============TERMINA LA RECEPCION============
;============================================
MOVFF LECTURA,LATD


; goto loop_infinito;  BORRAME<<<<<<<<<<<<<<<<<---------------


;====================
;====================DISQUE TABLA DE COMPARACION===================
;====================


; PARA LETRA A
MOVLW 0x01
CPFSGT LECTURA ;Compara FILE con WREG, salto si FILE  > WREG  SALTA
GOTO LETRA_A ;Si LECTURA NO FUERA > 0x01 (en este caso no salta porque 01 = 01)
;  no salta y me manda a A
; PARA LETRA B
MOVLW 0x02
CPFSGT LECTURA ;Compara FILE con WREG, salto si FILE  > WREG  SALTA
GOTO LETRA_B ;Si LECTURA NO FUERA > 0x02 (en este caso no salta porque 02 = 02)
;  no salta y me manda a B

MOVLW 0x03
CPFSGT LECTURA
GOTO LETRA_C

MOVLW 0x04
CPFSGT LECTURA
GOTO LETRA_D

MOVLW 0x05
CPFSGT LECTURA
GOTO LETRA_E

MOVLW 0x06
CPFSGT LECTURA
GOTO LETRA_F

MOVLW 0x07
CPFSGT LECTURA
GOTO LETRA_G

MOVLW 0x08
CPFSGT LECTURA
GOTO LETRA_H

MOVLW 0x09
CPFSGT LECTURA
GOTO LETRA_I

MOVLW 0x0A
CPFSGT LECTURA
GOTO LETRA_J

MOVLW 0x0B
CPFSGT LECTURA
GOTO LETRA_K

MOVLW 0x0C
CPFSGT LECTURA
GOTO LETRA_L

MOVLW 0x0D
CPFSGT LECTURA
GOTO LETRA_M

MOVLW 0x0E
CPFSGT LECTURA
GOTO LETRA_N

MOVLW 0x0F
CPFSGT LECTURA
GOTO LETRA_N_

MOVLW 0x10
CPFSGT LECTURA
GOTO LETRA_O

MOVLW 0x11
CPFSGT LECTURA
GOTO LETRA_P

MOVLW 0x12
CPFSGT LECTURA
GOTO LETRA_Q

MOVLW 0x13
CPFSGT LECTURA
GOTO LETRA_R

MOVLW 0x14
CPFSGT LECTURA
GOTO LETRA_S

MOVLW 0x15
CPFSGT LECTURA
GOTO LETRA_T


MOVLW 0x16
CPFSGT LECTURA
GOTO LETRA_U

MOVLW 0x17
CPFSGT LECTURA
GOTO LETRA_V

MOVLW 0x18
CPFSGT LECTURA
GOTO LETRA_W

MOVLW 0x19
CPFSGT LECTURA
GOTO LETRA_X

MOVLW 0x1A
CPFSGT LECTURA
GOTO LETRA_Y

MOVLW 0x1B
CPFSGT LECTURA
GOTO LETRA_Z

MOVLW 0x1C
CPFSGT LECTURA
GOTO GUION_BAJO

MOVLW 0x1D
CPFSGT LECTURA
GOTO MENOR_QUE

MOVLW 0x1E
CPFSGT LECTURA
GOTO MAYOR_QUE


MOVLW 0x1F
CPFSGT LECTURA
GOTO SECUENCIA_DE_PRUEBA



LETRA_A:

MOVLW b'11011110'
MOVWF LATD
MOVLW b'10110100'
MOVWF LATD
MOVLW b'01111110'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO LETRA_A


LETRA_B:
MOVLW b'11011111'
MOVWF LATD
MOVLW b'10110101'
MOVWF LATD
MOVLW b'01101110'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO LETRA_B

LETRA_C:
MOVLW b'11001110'
MOVWF LATD
MOVLW b'10110001'
MOVWF LATD
MOVLW b'01110001'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO LETRA_C

LETRA_D:
MOVLW b'11011111'
MOVWF LATD
MOVLW b'10110001'
MOVWF LATD
MOVLW b'01101110'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO LETRA_D

LETRA_E:
MOVLW b'11011111'
MOVWF LATD
MOVLW b'10110101'
MOVWF LATD
MOVLW b'01110001'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO LETRA_E

LETRA_F:
MOVLW b'11011111'
MOVWF LATD
MOVLW b'10110100'
MOVWF LATD
MOVLW b'01100001'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO LETRA_F

LETRA_G:
MOVLW b'11001110'
MOVWF LATD
MOVLW b'10110101'
MOVWF LATD
MOVLW b'01111101'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO LETRA_G

LETRA_H:
MOVLW b'11011111'
MOVWF LATD
MOVLW b'10100100'
MOVWF LATD
MOVLW b'01111111'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO LETRA_H

LETRA_I:
MOVLW b'11010001'
MOVWF LATD
MOVLW b'10111111'
MOVWF LATD
MOVLW b'01110001'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO LETRA_I

LETRA_J:
MOVLW b'11101000'
MOVWF LATD
MOVLW b'10100001'
MOVWF LATD
MOVLW b'01101111'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO LETRA_J

LETRA_K:
MOVLW b'11011111'
MOVWF LATD
MOVLW b'10101010'
MOVWF LATD
MOVLW b'01110001'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO LETRA_K

LETRA_L:
MOVLW b'11011111'
MOVWF LATD
MOVLW b'10100001'
MOVWF LATD
MOVLW b'01110000'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO LETRA_L

LETRA_M:
MOVLW b'11011111'
MOVWF LATD
MOVLW b'10101100'
MOVWF LATD
MOVLW b'01111111'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO LETRA_M

LETRA_N:
MOVLW b'11011110'
MOVWF LATD
MOVLW b'10100100'
MOVWF LATD
MOVLW b'01111100'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO LETRA_N

LETRA_N_:
MOVLW b'11011101'
MOVWF LATD
MOVLW b'10110100'
MOVWF LATD
MOVLW b'01111101'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO LETRA_N_

LETRA_O:
MOVLW b'11001110'
MOVWF LATD
MOVLW b'10110001'
MOVWF LATD
MOVLW b'01101110'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO LETRA_O

LETRA_P:
MOVLW b'11011111'
MOVWF LATD
MOVLW b'10110100'
MOVWF LATD
MOVLW b'01100111'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO LETRA_P

LETRA_Q:
MOVLW b'11000010'
MOVWF LATD
MOVLW b'10110100'
MOVWF LATD
MOVLW b'01111111'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO LETRA_Q

LETRA_R:
MOVLW b'11011111'
MOVWF LATD
MOVLW b'10110100'
MOVWF LATD
MOVLW b'01111010'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO LETRA_R

LETRA_S:
MOVLW b'11010010'
MOVWF LATD
MOVLW b'10110101'
MOVWF LATD
MOVLW b'01101001'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO LETRA_S

LETRA_T:
MOVLW b'11000001'
MOVWF LATD
MOVLW b'10111111'
MOVWF LATD
MOVLW b'01100001'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO LETRA_T

LETRA_U:
MOVLW b'11011111'
MOVWF LATD
MOVLW b'10100001'
MOVWF LATD
MOVLW b'01111111'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO LETRA_U

LETRA_V:
MOVLW b'11001111'
MOVWF LATD
MOVLW b'10100001'
MOVWF LATD
MOVLW b'01101111'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO LETRA_V

LETRA_W:
MOVLW b'11011111'
MOVWF LATD
MOVLW b'10100110'
MOVWF LATD
MOVLW b'01111111'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO LETRA_W

LETRA_X:
MOVLW b'11011011'
MOVWF LATD
MOVLW b'10100100'
MOVWF LATD
MOVLW b'01111011'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO LETRA_X

LETRA_Y:
MOVLW b'11000111'
MOVWF LATD
MOVLW b'10100111'
MOVWF LATD
MOVLW b'01100111'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO LETRA_Y

LETRA_Z:
MOVLW b'11011001'
MOVWF LATD
MOVLW b'10110101'
MOVWF LATD
MOVLW b'01110011'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO LETRA_Z
   
;==============CARACTERES==========   

GUION_BAJO:
MOVLW b'11010000'
MOVWF LATD
MOVLW b'10100001'
MOVWF LATD
MOVLW b'01100000'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO GUION_BAJO

MENOR_QUE:
MOVLW b'11000100'
MOVWF LATD
MOVLW b'10101010'
MOVWF LATD
MOVLW b'01110001'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO MENOR_QUE
   
MAYOR_QUE:
MOVLW b'11010001'
MOVWF LATD
MOVLW b'10101010'
MOVWF LATD
MOVLW b'01100100'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO MAYOR_QUE


;==============numeros=============

NUMERO_0:
MOVLW b'11011111'
MOVWF LATD
MOVLW b'10110001'
MOVWF LATD
MOVLW b'01111111'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO NUMERO_0
   
NUMERO_1:
MOVLW b'11010010'
MOVWF LATD
MOVLW b'10111111'
MOVWF LATD
MOVLW b'01110000'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO NUMERO_1
   
NUMERO_2:
MOVLW b'11011101'
MOVWF LATD
MOVLW b'10110101'
MOVWF LATD
MOVLW b'01110111'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO NUMERO_2
   
NUMERO_3:
MOVLW b'11010101'
MOVWF LATD
MOVLW b'10110101'
MOVWF LATD
MOVLW b'01111111'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO NUMERO_3
   
NUMERO_4:
MOVLW b'11000111'
MOVWF LATD
MOVLW b'10100100'
MOVWF LATD
MOVLW b'01111111'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO NUMERO_4
   
NUMERO_5:
MOVLW b'11010010'
MOVWF LATD
MOVLW b'10110101'
MOVWF LATD
MOVLW b'01111101'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO NUMERO_5
   
NUMERO_6:
MOVLW b'11011111'
MOVWF LATD
MOVLW b'10110101'
MOVWF LATD
MOVLW b'01111101'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO NUMERO_6
   
NUMERO_7:
MOVLW b'11000001'
MOVWF LATD
MOVLW b'10110100'
MOVWF LATD
MOVLW b'01111111'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO NUMERO_7
   
NUMERO_8:
MOVLW b'11011011'
MOVWF LATD
MOVLW b'10110101'
MOVWF LATD
MOVLW b'01111011'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO NUMERO_8
   
NUMERO_9:
MOVLW b'11000111'
MOVWF LATD
MOVLW b'10110100'
MOVWF LATD
MOVLW b'01111111'
MOVWF LATD
CLRF  LATD
BTFSC PORTC,1,0 ;leer C1 si es 0 salta
GOTO receptor
BTFSC PORTB,7,0 ;leer B5 si es 0 salta
CALL transmisor
GOTO NUMERO_9







LETRA_ESPACIO:
LETRA_SIGNO:
LETRA_NUMERO:
LETRA_FIN:






retraso:

nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop

return

;btfss LATD,1,0 ;CON D1=1 EJECUTA C

SECUENCIA_DE_PRUEBA: ; esto enciende un led a la vez

MOVLW b'11000001'
MOVWF LATD
call retraso_
MOVLW b'11000010'
MOVWF LATD
call retraso_
MOVLW b'11000100'
MOVWF LATD
call retraso_
MOVLW b'11001000'
MOVWF LATD
call retraso_
MOVLW b'11010000'
MOVWF LATD
call retraso_

MOVLW b'10110000'
MOVWF LATD
call retraso_
MOVLW b'10101000'
MOVWF LATD
call retraso_
MOVLW b'10100100'
MOVWF LATD
call retraso_
MOVLW b'10100010'
MOVWF LATD
call retraso_
MOVLW b'10100001'
MOVWF LATD
call retraso_

MOVLW b'01100001'
MOVWF LATD
call retraso_
MOVLW b'01100010'
MOVWF LATD
call retraso_
MOVLW b'01100100'
MOVWF LATD
call retraso_
MOVLW b'01101000'
MOVWF LATD
call retraso_
MOVLW b'01110000'
MOVWF LATD
call retraso_

; BTFSC LATC,1,0 ;leer C1 si es 0 salta
; GOTO receptor
; BTFSC LATB,5,0 ;leer B5 si es 0 salta
; CALL transmisor

CLRF  LATD

GOTO inicio

;==========rutina de retrasos=============
retraso_:

movlw 0x05
movwf temp3_retraso


decfsz temp_retraso,1,0
; goto retraso ;alta frec
goto    retraso1       ;baja frec
movlw 0xFF
movwf temp_retraso
       
return


retraso1:
decfsz temp2_retraso,1,0
; return
goto    retraso1  ; baja frec segun yo
; goto    retraso2 ;BIEN
movlw 0xFF
movwf temp2_retraso
goto retraso_

retraso2:
decfsz temp3_retraso,1,0
; return
goto    retraso2
movlw 0x05
movwf temp3_retraso
goto retraso1



;------------------------------------------
Fin_intT0:
RETFIE
END
;------------------------------------------

Desconectado josegranada

  • PIC10
  • *
  • Mensajes: 16
Re: comunicacion RF pic-pic
« Respuesta #11 en: 26 de Enero de 2010, 09:18:51 »
se lo agradecemos muchismos porque ya tenemos un esquema para empezar.

pero nosotros trabajamos con ccs, y en ensamblador no tenemos mucha idea.

si lo tuviese en ccs o algo parecido, y lo quiere publicar se lo agradeceremos

gracias de todas formas


 

anything