『壹』 什麼是單片機有什麼作用
單片機定義
單片機是指一個集成在一塊晶元上的完整計算機系統。盡管他的大部分功能集成在一塊小晶元上,但是它具有一個完整計算機所需要的大部分部件:CPU、內存、內部和外部匯流排系統,目前大部分還會具有外存。同時集成諸如通訊介面、定時器,實時時鍾等外圍設備。而現在最強大的單片機系統甚至可以將聲音、圖像、網路、復雜的輸入輸出系統集成在一塊晶元上。
單片機也被稱為微控制器(Microcontroler),是因為它最早被用在工業控制領域。單片機由晶元內僅有CPU的專用處理器發展而來。最早的設計理念是通過將大量外圍設備和CPU集成在一個晶元中,使計算機系統更小,更容易集成進復雜的而對提及要求嚴格的控制設備當中。INTEL的Z80是最早按照這種思想設計出的處理器,從此以後,單片機和專用處理器的發展便分道揚鑣。
早期的單片機都是8位或4位的。其中最成功的是INTEL的8031,因為簡單可靠而性能不錯獲得了很大的好評。此後在8031上發展出了MCS51系列單片機系統。基於這一系統的單片機系統直到現在還在廣泛使用。隨著工業控制領域要求的提高,開始出現了16位單片機,但因為性價比不理想並未得到很廣泛的應用。90年代後隨著消費電子產品大發展,單片機技術得到了巨大的提高。隨著INTEL i960系列特別是後來的ARM系列的廣泛應用,32位單片機迅速取代16位單片機的高端地位,並且進入主流市場。而傳統的8位單片機的性能也得到了飛速提高,處理能力比起80年代提高了數百倍。目前,高端的32位單片機主頻已經超過300MHz,性能直追90年代中期的專用處理器,而普通的型號出廠價格跌落至1美元,最高端的型號也只有10美元。當代單片機系統已經不再只在裸機環境下開發和使用,大量專用的嵌入式操作系統被廣泛應用在全系列的單片機上。而在作為掌上電腦和手機核心處理的高端單片機甚至可以直接使用專用的Windows和Linux操作系統。
單片機比專用處理器更適合應用於嵌入式系統,因此它得到了最多的應用。事實上單片機是世界上數量最多的計算機。現代人類生活中所用的幾乎每件電子和機械產品中都會集成有單片機。手機、電話、計算器、家用電器、電子玩具、掌上電腦以及滑鼠等電腦配件中都配有1-2部單片機。而個人電腦中也會有為數不少的單片機在工作。汽車上一般配備40多部單片機,復雜的工業控制系統上甚至可能有數百台單片機在同時工作!單片機的數量不僅遠超過PC機和其他計算的綜合,甚至比人類的數量還要多。
『貳』 單片機主要用途是什麼
單片機的應用
1、單片機在智能儀表中的應用單片機廣泛地用於各種儀器儀表,使儀器儀表智能化,並可以提高測量的自動化程度和精度,簡化儀器儀表的硬體結構,提高其性能價格比。
2、單片機在機電一體化中的應用機電一體化是械工業發展的方向。機電一體化產品是指集成機械技術、微電子技術、計算機技術於一體,具有智能化特徵的機電產品。
例如微機控制的車床、鑽床等。單片機作為產品中的控制器,能充分發揮它的體積小、可靠性高、功能強等優點,可大大提高機器的自動化、智能化程度。
3、單片機在實時控制中的應用單片機廣泛地用於各種實時控制系統中。例如,在工業測控、航空航天、尖端武器、機器人等各種實時控制系統中,都可以用單片機作為控制器。單片機的實時數據處理能力和控制功能,可使系統保持在最佳工作狀態,提高系統的工作效率和產品質量。
4、單片機在分布式多機系統中的應用在比較復雜的系統中,常採用分布式多機系統。多機系統一般由若乾颱功能各異的單片機組成,各自完成特定的任務,它們通過串列通信相互聯系、協調工作。
單片機在這種系統中往往作為一個終端機,安裝在系統的某些節點上,對現場信息進行實時的測量和控制。單片機的高可靠性和強抗干擾能力,使它可以置於惡劣環境的前端工作。
5、單片機在人類生活中的應用自從單片機誕生以後,它就步入了人類生活,如洗衣機、電冰箱、電子玩具、收錄機等家用電器配上單片機後,提高了智能化程度,增加了功能,倍受人們喜愛。單片機將使人類生活更加方便、舒適、豐富多彩。
綜合所述,單片機已成為計算機發展和應用的一個重要方面。另一方面,單片機應用的重要意義還在於,它從根本上改變了傳統的控制系統設計思想和設計方法。
從前必須由模擬電路或數字電路實現的大部分功能,現在已能用單片機通過軟體方法來實現了。這種軟體代替硬體的控制技術也稱為微控制技術,是傳統控制技術的一次革命。
(2)單片機與實時系統擴展閱讀
單片機的組成:
它通過內部匯流排把計算機的各主要部件接為一體,其內部匯流排包括地址匯流排、數據匯流排和控制匯流排。其中,地址匯流排的作用是在進行數據交換時提供地址,CPU通過它們將地址輸出到存儲器或I/O介面;數據匯流排的作用是在CPU與存儲器或I/O介面之間。
或存儲器與外設之間交換數據;控制匯流排包括CPU發出的控制信號線和外部送入CPU的應答信號線等。
單片機的特點由於單片機的這種結構形式及它所採取的半導體工藝,使其具有很多顯著的特點,因而在各個領域都得到了迅猛的發展。
『叄』 單片機是干什麼用的
單片機(Micro Control Unit),全稱微型控制單元,字面意思就是一個微型的計算機系統。
單片機其實就是一塊微處理器晶元,它有若干引腳,如電源引腳、時鍾引腳(也許有)、通信引腳、輸入輸出引腳等;單片機晶元內部集成了時鍾、存儲器、運算器、模數轉換器件(也許有)等部件。
單片機基本就是一個小的功能減少的計算機,能讀取在輸入引腳上的電信號和在引腳上輸出特定的電平信號,並通過往單片機裡面寫程序,配合外部介面,能實現定時、計數、數學運算、邏輯運算、順序動作、通信等功能。
單片機的用途
1、工業控制。可用於可靠性要求不高、成本控制和體積要求嚴格的工業環境,構建自動化控制系統,例如流水線計數和控制、參數檢測(如採集壓力、流量等參數)、自動化控制(如命令閥門動作、電機調速等)等;
2、小型設備、儀器等的處理器。生活和生產中有很多設備需要用到處理器,進行數據處理、分析計算、控制等,可以用單片機作為微處理器來開發這樣的設備,如用單片機為處理器來做一個小型儀器,做個報警器,等等都是可以的;
3、機電設備的控制器。不少的機電設備的控制器是基於單片機開發的,用於控制設備的運行與監視等,如全自動洗衣機的控制器,汽車的控制器,電梯的控制器等,都能經常看到單片機的身影;
4、其他。與電控相關的、需要自動化的裝置,單片機大多數時候也都可以勝任。
『肆』 stc系列單片機_μC/OS-Ⅱ在C8051F系列單片機上的移植及其應用系統開發
隨著微處理器技術的飛速發展和嵌入式系統實時性要求的不斷提高,應用實時多任務操作系統(RTOS)作為嵌入式設計的開發平台已逐步成為嵌入式應用設計的主流。本研究討論將μC/OS-Ⅱ移植到C8051F系列高性能8位單片機中,並以C8051F060為例闡述了其應用系統的開正基發過程。
一、μC/OS-Ⅱ的基本工作原理
1.任務管理
µC/OS-II中的任務可以是一個無限的循環,也可以在一次執行完畢後被「刪除」掉,即該任務可以認為CPU完全屬於該任務本身,實時應用程序的設計過程包括將問題分割為多個任務。µC/OS-II可以管理64個任務,每個任務有一定的優先順序,且優先順序不重復。
2.任務調度機制的實現
µC/OS-II是可剝奪型內核,優先順序高的任務一旦就緒就能剝奪優先順序較低任務的CPU使用權,這提高了系統的實時響應能力。在沒有中斷情況下,任務間的切換一般會調用OSSched()函數。µC/OS-II的中斷服務子程序和一般前/後台的操作有所不同。
3.任務之間的通信
在µC/OS-II中,可以通過信號量、消息郵箱和消息隊列等機制,實現數據共享和任務通信。消息郵箱用一個指針型變數,一個任務或一個中斷服務子程序通過內核服務,將一則消息放入郵箱,一個或多個任務通過內核服務接受這則消息。每個郵箱有相應的等待消息任務表,等待消息的任務在無消息時被置掛起態,並記入郵箱等待消息任務表中。消息放入郵箱,內核將運行等待消息任務表中優先順序最高的任務。
二、移植及應用
C8051F060系列單片機特別適舉數謹用於任務繁重的小型化測控系統。當晶元具有的功能被較多地使用時,系統要處理的任務就較多,編程頭緒也多。為了簡化應用程序實現程序模塊化,提高應用程序的實時性和可靠畢納性,將μCOS2Ⅱ移植到C8051F060中就成為一件很有意義的事。
1.µC/OS-II的移植
(1)修改INCLUDES.H文件:增加的頭文件放在頭文件列表的最後。
#include "os_cpu.h"
#include "os_cfg.h"
#include "ucos_ii.h"
(2)修改OS CPU.H文件:為確保系統在KEIL環境下正常運行,重新定義了一系列與C8051F060和KEIL編譯器相關的數據結構、宏和常數。
typedef unsigned char OS_STK;/*定義堆棧寬度為8位*/
typedef unsigned char OS_CPU_SR;
#define OS_ENTER_CRITICAL() EA="0"
#define OS_EXIT CRITICAL()EA="1"
(3)修改OS_CPU_A.ASM文件
①編寫OSSTartHihgRdy()函數:獲得將要恢復運行的就緒任務的堆棧映像的最低地址,並計算出堆棧長度,然後向系統堆棧復制數據、堆棧指針SP和堆棧映像指針?C_XBP,最後利用中斷返回。
②編寫OSCtxSw()函數:先從當前任務的TCB控制塊中獲得當前任務堆棧長度和堆棧映像指針,然後將系統堆棧的內容復制到任務堆棧映像,最後獲得將要恢復運行的就緒任務的TCB,程序跳至OSSTartHihgRdy()函數的入口,實現任務的切換。
③編寫OSIntCtxSw()函數:代碼大部分與OSCtxSw()相同,不同之處在於此處不需要再保存寄存器;需要調整堆棧指針(SP=SP-4),去掉在調用OSIntExit(),OSIntCtxSw()中壓入堆棧中的多餘的內容,以使堆棧中只包含任務的運行環境。
④編寫OSTickISR()函數:用定時器0作中斷源,初始化定時器0使系統每秒中斷100次,節拍率Tick=100次/秒。
(4)修改OS_CPU_C.C文件:編寫OSTaskStkInit()函數用來初始化堆棧。
2. 基於µC/OS-II的C8051F060應用系統開發
移植了µC/OS-II的C8051F060的每個功能都可以作為一個獨立的任務,每個任務都有自己的堆棧空間,可以被其他任務和中斷服務程序掛起。在設計中,主函數均以OSInit()開始,以OSStart()結束,中間部分為與硬體相關的系統初始化函數。對於任務的建立,必須依照µC/OS-II系統中建立任務的格式,根據自己的需求來確定任務的個數,並且根據任務的重要程度和被調用的頻率來設置好優先順序。創建好任務後,在主函數外面分別列出各個任務函數,每個任務函數都是一個無限循環程序,調用實現某些功能的應用程序函數,然後按設計的需求設置掛起方式和掛起時間。
應用系統測試程序實現了6個任務:Task1是每1s發送CAN數據包,Task2是處理CAN接收到的數據,Task3是每3s發送串口數據,Task4是處理串口接收到的數據,Task5是處理按鍵信息,Task6是顯示數據。CAN匯流排接收採用中斷方式,其優先順序高於其他任務,為了保證系統的實時性,在中斷程序中不處理數據,只是發送一個信號量,在Task2中處理CAN數據。串口數據接收亦採用中斷方式,其優先順序低於CAN高於其他任務。串口數據發送採用的是查詢方式,按位元組發送。程序中設置6個任務的優先順序依次為13,11,14,12,15,16。
在主程序中,首先初始化C8051F060和CAN,調用OsInit();然後調用API函數,創建6個任務(不包括空閑任務);再創建一個信號量CAN_EVENT,為中斷與Task2通信所用;最後調用OSStart(),OS系統開始運行優先順序最高的任務。Task2的優先順序最高,但是在沒收到CAN_EVENT之前,任務一直處於休眠狀態,當CAN接收器收到數據包後,Task2進入就緒態,在中斷返回時,進行任務切換,執行優先順序最高Task2。在Task2還未收到信號量之前,Task1、Task3、Task4、Task5和Task6根據時間延時和優先順序的不同各自獨立運行。
三、結束語
將編寫的測試程序下載到C8051F060應用系統中進行了實際的運行測試,測試表明,基於µC/OS-II的C8051F060應用系統中的各任務工作穩定可靠,取得了滿意的效果,為進行嵌入式應用系統的進一步設計奠定了基礎。
(作者單位:黑龍江省大慶職業學院)
註:本文中所涉及到的圖表、註解、公式等內容請以PDF格式閱讀原文
本文為全文原貌 未安裝PDF瀏覽器用戶請先下載安裝 原版全文