單片機中有象箱子功能一樣的地方,我們稱為寄存器,用來暫存數(shù)據(jù)。寄存器的種類有程序計數(shù)器、通用寄存器、以及SFR(特殊功能寄存器)等。
SFR主要用來設(shè)定外圍功能電路(計數(shù)器或串行端口、通用I/O等)的工作方式,確認其工作狀況,并對其進行控制的。也就是說SFR并非僅僅只是用來保存數(shù)據(jù)的“箱子”。通過改變保存在“箱子”里的數(shù)據(jù),不僅可以改變外圍功能電路的動作方式,而且“箱子”里的數(shù)據(jù)也將隨著外圍功能電路的工作狀況而改變。
控制外圍功能電路的基礎(chǔ)知識
下面以通用I/O為例來說明單片機對外圍功能電路的控制。通用I/O具有以下功能:
輸出功能:可以輸出高電平電壓或低電平電壓
輸入功能:可以讀出輸入到引腳的電壓電平
首先來看輸出功能的控制。圖1中的引腳A是一個通用I/O。
如果向引腳A的寄存器(SFR)
寫入0,則引腳A的輸出電壓將為低電平(0V)。
寫入1,則引腳A的輸出電壓將為高電平(5V)。
1鍵盤顯示接口電路: 用于下達用戶命令和傳送、修改單片機內(nèi)部的數(shù)據(jù)、參數(shù),同時可以將運算結(jié)果送顯示器上顯示。 可用 8279或74LS164芯片進行鍵盤、顯示電路的擴展。
2模擬量輸入通道: 數(shù)據(jù)采集和測量,將工業(yè)現(xiàn)場的非電量轉(zhuǎn)換成電量(如電壓、電流),再經(jīng)過模數(shù)轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字量送給單片機。 一般由傳感器、運算放大器、多路開關(guān)、模數(shù)轉(zhuǎn)換器等組成。
3模擬量輸出通道: 將計算的結(jié)果數(shù)字量經(jīng)數(shù)模轉(zhuǎn)換器轉(zhuǎn)換成模擬量(電壓、電流)反過來去控制工業(yè)的現(xiàn)場設(shè)備。
4 單片機與電腦的通訊接口電路: 完成單片機與電腦之間的連接,采用串口通訊,進行單片機與電腦之間的數(shù)據(jù)信息傳送。
5 繼電器驅(qū)動電路: 完成對繼電器線圈的控制,驅(qū)動繼電器動作。
單片機的外設(shè)功能:
正如過去連載的“單片機入門”系列中所介紹的那樣,對電子產(chǎn)品進行控制的單片機是由CPU、內(nèi)存及外設(shè)功能等部分組成的(圖1)。CPU根據(jù)指令(程序),執(zhí)行運算、數(shù)據(jù)的讀寫以及進行條件判斷等,而內(nèi)存則用來保存該程序(記憶)。
外設(shè)功能是指為了使單片機便于使用的各種功能。例如,CPU為了與外部的傳感器及開關(guān)等進行信號交換,就需要“輸入/輸出端口(I/O端口)”這種外設(shè)功能。
而且,將模擬輸入信號轉(zhuǎn)換為數(shù)字值的“A/D轉(zhuǎn)換器”以及反過來將數(shù)字值轉(zhuǎn)換為模擬輸出信號的“D/A轉(zhuǎn)換器”則是單片機對各種信號進行處理時不可或缺的外設(shè)功能。
另外,還有為了正確測量時間所用的“定時器”以及提供日期和時計的“實時時鐘(RTC)”,用于進行與時間相關(guān)的處理,此外還有將并行信號(parallel signal)和串行信號(serial signal)進行互相交換的“UART(Universal Asynchronous Receiver Transmitter,通用異步收發(fā)器)”等,以便進行通信。
端口方向寄存器(PDR)
決定引腳方向的寄存器,也稱為“方向寄存器”。
端口輸入數(shù)據(jù)寄存器(PIDR)
輸入時反映所使用的引腳狀態(tài)的寄存器。從引腳輸入LOW電平或者HIGH電平時會將之轉(zhuǎn)換為0或1的值并讀取該轉(zhuǎn)換結(jié)果。隨著引腳的變化數(shù)值也將發(fā)生變化。所以不會保持讀取時的值。
端口輸出數(shù)據(jù)寄存器(PODR)
此寄存器保存用作輸出引腳的輸出數(shù)據(jù)。將0或1的值轉(zhuǎn)換為LOW電平或HIGH電平信號并從引腳輸出。由于可以與內(nèi)存一樣保持改寫前的值,所以在改寫前來自引腳的輸出電壓也將保持不變。
了解數(shù)字信號的輸入/輸出端口---“GPIO”
在“輸入/輸出端口(I/O端口)”中,數(shù)字信號的輸入/輸出端口即“GPIO(General Purpose Input/Output)”也被稱為“通用I/O端口”,是一種用于數(shù)字信號輸入/輸出的非常方便的端口。用于將數(shù)字輸出的傳感器值和開關(guān)的ON/OFF值傳送到單片機的輸入端及通過LED來顯示單片機的運算結(jié)果,以及輸出用于驅(qū)動電機運行的信號等等。
GPIO被稱為通用端口是其引腳既可以用于輸入也可以用于輸出。在早期的單片機中,引腳都被固定用于輸入或輸出,但是現(xiàn)在很多單片機中都可以自由地將其設(shè)定為輸入或輸出端口。假設(shè)GPIO端子有8個引腳,則可以將4個引腳用于輸入,另4個引腳用于輸出,也可以將1個引腳用于輸入,剩下的7個引腳用于輸出。