Me voy a auto-responder. encontré el error y era sumamente evidente. solo hay que colocar los pines como entradas y salidas digitales. les dejo el programa que diseñe para observar los cambios y como avanza, espero que a este pequeño programa le puedan sacar algun provecho, especialmente aquellos que hacen dataloggers!.
Define CLOCK_FREQUENCY = 20
'Define SIMULATION_WAITMS_VALUE = 1
Define LCD_BITS = 8 'indicamos que el bus de datos del lcd sera de 8 bits
Define LCD_DREG = PORTD 'el bus de datos sera el puerto d
Define LCD_DBIT = 0 '(0/4) indiferente en bus de 8 bits
Define LCD_RSREG = PORTE 'el bit RS esta en el puerto E
Define LCD_RSBIT = 0 'se ua RE0 RS
Define LCD_EREG = PORTE 'el bit e esta en el puerto E
Define LCD_EBIT = 2 'se usa RE1 para E
Define LCD_RWREG = PORTE
Define LCD_RWBIT = 1
Define LCD_COMMANDUS = 2000 'tiempo de espera despues de ejecutar un comand del lcd en uSeg
Define LCD_DATAUS = 50 'tiempo de espera despues de enviar un dato al lcd en uSeg
Define LCD_INITMS = 50 'tiempo de espera despues de inicializar el display, solo se ejecuta una vez en uSeg
Lcdinit
'---------------------puerto I2C------------------
Symbol sda = PORTB.0 'asignamos nombre al pin que hara de sda del puerto I2C
Symbol scl = PORTB.1 'asignamos nombre al pin que hara de scl del puerto I2C
'---------Botones para las interrupciones----------
'---------leds---------------
AllDigital
Symbol led1 = PORTB.3
Symbol led2 = PORTB.4
Symbol led5 = PORTB.5
Symbol led3 = PORTB.6
Symbol led4 = PORTB.7
'variables del reloj
Dim addr(7) As Byte
Dim data As Byte
Dim seg As Byte
Dim seg1 As Byte
Dim min As Byte
Dim hora As Byte
Dim dia As Byte
Dim daym As Byte
Dim mes As Byte
Dim anno As Byte
Dim y As Byte
'--------------------sin seteo del reloj-----------------
For addr = 0 To 7
'(segundos, minutos, horas, dia semana, dia, mes, año), control
data = LookUp(0x40, 0x20, 0x23, 0x01, 0x04, 0x03, 0x03, 0x90), addr
I2CWrite sda, scl, 0xd0, addr, data 'escribe los datos al ds1307
Next addr
'********************Cuerpo principal del programa*************************
Gosub datos
Gosub calculo1
Gosub calculo
While y > 0
y = y - 1
Gosub lcd4
WaitMs 1000
Toggle led4
Wend
Toggle led1
inicio:
Toggle led5
WaitMs 1000
Goto inicio
End
'-----------------------------Sub-Rutinas----------------------------------
datos: 'leemos la hora desde el dispositivo ds1807
addr = 0
I2CRead sda, scl, 0xd1, 0x00, seg
WaitMs 20
addr = 1
I2CRead sda, scl, 0xd1, 0x01, min
WaitMs 20
addr = 2
I2CRead sda, scl, 0xd1, 0x02, hora
WaitMs 20
addr = 3
I2CRead sda, scl, 0xd1, 0x03, daym
WaitMs 20
addr = 4
I2CRead sda, scl, 0xd1, 0x04, dia
WaitMs 20
addr = 5
I2CRead sda, scl, 0xd1, 0x05, mes
WaitMs 20
addr = 6
I2CRead sda, scl, 0xd1, 0x06, anno
WaitMs 20
Return
calculo:
Toggle led3
y = 60 - seg1
Return
calculo1:
Toggle led2
If seg >= 0 And seg <= 9 Then seg1 = seg
If seg >= 16 And seg <= 25 Then seg1 = seg - 6
If seg = 32 And seg <= 41 Then seg1 = seg - 12
If seg >= 48 And seg <= 57 Then seg1 = seg - 18
If seg >= 64 And seg <= 73 Then seg1 = seg - 24
If seg >= 80 And seg <= 89 Then seg1 = seg - 30
Return
lcd4:
Lcdcmdout LcdClear
Lcdout "y:", #y
Return