Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

07/08/2010 #1

Avatar de nietzche

Proyecto de comunicacion RF con PIC's
Hola, la idea es hacer un transmisor por RF que active 8 reles a distancia, en el RX tengo 9 botones que cada uno activa un rele en el RX, mas un boton que indica si el rele se activa en el tiempo que el push este activo o se queda anclado en el, tengo la mayoria del codigo y segun yo funciona, pero estoy atorado en la parte de la codificacion, saben si hago lo correcto?, es codificacion manchester.

El proyecto consiste en un PIC 16f826a, conectados a los pines bajos del PORTB va un teclado de 9 push's que activan los reles, esta informacion, la manda por USART directamente al RX, logico no puedo mandarla solo asi por la cuestion esa del ruido, segun tengo entendido que el manchester tiene un formato, como dice aca http://es.wikipedia.org/wiki/Codificaci%C3%B3n_Manchester.

Como dice: Una transición de negativo a positivo representa un 1 y una transición de positivo a negativo representa un 0. Asi que basicamente, digamos que un 1 es en realidad un 10 y un 0 es un 01, ocupa logicamente el doble de ancho de banda.

Ahora bien, despues de saber que tecla fue presionada ese dato de 8 bits pasa por un codificador, del cual ese byte resulta en 2 bytes, primero mando la parte baja y luego la parte alta, del lado del RX se decodifica, pasando de los 2 bytes en manchester a codigo binario original. La pregunta es: lo hise bien ?????? aca los ejemplos del code decode:



;-------- CODIFICADOR MANCHESTER --------
;EL BYTE ESTA ORIGINALMENTE EN W Y PROVIENE DE LOS PUERTOS B
MOVWF 0X20 ;EL BYTE ORIGINAL SE CONVIERTE EN 2
MOVLW 0X04 ;BYTES CODIFICADOS Y ALMACENADOS
MOVWF 0X23 ;EN: 0X21 PARTE BAJA DEL BYTE ORIGINAL
probe RRF 0X20,1 ;0X22 PARTE ALTA DE BYTE ORIGINAL
BTFSC STATUS,C
GOTO uno
BSF STATUS,C
RRF 0X21,1
RRF 0X21,1
DECFSZ 0X23,1
GOTO probe
GOTO ende
uno BCF STATUS,C
RRF 0X21,1
BSF STATUS,C
RRF 0X21,1
DECFSZ 0X23,1
GOTO probe
ende MOVLW 0X04
MOVWF 0X23
prob RRF 0X20,1
BTFSC STATUS,C
GOTO unov
BSF STATUS,C
RRF 0X22,1
RRF 0X22,1
DECFSZ 0X23,1
GOTO prob
GOTO fin
unov BCF STATUS,C
RRF 0X22,1
BSF STATUS,C
RRF 0X22,1
DECFSZ 0X23,1
GOTO prob
;FIN DEL CODIFICADOR MANCHESTER
************************************************** *

;-------------DECODIFICADOR MANCHESTER-----------
movlw 0x04 ;EL RESULTADO DEL BYTE ORIGINAL EN 0X32
movwf 0x25
testb rrf 0x30,1
rrf 0x30,1
rrf 0x32,1
decfsz 0x25,1
goto testb
movlw 0x04
movwf 0x25
testa rrf 0x31,1
rrf 0x31,1
rrf 0x32,1
decfsz 0x25,1
goto testa
MOVF 0X32,0
MOVWF PORTB ;EL RESULTADO DECODIFICADO Y ORIGINAL
;SALE POR EL PUERTO B


Thanks
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.