Amigos tngo el mismo problema pero yo necesito sacarlo en un LCD este es mi programa: Espero su ayuda
define OSC 4
DEFINE I2C_SDA PORTC,4 'Data pin for I2C (12-bit core only)
DEFINE I2C_SCL PORTC,3 'Clock pin for I2C (12-bit core only)
DEFINE I2C_SCLOUT 1 'Set serial clock to bipolar instead of open-collector
DEFINE LCD_DREG PORTB 'LCD data port
DEFINE LCD_DBIT 4 'LCD data starting bit 0 or 4
DEFINE LCD_RSREG PORTB 'LCD register select port
DEFINE LCD_RSBIT 0 'LCD register select bit
DEFINE LCD_EREG PORTB 'LCD enable port
DEFINE LCD_EBIT 2 'LCD enable bit
DEFINE LCD_RWREG PORTB 'LCD read/write port
DEFINE LCD_RWBIT 1 'LCD read/write bit
DEFINE LCD_BITS 4 'LCD bus size 4 or 8
DEFINE LCD_LINES 2 'Number lines on LCD
DEFINE LCD_COMMANDUS 2000 'Command delay time in us
DEFINE LCD_DATAUS 50 'Data delay time in us
'portc3 = reloj
'portc4 = Dato
WR COn %10100000
RW COn %10100001
SCL VAR PORTC.3
SDA VAR PORTC.4
dato var byte
TRISC = 0
TRISB = 0
TRISA = 0
ADCON1 = 6
Esperar:
If porta.0 = 1 then inicio
goto esperar
Inicio:
LCDOUT $FE,1," GRABANDO"
LCDOUT $FE, $c0," EN MEMORIA"
pause 1000
LCDOUT $FE,1
i2cwrite sda,SCL,WR,0,["H"]
pause 10
i2cwrite sda,SCL,WR,1,["O"]
PAUSE 10
i2cwrite sda, SCL , WR,2, ["L"]
PAUSE 10
i2cwrite sda, SCL , WR,3, ["A"]
PAUSE 10
LEER:
LCDOUT $FE,1," LEYENDO ESPERE"
LCDOUT $FE, $c0," UN MOMENTO"
pause 1000
LCDOUT $FE,1
i2CREAD sda ,SCL, WR,0,[dato]
LCDOUT, dato
pause 1000
i2CREAD sda ,SCL, WR,1,[DATO]
LCDOUT , dato
PAUSE 1000
i2CREAD sda ,SCL , WR,2, [dato]
LCDOUT , dato
PAUSE 1000
i2CREAD sda, SCL , WR,3, [dato]
LCDOUT , dato
PAUSE 1000
goto ESPERAR
end