#include // 引用52包檔案 可以理解為命名空間
sbit p1_0 = p1^0; // 定義p1管腳0
void main() // 主程式 c語言所必需要有的
***************以下非程式*****************====
上面的程式,首先引用reg52.h,這裡有對操作微控制器相關資料的封裝,方便使用者使用
接著,用p1_0這個sbit型別的變數,引用p1口的第1個引腳(p1^0)
接著,主程式開始
將p1口的第1個引腳置為低電平(亮)
結束程式
在reg52.h上右鍵選單(keil中)open document可以開啟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.如何用位控制引腳
sbit p1_0 = p1^0; // 定義p1管腳0
void main() // 主程式 c語言所必需要有的
***************以下非程式*****************====
上面的程式,首先引用reg52.h,這裡有對操作微控制器相關資料的封裝,方便使用者使用
接著,用p1_0這個sbit型別的變數,引用p1口的第1個引腳(p1^0)
接著,主程式開始
將p1口的第1個引腳置為低電平(亮)
結束程式
在reg52.h上右鍵選單(keil中)open document可以開啟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.如何用位控制引腳
點亮乙個LED燈
設計定義 二選一多路器 兩個輸入io,a b。可以是高電平,輸入按鍵按下時,led燈與a埠狀態保持一致,按鍵釋放時,led燈與b埠狀態保持一致 設計輸入 建立乙個project 編寫功能 input a 輸入埠a,b input b input key in 按鍵輸入,實現輸入通道的選擇 outpu...
第乙個驅動程式點亮led
include include include include include include include include include include static struct class firstdrv class static struct class device firstdrv...
樹莓派GPIO點亮第乙個led
如下 注意 此時的gpio口為18編號口而非gpio18 import rpi.gpio as gpio 引入函式庫 import time rpi.gpio.setmode gpio.board 設定引腳編號規則 rpi.gpio.setup 11,rpi.gpio.out 將11號引腳設定成輸出...