Forum: Mikrocontroller und Digitale Elektronik Anfängerproblem mit assembler


von gary (Gast)


Lesenswert?

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.

von Tom (Gast)


Lesenswert?

Ist doch klar.
forward: wird in jedem Fall durchlaufen.
Lies mal im Datenblatt die Funktion des Befehls jnb nach.

von crazy horse (Gast)


Lesenswert?

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.

von gary (Gast)


Lesenswert?

aja genau, jez seh ichs auch
Danke!

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
Noch kein Account? Hier anmelden.