Safely connecting 4056 and MSP430
One popular method to get data from one device running off one power supply to some other device running off some other power supply -- perhaps at much higher voltage -- is to solidly connect the grounds together and use a "discrete inverter" (level shifter) built from one discrete FET and one resistor for each signal (in your case, 5 signals).



Your MSP430 drives the gate of the FET. When the MSP430 sends a "hi" output (+3.3 V), turning the FET "on", the FET pulls the output close to GND.
When the MSP430 sends a "lo" output, turning the FET "off", the resistor -- with one end connected to the "other" power supply, the power supply connected to the 4056 -- pulls the output "hi".
In your case, the output is pulled close to +12 V when your +12 V power supply is turned on and connected, or 0 V if it isn't.
No constant current can leak through this inverter / level shifter.

This arrangement "inverts" the signal. In principle one could add another inverter (a single 74HC14 or 5 more transistors and resistors) in series so that "hi" input gives "hi" output, and "close to GND" input gives "close to GND" output, but many people make the hardware a little simpler at the cost of adding a few more lines of code to compensate.

As an alternative to the one FET one resistor discrete inverter,
some people use a "discrete inverter" built from one discrete BJT and two or three resistors for each signal; it works very similarly. a b c