Hello again,
Oh you are using P Mosfets for the high side? Yeah then you need to be able to generate a voltage that goes all the way up to 12v (power supply voltage). However, you dont always have to bring the voltage down to exactly zero to turn them on it depends on the required gate voltage drive.
For example, if the P Mosfet in question operates on 5 volts (actually more like -5 volts relative to the source) then all you need is a 5 volt change, not a 12 volt change. That means the 0v to 5v signal out of the uC can be coupled to the gate via either a resistor divider or a zener. Probably better is a zener so lets look at that first.
If the supply is 12v, 12-5=7 so you need (ideally) a 7v zener. When the uC pin goes high assuming it goes to +5v, the voltage at the other end of the zener (with a pullup resistor) will be about 12v, which means 0v to the P Mosfet gate, turning it off. When the uC output pin goes low, that means the other end of the zener will be at about 7 volts, or as the mosfet sees it, -5v thereby turning it on.
So you'd need a zener of the right voltage plus a pullup resistor. The pullup resistor value can not be too low or it will overload the uC output pin, so adjust accordingly.
Another method is to bias the uC at +12v instead of 0v. That means the power supply pin goes to +12v and the ground pin goes to -5v down from the +12v source (a -5v regulator means it will be at +7v). You probably cant do this though if you have to also drive an N Mosfet, which works better with ground to 0v of the power supply unless you want to use two uC chips and sync them up.
Small transistor drivers are not complicated so dont be intimidated if you want to add one instead of a zener.