天天看點

《PIC微控制器項目設計:C語言》一1.2 微控制器系統

本文講的是<b>PIC微控制器項目設計:C語言一1.2 微控制器系統</b>,微控制器是一種單晶片的計算機。“微”表示該裝置很小,“控制器”表明該裝置可在控制應用系統中使用。另一個用于微控制器的術語是“嵌入式控制器”,這是由于在工業、商業和家庭應用裝置中,大多數的微控制器都被内置或嵌入在它們控制的裝置中。

微處理器在許多方面與微控制器不同。其主要差別是,微處理器需要其他一些外部元件協助進行計算操作,如程式存儲器、資料存儲器、I/O子產品和外部時鐘子產品;而微控制器則是将所有這些晶片支援的功能整合于一個晶片之中。另外,由多晶片概念構造的基于微處理器的系統比基于微控制器的系統消耗更多的功耗。基于微控制器系統的另一個優點是其總成本比基于微處理器的系統低得多。

所有的微控制器(和微處理器)依靠存儲在程式存儲器内的一組指令(或使用者程式)進行工作。微控制器從程式存儲器内一個接一個地讀取這些指令,解碼這些指令,然後執行所需的操作。

傳統意義上微控制器一直使用基于目标裝置的彙編語言進行編寫。雖然彙編語言執行速度快,但它有幾個缺點。彙程式設計式由助記符組成,使用彙編語言編寫的程式一般很難學習和維護。此外,由不同公司生産的微控制器使用不同的彙編語言,因而每次使用新的微控制器時,使用者就需要學習一種新的彙編語言。

微控制器還可以使用進階語言進行程式設計,如BASIC、PASCAL和C。使用進階語言程式設計的優點是進階語言比彙編語言更容易學習。此外,非常大和複雜的程式可以更容易使用進階語言來進行開發。在本書中,我們将學習使用兩種流行的C程式設計語言對高端8位PIC單片機進行程式設計:分别是由mikroElektronika(www.mikroe.com)開發的mikroC Pro for PIC和由Microchip(www.microchip.com)開發的MPLAB X IDE。

通常,一個單一的晶片需要有個基于微控制器運作的計算機系統。在實際應用中,可能還需要附加的元件,以允許微機通過接口與環境相連接配接。随着PIC系列微控制器的出現,電子項目的開發時間已減少到幾個月,幾周,甚至幾個小時。

一般來說,微控制器(或微處理器)執行的是在其程式存儲器裡裝入的使用者程式。在這個程式的控制下,資料從外部裝置接收進來(輸入),被處理,然後發送給外部裝置(輸出)。

例如,在一個基于微控制器的液位控制系統中,其目的是控制液體保持在設定的液位值上。這裡,液體的水準位置通過裝有水準傳感器的微型計算機進行讀取。然後,運作在微控制器内的程式開啟泵和閥,控制液面保持在所需值上。如果液位低,那麼微型計算機操作泵從蓄水池中抽取更多的液體。在實際中,需要連續地控制泵,以使液體保持在所要求的液位上。圖1.1顯示了這種簡單的液位控制系統的框圖。

《PIC微控制器項目設計:C語言》一1.2 微控制器系統

圖1.1所示的系統是一個很簡單的液位控制系統。在更複雜的系統中,我們可以添加小鍵盤來設定液體所需的水準位置,以及用液晶顯示器(LCD)來顯示罐中目前液體的液位。圖1.2所示為這種更複雜的液位控制系統的框圖。

我們可以使設計更複雜一些(見圖1.3),如果液面不在所需的位置,可以添加一個聲音報警器來告知我們。此外,在任何時間,都可以每秒發送一次實際的液位值給PC,以便進行歸檔和進一步的處理,例如,可以在PC上每天繪制液體水準位置的變化曲線圖。也可以将無線接口[如藍牙或射頻(RF)]或網絡連接配接添加到系統裡,以實作遠端監控或控制液體的液位。圖1.4顯示了有藍牙子產品連接配接到微控制器的系統框圖。

正如你所看到的,因為微控制器是可程式設計的,是以最終的系統可以被設計得盡可能簡單或複雜。

《PIC微控制器項目設計:C語言》一1.2 微控制器系統
《PIC微控制器項目設計:C語言》一1.2 微控制器系統
《PIC微控制器項目設計:C語言》一1.2 微控制器系統

基于微控制器系統的另一個例子是直流(DC)電動機的速度控制。圖1.5顯示了一個這種系統的框圖。此處,速度傳感器裝置讀取電機的目前速度,這個速度與期望速度(假定其為模拟量)進行比較。期望速度和實際速度之間的誤差信号被轉換成數字信号,送給微控制器。在微控制器上運作的控制算法生成控制信号,并轉換成模拟形式提供給功率放大器,功率放大器的輸出驅動電動機以達到期望的速度。

《PIC微控制器項目設計:C語言》一1.2 微控制器系統

根據信号的性質,圖1.5中給出的框圖可以采用不同的形式進行描述。例如,如果速度傳感器的輸出是數字的(如光學編碼器),設定速度也是數字的,那麼在微控制器的輸入端就沒有必要使用A/D轉換器。此外,如果功率放大器可以通過數字信号來驅動,那麼D/A轉換也可以删除掉。

微控制器是一個非常強大的工具,可以讓設計人員利用程式控制建立複雜的I/O資料處理。微控制器根據處理的數字位數進行分類。8位的微控制器是最流行的,目前在大多數低成本低速度的基于微控制器的應用中使用。16位和32位的微控制器功能更強大,但通常比較昂貴,在許多小到中型通用的應用中它們可能會被不合理使用。在本書中,我們将使用8位PIC18F系列單片機。

最簡單的微控制器架構是由微處理器、存儲器和I/O子產品構成的。微處理器包括一個中央處理單元(CPU)和控制單元(CU)。中央處理單元是微處理器的大腦,所有的算術和邏輯運算都在這裡執行。控制單元用于指令解碼,它控制微控制器的内部操作,并發出控制信号給微控制器的其他部分,以執行所需的操作。

存儲器是微控制器系統的一個重要組成部分。根據它們的用途,我們一般将存儲器分為兩類:程式存儲器和資料存儲器。程式存儲器存儲的是使用者程式,該存儲器通常是非易失性的,即資料是永久儲存的,切斷電源後也不會丢失。另一方面,資料存儲器存儲着程式中使用的臨時資料,該存儲器通常是易失性的,即在切斷電源後資料會丢失。

原文标題:PIC微控制器項目設計:C語言一1.2 微控制器系統

繼續閱讀