Shift out BCDs from DS 1307

Hi!

I'm having problems with my nixie build and i'd like to get your oppinion on it. This is my code so far - all it does is it makes the drivers freak out, display jibberish (lights up more characters than it should) and stop working (already replaced about 8 KN155ID1s)

this is my code so far:

#include "Wire.h"
#define DS1307_ADDRESS 0x68

void setup()
{
  pinMode(10, OUTPUT);   //Data Pin for 595 - the good stuff
  pinMode(11, OUTPUT);   //Latch Pin for 595 - it haz da powa
  pinMode(12, OUTPUT);   //Clock Pin for 595 - because someone needs to do it
}

void loop()
{
  // Reset the register pointer
  Wire.beginTransmission(DS1307_ADDRESS);
  byte zero = 0x00;
  Wire.write(zero);
  Wire.endTransmission();

  Wire.requestFrom(DS1307_ADDRESS, 7);

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

 //--------- Doin' the shifty-shafty ------------------------------------
  
  
  
  digitalWrite(11, LOW);   //Latch Pin on low - eays there, tiger - not yet
  
  //shiftOut(dataPin, clockPin, bitOrder, value)
  shiftOut(10, 12, MSBFIRST, 18);   //BCD Value for the Hours goes here
  shiftOut(10, 12, MSBFIRST, 52);   //BCD Value - minutes go here, playa
  shiftOut(10, 12, MSBFIRST, 86);   //BCD Value - oh shit, here come the seconds
  
  digitalWrite(11, HIGH);   //Latch Pin on high = it's OK, go for it!
  digitalWrite(11, LOW);   //OK cowboy, get ready for the next cycle
  
  //--------- Finished doin' the shifty-shafty -----------------------------
}

Here I use BCD Values for 12, 34, and 56 to test the output and it works. As soon as I change the fixed values with the variable "minute", "hour" and "second" it starts freaking out and does what i formerly described.

Any pointers?

What are you trying to do with the shift register(s)?

Looks like you blast out 3 bytes, then perhaps latch it - but then you open the latch immediately. Some shift registers have a clock (rising edge) to move the data from serial-in to parallel-output register, others let the data flow thru and then hold it while the latch pin is high. Try just getting rid of this line

digitalWrite(11, LOW); //OK cowboy, get ready for the next cycle