No estoy seguro que funcione bien, pero creo que si lo pones como te adjunto, los minutos y los segundos siempre ocuparán dos dígitos, con independencia de que sean menores que 10. Si funciona bien, es mucho más estético:
printf(lcd_putc," %2d:%2d",min,sec);