Que tal brothers , estoy tratando que mis dos pics 18f4550 se puedan comunicar entre si, los estoy programando con el compilador Picbasic Pro de MELABS. Y estoy simulando la comunicación en el proteus.
En el programa manda un dato que recojo del puerto B del PIC_Transmisor, una vez hecho esto, mando ese dato por el Bit 6 de puerto C a 9600 baudios. El Pic_Receptor recibe el dato por el bit 7 del puerto C, a la misma velocidad, 9600 baudios. y cuando lo recibe lo envía al puerto D.
El oscilador lo he configurado como interno a 8Mhz
Aquí el código:
CÓDIGO DEL TRANSMISOR:
CÓDIGO DEL RECEPTOR
El problema es que que el dato enviado no coincide con el que se proyecta en el puerto D del receptor, al cambiar el dato enviado, la salida en el puerto D también cambia, pero no coincide con lo que envió, por ejemplo si mando el dato:
0b00000000
recibe el dato:
0b00000000
pero si envió:
0b01010101
recibe el dato:
0b11110000
si envio:
0b11111111
recibo esto:
0b01111111
y cosas por el estilo. Sabrían ¿a que se debe?
He cambiado los valores de la transmisión a 2400 bds, 4600 bds, etc, tambien el valor del oscilador interno de 8Mhz a 4Mhz con diferentes valores de velocidad de baudios
Gracias por su atención y tiempo
Carlos Hernández Santes
En el programa manda un dato que recojo del puerto B del PIC_Transmisor, una vez hecho esto, mando ese dato por el Bit 6 de puerto C a 9600 baudios. El Pic_Receptor recibe el dato por el bit 7 del puerto C, a la misma velocidad, 9600 baudios. y cuando lo recibe lo envía al puerto D.
El oscilador lo he configurado como interno a 8Mhz
Aquí el código:
CÓDIGO DEL TRANSMISOR:
Código:
Include "modedefs.bas"
LLAVE var BYTE
DEFINE OSC 8 'OSCILADOR
TRISC=0
TRISB=255
INICIO:
LLAVE=PORTB
serout PORTC.6,T9600,[LLAVE]
GOTO INICIO
CÓDIGO DEL RECEPTOR
Código:
Include "modedefs.bas"
DEFINE OSC 8 'OSCILADOR
LLAVE Var BYTE
TRISD=0
INICIO:
serin PortC.7,T9600, LLAVE
PORTD= LLAVE
GOTO INICIO
El problema es que que el dato enviado no coincide con el que se proyecta en el puerto D del receptor, al cambiar el dato enviado, la salida en el puerto D también cambia, pero no coincide con lo que envió, por ejemplo si mando el dato:
0b00000000
recibe el dato:
0b00000000
pero si envió:
0b01010101
recibe el dato:
0b11110000
si envio:
0b11111111
recibo esto:
0b01111111
y cosas por el estilo. Sabrían ¿a que se debe?
He cambiado los valores de la transmisión a 2400 bds, 4600 bds, etc, tambien el valor del oscilador interno de 8Mhz a 4Mhz con diferentes valores de velocidad de baudios
Gracias por su atención y tiempo
Carlos Hernández Santes
Última edición: