hallo!
ich bin uC-Neuling, weshalb ich nicht genau weiß was man in assembler
darf und was nicht.
als 1. prog mit 4051 von Atmel wollte ich einfach portpins
setzen/löschen, sobald ein Eingangspin low wird.(assembliert mit
ASEM51, lt. Dokumentation funkt. 89c2051.mcu auch für 4051)
$NOMOD51
$INCLUDE (89c2051.mcu)
mov P3,#11111111b
mov P1,#11111100b
main:
Abfragen:
jnb P3.0,forward
forward:
mov P1,#00000000b
jmp Abfragen
END
das problem bei diesem prog ist, dass Port1 sofort auf 0 gesetzt
wird,die Bedingung dass P3.0 low wird scheint nichts zu beeinflussen.
wäre sehr dankbar wenn mir wer sagen könnte was da falsch programmiert
ist.
Ist doch klar. forward: wird in jedem Fall durchlaufen. Lies mal im Datenblatt die Funktion des Befehls jnb nach.
Sprungziel ist falsch, du landest immer bei "forward". Ist die Bedingung erfüllt, springst du zu forward. Ist die Bedingung nicht erfüllt, wird der jnb ... ignoriert, und du landest auch bei forward.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.