新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機外圍功能電路控制的基礎(chǔ)知識

單片機外圍功能電路控制的基礎(chǔ)知識

作者: 時間:2017-10-14 來源:網(wǎng)絡(luò) 收藏

  在《嵌入式編程之的基本構(gòu)成、工作原理》、《嵌入式編程之的外圍功能電路》的編程語言和開發(fā)環(huán)境》,我們一起學(xué)習(xí)了單片機的硬件和編程語言以及開發(fā)環(huán)境等。本文將帶大家學(xué)習(xí)單片機的外圍功能電路控制的基礎(chǔ)知識。

本文引用地址:http://butianyuan.cn/article/201710/366330.htm

  () Special Function Registers

  單片機中有象箱子功能一樣的地方,我們稱為寄存器,用來暫存數(shù)據(jù)。寄存器的種類有程序計數(shù)器、通用寄存器、以及(特殊功能寄存器)等。

  主要用來設(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: 通用I/O的輸出功能

  如果將圖1的引腳A連接一個LED,就可以構(gòu)成一個控制LED的電路(見圖2)。此時,向寄存器(SFR)寫入0則LED亮燈,輸入1則LED熄滅。雖然這是一種很簡單的動作,但卻反映了單片機對各種外圍功能電路進行控制的基本原理。利用這種功能,就可以完成象電機的ON/OFF一樣的開關(guān)作用(由于通常的單片機上不能流過驅(qū)動電機運行的大電流,所以還需另行準備用FET或晶體管作成的電機驅(qū)動電路)。另外,如果使用多個通用I/O端口,就可以完成更加復(fù)雜的控制。

  

  圖2:通用I/O的LED控制電路

  接下來看輸入功能(圖3)。

  如果向引腳A輸入低電平電壓(0V),就會從寄存器(SFR)讀出0。

  如果向引腳A輸入高電平電壓(5V),就會從寄存器(SFR)讀出1。

  即,讀取寄存器(SFR)的值,就可以判斷外部電壓是低電平電壓還是高電平電壓。

  

  圖3:通用I/O的輸入功能

  圖4:通用IO輸入功能構(gòu)成的開關(guān)電路

  使用通用I/O的輸入功能構(gòu)成圖4所示的電路,單片機就可以判斷出開關(guān)(S)的狀態(tài)。

  當(dāng)開關(guān)(S)斷開時,電源電壓通過上拉電阻(R),連接到引腳A(相當(dāng)于輸入高電平電壓),寄存器(SFR)將的值變?yōu)?。

  當(dāng)開關(guān)(S)關(guān)閉時,引腳A被連接到低電平電壓,寄存器(SFR)的值變?yōu)?。

  單片機通過讀取引腳A的寄存器(SFR)的值,是“1”還是“0”,可以判斷外部開關(guān)(S)是斷開還是關(guān)閉狀態(tài)。

  

  圖4:通用IO輸入功能構(gòu)成的開關(guān)電路

  單片機上搭載了各種功能的SFR。通過程序來更改或讀出這些功能寄存器的值,就可獲知單片機的信息,而對進行控制。所以可以說,SFR就象是單片機的五官或者手腳。



關(guān)鍵詞: 單片機 SFR 外圍電路

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉