簡介
對位元組地址中的位地址進行定址的定址方式稱為位定址。
採用位定址方式的指令,其運算元是8位二進制數中的某一位,在指令中要給出的是內部RAM單元中的某一位,即位地址,其在指令中用bit表示。
8051單片機內部有1個可位定址區,地址為20H~2FH,共16個單元。其中每個單元中的每一位都可單獨作為運算元,共128位。另外,如果SFR(特殊功能暫存器片—內高128單元)的地址值能被8整除,則該SFR也可以進行位定址。可位定址的SFR有ACC,B,PSW,P0,P1,P2,P3,IP,IE,TCON,SCON。
由於單片機中只有內部RAM和特殊功能暫存器的部分單元有位地址,因此位定址只能對有位地址的這兩個空間進行定址操作。位尋由指令給出直接位地址。與直接定址不同的是,位定址只給出位地址,而不是位元組地址。
指令中直接給出了運算元所在的位地址。
例: CLR P1.0 ;(P1.0) ← 0
SETB ACC.7 ;(ACC.7)← 1
CPL C ;( C )← NOT( C )
操作方式
在8051單片機中,位地址的表示可以採用以下幾種方式:
彙編:
1.直接用位地址00H~FFH來表示,如20H單元的0~7位可表示為0H~7H。
2.採用第n單元第n位的表示方法,如25H.5,表示25H單元的D5 位。
3.對於SFR可直接用暫存器名加位數的方法表示,如ACC.3、PSW.7等。
4.用彙編語言中的偽指令定義。
C:/*以操作P0口第二位為例*/
bit P01 = P0^1;
bit P01 = 0x81;
1.bit P01 = P0^1;
2.bit P01 = 0x81;