TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: juanez en 28 de Noviembre de 2006, 13:40:38

Título: serin2 y serout2
Publicado por: juanez en 28 de Noviembre de 2006, 13:40:38
Hola , quiero simular en proteus 2 pics conectados a traves de 1 cable solamente, para luego sustiuir este cable por modulos RF.

El pic emisor debe mandar al pic receptor a traves del cable, los valores de los 2 canales analogicos leidos.
El pic receptor debe mostrar a traves de un lcd, los valores recibidos a traves del cable que va conectado al pic emisor.

El tema del lcd lo tengo controlado, pero el problema viene en que cuando uso el comando serin2 en el pic receptor, no veo nada en el lcd, si quito en el serin2 el lcd funciona perfectamente.

Salu2

Título: Re: serin2 y serout2
Publicado por: Mario en 28 de Noviembre de 2006, 16:31:17
A ver, revisa esto:
http://www.rentron.com/ruf-bot.htm
Título: Re: serin2 y serout2
Publicado por: navaismo en 29 de Noviembre de 2006, 01:15:28
Tambien revisa esto (http://www.todopic.com.ar/foros/index.php?topic=13956.msg83023#msg83023) , ese programa lo use primero PIC a PIC y despues le conecte los modulos RF y  cuentanos con tu codigo porque no sale con el serin2 los mensajes en el LCD
Título: Re: serin2 y serout2
Publicado por: juanez en 29 de Noviembre de 2006, 18:44:27
Hola, el primer problema que he resuelto, es que tengo en el circuito 2 pic16f870 conectado a un lcd cada uno, un pic hace de emisor y el otro de receptor.

Parece ser que el proteus se lia, y solo funciona el primer lcd, enciende los 2, pero solo va bien el primero, ya que si cargo el mismo programa en los 2 pics, solo funciona el primer lcd, y si borro el segundo lcd, entonces funciona el segundo.

Solucion, he dejado solamente el lcd del receptor, aunque me hubier gustado tener los 2, mas que nada para saber que valores lee el conversor del emisor y que es lo que envia.

CODIGO DEL EMISOR
--------------------------
include "modedefs.bas"
'Define ADCIN parameters
Define   ADC_BITS   10   ' Set number of bits in result
Define   ADC_CLOCK   3   ' Set clock source (3=rc)
Define   ADC_SAMPLEUS   50   ' Set sampling time in uS     
       
TRISA = %11111111   ' Set PORTA to all input
ADCON1 = %10000010   ' Set PORTA analog and right justify result
ADCON1.7=1
trisb=1

canal1 var word

loop:    ADCON0.2 = 1               'Comienzo de la conversion A/D

        adcin 0, canal1
       
serout  porta.5,N1200,[#canal1]
goto loop

end

CODIGO DEL RECEPTOR
----------------------------
include "modedefs.bas"
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 0
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 5
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 4
DEFINE LCD_LINES 4 

trisb.6=0

        canal1 var byte
        Pause 500       ' Wait for LCD to startup                       
        Lcdout $fe, 1   ' Clear LCD screen
loop:
       serin  porta.5,N1200,#canal1
       lcdout #canal1
       
Goto loop       ' Do it forever