Archiv verlassen und diese Seite im Standarddesign anzeigen : Flags 8051
Hallo,
ich weis das ist vermutlich ne noob frage, trotzdem:
Kann mir jemand mal die Flags im 8051 (Overflow, Carry, Hilfscarry) erklärenund wenn möglich auchallgemeine Definitionen... von Flags. Vielleicht auch noch was technisches (Aufbau Flag...)
Danke und viele Grüße,
MICROMAN
Bomberman
16.12.2004, 10:45
Hallo Microman,
die genauen Angaben zu Flags erhälst Du aus der Hardwarebeschreibung Deines µCs.
Allgemein kann man sagen, daß für bestimmte Ereignisse Flags (Bits) reserviert sind, die immer dann gesetzt werden, wenn das entsprechende Ereigniss eintritt.
Die Flags müssen manuell (per Befehl) wieder gelöscht werden, da sie sonst kein weiteres Mal ausgewertet werden können (is ja auch logisch, wenn´s bereits gesetzt ist).
Im Assembler kann man die Flags Bitweise ansprechen. z.B.:
CLR ti ; Sendeflag der RS232 löschen
Oder:
CLR tf1 ;Überlaufsflag von Timer 1 löschen.
Oder
JB C,irgendwohin ;Sprung nach irgendwohin wenn Carry gesetzt ist
...
Falls Du genauere Informationen zu bestimmten Flags brauchst, benötige ich das Hardwaredatenblatt Deines µCs.
Der von Dir angesprochene Overflow ist vermutlich der Überlauf des Akkus. Wenn also der Akku überläuft wird das Carry-Bit gesetzt.
Das ist eine besondere Sache, weil für das Carry einige spezielle Funktionen vorgesehen sind.
Ciao
Patrick
Hallo Patrick
Das Problem ist ich hab keinen Zugang zum Datenblatt, da ich
Schüler bin und wir das in der Schule behandeln. Ich soll über Flags ein kurzes Referat halten. Hätte ich das Datenblatt wäre es wahrscheinlich kein Problem. Ich hab schon bei Google gesucht aber nichts wirklich hilfreiches gefunden. Im Forum von "www.mikrocontroller.net" wurde ich lediglich beleidigt, dass ich anscheinlich will, dass man mir das Referat fertig schreibt so, dass ich es nur noch vortragen muss.
Über den Microcontroller kann ich leider nicht mehr sagen als dass es ein 8051 ist und unser Lehrer uns sagte wir sollten nach "MCS51" suchen (was aber auch nicht geholfen hat.
Gruß,
microman
Im Kern sind Flags einfach einzelne Bits, die deswegen "Flags" (=Flagge) heißen, weil die Verwendung nachrichtlichen Charakter hat (Befehl /Variation bzw. Information)
Das Zero-Flag (z.B) setzt die ALU (arithmetic-logical unit) dann, wenn alle 8 Bit im Akku =0 sind, warum auch immer.
mfg robert
Bomberman
17.12.2004, 08:01
Hallo microman,
habe auf die Schnelle nichts zusammenfassendes über Google herausgefunden, aber ich schau mal in meiner BIO-CPU im Cache nach, da hab ich bestimmt noch ein paar Begriffe nach denen Du vielleicht eher googeln kannst.
Also Markante M8051 Flags:
Timerüberläufe: tf0,tf1, tf2
RS232-Flags:ri, ti
Akkuüberlauf: c
Interruptflags: (da gibt es viele, aber ich bringe Sie immer durcheinander)
Ich vewrsuche Dir mal ein Datenblatt anzuhängen.
Ciao
Patrick
m.artmann
17.12.2004, 08:35
Hallo PicNick,
Das Zero-Flag (z.B) setzt die ALU (arithmetic-logical unit) dann, wenn alle 8 Bit im Akku =0 sind, warum auch immer.
Weil Du mit dem Zero Flag wunderbar Zähler, Schleifen oder Vergleichsoperationen ausführen kannst.
Ein primitives Beispiel
LD A,10 'Lade Register A (Akku) mit Wert 10
Schleife:
DEC A 'decrementiere Akku (Akku=Akku-1)
JZ Label ' Springe wenn Akku = 0 zu Label (Jump if Zero)
JMP Schleife 'Solange Akku noch nicht 0 in Schleife bleiben
Label: ' ab hier geht es weiter wenn Akku = 0
Das Programm bleibt dann so lange in der Schleife bis das Register A = 0 ist
Gruß
m.artmann
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.