C語言控制51微控制器 sbit 與 sfr 的用法(keil擴充套件指令 )
1. SBIT Assembler Statement
(keil 中 help 的說明)
Arguments sbit sfr_symbol = bit-address;
Description The sbit statement defines a special function register bit:
Where
*sfr_symbol is the name of the Special Function Register (SFR) symbol to define.
bit-address is the address of the SFR bit in the format address^bit_position.*
The sbit statement allows you to define SFR bit data in a consistent manner with the Cx51 compiler. With this statement you may use a generic SFR register definition file for the Cx51 compiler and the Ax51 assembler.
Example
sbit P0_0 = P0^0;
sbit P0_1 = 0x90^1;
理解
sbit 用於特殊功能暫存器中可位定址的位地址。類似於C語言中的巨集定義,對選定位地址進行某特殊功能的命名。
格式為:sbit 命名功能 = 位地址
2. SFR Assembler Statement
Arguments sfr sfr_symbol = address;
Description The sfr statement defines a special function register:
- Where
*sfr_symbol is the name of the Special Function Register (SFR) symbol to define.
address is the address of the SFR.*
The sfr statement allows you to define SFR data in a consistent manner with the Cx51 compiler. With this statement you may use a generic SFR register definition file for the Cx51 compiler and the Ax51 assembler.
Example
sfr P0 = 0x80;
sfr P1 = 0x90;
理解
sfr 定義特殊功能暫存器中的位元組。類似於C語言中的巨集定義,對選定位元組地址進行某特殊功能的命名。
格式為:sfr 功能命名 = 地址(位地址首位)
3. 51中可位定址區域
1)位定址區
位元組地址範圍為 20H~2FH,
這16個單元(共計128位)的每一位都有一個對應位地址,
位地址範圍為 00H~7FH。
2)SFR區
位元組地址範圍為80H~FFH,
位元組地址30H~7FH為資料緩衝區,使用者RAM區,
位地址範圍緊接上述位定址區位地址範圍,SFR區位地址範圍為 80H~FFH。
- 注:凡是SFR中位元組地址能被8整除的單元均能位定址。