變量的存儲
變量的存儲器類型是指該變量在 8051 單片機硬件系統中所使用的存儲區域,并在編譯時準確的定位。定義變量時應指定變量的存儲器類型,在編譯時將根據指定類型定義到相應的存儲區。
存儲器類型 說明
data 直接訪問內部數據存儲器(128 字節),訪問速度最快
bdata 可位尋址內部數據存儲器(16 字節),允許位與字節混合訪問
idata
間接訪問內部數據存儲器(256 字節),對于 51 子系列,只允許訪問
低128B,對于52 子系列,允許訪問全部256B地址
pdata 分頁訪問外部數據存儲器(256 字節),相當于用MOVX @Ri 指令訪問
xdata 外部數據存儲器(64KB),相當于用MOVX @DPTR 指令訪問
code 程序存儲器(64KB),相當于用MOVC @A+DPTR 指令訪問
例:數據類型 存儲類型 變量
char data var1;
bit bdata flags;
unsigned char xdata vextor;
unsigned char code seg[2];
unsigned int data number;
位尋址區及位變量定義
C51 提供一個bdata的存儲器類型,用于訪問單片機的可位尋址區的數據
unsigned char bdata age; //在位尋址區定義 unsigned char類型的變量age
int bdata score[2]; //在可位尋址區定義數組score[2]
bit flag=age^7 //用bit 定義位變量來獨立訪問可尋址位對象的其中一位
C51 提供關鍵字“bit”實現位變量的定義及訪問。
bit flag; // 將flag 定義為位變量
bit valve_state; // 將valve_state定義為位變量
通常C51 編譯器會將位變量分配在位尋址區的某一位。
位變量不能定義成一個指針,如不能定義:bit * POINTER。
不能定義位數組,如不能定義: bit array[2]。
bit 與sbit 的不同。bit 不能指定位變量的絕對地址,當需要指定位變量的絕對地址(范圍必須在0x80-0xff)時,需要使用sbit 來定義。
例:sbit flag=P1^0;
完整的pdf格式文檔51黑下載地址:
51單片機中變量的存儲.pdf
(270.52 KB, 下載次數: 31)
2018-10-13 08:18 上傳
點擊文件名下載附件
51單片機,變量存儲
|