Conectar LCD y Tiny RTC simultaneamente

OK

Mira yo por ejemplo tengo un modulo RTC con el integrado DS1307 y un lcd 1602 con un backpack que tiene el integrado PCF8574T y este transforma el lcd a i2c; también es compatible con un lcd 2004

Utilizo la libreria LiquidCrystal_I2C.h
Te dejo el código base que tengo para esto, tendrás que ajustarlo a tu pantalla si es necesario.

/*https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads*/

#define DS1307_ADDRESS 0x68
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x20, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Addr, En, Rw, Rs, d4, d5, d6, d7, backlighpin, polarity

void setup()
{  
  Wire.begin(); 
  Serial.begin(9600);
  lcd.begin(16,2);               // Inicia el lcd con 2 renglones y 16 columnas  
}

void loop()
{
  printDia();
  delay(1000);
}

byte bcdToDec(byte val)  {
  // Convert binary coded decimal to normal decimal numbers
  return ( (val/16*10) + (val%16) );
}

void printDia(){
  Wire.beginTransmission(DS1307_ADDRESS);

  byte zero = 0x00;
  Wire.write(zero);
  Wire.endTransmission();

  Wire.requestFrom(DS1307_ADDRESS, 7);

  int second = bcdToDec(Wire.read());
  int minute = bcdToDec(Wire.read());
  int hour = bcdToDec(Wire.read() & 0b111111); //24 hour time
  int weekDay = bcdToDec(Wire.read()); //0-6 -> sunday - Saturday
  int monthDay = bcdToDec(Wire.read());
  int month = bcdToDec(Wire.read());
  int year = bcdToDec(Wire.read());

  switch(weekDay)
  {
  case 0:
    lcd.setCursor(0,0);
    lcd.print("Sun ");
    break;
  case 1:
    lcd.setCursor(0,0);
    lcd.print("Mon ");
    break;
  case 2:
    lcd.setCursor(0,0);
    lcd.print("Tues ");
    break;
  case 3:
    lcd.setCursor(0,0);
    lcd.print("Wed ");
    break;
  case 4:
    lcd.setCursor(0,0);
    lcd.print("Thurs ");
    break;
  case 5:
    lcd.setCursor(0,0);
    lcd.print("Fri ");
    break;
  case 6:
    lcd.setCursor(0,0);
    lcd.print("Sat ");
    break;
  }

  lcd.print(monthDay);
  lcd.print("/");
  lcd.print(month);
  lcd.print("/");
  lcd.print(year);

  lcd.setCursor(0,1);
  lcd.print(hour);
  lcd.print(":");
  lcd.print(minute);
  lcd.print(":");
  lcd.print(second);

  lcd.setCursor(9,1);
  lcd.print("Temp");

  delay(1000);
}

void printDate(){

  // Reset the register pointer
  Wire.beginTransmission(DS1307_ADDRESS);

  byte zero = 0x00;
  Wire.write(zero);
  Wire.endTransmission();

  Wire.requestFrom(DS1307_ADDRESS, 7);

  int second = bcdToDec(Wire.read());
  int minute = bcdToDec(Wire.read());
  int hour = bcdToDec(Wire.read() & 0b111111); //24 hour time
  int weekDay = bcdToDec(Wire.read()); //0-6 -> sunday - Saturday
  int monthDay = bcdToDec(Wire.read());
  int month = bcdToDec(Wire.read());
  int year = bcdToDec(Wire.read());

  //print the date EG   3/1/11 23:59:59
  Serial.print(month);
  Serial.print("/");
  Serial.print(monthDay);
  Serial.print("/");
  Serial.print(year);
  Serial.print(" ");
  Serial.print(hour);
  Serial.print(":");
  Serial.print(minute);
  Serial.print(":");
  Serial.println(second);
}