Wie sind den die LEDs genau angeschlossen? Befindet sich noch ein Treiber dazwischen?
Oder hast du sie zwischen Vcc und Port angschlossen. Dann würden sie ja bei Low-Pegel leuchten.
Wenn ich das richtig verstanden habe liefert dir der Empfänger ein einzelnes Signal an P1.7. Und du möchtest die Impulslänge auswerten.
Wenn das so ist probier es mal so:
Code:.equ lednull, P5.0 .equ ledeins, P5.1 .equ dcf77, P1.7 ;-------------------------------------------------------------------- test: jnb dcf77,$ /auf signalanfang warten call wait150 /test ob lang oder kurz jb dcf77,eins /ist es noch da war es wohl ne eins ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /hier war es eine null clr lednull /eine empfangene null anzeigen setb ledeins /fals eine eins angezeigt wurde löschen jmp test ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - eins: clr ledeins /eine empfangene eins anzeigen setb lednull /fals eine null angezeigt wurde löschen jb dcf77,$ /auf Impulsende warten jmp test ;--------------------------------------------------------------------- wait150: mov r7,#XX /tacktfrequenzabhängig mov r6,#XX /selbst ausrechnen wait150a: djnz r7,$ djnz r6,wait150a ret ;----------------------------------------------------------------------







Zitieren

Lesezeichen