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.