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