第一個程序點亮一個LED燈


#include <reg52.h> // 引用52包文件 可以理解為命名空間

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.如何用位控制引腳


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM