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