❶ 單片機發展歷史-單片機知識
單片機發展歷史-單片機知識
單片機(Microcontrollers)誕生於1971年,經歷了SCM、MCU、SoC三大階段,早期的SCM單片機都是8位或4位的。下面,我為大家分享單片機發展歷史,希望對大家有所幫助!
單片機最成功的是INTEL的8051,此後在8051上發展出了MCS51系列MCU系統。基於這一系統的單片機系統直到現在還在廣泛使用。隨著工業控制領域要求的提高,開始出現了16位單片機,但因為性價比不理想並未得到很廣泛的應用。
90年代後隨著消費電子產品大發展,單片機技術得到了巨大提高。隨著INTEL i960系列特別是後來的ARM系列的廣泛應用,32位單片機迅速取代16位單片機的高端地位,並且進入主流市場。
而傳統的8位單片機的性能也得到了飛速提高,處理能力比起80年代提高了數百倍。高端的32位Soc單片機主頻已經超過300MHz,性能直追90年代中期的專用處理器,而普通的型號出廠價格跌落至1美元,最高端的型號也只有10美元。
當代單片機系統已經不再只在裸機環境下開發和使用,大量專用的嵌入式操作系統被廣泛應用在全系列的單片機上。而在作為掌上電腦和手機核心處理的高端單片機甚至可以直接使用專用的.Windows和Linux操作系統。
主要階段
早期階段
SCM即單片微型計算機(Microcontrollers)階段,主要是尋求最佳的單片形態嵌入式系統的最佳體系結構。“創新模式”獲得成功,奠定了SCM與通用計算機完全不同的發展道路。在開創嵌入式系統獨立發展道路上,Intel公司功不可沒。
中期發展
MCU即微控制器(Micro Controller Unit)階段,主要的技術發展方向是:不斷擴展滿足嵌入式應用時,對象系統要求的各種外圍電路與介面電路,突顯其對象的智能化控制能力。它所涉及的領域都與對象系統相關,因此,發展MCU的重任不可避免地落在電氣、電子技術廠家。
從這一角度來看,Intel逐漸淡出MCU的發展也有其客觀因素。在發展MCU方面,最著名的廠家當數Philips公司。
Philips公司以其在嵌入式應用方面的巨大優勢,將MCS-51從單片微型計算機迅速發展到微控制器。因此,當我們回顧嵌入式系統發展道路時,不要忘記Intel和Philips的歷史功績。
當前趨勢
SoC嵌入式系統(System on Chip)式的獨立發展之路,向MCU階段發展的重要因素,就是尋求應用系統在晶元上的最大化解決,因此,專用單片機的發展自然形成了SoC化趨勢。隨著微電子技術、IC設計、EDA工具的發展,基於SoC的單片機應用系統設計會有較大的發展。
因此,對單片機的理解可以從單片微型計算機、單片微控制器延伸到單片應用系統。
早期發展
1971年intel公司研製出世界上第一個4位的微處理器;Intel公司的霍夫研製成功世界上第一塊4位微處理器晶元Intel 4004,標志著第一代微處理器問世,微處理器和微機時代從此開始。因發明微處理器,霍夫被英國《經濟學家》雜志列為“二戰以來最有影響力的7位科學家”之一。
1971年11月,Intel推出MCS-4微型計算機系統(包括4001 ROM晶元、4002 RAM晶元、4003移位寄存器晶元和4004微處理器)其中4004(下圖)包含2300個晶體管,尺寸規格為3mm×4mm,計算性能遠遠超過當年的ENIAC,最初售價為200美元。
1972年4月,霍夫等人開發出第一個8位微處理器Intel 8008。由於8008採用的是P溝道MOS微處理器,因此仍屬第一代微處理器。
1973年intel公司研製出8位的微處理器8080;1973年8月,霍夫等人研製出8位微處理器Intel 8080,以N溝道MOS電路取代了P溝道,第二代微處理器就此誕生。
主頻2MHz的8080晶元運算速度比8008快10倍,可存取64KB存儲器,使用了基於6微米技術的6000個晶體管,處理速度為0.64MIPS(Million Instructions Per Second )。
1975年4月,MITS發布第一個通用型Altair 8800,售價375美元,帶有1KB存儲器。這是世界上第一台微型計算機。
1976年intel公司研製出MCS-48系列8位的單片機,這也是單片機的問世。
Zilog公司於1976年開發的Z80微處理器,廣泛用於微型計算機和工業自動控制設備。當時,Zilog、Motorola和Intel在微處理器領域三足鼎立。
20世紀80年代初,Intel公司在MCS-48系列單片機的基礎上,推出了MCS-51系列8位高檔單片機。MCS-51系列單片機無論是片內RAM容量,I/O口功能,系統擴展方面都有了很大的提高。
;❷ 單片機與soc有什麼區別
soc是單片機發展的第三個階段 也是目前的發展階段 稱之為片上系統(System on Chip)
以前還有兩個發展階段 SCM即單片微型計算機(Single Chip Microcomputer)階段
和 MCU即微控制器(Micro Controller Unit)階段
MCU目前還是廣泛運用的
單片機和soc 沒有可比性 soc 只是單片機的一發展階段
❸ 單片機與soc有什麼區別
SoC即:System On Chip,稱為系統級晶元,也有稱片上系統,意指它是一個產品,是一個有專用目標的集成電路,其中包含完整系統並有嵌入軟體的全部內容。同時它又是一種技術,用以實現從確定系統功能開始,到軟/硬體劃分,並完成設計的整個過程。
單片機(Microcontrollers)是一種集成電路晶元,是採用超大規模集成電路技術把具有數據處理能力的中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統、定時器/計數器等功能。
可見兩者是完全不同的。單片機是沒有系統的,要使用單片機,必須要專門設計必要的電路,編制相應的程序。
❹ 什麼是MCU,SCM,DSP,SOC
狹義上指的單片機一般是說的MCU(微型控制器單元),
DSP是數字信號處理器。相比其它晶元強化了數字信號處理能力。
SOC是特定的專用晶元。不可編程(程序是固定的)。
以上都屬於廣義上指的單片機(SCM)。
❺ CC25xx系列soc單片機有哪些
單片機有KS51和KS57系列4位單片機
SoC的定義多種多樣,由於其內涵豐富、應用范圍廣,很難給出准確定義。一般說來,SoC稱為系統級晶元,也有稱片上系統,意指它是一個產品,是一個有專用目標的集成電路,其中包含完整系統並有嵌入軟體的全部內容。
❻ 單片機解釋
單片機自動完成賦予它的任務的過程,也就是單片機執行程序的過程,即一條條執行的指令的過程,所謂指令就是把要求單片機執行的各種操作用的命令的形式寫下來,這是在設計人員賦予它的指令系統所決定的,一條指令對應著一種基本操作;單片機所能執行的全部指令,就是該單片機的指令系統,不同種類的單片機,其指令系統亦不同。為使單片機能自動完成某一特定任務,必須把要解決的問題編成一系列指令(這些指令必須是選定單片機能識別和執行的指令),這一系列指令的集合就成為程序,程序需要預先存放在具有存儲功能的部件——存儲器中。存儲器由許多存儲單元(最小的存儲單位)組成,就像大樓房有許多房間組成一樣,指令就存放在這些單元里,單元里的指令取出並執行就像大樓房的每個房間的被分配到了唯一一個房間號一樣,每一個存儲單元也必須被分配到唯一的地址號,該地址號稱為存儲單元的地址,這樣只要知道了存儲單元的地址,就可以找到這個存儲單元,其中存儲的指令就可以被取出,然後再被執行。 程序通常是順序執行的,所以程序中的指令也是一條條順序存放的,單片機在執行程序時要能把這些指令一條條取出並加以執行,必須有一個部件能追蹤指令所在的地址,這一部件就是程序計數器PC(包含在CPU中),在開始執行程序時,給PC賦以程序中第一條指令所在的地址,然後取得每一條要執行的命令,PC在中的內容就會自動增加,增加量由本條指令長度決定,可能是1、2或3,以指向下一條指令的起始地址,保證指令順序執行。 單片機介紹 單片微型計算機簡稱單片機,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的縮寫MCU表示單片機,它最早是被用在工業控制領域。單片機由晶元內僅有CPU的專用處理器發展而來。最早的設計理念是通過將大量外圍設備和CPU集成在一個晶元中,使計算機系統更小,更容易集成進復雜的而對體積要求嚴格的控制設備當中。INTEL的Z80是最早按照這種思想設計出的處理器,從此以後,單片機和專用處理器的發展便分道揚鑣。 早期的單片機都是8位或4位的。其中最成功的是INTEL的8031,因為簡單可靠而性能不錯獲得了很大的好評。此後在8031上發展出了MCS51系列單片機系統。基於這一系統的單片機系統直到現在還在廣泛使用。隨著工業控制領域要求的提高,開始出現了16位單片機,但因為性價比不理想並未得到很廣泛的應用。90年代後隨著消費電子產品大發展,單片機技術得到了巨大提高。隨著INTEL i960系列特別是後來的ARM系列的廣泛應用,32位單片機迅速取代16位單片機的高端地位,並且進入主流市場。而傳統的8位單片機的性能也得到了飛速提高,處理能力比起80年代提高了數百倍。目前,高端的32位單片機主頻已經超過300MHz,性能直追90年代中期的專用處理器,而普通的型號出廠價格跌落至1美元,最高端[1]的型號也只有10美元。當代單片機系統已經不再只在裸機環境下開發和使用,大量專用的嵌入式操作系統被廣泛應用在全系列的單片機上。而在作為掌上電腦和手機核心處理的高端單片機甚至可以直接使用專用的Windows和Linux操作系統。 單片機比專用處理器更適合應用於嵌入式系統,因此它得到了最多的應用。事實上單片機是世界上數量最多的計算機。現代人類生活中所用的幾乎每件電子和機械產品中都會集成有單片機。手機、電話、計算器、家用電器、電子玩具、掌上電腦以及滑鼠等電腦配件中都配有1-2部單片機。而個人電腦中也會有為數不少的單片機在工作。汽車上一般配備40多部單片機,復雜的工業控制系統上甚至可能有數百台單片機在同時工作!單片機的數量不僅遠超過PC機和其他計算的總和,甚至比人類的數量還要多。 單片機又稱單片微控制器,它不是完成某一個邏輯功能的晶元,而是把一個計算機系統集成到一個晶元上。相當於一個微型的計算機,和計算機相比,單片機只缺少了I/O設備。概括的講:一塊晶元就成了一台計算機。它的體積小、質量輕、價格便宜、為學習、應用和開發提供了便利條件。同時,學習使用單片機是了解計算機原理與結構的最佳選擇。 單片機內部也用和電腦功能類似的模塊,比如CPU,內存,並行匯流排,還有和硬碟作用相同的存儲器件,不同的是它的這些部件性能都相對我們的家用電腦弱很多,不過價錢也是低的,一般不超過10元即可......用它來做一些控制電器一類不是很復雜的工作足矣了。我們現在用的全自動滾筒洗衣機、排煙罩、VCD等等的家電裡面都可以看到它的身影!......它主要是作為控制部分的核心部件。 它是一種在線式實時控制計算機,在線式就是現場控制,需要的是有較強的抗干擾能力,較低的成本,這也是和離線式計算機的(比如家用PC)的主要區別。 單片機晶元
單片機是靠程序運行的,並且可以修改。通過不同的程序實現不同的功能,尤其是特殊的獨特的一些功能,這是別的器件需要費很大力氣才能做到的,有些則是花大力氣也很難做到的。一個不是很復雜的功能要是用美國50年代開發的74系列,或者60年代的CD4000系列這些純硬體來搞定的話,電路一定是一塊大PCB板!但是如果要是用美國70年代成功投放市場的系列單片機,結果就會有天壤之別!只因為單片機的通過你編寫的程序可以實現高智能,高效率,以及高可靠性! 由於單片機對成本是敏感的,所以目前占統治地位的軟體還是最低級匯編語言,它是除了二進制機器碼以上最低級的語言了,既然這么低級為什麼還要用呢?很多高級的語言已經達到了可視化編程的水平為什麼不用呢?原因很簡單,就是單片機沒有家用計算機那樣的CPU,也沒有像硬碟那樣的海量存儲設備。一個可視化高級語言編寫的小程序裡面即使只有一個按鈕,也會達到幾十K的尺寸!對於家用PC的硬碟來講沒什麼,可是對於單片機來講是不能接受的。 單片機在硬體資源方面的利用率必須很高才行,所以匯編雖然原始卻還是在大量使用。一樣的道理,如果把巨型計算機上的操作系統和應用軟體拿到家用PC上來運行,家用PC的也是承受不了的。 可以說,二十世紀跨越了三個「電」的時代,即電氣時代、電子時代和現已進入的電腦時代。不過,這種電腦,通常是指個人計算機,簡稱PC機。它由主機、鍵盤、顯示器等組成。還有一類計算機,大多數人卻不怎麼熟悉。這種計算機就是把智能賦予各種機械的單片機(亦稱微控制器)。顧名思義,這種計算機的最小系統只用了一片集成電路,即可進行簡單運算和控制。因為它體積小,通常都藏在被控機械的「肚子」里。它在整個裝置中,起著有如人類頭腦的作用,它出了毛病,整個裝置就癱瘓了。現在,這種單片機的使用領域已十分廣泛,如智能儀表、實時工控、通訊設備、導航系統、家用電器等。各種產品一旦用上了單片機,就能起到使產品升級換代的功效,常在產品名稱前冠以形容詞——「智能型」,如智能型洗衣機等。現在有些工廠的技術人員或其它業余電子開發者搞出來的某些產品,不是電路太復雜,就是功能太簡單且極易被仿製。究其原因,可能就卡在產品未使用單片機或其它可編程邏輯器件上。
編輯本段單片機歷史
單片機誕生於20世紀70年代末,經歷了SCM、MCU、SoC三大階段。
單片機的基本結構
單片機由運算器、控制器、存儲器、輸入輸出設備構成
起初模型
1.SCM即單片微型計算機(Single Chip Microcomputer)階段,主要是尋求最佳的單片形態嵌入式系統的最佳體系結構。「創新模式」獲得成功,奠定了SCM與通用計算機完全不同的發展道路。在開創嵌入式系統獨立發展道路上,Intel公司功不可沒。 Micro Controller Unit
2.MCU即微控制器(Micro Controller Unit)階段,主要的技術發展方向是:不斷擴展滿足嵌入式應用時,對象系統要求的各種外圍電路與介面電路,突顯其對象的智能化控制能力。它所涉及的領域都與對象系統相關,因此,發展MCU的重任不可避免地落在電氣、電子技術廠家。從這一角度來看,Intel逐漸淡出MCU的發展也有其客觀因素。在發展MCU方面,最著名的廠家當數Philips公司。 Philips公司以其在嵌入式應用方面的巨大優勢,將MCS-51從單片微型計算機迅速發展到微控制器。因此,當我們回顧嵌入式系統發展道路時,不要忘記Intel和Philips的歷史功績。
嵌入式系統
單片機是嵌入式系統的獨立發展之路,向MCU階段發展的重要因素,就是尋求應用系統在晶元上的最大化解決;因此,專用單片機的發展自然形成了SoC化趨勢。隨著微電子技術、IC設計、EDA工具的發展,基於SoC的單片機應用系統設計會有較大的發展。因此,對單片機的理解可以從單片微型計算機、單片微控制器延伸到單片應用系統。
單片機發展史
[2] 1971年intel公司研製出世界上第一個4位的微處理器;Intel公司的霍夫研製成功世界上第一塊4位微處理器晶元Intel 4004,標志著第一代微處理器問世,微處理器和微機時代從此開始。因發明微處理器,霍夫被英國《經濟學家》雜志列為「二戰以來最有影響力的7位科學家」之一 。 1971年11月,Intel推出MCS-4微型計算機系統(包括4001 ROM晶元、4002 RAM晶元、4003移位寄存器晶元和4004微處理器 )其中4004(下圖)包含2300個晶體管,尺寸規格為3mm×4mm,計算性能遠遠超過當年的ENIAC,最初售價為200美元。 1972年4月,霍夫等人開發出第一個8位微處理器Intel 8008。由於8008採用的是P溝道MOS微處理器,因此仍屬第一代微處理器。 1973年intel公司研製出8位的微處理器8080;1973年8月,霍夫等人研製出8位微處理器Intel 8080,以N溝道MOS電路取代了P溝道,第二代微處理器就此誕生。 主頻2MHz的8080晶元運算速度比8008快10倍,可存取64KB存儲器,使用了基於6微米技術的6000個晶體管,處理速度為0.64MIPS(Million Instructions Per Second )。 1975年4月,MITS發布第一個通用型Altair 8800,售價375美元,帶有1KB存儲器。這是世界上第一台微型計算機。 1976年intel公司研製出MCS-48系列8位的單片機,這也是單片機的問世。 Zilog公司於1976年開發的Z80微處理器,廣泛用於微型計算機和工業自動控制設備。當時,Zilog、Motorola和Intel在微處理器領域三足鼎立。 20世紀80年代初,Intel公司在MCS-48系列單片機的基礎上,推出了MCS-51系列8位高檔單片機。MCS-51系列單片機無論是片內RAM容量,I/O口功能,系統擴展方面都有了很大的提高。
編輯本段單片機的硬體特性
1、單片機集成度高。單片機包括CPU、4KB容量的ROM(8031 無)、128 B容量的RAM、 2個16位定時/計數器、4個8位並行口、全雙工串口行口。 2、系統結構簡單,使用方便,實現模塊化; 3、單片機可靠性高,可工作到10^6 ~10^7小時無故障; 4、處理功能強,速度快。
編輯本段單片機的應用
單片機的應用 目前單片機滲透到我們生活的各個領域,幾乎很難找到哪個領域沒有單片機的蹤跡。導彈的導航裝置,飛機上各種儀表的控制,計算機的網路通訊與數據傳輸,工業自動化過程的實時控制和數據處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統,錄像機、攝像機、全自動洗衣機的控制,以及程式控制玩具、電子寵物等等,這些都離不開單片機。更不用說自動控制領域的機器人、智能儀表、醫療器械以及各種智能機械了。因此,單片機的學習、開發與應用將造就一批計算機應用與智能化控制的科學家、工程師。 單片機廣泛應用於儀器儀表、家用電器、醫用設備、航空航天、專用設備的智能化管理及過程式控制制等領域,大致可分如下幾個范疇: 1.在智能儀器儀表上的應用 單片機具有體積小、功耗低、控制功能強、擴展靈活、微型化和使用方便等優點,廣泛應用於儀器儀表中,結合不同類型的感測器,可實現諸如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長度、硬度、元素、壓力等物理量的測量。採用單片機控制使得儀器儀表數字化、智能化、微型化,且功能比起採用電子或數字電路更加強大。例如精密的測量設備(功率計,示波器,各種分析儀)。 2.在工業控制中的應用 用單片機可以構成形式多樣的控制系統、數據採集系統。例如工廠流水線的智能化管 晶元
理,電梯智能化控制、各種報警系統,與計算機聯網構成二級控制系統等。 3.在家用電器中的應用 可以這樣說,現在的家用電器基本上都採用了單片機控制,從電飯煲、洗衣機、電冰箱、空調機、彩電、其他音響視頻器材、再到電子秤量設備,五花八門,無所不在。 4.在計算機網路和通信領域中的應用 現代的單片機普遍具備通信介面,可以很方便地與計算機進行數據通信,為在計算機網路和通信設備間的應用提供了極好的物質條件,現在的通信設備基本上都實現了單片機智能控制,從手機,電話機、小型程式控制交換機、樓宇自動通信呼叫系統、列車無線通信、再到日常工作中隨處可見的行動電話,集群移動通信,無線電對講機等。 5.單片機在醫用設備領域中的應用 單片機在醫用設備中的用途亦相當廣泛,例如醫用呼吸機,各種分析儀,監護儀,超聲診斷設備及病床呼叫系統等等。 6.在各種大型電器中的模塊化應用 某些專用單片機設計用於實現特定功能,從而在各種電路中進行模塊化應用,而不要求使用人員了解其內部結構。如音樂集成單片機,看似簡單的功能,微縮在純電子晶元中(有別於磁帶機的原理),就需要復雜的類似於計算機的原理。如:音樂信號以數字的形式存於存儲器中(類似於ROM),由微控制器讀出,轉化為模擬音樂電信號(類似於音效卡)。 在大型電路中,這種模塊化應用極大地縮小了體積,簡化了電路,降低了損壞、錯誤率,也方便於更換。 7.單片機在汽車設備領域中的應用 單片機在汽車電子中的應用非常廣泛,例如汽車中的發動機控制器,基於CAN匯流排的汽車發動機智能電子控制器,GPS導航系統,abs防抱死系統,制動系統等等。 此外,單片機在工商,金融,科研、教育,國防航空航天等領域都有著十分廣泛的用途。
編輯本段學習應用六大重要部分
單片機學習應用的六大重要部分
一、匯流排:
我們知道,一個電路總是由元器件通過電線連接而成的,在模擬電路中,連線並不成為一個問題,因為各器件間一般是串列關系,各器件之間的連線並不很多,但計算機電路卻不一樣,它是以微處理器為核心,各器件都要與微處理器相連,各器件之間的工作必須相互協調,所以需要的連線就很多了,如果仍如同模擬電路一樣,在各微處理器和各器件間單獨連線,則線的數量將多得驚人,所以在微處理機中引入了匯流排的概念,各個器件共同享用連線,所有器件的8根數據線全部接到8根公用的線上,即相當於各個器件並聯起來,但僅這樣還不行,如果有兩個器件同時送出數據,一個為0,一個為1,那麼,接收方接收到的究竟是什麼呢?這種情況是不允許的,所以要通過控制線進行控制,使器件分時工作,任何時候只能有一個器件發送數據(可以有多個器件同時接收)。器件的數據線也就被稱為數據匯流排,器件所有的控制線被稱為控制匯流排。在單片機內部或者外部存儲器及其它器件中有存儲單元,這些存儲單元要被分配地址,才能使用,分配地址當然也是以電信號的形式給出的,由於存儲單元比較多,所以,用於地址分配的線也較多,這些線被稱為地址匯流排。
二、數據、地址、指令:
之所以將這三者放在一起,是因為這三者的本質都是一樣的——數字,或者說都是一串『0』和『1』組成的序列。換言之,地址、指令也都是數據。指令:由單片機晶元的設計者規定的一種數字,它與我們常用的指令助記符有著嚴格的一一對應關系,不可以由單片機的開發者更改。地址:是尋找單片機內部、外部的存儲單元、輸入輸出口的依據,內部單元的地址值已由晶元設計者規定好,不可更改,外部的單元可以由單片機開發者自行決定,但有一些地址單元是一定要有的(詳見程序的執行過程)。數據:這是由微處理機處理的對象,在各種不同的應用電路中各不相同,一般而言,被處理的數據可能有這么幾種情況: 1?地址(如MOV DPTR,1000H),即地址1000H送入DPTR。 2?方式字或控制字(如MOV TMOD,#3),3即是控制字。 3?常數(如MOV TH0,#10H)10H即定時常數。 4?實際輸出值(如P1口接彩燈,要燈全亮,則執行指令:MOV P1,#0FFH,要燈全暗,則執行指令:MOV P1,#00H)這里0FFH和00H都是實際輸出值。又如用於LED的字形碼,也是實際輸出的值。 理解了地址、指令的本質,就不難理解程序運行過程中為什麼會跑飛,會把數據當成指令來執行了。
三、P0口、P2口和P3的第二功能用法:
初學時往往對P0口、P2口和P3口的第二功能用法迷惑不解,認為第二功能和原功能之間要有一個切換的過程,或者說要有一條指令,事實上,各埠的第二功能完全是自動的,不需要用指令來轉換。如P3.6、P3.7分別是WR、RD信號,當微片理機外接RAM或有外部I/O口時,它們被用作第二功能,不能作為通用I/O口使用,只要一微處理機一執行到MOVX指令,就會有相應的信號從P3.6或P3.7送出,不需要事先用指令說明。事實上『不能作為通用I/O口使用』也並不是『不能』而是(使用者)『不會』將其作為通用I/O口使用。你完全可以在指令中按排一條SETB P3.7的指令,並且當單片機執行到這條指令時,也會使P3.7變為高電平,但使用者不會這么去做,因為這通常會導致系統的崩潰。
四、程序的執行過程:
單片機在通電復位後8051內的程序計數器(PC)中的值為『0000』,所以程序總是從『0000』單元開始執行,也就是說:在系統的ROM中一定要存在『0000』這個單元,並且在『0000』單元中存放的一定是一條指令。
五、堆棧:
堆棧是一個區域,是用來存放數據的,這個區域本身沒有任何特殊之處,就是內部RAM的一部份,特殊的是它存放和取用數據的方式,即所謂的『先進後出,後進先出』,並且堆棧有特殊的數據傳輸指令,即『PUSH』和『POP』,有一個特殊的專為其服務的單元,即堆棧指針SP,每當執一次PUSH指令時,SP就(在原來值的基礎上)自動加1,每當執行一次POP指令,SP就(在原來值的基礎上)自動減1。由於SP中的值可以用指令加以改變,所以只要在程序開始階段更改了SP的值,就可以把堆棧設置在規定的內存單元中,如在程序開始時,用一條MOV SP,#5FH指令,就是把堆棧設置在從內存單元60H開始的單元中。一般程序的開頭總有這么一條設置堆棧指針的指令,因為開機時,SP的初始值為07H,這樣就使堆棧從08H單元開始往後,而08H到1FH這個區域正是8031的第二、三、四工作寄存器區,經常要被使用,這會造成數據的混亂。不同作者編寫程序時,初始化堆棧指令也不完全相同,這是作者的習慣問題。當設置好堆棧區後,並不意味著該區域成為一種專用內存,它還是可以象普通內存區域一樣使用,只是一般情況下編程者不會把它當成普通內存用了。
六、單片機的開發過程:
這里所說的開發過程並不是一般書中所說的從任務分析開始,我們假設已設計並製作好硬體,下面就是編寫軟體的工作。在編寫軟體之前,首先要確定一些常數、地址,事實上這些常數、地址在設計階段已被直接或間接地確定下來了。如當某器件的連線設計好後,其地址也就被確定了,當器件的功能被確定下來後,其控制字也就被確定了。然後用文本編輯器(如EDIT、CCED等)編寫軟體,編寫好後,用編譯器對源程序文件編譯,查錯,直到沒有語法錯誤,除了極簡單的程序外,一般應用模擬機對軟體進行調試,直到程序運行正確為止。運行正確後,就可以寫片(將程序固化在EPROM中)。在源程序被編譯後,生成了擴展名為HEX的目標文件,一般編程器能夠識別這種格式的文件,只要將此文件調入即可寫片。在此,為使大家對整個過程有個認識,舉一例說明: 單片機試驗板
ORG 0000H LJMP START ORG 040H START: MOV SP,#5FH ;設堆棧 LOOP: NOP LJMP LOOP ;循環 END ;結束
編輯本段單片機學習
目前,很多人對匯編語言並不認可。可以說,掌握用C語言單片機編程很重要,可以大大提高開發的效率。不過初學者可以不了解單片機的匯編語言,但一定要了解單片機具體性能和特點,不然在單片機領域是比較致命的。如果不考慮單片機硬體資源,在KEIL中用C胡亂編程,結果只能是出了問題無法解決!可以肯定的說,最好的C語言單片機工程師都是從匯編走出來的編程者,因為單片機的C語言雖然是高級語言,但是它不同於台式機個人電腦上的VC++什麼的。單片機的硬體資源不是非常強大,不同於我們用VC、VB等高級語言在台式PC上寫程序,畢竟台式電腦的硬體非常強大,所以才可以不考慮硬體資源的問題。還有就是在單片機編程中C語言雖然編程方便,便於人們閱讀,但是在執行效率上是要比匯編語言低10%到20%,所以用什麼語言編寫程序是要看具體用在什麼場合下。總的來說做單片機編程要靈活使用匯編語言與C語言,讓單片機的強大功能以最高是效率展示給用戶。 以8051單片機為例講解單片機的引腳及相關功能; 《單片機引腳圖》 40個引腳按引腳功能大致可分為4個種類:電源、時鍾、控制和I/O引腳。 ⒈ 電源: ⑴ VCC - 晶元電源,接+5V; ⑵ VSS - 接地端; 註:用萬用表測試單片機引腳電壓一般為0v或者5v,這是標準的TTL電平。但有時候在單片機程序正在工作時候測試結果並不是這個值而是介於0v-5v之間,其實這是萬用表的響應速度沒這么快而已,在某一個瞬間單片機引腳電壓仍保持在0v或者5v。 ⒉ 時鍾:XTAL1、XTAL2 - 晶體振盪電路反相輸入端和輸出端。 ⒊ 控制線:控制線共有4根, ⑴ ALE/PROG:地址鎖存允許/片內EPROM編程脈沖 ① ALE功能:用來鎖存P0口送出的低8位地址 ② PROG功能:片內有EPROM的晶元,在EPROM編程期間,此引腳輸入編程脈沖。 ⑵ PSEN:外ROM讀選通信號。 ⑶ RST/VPD:復位/備用電源。 ① RST(Reset)功能:復位信號輸入端。 ② VPD功能:在Vcc掉電情況下,接備用電源。 ⑷ EA/Vpp:內外ROM選擇/片內EPROM編程電源。 ① EA功能:內外ROM選擇端。 ② Vpp功能:片內有EPROM的晶元,在EPROM編程期間,施加編程電源Vpp。 ⒋ I/O線 80C51共有4個8位並行I/O埠:P0、P1、P2、P3口,共32個引腳。 P3口還具有第二功能,用於特殊信號輸入輸出和控制信號(屬控制匯流排) 5. P3口第二功能 P30 RXD 串列輸入口 P31 TXD 串列輸出口 P32 INT0 外部中斷0(低電平有效) P33 INT1 外部中斷1(低電平有效) P34 T0 定時計數器0 P35 T1 定時計數器1 P36 WR 外部數據存儲器寫選通(低電平有效) P37 RD 外部數據存儲器讀選通(低電平有效)
❼ 單片機和soc有什麼區別
籠統的說的話,單片機就是SOC。為什麼呢?因為所謂的SOC,是指集成了很多外圍設備(這些設備也稱為獨立的系統)的晶元。而現在幾乎所有市面上面在賣的單片機都集成了很多系統,比如計數器,中斷控制器,USART串口,SPI,I2C匯流排等等,所以現在的單片機又可以認為是SOC。
❽ SOC一定是屬於單片機,但是單片機一定就是SOC嗎什麼樣的就可以算是單片機
SOC不一定是屬於單片機,單片機也不一定就是SOC。
單片機是一類統稱,你既然看過網路上的,就應該知道它所具有的特點了,你說不要復制網路的,那你再回去看看單片機有什麼特點。了解了它有什麼特點,你就可以區分什麼晶元是不是單片機了。
❾ 單片機和soc有什麼區別
單片機和soc的區別::
MCU,即微控制器,是以前的一種做法,類似於單片機,只是集成了一些更多的功能模塊,
它本質上仍是一個完整的單片機,有處理器,有各種介面,所有的開發都是基於已經存在的系統架構,應用者要做的就是開發軟體程序和加外部設備。
SOC,是個整體的設計方法概念,它指的是一種晶元設計方法,集成了各種功能模塊,每一種功能都是由硬體描述語言設計程序,然後在SOC內由電路實現的;
每一個模塊不是一個已經設計成熟的ASIC「器件」,只是利用晶元的一部分資源去實現某種傳統的功能。這種功能是沒有限定的,可以是存儲器,當然也可以是處理器,如果這片SOC的系統目標就是處理器,那麼做成的SOC就是一個MCU;
如果要做的是一個完整的帶有處理器的系統,那麼MCU就是整個SOC中的一個模塊,一個IP。
SOC可以做成批量生產的通用器件,如MCU;也可以針對某一對象專門設計,可以集成任何功能,不像MCU那樣有自身架構的限定。
它的體積可以很少,特殊設計的晶元可以根據需要減少體積、降低功耗,在比較大的范圍內不受硬體架構的限制(當然,它也是會受晶元自身物理結構的限制,如晶圓類型、大小等)。
SOC的一大特點就是其在模擬時可以連同硬體環境一起模擬,模擬工具不只支持對軟體程序的編譯調試,同時也支持對硬體架構的編譯調試,如果不滿意硬體架構設計,想要加一個存儲器,或是減少一個介面都可以通過程序直接更改,這一點,MCU的設計方法是無法實現的,MCU的方法中,硬體架構是固定的,是不可更改的,多了只能浪費,少了也只能在軟體上想辦法或是再加,存儲空間不夠可以再加,如果是介面不夠則只能在軟體上想辦法復用。模擬之後可以通過將軟、硬體程序下載到FPGA上進行實際硬體調試,以便更真實地進行器件測試。
如果硬體調試成功後直接投片生產成「固定結構的晶元」,則其為普通的SOC;如果其硬體就是基於FPGA的,也就是說它是「用FPGA做為最終實現」的,它在以後也可以隨時進行硬體升級與
調試的,叫它為SOPC的設計方法,所以說SOPC是SOC的一種解決方案。
SOPC設計靈活、高效,且具有成品的硬體可重構特性(SOC在調試過程中也可硬體重構),的適用性可以很廣,針對不同的對象,它可以進行實時的結構調整,如減少程序存儲空間、增加介面數目等,這一附加價值是任何固定結構IC所無法具備的,但它的價格可能會比批量生產的固定結構IC要貴得多。
❿ STC ,SOC ,STM單片機有什麼區別
幾個詞混到一起去了……
STC是國產宏晶單片機,都是8位8051內核(老姚敢把擴展51內核吹成32位,我是真心服氣的,人不要臉天下無敵啊)。
SoC是System on Chip的縮寫,也就是片上完整系統。現代單片機都可以稱為SoC,用可編程邏輯器件跑自定義內核的除外。
STM是意法半導體的單片機,主要有8位ST自主內核以及32位Cortex-M內核。