Der Wikipedia-Beitrag zu "DCF77" enthält eigentlich alles, was man
braucht. Allerdings gab es mal eine käufliche Informationsschrift zum
Aufbau des DCF77-Signals bei Conrad, die sogar einen auf monostabilen
Kippstufen basierenden "Decoder" beschrieb, der kurze von langen
Sekundenmarken, also High- von Low-Bits unterscheiden konnte.
Vielleicht hilft aber auch einer der Links unter dem Wikipedia-Artikel
weiter.
Prinzipiell muß der Mikrocontroller, im Zweifelsfalle per Timer, kurze
und lange Bits auseinanderhalten können. Das Programm beginnt
üblicherweise mit dem Warten auf die fehlende 59te Sekundenmarke. Dann,
nach Bestimmung der Bit-Längen, kann man die Nullen und Einsen in
Register bzw. Variablen einsortieren. In Assembler sollte das mit
Verschiebeoperationen und Und/Oder-Verknüpfungen gehen; man kann im
Zweifel auch die Behandlung jedes einzelnen Bits explizit handhaben, á
la "Wenn das gerade empfangene Bit 1 war, addiere zum Sekunden-Register
2 hinzu... empfange das nächste Bit... wenn das gerade empfangene Bit 1
war, addiere zum Sekunden-Register 4 hinzu...". Und die Parität nicht
vergessen - oder eben einfach ignorieren.
Vielleicht nicht so elegant, aber sicherlich einfach und übersichtlich.
Wer sich übrigens scheut, den Timer für solche Aufgaben einzusetzen,
kann auch auf eine Pegeländerung warten, den Mikrocontroller dann für
150 Millisekunden mit irgendeiner Zählschleife beschäftigen, und dann
prüfen, ob der anliegende Pegel 1 oder 0 ist.