Hallo Ich habe ein Problem mit dem Vergleichen vom Akku(a) und einem Register(r2). Mit welchem Befehl kann ich die beiden Werte vergleichen ? Den Befehl "cmp" hab ich in meiner Befehlsliste nicht. Das einzige, daß ich gefunden habe ist "cjne a,#data,rel und cjne a,adr,rel" - Befehlsbeschreibung für: "cjne a,#data,rel -Vergleiche Akku mit Konstante und verzweige bei Ungleichheit.Andernfalls fahre im Programm fort." und "cjne a,adr,rel - Vergleich Akku- und Speicherinhalt und verzweige bei Ungleichheit." Leider verstehe ich das nicht ganz. Was ist mit verzweigen gemeint ? Kennt jemand einen Befehl zum vergleichen ? In meinem Programm möchte ich die zwei Werte vergleichen(a-r2), wenn der Wert grösser/gleich Null 0 ist, soll ein Sprung zu "ZEIT"(Sprungadresse) gemacht werden. Und wenn der Wert kleiner ist soll ein Relais(liegt auf Port P2.0) eingeschaltet werden und eine Kontroll-Spannung am Ausgang(Aout) anliegen. das Relais soll so lange eingeschaltet sein, bis der Vergleichswert grösser/gleich 0 ist. Das Hauptprogramm liegt als Anhang bei. Ausschnitt aus dem Programm: ... RELAISAUS bit p2.0 ;Ausgang für das Relais ... mov a,#LCDPosIstwert ;Cursor-Position für den Istwert lcall cursorpos ;an LCD ausgeben lcall Ain2 lcall dezaus ;subb a,r2 ;1.Versuch ;jc AUS ;1.Versuch ;jz AUS ;1.Versuch cjne a, r2,rel ;?? jz AUS ;Sprung bei Wert gleich 0 jc AUS ;Sprung bei grösser gleich 0 RELAIS: setb RELAISAUS ;Relais ein sjmp ZEIT ;Sprung ins weitere PROG AUS: clr RELAISAUS ;Relais aus ZEIT: mov r0,#250 ... Ich hoffe, daß mir jemand helfen kann. Im voraus DANKE !!!! Gruß Thiemo
Du kannst auch den ganz profanen SUBB Befehle nehmen: clr c subb a, r2 jz gleich jc kleiner oder eben CJNE Dabei muß man beachten, daß die Register ja im SRAM liegen. Um nun dem Assembler zu sagen, welche Registerbank man verwendet, gibt es die USING-Direktive und für die SRAM-Adresse der Register AR0 ... AR7. Nach dem Reset ist per default Bank 0 ausgewählt, also: using 0 cjne a, ar2, ungleich jmp gleich gleich: ... ungleich: jc a_kleiner_r2 jmp a_groesser_r2 a_groesser_r2: ... a_kleiner_r2: ... Peter
Hallo Peter Danke für die schnelle Antwort. Kann ich Dich wegen der Frage von mir heute mittag anrufen ? Wenn ja kannst Du mir ja Deine Nummer mailen: Suzi79@gmx.de Gruß Thiemo
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.