Hallo
Wenn Du die 0xff Hexzahl in eine binäre Zahl umwandelst, dann
entspricht jedes Bit einem Port-Pin.
Also P1=0x01 würde nur den ersten Pin ansteuern, P1=0x02 den zweiten,
P1=0x03 den ersten und zeiten.....
Wenn Du nicht alle Pins gleichzeitig setzen willst, dann kannst Du
einzelne setzen/löschen, indem Du dies mit binären UND oder ODER
Verknüpfungen realisierst.
Also sagen wir, Bit 0 und Bit 1 sind gesetzt, also P1 = 0x03 und Du
willst nur Bit 0 wieder auf 0 setzen, dann machst Du das so:
P1 = P1 & ~0x01;
Man nimmt also den aktuellen Zustand von P1 und macht eine UND
Verknüpfung mit b11111110 (die Wellenlinie invertiert den Wert), somit
wird das Bit 0 gelöscht.
Um es wieder zu setzen, einfach eine ODER verknüpfung machen:
P1 = P1 | 0x01;
..und das Bit 0 ist wieder gesetzt.
Das geht so mit allen Bits bzw. Pins.
Gruss
Johnny