Das lässt sich gut in Funktionen verpacken. Bei mir mach ich das immer so, dass mein Hauptprogramm ein paar Register füllt (Du kannst ja auch SRAM nehmen, wenn Du eine Hochsprache benutzt), und dann lediglich die Funktion "senden" ausführt. Und "senden" setzt sich wiederum aus "bit_HIGH_senden" und "bit_LOW_senden" und "CLOCK" zusammen.
Hierbei sprichst du jetzt von der Programmierung des µC wenn ich das richtig versteh.

Mit welchen Controllern und Sprachen arbeitest du denn da?