sbit P1_0 = P1^0; // 定義P1管腳0
void main() // 主程序 C語言所必需要有的
{
P1_0 = 0; // 點亮P1第0管腳連接的LED
}
===============以下非程序代碼===================
上面的程序,首先引用reg52.h,這里有對操作單片機相關數據的封裝,方便用戶使用
接着,用P1_0這個sbit類型的變量,引用P1口的第1個引腳(P1^0)
接着,主程序開始
將P1口的第1個引腳置為低電平(亮)
結束程序
在reg52.h上右鍵菜單(Keil中)open document<reg52.h>可以打開reg52單元,發現P1的定義:sfr P1 = 0x90;什么意思呢?
sfr 是用於定義特殊寄存器(Special Function Register)的關鍵字,是單片計算機中的一組特殊的臨時存儲區域,用於動態存放計算機運行過程的一些狀態信息、並依此做相應的控制。51系列單片機中,通常每個寄存器也就一個字節,這個字節是P1(通用寄存器1)P1有8個位,但0x91~0x97與P1毫無關系,同理其他3個寄存器P0, P2, P3也是這個道理。MCS-51單片機就設有18個專用寄存器,P0-P3端口,定時/計數器T0、T1,TMOD、TCON、PCON、SCON 、PSW、IE、A、B、IP等等。SFR越多,編和控制功能越強、越靈活,但需要硬資源,所以系統設計時會根據需要來確定。
sbit(Set Bit)與sfr用法類似,只是sbit是位操作,用於將某個sfr中具體位賦值給一個變量,這樣后面程序就可用通過該變量為該位清0或置1。
要點:
1.sfr和sbit的含意,特殊功能寄存器的含意
2.如何用位控制引腳