-         
+ Antworten
Ergebnis 1 bis 6 von 6

Thema: Flags 8051

  1. #1
    Gast

    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

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    15.10.2004
    Ort
    Pfalz
    Beiträge
    83
    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
    HAVE A NICE DAY

  3. #3
    Gast
    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

  4. #4
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.835
    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

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    15.10.2004
    Ort
    Pfalz
    Beiträge
    83

    M8051Architektur

    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
    Angehängte Dateien Angehängte Dateien
    HAVE A NICE DAY

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.07.2004
    Ort
    München
    Alter
    49
    Beiträge
    297
    Hallo PicNick,

    Zitat Zitat von 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

+ Antworten

Benutzer, die dieses Thema gelesen haben: 0

Derzeit gibt es keine Benutzer zum Anzeigen.

Berechtigungen

  • Neue Themen erstellen: Ja
  • Themen beantworten: Ja
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •