Forum: Mikrocontroller und Digitale Elektronik 8051 C spezial register (ANFÄNGER)


von Marek Swierzy (Gast)


Lesenswert?

Hallo zusammen ,
ich will seit neustem 8051 programmierung betreiben.
Ich habe mir eine Demo-Version des WIDE - C -Compielers von AvoCet
heruntergeladen.
jetzt habe ich ein kleines Problem wenn ich an P0.1 den wert  high
haben will kann ich dieses nur mittels P0 = 2; machen.
Wie kann ich diesn Port direkt ansprechen.
Vielen Dank für die Antwort/en

von buz11 (Gast)


Lesenswert?

Muss es in C sein ?

In Assembler =  SETB P0.1   ...

von mike (Gast)


Lesenswert?

naja, P0.1 klingt für mich wie Port 0-Bit 1, und da Bit 1 00000010
entspricht und das dezimal 2 ist musst du P0 = 2 schreiben. Damit du
andere Bits im Register nicht veränderst würde ich beim Setzen
einzelner Bits immer eine Oder-Verknüpfung anwenden, damit bleiben die
anderen Bits unverändert.

#define BIT0   0x01
#define BIT1   0x02
#define BIT2   0x04
#define BIT3   0x08
#define BIT4   0x10
#define BIT5   0x20
#define BIT6   0x40
#define BIT7   0x80

Also Bit 1 am Port 0 setzten P0 |= BIT1;
Bit 1 am Port löschen P0 &= ~BIT1; damit wird nur Bit1 gelöscht andere
Bits im Register bleiben gleich.

von Marek Swierzy (Gast)


Lesenswert?

Super vielen Dank,
Jedoch kommt direkt das nächste Problem,
ich möchte den wert 12 in ein Serieles-Schiebe register rein clocken
kann mir da einer Helfen ?

Oder kennt einer ein Tutorial wo man das nachlesen kann ?

MFG und THX

Marek Swierzy

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.