單片機(jī),單片機(jī)是什么意思
1、什么是單片機(jī)
單片機(jī)是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的計(jì)算機(jī)系統(tǒng)。
一臺(tái)能夠工作的計(jì)算機(jī)要有這樣幾個(gè)部份構(gòu)成:CPU(進(jìn)行運(yùn)算、控制)、RAM(數(shù)據(jù)存儲(chǔ))、ROM(程序存儲(chǔ))、輸入/輸出設(shè)備(例如:串行口、并行輸出口等)。在個(gè)人計(jì)算機(jī)上這些部份被分成若干塊芯片,安裝一個(gè)稱之為主板的印刷線路板上。而在單片機(jī)中,這些部份,全部被做到一塊集成電路芯片中了,所以就稱為單片(單芯片)機(jī),而且有一些單片機(jī)中除了上述部份外,還集成了其它部份如A/D,D/A等。
?? 單片機(jī)是一種控制芯片,一個(gè)微型的計(jì)算機(jī),而加上晶振,存儲(chǔ)器,地址鎖存器,邏輯門,七段譯碼器(顯示器),按鈕(類似鍵盤),擴(kuò)展芯片,接口等那是單片機(jī)系統(tǒng)。
? 天!PC中的CPU一塊就要賣幾千塊錢,這么多東西做在一起,還不得買個(gè)天價(jià)!再說(shuō)這塊芯片也得非常大了。
? 不,價(jià)格并不高,從幾元人民幣到幾十元人民幣,體積也不大,一般用40腳封裝,當(dāng)然功能多一些單片機(jī)也有引腳比較多的,如68引腳,功能少的只有10多個(gè)或20多個(gè)引腳,有的甚至只8只引腳。
為什么會(huì)這樣呢?
? 功能有強(qiáng)弱,打個(gè)比方,市場(chǎng)上面有的組合音響一套才賣幾百塊錢,可是有的一臺(tái)功放機(jī)就要賣好幾千。另外這種芯片的生產(chǎn)量很大,技術(shù)也很成熟,51系列的單片機(jī)已經(jīng)做了十幾年,所以價(jià)格就低了。
既然如此,單片機(jī)的功能肯定不強(qiáng),干嗎要學(xué)它呢?
? 話不能這樣說(shuō),實(shí)際工作中并不是任何需要計(jì)算機(jī)的場(chǎng)合都要求計(jì)算機(jī)有很高的性能,一個(gè)控制電冰箱溫度的計(jì)算機(jī)難道要用PIII?應(yīng)用的關(guān)鍵是看是否夠用,是否有很好的性能價(jià)格比。所以8051出來(lái)十多年,依然沒有被淘汰,還在不斷的發(fā)展中。
2、MCS51單片機(jī)和8051、8031、89C51等的關(guān)系
我們平常老是講8051,又有什么8031,現(xiàn)在又有89C51,89s51它們之間究竟是什么關(guān)系?
?? MCS51是指由美國(guó)INTEL公司(對(duì)了,就是大名鼎鼎的INTEL)生產(chǎn)的一系列單片機(jī)的總稱,這一系列單片機(jī)包括了好些品種,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的產(chǎn)品,該系列其它單片機(jī)都是在8051的基礎(chǔ)上進(jìn)行功能的增、減、改變而來(lái)的,所以人們習(xí)慣于用8051來(lái)稱呼MCS51系列單片機(jī),而8031是前些年在我國(guó)最流行的單片機(jī),所以很多場(chǎng)合會(huì)看到8031的名稱。INTEL公司將MCS51的核心技術(shù)授權(quán)給了很多其它公司,所以有很多公司在做以8051為核心的單片機(jī),當(dāng)然,功能或多或少有些改變,以滿足不同的需求,其中89C51就是這幾年在我國(guó)非常流行的單片機(jī),它是由美國(guó)ATMEL公司開發(fā)生產(chǎn)的。以后我們將用89C51單片機(jī)來(lái)完成一系列的實(shí)驗(yàn)。
單片機(jī)也被稱為微控制器(Microcontroller),是因?yàn)樗钤绫挥迷?a target="_blank">工業(yè)控制領(lǐng)域。單片機(jī)由芯片內(nèi)僅有CPU的專用處理器發(fā)展而來(lái)。最早的設(shè)計(jì)理念是通過將大量外圍設(shè)備和CPU集成在一個(gè)芯片中,使計(jì)算機(jī)系統(tǒng)更小,更容易集成進(jìn)復(fù)雜的而對(duì)體積要求嚴(yán)格的控制設(shè)備當(dāng)中。INTEL的Z80是最早按照這種思想設(shè)計(jì)出的處理器,從此以后,單片機(jī)和專用處理器的發(fā)展便分道揚(yáng)鑣。
早期的單片機(jī)都是8位或4位的。其中最成功的是INTEL的8031,因?yàn)楹?jiǎn)單可靠而性能不錯(cuò)獲得了很大的好評(píng)。此后在8031上發(fā)展出了MCS51系列單片機(jī)系統(tǒng)?;谶@一系統(tǒng)的單片機(jī)系統(tǒng)直到現(xiàn)在還在廣泛使用。隨著工業(yè)控制領(lǐng)域要求的提高,開始出現(xiàn)了16位單片機(jī),但因?yàn)樾詢r(jià)比不理想并未得到很廣泛的應(yīng)用。90年代后隨著消費(fèi)電子產(chǎn)品大發(fā)展,單片機(jī)技術(shù)得到了巨大的提高。隨著INTEL i960系列特別是后來(lái)的ARM系列的廣泛應(yīng)用,32位單片機(jī)迅速取代16位單片機(jī)的高端地位,并且進(jìn)入主流市場(chǎng)。而傳統(tǒng)的8位單片機(jī)的性能也得到了飛速提高,處理能力比起80年代提高了數(shù)百倍。目前,高端的32位單片機(jī)主頻已經(jīng)超過300MHz,性能直追90年代中期的專用處理器,而普通的型號(hào)出廠價(jià)格跌落至1美元,最高端的型號(hào)也只有10美元。當(dāng)代單片機(jī)系統(tǒng)已經(jīng)不再只在裸機(jī)環(huán)境下開發(fā)和使用,大量專用的嵌入式操作系統(tǒng)被廣泛應(yīng)用在全系列的單片機(jī)上。而在作為掌上電腦和手機(jī)核心處理的高端單片機(jī)甚至可以直接使用專用的Windows和Linux操作系統(tǒng)。
單片機(jī)比專用處理器更適合應(yīng)用于嵌入式系統(tǒng),因此它得到了最多的應(yīng)用。事實(shí)上單片機(jī)是世界上數(shù)量最多的計(jì)算機(jī)?,F(xiàn)代人類生活中所用的幾乎每件電子和機(jī)械產(chǎn)品中都會(huì)集成有單片機(jī)。手機(jī)、電話、計(jì)算器、家用電器、電子玩具、掌上電腦以及鼠標(biāo)等電腦配件中都配有1-2部單片機(jī)。而個(gè)人電腦中也會(huì)有為數(shù)不少的單片機(jī)在工作。汽車上一般配備40多部單片機(jī),復(fù)雜的工業(yè)控制系統(tǒng)上甚至可能有數(shù)百臺(tái)單片機(jī)在同時(shí)工作!單片機(jī)的數(shù)量不僅遠(yuǎn)超過PC機(jī)和其他計(jì)算的綜合,甚至比人類的數(shù)量還要多。
單片機(jī)介紹
單片機(jī)又稱單片微控制器,它不是完成某一個(gè)邏輯功能的芯片,而是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。相當(dāng)于一個(gè)微型的計(jì)算機(jī),和計(jì)算機(jī)相比,單片機(jī)只缺少了I/O設(shè)備。概括的講:一塊芯片就成了一臺(tái)計(jì)算機(jī)。它的體積小、質(zhì)量輕、價(jià)格便宜、為學(xué)習(xí)、應(yīng)用和開發(fā)提供了便利條件。同時(shí),學(xué)習(xí)使用單片機(jī)是了解計(jì)算機(jī)原理與結(jié)構(gòu)的最佳選擇。
單片機(jī)內(nèi)部也用和電腦功能類似的模塊,比如CPU,內(nèi)存,并行總線,還有和硬盤作用相同的存儲(chǔ)器件,不同的是它的這些部件性能都相對(duì)我們的家用電腦弱很多,不過價(jià)錢也是低的,一般不超過10元即可......用它來(lái)做一些控制電器一類不是很復(fù)雜的工作足矣了。我們現(xiàn)在用的全自動(dòng)滾筒洗衣機(jī)、排煙罩、VCD等等的家電里面都可以看到它的身影!......它主要是作為控制部分的核心部件。
它是一種在線式實(shí)時(shí)控制計(jì)算機(jī),在線式就是現(xiàn)場(chǎng)控制,需要的是有較強(qiáng)的抗干擾能力,較低的成本,這也是和離線式計(jì)算機(jī)的(比如家用PC)的主要區(qū)別。
單片機(jī)是靠程序的,并且可以修改。通過不同的程序?qū)崿F(xiàn)不同的功能,尤其是特殊的獨(dú)特的一些功能,這是別的器件需要費(fèi)很大力氣才能做到的,有些則是花大力氣也很難做到的。一個(gè)不是很復(fù)雜的功能要是用美國(guó)50年代開發(fā)的74系列,或者60年代的CD4000系列這些純硬件來(lái)搞定的話,電路一定是一塊大PCB板!但是如果要是用美國(guó)70年代成功投放市場(chǎng)的系列單片機(jī),結(jié)果就會(huì)有天壤之別!只因?yàn)閱纹瑱C(jī)的通過你編寫的程序可以實(shí)現(xiàn)高智能,高效率,以及高可靠性!
由于單片機(jī)對(duì)成本是敏感的,所以目前占統(tǒng)治地位的軟件還是最低級(jí)匯編語(yǔ)言,它是除了二進(jìn)制機(jī)器碼以上最低級(jí)的語(yǔ)言了,既然這么低級(jí)為什么還要用呢?很多高級(jí)的語(yǔ)言已經(jīng)達(dá)到了可視化編程的水平為什么不用呢?原因很簡(jiǎn)單,就是單片機(jī)沒有家用計(jì)算機(jī)那樣的CPU,也沒有像硬盤那樣的海量存儲(chǔ)設(shè)備。一個(gè)可視化高級(jí)語(yǔ)言編寫的小程序里面即使只有一個(gè)按鈕,也會(huì)達(dá)到幾十K的尺寸!對(duì)于家用PC的硬盤來(lái)講沒什么,可是對(duì)于單片機(jī)來(lái)講是不能接受的。 單片機(jī)在硬件資源方面的利用率必須很高才行,所以匯編雖然原始卻還是在大量使用。一樣的道理,如果把巨型計(jì)算機(jī)上的操作系統(tǒng)和應(yīng)用軟件拿到家用PC上來(lái)運(yùn)行,家用PC的也是承受不了的。
可以說(shuō),二十世紀(jì)跨越了三個(gè)“電”的時(shí)代,即電氣時(shí)代、電子時(shí)代和現(xiàn)已進(jìn)入的電腦時(shí)代。不過,這種電腦,通常是指?jìng)€(gè)人計(jì)算機(jī),簡(jiǎn)稱PC機(jī)。它由主機(jī)、鍵盤、顯示器等組成。還有一類計(jì)算機(jī),大多數(shù)人卻不怎么熟悉。這種計(jì)算機(jī)就是把智能賦予各種機(jī)械的單片機(jī)(亦稱微控制器)。顧名思義,這種計(jì)算機(jī)的最小系統(tǒng)只用了一片集成電路,即可進(jìn)行簡(jiǎn)單運(yùn)算和控制。因?yàn)樗w積小,通常都藏在被控機(jī)械的“肚子”里。它在整個(gè)裝置中,起著有如人類頭腦的作用,它出了毛病,整個(gè)裝置就癱瘓了?,F(xiàn)在,這種單片機(jī)的使用領(lǐng)域已十分廣泛,如智能儀表、實(shí)時(shí)工控、通訊設(shè)備、導(dǎo)航系統(tǒng)、家用電器等。各種產(chǎn)品一旦用上了單片機(jī),就能起到使產(chǎn)品升級(jí)換代的功效,常在產(chǎn)品名稱前冠以形容詞——“智能型”,如智能型洗衣機(jī)等?,F(xiàn)在有些工廠的技術(shù)人員或其它業(yè)余電子開發(fā)者搞出來(lái)的某些產(chǎn)品,不是電路太復(fù)雜,就是功能太簡(jiǎn)單且極易被仿制。究其原因,可能就卡在產(chǎn)品未使用單片機(jī)或其它可編程邏輯器件上。
單片機(jī)歷史
單片機(jī)誕生于20世紀(jì)70年代末,經(jīng)歷了SCM、MCU、SoC三大階段。
1.SCM即單片微型計(jì)算機(jī)(Single Chip Microcomputer)階段,主要是尋求最佳的單片形態(tài)嵌入式系統(tǒng)的最佳體系結(jié)構(gòu)。“創(chuàng)新模式”獲得成功,奠定了SCM與通用計(jì)算機(jī)完全不同的發(fā)展道路。在開創(chuàng)嵌入式系統(tǒng)獨(dú)立發(fā)展道路上,Intel公司功不可沒。
2.MCU即微控制器(Micro Controller Unit)階段,主要的技術(shù)發(fā)展方向是:不斷擴(kuò)展?jié)M足嵌入式應(yīng)用時(shí),對(duì)象系統(tǒng)要求的各種外圍電路與接口電路,突顯其對(duì)象的智能化控制能力。它所涉及的領(lǐng)域都與對(duì)象系統(tǒng)相關(guān),因此,發(fā)展MCU的重任不可避免地落在電氣、電子技術(shù)廠家。從這一角度來(lái)看,Intel逐漸淡出MCU的發(fā)展也有其客觀因素。在發(fā)展MCU方面,最著名的廠家當(dāng)數(shù)Philips公司。
Philips公司以其在嵌入式應(yīng)用方面的巨大優(yōu)勢(shì),將MCS-51從單片微型計(jì)算機(jī)迅速發(fā)展到微控制器。因此,當(dāng)我們回顧嵌入式系統(tǒng)發(fā)展道路時(shí),不要忘記Intel和Philips的歷史功績(jī)。
3.單片機(jī)是嵌入式系統(tǒng)的獨(dú)立發(fā)展之路,向MCU階段發(fā)展的重要因素,就是尋求應(yīng)用系統(tǒng)在芯片上的最大化解決;因此,專用單片機(jī)的發(fā)展自然形成了SoC化趨勢(shì)。隨著微電子技術(shù)、IC設(shè)計(jì)、EDA工具的發(fā)展,基于SoC的單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)會(huì)有較大的發(fā)展。因此,對(duì)單片機(jī)的理解可以從單片微型計(jì)算機(jī)、單片微控制器延伸到單片應(yīng)用系統(tǒng)。
單片機(jī)的應(yīng)用領(lǐng)域
目前單片機(jī)滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域沒有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動(dòng)化過程的實(shí)時(shí)控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄像機(jī)、攝像機(jī)、全自動(dòng)洗衣機(jī)的控制,以及程控玩具、電子寵物等等,這些都離不開單片機(jī)。更不用說(shuō)自動(dòng)控制領(lǐng)域的機(jī)器人、智能儀表、醫(yī)療器械了。因此,單片機(jī)的學(xué)習(xí)、開發(fā)與應(yīng)用將造就一批計(jì)算機(jī)應(yīng)用與智能化控制的科學(xué)家、工程師。
單片機(jī)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域,大致可分如下幾個(gè)范疇:
1.在智能儀器儀表上的應(yīng)用
單片機(jī)具有體積小、功耗低、控制功能強(qiáng)、擴(kuò)展靈活、微型化和使用方便等優(yōu)點(diǎn),廣泛應(yīng)用于儀器儀表中,結(jié)合不同類型的傳感器,可實(shí)現(xiàn)諸如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長(zhǎng)度、硬度、元素、壓力等物理量的測(cè)量。采用單片機(jī)控制使得儀器儀表數(shù)字化、智能化、微型化,且功能比起采用電子或數(shù)字電路更加強(qiáng)大。例如精密的測(cè)量設(shè)備(功率計(jì),示波器,各種分析儀)。
2.在工業(yè)控制中的應(yīng)用
用單片機(jī)可以構(gòu)成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。例如工廠流水線的智能化管理,電梯智能化控制、各種報(bào)警系統(tǒng),與計(jì)算機(jī)聯(lián)網(wǎng)構(gòu)成二級(jí)控制系統(tǒng)等。
3.在家用電器中的應(yīng)用
可以這樣說(shuō),現(xiàn)在的家用電器基本上都采用了單片機(jī)控制,從電飯褒、洗衣機(jī)、電冰箱、空調(diào)機(jī)、彩電、其他音響視頻器材、再到電子秤量設(shè)備,五花八門,無(wú)所不在。
4.在計(jì)算機(jī)網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用
現(xiàn)代的單片機(jī)普遍具備通信接口,可以很方便地與計(jì)算機(jī)進(jìn)行數(shù)據(jù)通信,為在計(jì)算機(jī)網(wǎng)絡(luò)和通信設(shè)備間的應(yīng)用提供了極好的物質(zhì)條件,現(xiàn)在的通信設(shè)備基本上都實(shí)現(xiàn)了單片機(jī)智能控制,從手機(jī),電話機(jī)、小型程控交換機(jī)、樓宇自動(dòng)通信呼叫系統(tǒng)、列車無(wú)線通信、再到日常工作中隨處可見的移動(dòng)電話,集群移動(dòng)通信,無(wú)線電對(duì)講機(jī)等。
5.單片機(jī)在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用
單片機(jī)在醫(yī)用設(shè)備中的用途亦相當(dāng)廣泛,例如醫(yī)用呼吸機(jī),各種分析儀,監(jiān)護(hù)儀,超聲診斷設(shè)備及病床呼叫系統(tǒng)等等。
6.在各種大型電器中的模塊化應(yīng)用
某些專用單片機(jī)設(shè)計(jì)用于實(shí)現(xiàn)特定功能,從而在各種電路中進(jìn)行模塊化應(yīng)用,而不要求使用人員了解其內(nèi)部結(jié)構(gòu)。如音樂集成單片機(jī),看似簡(jiǎn)單的功能,微縮在純電子芯片中(有別于磁帶機(jī)的原理),就需要復(fù)雜的類似于計(jì)算機(jī)的原理。如:音樂信號(hào)以數(shù)字的形式存于存儲(chǔ)器中(類似于ROM),由微控制器讀出,轉(zhuǎn)化為模擬音樂電信號(hào)(類似于聲卡)。
在大型電路中,這種模塊化應(yīng)用極大地縮小了體積,簡(jiǎn)化了電路,降低了損壞、錯(cuò)誤率,也方便于更換。
7.單片機(jī)在汽車設(shè)備領(lǐng)域中的應(yīng)用
單片機(jī)在汽車電子中的應(yīng)用非常廣泛,例如汽車中的發(fā)動(dòng)機(jī)控制器,基于CAN總線的汽車發(fā)動(dòng)機(jī)智能電子控制器,GPS導(dǎo)航系統(tǒng),abs防抱死系統(tǒng),制動(dòng)系統(tǒng)等等。
此外,單片機(jī)在工商,金融,科研、教育,國(guó)防航空航天等領(lǐng)域都有著十分廣泛的用途。
學(xué)習(xí)應(yīng)用六大重要部分
單片機(jī)學(xué)習(xí)應(yīng)用的六大重要部分
一、總線:我們知道,一個(gè)電路總是由元器件通過電線連接而成的,在模擬電路中,連線并不成為一個(gè)問題,因?yàn)楦髌骷g一般是串行關(guān)系,各器件之間的連線并不很多,但計(jì)算機(jī)電路卻不一樣,它是以微處理器為核心,各器件都要與微處理器相連,各器件之間的工作必須相互協(xié)調(diào),所以需要的連線就很多了,如果仍如同模擬電路一樣,在各微處理器和各器件間單獨(dú)連線,則線的數(shù)量將多得驚人,所以在微處理機(jī)中引入了總線的概念,各個(gè)器件共同享用連線,所有器件的8根數(shù)據(jù)線全部接到8根公用的線上,即相當(dāng)于各個(gè)器件并聯(lián)起來(lái),但僅這樣還不行,如果有兩個(gè)器件同時(shí)送出數(shù)據(jù),一個(gè)為0,一個(gè)為1,那么,接收方接收到的究竟是什么呢?這種情況是不允許的,所以要通過控制線進(jìn)行控制,使器件分時(shí)工作,任何時(shí)候只能有一個(gè)器件發(fā)送數(shù)據(jù)(可以有多個(gè)器件同時(shí)接收)。器件的數(shù)據(jù)線也就被稱為數(shù)據(jù)總線,器件所有的控制線被稱為控制總線。在單片機(jī)內(nèi)部或者外部存儲(chǔ)器及其它器件中有存儲(chǔ)單元,這些存儲(chǔ)單元要被分配地址,才能使用,分配地址當(dāng)然也是以電信號(hào)的形式給出的,由于存儲(chǔ)單元比較多,所以,用于地址分配的線也較多,這些線被稱為地址總線。
二、數(shù)據(jù)、地址、指令:之所以將這三者放在一起,是因?yàn)檫@三者的本質(zhì)都是一樣的——數(shù)字,或者說(shuō)都是一串‘0’和‘1’組成的序列。換言之,地址、指令也都是數(shù)據(jù)。指令:由單片機(jī)芯片的設(shè)計(jì)者規(guī)定的一種數(shù)字,它與我們常用的指令助記符有著嚴(yán)格的一一對(duì)應(yīng)關(guān)系,不可以由單片機(jī)的開發(fā)者更改。地址:是尋找單片機(jī)內(nèi)部、外部的存儲(chǔ)單元、輸入輸出口的依據(jù),內(nèi)部單元的地址值已由芯片設(shè)計(jì)者規(guī)定好,不可更改,外部的單元可以由單片機(jī)開發(fā)者自行決定,但有一些地址單元是一定要有的(詳見程序的執(zhí)行過程)。數(shù)據(jù):這是由微處理機(jī)處理的對(duì)象,在各種不同的應(yīng)用電路中各不相同,一般而言,被處理的數(shù)據(jù)可能有這么幾種情況:
1?地址(如MOV DPTR,1000H),即地址1000H送入DPTR。
2?方式字或控制字(如MOV TMOD,#3),3即是控制字。
3?常數(shù)(如MOV TH0,#10H)10H即定時(shí)常數(shù)。
4?實(shí)際輸出值(如P1口接彩燈,要燈全亮,則執(zhí)行指令:MOV P1,#0FFH,要燈全暗,則執(zhí)行指令:MOV P1,#00H)這里0FFH和00H都是實(shí)際輸出值。又如用于LED的字形碼,也是實(shí)際輸出的值。
理解了地址、指令的本質(zhì),就不難理解程序運(yùn)行過程中為什么會(huì)跑飛,會(huì)把數(shù)據(jù)當(dāng)成指令來(lái)執(zhí)行了。
三、P0口、P2口和P3的第二功能用法:初學(xué)時(shí)往往對(duì)P0口、P2口和P3口的第二功能用法迷惑不解,認(rèn)為第二功能和原功能之間要有一個(gè)切換的過程,或者說(shuō)要有一條指令,事實(shí)上,各端口的第二功能完全是自動(dòng)的,不需要用指令來(lái)轉(zhuǎn)換。如P3.6、P3.7分別是WR、RD信號(hào),當(dāng)微片理機(jī)外接RAM或有外部I/O口時(shí),它們被用作第二功能,不能作為通用I/O口使用,只要一微處理機(jī)一執(zhí)行到MOVX指令,就會(huì)有相應(yīng)的信號(hào)從P3.6或P3.7送出,不需要事先用指令說(shuō)明。事實(shí)上‘不能作為通用I/O口使用’也并不是‘不能’而是(使用者)‘不會(huì)’將其作為通用I/O口使用。你完全可以在指令中按排一條SETB P3.7的指令,并且當(dāng)單片機(jī)執(zhí)行到這條指令時(shí),也會(huì)使P3.7變?yōu)楦唠娖剑褂谜卟粫?huì)這么去做,因?yàn)檫@通常會(huì)導(dǎo)致系統(tǒng)的崩潰。
四、程序的執(zhí)行過程: 單片機(jī)在通電復(fù)位后8051內(nèi)的程序計(jì)數(shù)器(PC)中的值為‘0000’,所以程序總是從‘0000’單元開始執(zhí)行,也就是說(shuō):在系統(tǒng)的ROM中一定要存在‘0000’這個(gè)單元,并且在‘0000’單元中存放的一定是一條指令。
五、堆棧: 堆棧是一個(gè)區(qū)域,是用來(lái)存放數(shù)據(jù)的,這個(gè)區(qū)域本身沒有任何特殊之處,就是內(nèi)部RAM的一部份,特殊的是它存放和取用數(shù)據(jù)的方式,即所謂的‘先進(jìn)后出,后進(jìn)先出’,并且堆棧有特殊的數(shù)據(jù)傳輸指令,即‘PUSH’和‘POP’,有一個(gè)特殊的專為其服務(wù)的單元,即堆棧指針SP,每當(dāng)執(zhí)一次PUSH指令時(shí),SP就(在原來(lái)值的基礎(chǔ)上)自動(dòng)加1,每當(dāng)執(zhí)行一次POP指令,SP就(在原來(lái)值的基礎(chǔ)上)自動(dòng)減1。由于SP中的值可以用指令加以改變,所以只要在程序開始階段更改了SP的值,就可以把堆棧設(shè)置在規(guī)定的內(nèi)存單元中,如在程序開始時(shí),用一條MOV SP,#5FH指令,就時(shí)把堆棧設(shè)置在從內(nèi)存單元60H開始的單元中。一般程序的開頭總有這么一條設(shè)置堆棧指針的指令,因?yàn)殚_機(jī)時(shí),SP的初始值為07H,這樣就使堆棧從08H單元開始往后,而08H到1FH這個(gè)區(qū)域正是8031的第二、三、四工作寄存器區(qū),經(jīng)常要被使用,這會(huì)造成數(shù)據(jù)的混亂。不同作者編寫程序時(shí),初始化堆棧指令也不完全相同,這是作者的習(xí)慣問題。當(dāng)設(shè)置好堆棧區(qū)后,并不意味著該區(qū)域成為一種專用內(nèi)存,它還是可以象普通內(nèi)存區(qū)域一樣使用,只是一般情況下編程者不會(huì)把它當(dāng)成普通內(nèi)存用了。
六、單片機(jī)的開發(fā)過程: 這里所說(shuō)的開發(fā)過程并不是一般書中所說(shuō)的從任務(wù)分析開始,我們假設(shè)已設(shè)計(jì)并制作好硬件,下面就是編寫軟件的工作。在編寫軟件之前,首先要確定一些常數(shù)、地址,事實(shí)上這些常數(shù)、地址在設(shè)計(jì)階段已被直接或間接地確定下來(lái)了。如當(dāng)某器件的連線設(shè)計(jì)好后,其地址也就被確定了,當(dāng)器件的功能被確定下來(lái)后,其控制字也就被確定了。然后用文本編輯器(如EDIT、CCED等)編寫軟件,編寫好后,用編譯器對(duì)源程序文件編譯,查錯(cuò),直到?jīng)]有語(yǔ)法錯(cuò)誤,除了極簡(jiǎn)單的程序外,一般應(yīng)用仿真機(jī)對(duì)軟件進(jìn)行調(diào)試,直到程序運(yùn)行正確為止。運(yùn)行正確后,就可以寫片(將程序固化在EPROM中)。在源程序被編譯后,生成了擴(kuò)展名為HEX的目標(biāo)文件,一般編程器能夠識(shí)別這種格式的文件,只要將此文件調(diào)入即可寫片。在此,為使大家對(duì)整個(gè)過程有個(gè)認(rèn)識(shí),舉一例說(shuō)明:
單片機(jī)試驗(yàn)板ORG 0000H
LJMP START
ORG 040H
START:
MOV SP,#5FH ;設(shè)堆棧
LOOP:
NOP
LJMP LOOP ;循環(huán)
END ;結(jié)束
單片機(jī)學(xué)習(xí)
目前,很多人對(duì)匯編語(yǔ)言并不認(rèn)可。可以說(shuō),掌握用C語(yǔ)言單片機(jī)編程很重要,可以大大提高開發(fā)的效率。不過初學(xué)者可以不了解單片機(jī)的匯編語(yǔ)言,但一定要了解單片機(jī)具體性能和特點(diǎn),不然在單片機(jī)領(lǐng)域是比較致命的。如果不考慮單片機(jī)硬件資源,在KEIL中用C胡亂編程,結(jié)果只能是出了問題無(wú)法解決!可以肯定的說(shuō),最好的C語(yǔ)言單片機(jī)工程師都是從匯編走出來(lái)的編程者因?yàn)閱纹瑱C(jī)的C語(yǔ)言雖然是高級(jí)語(yǔ)言,但是它不同于臺(tái)式機(jī)個(gè)人電腦上的VC++什么的單片機(jī)的硬件資源不是非常強(qiáng)大,不同于我們用VC、VB等高級(jí)語(yǔ)言在臺(tái)式PC上寫程序畢竟臺(tái)式電腦的硬件非常強(qiáng)大,所以才可以不考慮硬件資源的問題。還有就是在單片機(jī)編程中C語(yǔ)言雖然編程方便,便于人們閱讀,但是在執(zhí)行效率上是要比匯編語(yǔ)言低10%到20%,所以用什么語(yǔ)言編寫程序是要看具體用在什么場(chǎng)合下??偟膩?lái)說(shuō)做單片機(jī)編程要靈活使用匯編語(yǔ)言與C語(yǔ)言,讓單片機(jī)的強(qiáng)大功能以最高是效率展示給用戶。
以8051單片機(jī)為例講解單片機(jī)的引腳及相關(guān)功能;
《單片機(jī)引腳圖》
40個(gè)引腳按引腳功能大致可分為4個(gè)種類:電源、時(shí)鐘、控制和I/O引腳。
⒈ 電源:
⑴ VCC - 芯片電源,接+5V;
?、?VSS - 接地端;
注:用萬(wàn)用表測(cè)試單片機(jī)引腳電壓一般為0v或者5v,這是標(biāo)準(zhǔn)的TTL電平。但有時(shí)候在單片機(jī)程序正在工作時(shí)候測(cè)試結(jié)果并不是這個(gè)值而是介于0v-5v之間,其實(shí)這是萬(wàn)用表的響應(yīng)速度沒這么快而已,在某一個(gè)瞬間單片機(jī)引腳電壓仍保持在0v或者5v。
?、?時(shí)鐘:XTAL1、XTAL2 - 晶體振蕩電路反相輸入端和輸出端。
⒊ 控制線:控制線共有4根,
⑴ ALE/PROG:地址鎖存允許/片內(nèi)EPROM編程脈沖
?、?ALE功能:用來(lái)鎖存P0口送出的低8位地址
② PROG功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,此引腳輸入編程脈沖。
?、?PSEN:外ROM讀選通信號(hào)。
⑶ RST/VPD:復(fù)位/備用電源。
?、?RST(Reset)功能:復(fù)位信號(hào)輸入端。
?、?VPD功能:在Vcc掉電情況下,接備用電源。
?、?EA/Vpp:內(nèi)外ROM選擇/片內(nèi)EPROM編程電源。
?、?EA功能:內(nèi)外ROM選擇端。
② Vpp功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,施加編程電源Vpp。
?、?I/O線
80C51共有4個(gè)8位并行I/O端口:P0、P1、P2、P3口,共32個(gè)引腳。
P3口還具有第二功能,用于特殊信號(hào)輸入輸出和控制信號(hào)(屬控制總線)
5. P3口第二功能
P30 RXD 串行輸入口
P31 TXD 串行輸出口
P32 INT0 外部中斷0(低電平有效)
P33 INT1 外部中斷1(低電平有效)
P34 T0 定時(shí)計(jì)數(shù)器0
P35 T1 定時(shí)計(jì)數(shù)器1
P36 WR 外部數(shù)據(jù)存儲(chǔ)器寫選通(低電平有效)
P37 RD 外部數(shù)據(jù)存儲(chǔ)器讀選通(低電平有效)
常用單片機(jī)芯片簡(jiǎn)介
STC單片機(jī)
STC公司的單片機(jī)主要是基于8051內(nèi)核,是新一代增強(qiáng)型單片機(jī),指令代碼完全兼容傳統(tǒng)8051,速度快8~12倍,帶ADC,4路PWM,雙串口,有全球唯一ID號(hào),加密性好,抗干擾強(qiáng).
PIC單片機(jī):
是MICROCHIP公司的產(chǎn)品,其突出的特點(diǎn)是體積小,功耗低,精簡(jiǎn)指令集,抗干擾性好,可靠性高,有較強(qiáng)的模擬接口,代碼保密性好,大部分芯片有其兼容的FLASH程序存儲(chǔ)器的芯片.
EMC單片機(jī):
是***義隆公司的產(chǎn)品,有很大一部分與PIC 8位單片機(jī)兼容,且相兼容產(chǎn)品的資源相對(duì)比PIC的多,價(jià)格便宜,有很多系列可選,但抗干擾較差.
ATMEL單片機(jī)(51單片機(jī)):
ATMEl公司的8位單片機(jī)有AT89、AT90兩個(gè)系列,AT89系列是8位Flash單片機(jī),與8051系列單片機(jī)相兼容,靜態(tài)時(shí)鐘模式;AT90系列單片機(jī)是增強(qiáng)RISC結(jié)構(gòu)、全靜態(tài)工作方式、內(nèi)載在線可編程Flash的單片機(jī),也叫AVR單片機(jī).
PHLIPIS 51PLC系列單片機(jī)(51單片機(jī)):
PHILIPS公司的單片機(jī)是基于80C51內(nèi)核的單片機(jī),嵌入了掉電檢測(cè)、模擬以及片內(nèi)RC振蕩器等功能,這使51LPC在高集成度、低成本、低功耗的應(yīng)用設(shè)計(jì)中可以滿足多方面的性能要求.
HOLTEK單片機(jī):
***盛揚(yáng)半導(dǎo)體的單片機(jī),價(jià)格便宜,種類較多,但抗干擾較差,適用于消費(fèi)類產(chǎn)品.
TI公司單片機(jī)(51單片機(jī)):
德州儀器提供了TMS370和MSP430兩大系列通用單片機(jī).TMS370系列單片機(jī)是8位CMOS單片機(jī),具有多種存儲(chǔ)模式、多種外圍接口模式,適用于復(fù)雜的實(shí)時(shí)控制場(chǎng)合;MSP430系列單片機(jī)是一種超低功耗、功能集成度較高的16位低功耗單片機(jī),特別適用于要求功耗低的場(chǎng)合
松翰單片機(jī)(SONIX):
是***松翰公司的單片,大多為8位機(jī),有一部分與PIC 8位單片機(jī)兼容,價(jià)格便宜,系統(tǒng)時(shí)鐘分頻可選項(xiàng)較多,有PMW ADC 內(nèi)振 內(nèi)部雜訊濾波。缺點(diǎn)RAM空間過小,抗干擾較好。
從無(wú)線電世界到單片機(jī)世界
現(xiàn)代計(jì)算機(jī)技術(shù)的產(chǎn)業(yè)革命,將世界經(jīng)濟(jì)從資本經(jīng)濟(jì)帶入到知識(shí)經(jīng)濟(jì)時(shí)代。在電子世界領(lǐng)域,從20世紀(jì)中的無(wú)線電時(shí)代也進(jìn)入到21世紀(jì)以計(jì)算機(jī)技術(shù)為中心的智能化現(xiàn)代電子系統(tǒng)時(shí)代。現(xiàn)代電子系統(tǒng)的基本核心是嵌入式計(jì)算機(jī)系統(tǒng)(簡(jiǎn)稱嵌入式系統(tǒng)),而單片機(jī)是最典型、最廣泛、最普及的嵌入式系統(tǒng)。
一、 無(wú)線電世界造就了幾代英才
在20世紀(jì)五六十年代,最具代表的先進(jìn)的電子技術(shù)就是無(wú)線電技術(shù),包括無(wú)線電廣播、收音、無(wú)線通信(電報(bào))、業(yè)余無(wú)線電臺(tái)、無(wú)線電定位、導(dǎo)航等遙測(cè)、遙控、遙信技術(shù)。早期就是這些電子技術(shù)帶領(lǐng)著許多青少年步入了奇妙的電子世界,無(wú)線電技術(shù)展示了當(dāng)時(shí)科技生活美妙的前景。電子科學(xué)開始形成了一門新興學(xué)科。無(wú)線電電子學(xué)、無(wú)線通信開始了電子世界的歷程。
無(wú)線電技術(shù)不僅成為了當(dāng)時(shí)先進(jìn)科學(xué)技術(shù)的代表,而且從普及到專業(yè)的科學(xué)領(lǐng)域,吸引了廣大青少年,并使他們從中找到了無(wú)窮的樂趣。從床頭的礦石收音機(jī)到超外差收音機(jī);從無(wú)線電發(fā)報(bào)到業(yè)余無(wú)線電臺(tái);從電話、電鈴到無(wú)線電操縱模型。無(wú)線電技術(shù)成為當(dāng)時(shí)青少年科普、科技教育最普及、最廣泛的內(nèi)容。至今,許多老一輩的工程師、專家、教授當(dāng)年都是無(wú)線電愛好者。無(wú)線電技術(shù)的無(wú)窮樂趣、無(wú)線電技術(shù)的全面訓(xùn)練,從電子學(xué)基本原理、電子元器件基礎(chǔ)到無(wú)線電遙控、遙測(cè)、遙信電子系統(tǒng)制作,培養(yǎng)出了幾代科技英才。
二、 從無(wú)線電時(shí)代到電子技術(shù)普及時(shí)代
早期的無(wú)線電技術(shù)推動(dòng)了電子技術(shù)的發(fā)展,其中最主要的是真空管電子技術(shù)向半導(dǎo)體電子技術(shù)的發(fā)展。半導(dǎo)體電子技術(shù)使有源器件實(shí)現(xiàn)了微小型化和低成本,使無(wú)線電技術(shù)有了更大普及和創(chuàng)新,并大大地開闊了許多非無(wú)線電的控制領(lǐng)域。
半導(dǎo)體技術(shù)發(fā)展導(dǎo)致集成電路器件的產(chǎn)生,形成了近代電子技術(shù)的飛躍,電子技術(shù)從分立器件時(shí)代走進(jìn)了電路集成時(shí)代。電子設(shè)計(jì)工程師不再用分立的電子元器件設(shè)計(jì)電路單元,而直接選擇集成化的電路單元器件構(gòu)成系統(tǒng)。他們從電路單元設(shè)計(jì)中解放出來(lái),致力于系統(tǒng)設(shè)計(jì),大大地解放了科技生產(chǎn)力,促進(jìn)了電子系統(tǒng)更大范圍的普及。
半導(dǎo)體集成電路首先在基本數(shù)字邏輯電路上取得突破。大量數(shù)字邏輯電路,如門電路、計(jì)數(shù)器、定時(shí)器、移位寄存器以及模擬開關(guān)、比較器等,為電子數(shù)字控制提供了極佳的條件,使傳統(tǒng)的機(jī)械控制轉(zhuǎn)向電子控制。功率電子器件以及傳感技術(shù)的發(fā)展使原先以無(wú)線電為中心的電子技術(shù)開始轉(zhuǎn)向工程領(lǐng)域中的機(jī)械系統(tǒng)的數(shù)字控制,檢測(cè)領(lǐng)域中的信息采集,運(yùn)動(dòng)機(jī)械對(duì)象的電氣伺服驅(qū)動(dòng)控制。
半導(dǎo)體及其集成電路技術(shù)將我們帶入了一個(gè)電子技術(shù)普及時(shí)代,無(wú)線電技術(shù)成為電子技術(shù)應(yīng)用領(lǐng)域的一個(gè)部分。
進(jìn)入20世紀(jì)70年代,大規(guī)模集成電路出現(xiàn),促進(jìn)了常規(guī)的電子電路單元的專用電子系統(tǒng)發(fā)展。許多專用電子系統(tǒng)單元變成了集成化器件,如收音機(jī)、電子鐘、計(jì)算器等,在這些領(lǐng)域的電子工程師從電路、系統(tǒng)的精心設(shè)計(jì)、調(diào)試轉(zhuǎn)變?yōu)槠骷x擇、外圍器件適配工作。電子技術(shù)發(fā)展了,電子產(chǎn)品豐富了,電子工程師的難度減少了,但與此同時(shí),無(wú)線電技術(shù)、電子技術(shù)的魅力卻削弱了。半導(dǎo)體集成電路的發(fā)展使經(jīng)典電子系統(tǒng)日趨完善,留在大規(guī)模集成電路以外的電子技術(shù)日益減少,電子技術(shù)沒有了往昔無(wú)線電時(shí)代的無(wú)窮樂趣和全面的工程訓(xùn)練。
三、 從經(jīng)典電子技術(shù)時(shí)代到現(xiàn)代電子技術(shù)時(shí)代
進(jìn)入20世紀(jì)80年代,世紀(jì)經(jīng)濟(jì)中最重要的變革是計(jì)算機(jī)的產(chǎn)業(yè)革命。而計(jì)算機(jī)產(chǎn)業(yè)革命的最重要標(biāo)志則是計(jì)算機(jī)嵌入式應(yīng)用的誕生。近代電子計(jì)算機(jī)是應(yīng)數(shù)值計(jì)算要求誕生的。在很長(zhǎng)的時(shí)間內(nèi),電子計(jì)算機(jī)都是以發(fā)展海量數(shù)值計(jì)算為己任。但是電子計(jì)算機(jī)表現(xiàn)出的邏輯運(yùn)算、處理、控制能力,吸引了電子控制領(lǐng)域的專家,他們要求發(fā)展能滿足控制對(duì)象要求,實(shí)現(xiàn)嵌入式應(yīng)用的計(jì)算機(jī)系統(tǒng)。如果將滿足海量數(shù)據(jù)處理的計(jì)算機(jī)系統(tǒng)稱為通用計(jì)算機(jī)系統(tǒng),那么則可把嵌入到對(duì)象體系(如艦船、飛機(jī)、機(jī)車等)中的計(jì)算機(jī)系統(tǒng)稱作嵌入式計(jì)算機(jī)。顯而易見,兩者的技術(shù)發(fā)展方向是不同的。前者要求海量數(shù)據(jù)存儲(chǔ)、吞吐、高速數(shù)據(jù)處理分析及傳輸;而后者要求在對(duì)象環(huán)境中可靠運(yùn)行,對(duì)外部物理參數(shù)的高速采集、邏輯分析處理和對(duì)外部對(duì)象的快速控制等。早期人們將通用計(jì)算機(jī)加上數(shù)據(jù)采集單元、輸出驅(qū)動(dòng)電路勉為其難地構(gòu)成一個(gè)熱處理爐的溫控系統(tǒng)。這樣的通用計(jì)算機(jī)系統(tǒng)不可能為大多數(shù)電子系統(tǒng)采用,而且要使通用計(jì)算機(jī)系統(tǒng)滿足嵌入式應(yīng)用要求,必然影響高速數(shù)值處理技術(shù)的發(fā)展。為了解決計(jì)算機(jī)技術(shù)發(fā)展的矛盾,在20世紀(jì)70年代,半導(dǎo)體專家另辟蹊徑,完全按照電子系統(tǒng)的計(jì)算機(jī)嵌入式應(yīng)用要求,將一個(gè)微型計(jì)算機(jī)的基本系統(tǒng)集成在一個(gè)芯片上,形成了早期的單片機(jī)(Single Chip Microcomputer)。單片機(jī)問世后,在計(jì)算機(jī)領(lǐng)域中開始出現(xiàn)了通用計(jì)算機(jī)系統(tǒng)和嵌入式系統(tǒng)的兩大分支。此后,無(wú)論是嵌入式系統(tǒng),還是通用計(jì)算機(jī)系統(tǒng)都得到了飛速的發(fā)展。
早期雖然有通用計(jì)算機(jī)改裝而成的嵌入式計(jì)算機(jī)系統(tǒng),而真正意義上的嵌入式系統(tǒng)始于單片機(jī)的出現(xiàn)。因?yàn)閱纹瑱C(jī)是專門為嵌入式應(yīng)用設(shè)計(jì)的,單片機(jī)只能實(shí)現(xiàn)嵌入式應(yīng)用。單片機(jī)能最好地滿足嵌入式應(yīng)用的環(huán)境要求,例如,芯片級(jí)的物理空間、大規(guī)模集成電路的低價(jià)位、良好的外圍接口總線和突出控制功能的指令系統(tǒng)。
單片機(jī)有計(jì)算機(jī)系統(tǒng)內(nèi)核,嵌入到電子系統(tǒng)中,為電子系統(tǒng)智能化奠定了基礎(chǔ)。因此,當(dāng)前單片機(jī)在電子系統(tǒng)中的廣泛使用,使經(jīng)典電子系統(tǒng)迅速過渡到智能化的現(xiàn)代電子系統(tǒng)。
四、 單片機(jī)開創(chuàng)了現(xiàn)代電子系統(tǒng)時(shí)代
1?單片機(jī)與嵌入式系統(tǒng)
嵌入式系統(tǒng)源于計(jì)算機(jī)的嵌入式應(yīng)用,早期嵌入式系統(tǒng)為通用計(jì)算機(jī)經(jīng)改裝后嵌入到對(duì)象體系中的各種電子系統(tǒng),如艦船的自動(dòng)駕駛儀,輪機(jī)監(jiān)測(cè)系統(tǒng)等。嵌入式系統(tǒng)首先是一個(gè)計(jì)算機(jī)系統(tǒng),其次它被嵌入到對(duì)象體系中、在對(duì)象體系中實(shí)現(xiàn)對(duì)象要求的數(shù)據(jù)采集、處理、狀態(tài)顯示、輸出控制等功能,由于嵌入在對(duì)象體系中,嵌入式系統(tǒng)的計(jì)算機(jī)沒有計(jì)算機(jī)的獨(dú)立形式及功能。單片機(jī)完全是按照嵌入式系統(tǒng)要求設(shè)計(jì)的,因此單片機(jī)是最典型的嵌入式系統(tǒng)。早期的單片機(jī)只是按嵌入式應(yīng)用技術(shù)要求設(shè)計(jì)的計(jì)算機(jī)單芯片集成,故名單片機(jī)。隨后,單片機(jī)為滿足嵌入式應(yīng)用要求不斷增強(qiáng)其控制功能與外圍接口功能,尤其是突出控制功能,因此國(guó)際上已將單片機(jī)正名為微控制器(MCU,Microcontroller Unit)。
2?單片機(jī)構(gòu)成的現(xiàn)代電子系統(tǒng)將成為主流電子系統(tǒng)
單片機(jī)是器件級(jí)計(jì)算機(jī)系統(tǒng),它可以嵌入到任何對(duì)象體系中去,實(shí)現(xiàn)智能化控制。小到微型機(jī)械,如手表、助聽器。集成器件級(jí)的低價(jià)位,低到幾元、十幾元,足以使單片機(jī)普及到許多民用家電、電子玩具中去。單片機(jī)構(gòu)成的現(xiàn)代電子系統(tǒng)已深入到各家各戶,正改變我們的生活,如家庭中的音響、電視機(jī)、洗衣機(jī)、微波爐、電話、防盜系統(tǒng)、空調(diào)機(jī)等。單片機(jī)革新了原有電子系統(tǒng),如微波爐采用單片機(jī)控制后,可方便地進(jìn)行時(shí)鐘設(shè)置、程序記憶、功率控制;空調(diào)機(jī)采用單片機(jī)后不但遙控參數(shù)設(shè)置方便,運(yùn)行狀態(tài)自動(dòng)變換,還可實(shí)現(xiàn)變頻控制。目前許多家用電器如VCD、DVD只有單片機(jī)出現(xiàn)后才可能實(shí)現(xiàn)其功能。
3?嵌入式系統(tǒng)帶動(dòng)了整個(gè)電子產(chǎn)業(yè)
目前電子元器件產(chǎn)業(yè)除了微處理器、嵌入式系統(tǒng)器件外,大多是圍繞現(xiàn)代電子系統(tǒng)配套的元器件產(chǎn)業(yè),例如滿足人機(jī)交互用的按鍵,LED/LCD顯示驅(qū)動(dòng)、LED/LCD顯示單元、語(yǔ)音集成器件等,滿足數(shù)據(jù)采集通道要求的數(shù)字傳感器、ADC、數(shù)據(jù)采集模塊、信號(hào)調(diào)理模塊等,滿足伺服驅(qū)動(dòng)控制的DAC、固體繼電器、步進(jìn)電機(jī)控制器、變頻控制單元等,滿足通信要求的各種總線驅(qū)動(dòng)器、電平轉(zhuǎn)換器等。
世界電子元器件在嵌入式系統(tǒng)帶動(dòng)下,沿著充分滿足嵌入式應(yīng)用的現(xiàn)代電子系統(tǒng)要求發(fā)展。這就使原來(lái)經(jīng)典電子系統(tǒng)的天地愈來(lái)愈小。電子系統(tǒng)中的各類從業(yè)人員應(yīng)盡早轉(zhuǎn)向現(xiàn)代電子系統(tǒng)的康莊大道。
五、 單片機(jī)將造就新一代電子精英
如果說(shuō)五十年代起,無(wú)線電世界造就了幾代精英,那么當(dāng)今的單片機(jī)世界將會(huì)造就出新一代電子精英。
1?單片機(jī)帶你進(jìn)入智能化電子領(lǐng)域
若將經(jīng)典電子系統(tǒng)當(dāng)作一個(gè)僵死的電子系統(tǒng),那么智能化的現(xiàn)代電子系統(tǒng)則是一個(gè)具有“生命”的電子系統(tǒng)。單片機(jī)應(yīng)用系統(tǒng)的硬件結(jié)構(gòu)給予電子系統(tǒng)“身軀”,單片機(jī)應(yīng)用系統(tǒng)的應(yīng)用程序賦予其“生命”。例如,在設(shè)計(jì)智能化儀器顯示器的顯示功能時(shí),可在開機(jī)時(shí)顯示系統(tǒng)自檢結(jié)果,未進(jìn)入工作時(shí)顯示各種待機(jī)狀態(tài),儀器運(yùn)行時(shí)顯示運(yùn)行過程,工作結(jié)束后可顯示當(dāng)前結(jié)果、自檢結(jié)果、原始數(shù)據(jù)、各種處理報(bào)表等。在無(wú)人值守時(shí),可給定各種自動(dòng)運(yùn)行功能。
電子系統(tǒng)的智能化為無(wú)止境境界,常常不需硬件資源的增添就能實(shí)現(xiàn)各種翻新功能。這也是當(dāng)前許多家用電器功能大量增設(shè)的因素之一。
2?單片機(jī)帶你進(jìn)入計(jì)算機(jī)工控領(lǐng)域
21世紀(jì)是全人類進(jìn)入計(jì)算機(jī)時(shí)代的世紀(jì),許多人不是在制造計(jì)算機(jī)便是在使用計(jì)算機(jī)。在使用計(jì)算機(jī)的人們中,只有從事嵌入式系統(tǒng)應(yīng)用的人才真正地進(jìn)入到計(jì)算機(jī)系統(tǒng)的內(nèi)部軟、硬件體系中,才能真正領(lǐng)會(huì)計(jì)算機(jī)的智能化本質(zhì)并掌握智能化設(shè)計(jì)的知識(shí)。從學(xué)習(xí)單片機(jī)應(yīng)用技術(shù)入手是當(dāng)今培養(yǎng)計(jì)算機(jī)應(yīng)用軟、硬件技術(shù)人才的最佳道路之一。
3?單片機(jī)帶你進(jìn)入最具魅力的電子世界
獨(dú)具魅力的單片機(jī)能使你體會(huì)到電腦的真諦,你可以用單片機(jī)親自動(dòng)手設(shè)計(jì)智能玩具,可以設(shè)計(jì)不同的應(yīng)用程序?qū)崿F(xiàn)不同的功能。既有硬件制作又有軟件設(shè)計(jì),既動(dòng)腦、又動(dòng)手。初級(jí)水平可開發(fā)智能玩具,用宏指令編程。中級(jí)水平可開發(fā)一些智能控制器,如電腦鼠、智能車、各種遙控模型。高級(jí)水平可開發(fā)機(jī)器人,如機(jī)器人足球賽,開發(fā)工業(yè)控制單元,網(wǎng)絡(luò)通信等,并用匯編語(yǔ)言或高級(jí)語(yǔ)言設(shè)計(jì)應(yīng)用程序。圍繞單片機(jī)及嵌入式系統(tǒng)形成的電子產(chǎn)業(yè)的未來(lái),將會(huì)為電子愛好者提供廣闊的天地,一個(gè)比當(dāng)年無(wú)線電世界更廣闊、更豐富、更持久、更具魅力的電子世界。投身到單片機(jī)世界來(lái),將使你一生受益。
單片機(jī)攻擊技術(shù)
目前,攻擊單片機(jī)主要有四種技術(shù),分別是:
?。ǎ保┸浖?br> 該技術(shù)通常使用處理器通信接口并利用協(xié)議、加密算法或這些算法中的安全漏洞來(lái)進(jìn)行攻擊。軟件攻擊取得成功的一個(gè)典型事例是對(duì)早期ATMEL AT89C 系列單片機(jī)的攻擊。攻擊者利用了該系列單片機(jī)擦除操作時(shí)序設(shè)計(jì)上的漏洞,使用自編程序在擦除加密鎖定位后,停止下一步擦除片內(nèi)程序存儲(chǔ)器數(shù)據(jù)的操作,從而使加過密的單片機(jī)變成沒加密的單片機(jī),然后利用編程器讀出片內(nèi)程序。
?。ǎ玻?電子探測(cè)攻擊
該技術(shù)通常以高時(shí)間分辨率來(lái)監(jiān)控處理器在正常操作時(shí)所有電源和接口連接的模擬特性,并通過監(jiān)控它的電磁輻射特性來(lái)實(shí)施攻擊。因?yàn)閱纹瑱C(jī)是一個(gè)活動(dòng)的電子器件,當(dāng)它執(zhí)行不同的指令時(shí),對(duì)應(yīng)的電源功率消耗也相應(yīng)變化。這樣通過使用特殊的電子測(cè)量?jī)x器和數(shù)學(xué)統(tǒng)計(jì)方法分析和檢測(cè)這些變化,即可獲取單片機(jī)中的特定關(guān)鍵信息。
(3)過錯(cuò)產(chǎn)生技術(shù)
該技術(shù)使用異常工作條件來(lái)使處理器出錯(cuò),然后提供額外的訪問來(lái)進(jìn)行攻擊。使用最廣泛的過錯(cuò)產(chǎn)生攻擊手段包括電壓沖擊和時(shí)鐘沖擊。低電壓和高電壓攻擊可用來(lái)禁止保護(hù)電路工作或強(qiáng)制處理器執(zhí)行錯(cuò)誤操作。時(shí)鐘瞬態(tài)跳變也許會(huì)復(fù)位保護(hù)電路而不會(huì)破壞受保護(hù)信息。電源和時(shí)鐘瞬態(tài)跳變可以在某些處理器中影響單條指令的解碼和執(zhí)行。
(4)探針技術(shù)
該技術(shù)是直接暴露芯片內(nèi)部連線,然后觀察、操控、干擾單片機(jī)以達(dá)到攻擊目的。為了方便起見,人們將以上四種攻擊技術(shù)分成兩類,一類是侵入型攻擊(物理攻擊),這類攻擊需要破壞封裝,然后借助半導(dǎo)體測(cè)試設(shè)備、顯微鏡和微定位器,在專門的實(shí)驗(yàn)室花上幾小時(shí)甚至幾周時(shí)間才能完成。所有的微探針技術(shù)都屬于侵入型攻擊。另外三種方法屬于非侵入型攻擊,被攻擊的單片機(jī)不會(huì)被物理?yè)p壞。在某些場(chǎng)合非侵入型攻擊是特別危險(xiǎn)的,這是因?yàn)榉乔秩胄凸羲柙O(shè)備通??梢宰灾坪蜕?jí),因此非常廉價(jià)。
大部分非侵入型攻擊需要攻擊者具備良好的處理器知識(shí)和軟件知識(shí)。與之相反,侵入型的探針攻擊則不需要太多的初始知識(shí),而且通常可用一整套相似的技術(shù)對(duì)付寬范圍的產(chǎn)品。
單片機(jī)侵入型攻擊的一般過程
侵入型攻擊的第一步是揭去芯片封裝。有兩種方法可以達(dá)到這一目的:第一種是完全溶解掉芯片封裝,暴露金屬連線。第二種是只移掉硅核上面的塑料封裝。第一種方法需要將芯片綁定到測(cè)試夾具上,借助綁定臺(tái)來(lái)操作。第二種方法除了需要具備攻擊者一定的知識(shí)和必要的技能外,還需要個(gè)人的智慧和耐心,但操作起來(lái)相對(duì)比較方便。
芯片上面的塑料可以用小刀揭開,芯片周圍的環(huán)氧樹脂可以用濃硝酸腐蝕掉。熱的濃硝酸會(huì)溶解掉芯片封裝而不會(huì)影響芯片及連線。該過程一般在非常干燥的條件下進(jìn)行,因?yàn)樗拇嬖诳赡軙?huì)侵蝕已暴露的鋁線連接。
接著在超聲池里先用丙酮清洗該芯片以除去殘余硝酸,然后用清水清洗以除去鹽分并干燥。沒有超聲池,一般就跳過這一步。這種情況下,芯片表面會(huì)有點(diǎn)臟,但是不太影響紫外光對(duì)芯片的操作效果。最后一步是尋找保護(hù)熔絲的位置并將保護(hù)熔絲暴露在紫外光下。一般用一臺(tái)放大倍數(shù)至少100倍的顯微鏡,從編程電壓輸入腳的連線跟蹤進(jìn)去,來(lái)尋找保護(hù)熔絲。若沒有顯微鏡,則采用將芯片的不同部分暴露到紫外光下并觀察結(jié)果的方式進(jìn)行簡(jiǎn)單的搜索。操作時(shí)應(yīng)用不透明的紙片覆蓋芯片以保護(hù)程序存儲(chǔ)器不被紫外光擦除。將保護(hù)熔絲暴露在紫外光下5~10分鐘就能破壞掉保護(hù)位的保護(hù)作用,之后,使用簡(jiǎn)單的編程器就可直接讀出程序存儲(chǔ)器的內(nèi)容。
對(duì)于使用了防護(hù)層來(lái)保護(hù)EEPROM單元的單片機(jī)來(lái)說(shuō),使用紫外光復(fù)位保護(hù)電路是不可行的。對(duì)于這種類型的單片機(jī),一般使用微探針技術(shù)來(lái)讀取存儲(chǔ)器內(nèi)容。在芯片封裝打開后,將芯片置于顯微鏡下就能夠很容易的找到從存儲(chǔ)器連到電路其它部分的數(shù)據(jù)總線。
由于某種原因,芯片鎖定位在編程模式下并不鎖定對(duì)存儲(chǔ)器的訪問。利用這一缺陷將探針放在數(shù)據(jù)線的上面就能讀到所有想要的數(shù)據(jù)。在編程模式下,重啟讀過程并連接探針到另外的數(shù)據(jù)線上就可以讀出程序和數(shù)據(jù)存儲(chǔ)器中的所有信息。
還有一種可能的攻擊手段是借助顯微鏡和激光切割機(jī)等設(shè)備來(lái)尋找保護(hù)熔絲,從而尋查和這部分電路相聯(lián)系的所有信號(hào)線。由于設(shè)計(jì)有缺陷,因此,只要切斷從保護(hù)熔絲到其它電路的某一根信號(hào)線,就能禁止整個(gè)保護(hù)功能。由于某種原因,這根線離其它的線非常遠(yuǎn),所以使用激光切割機(jī)完全可以切斷這根線而不影響臨近線。這樣,使用簡(jiǎn)單的編程器就能直接讀出程序存儲(chǔ)器的內(nèi)容。
雖然大多數(shù)普通單片機(jī)都具有熔絲燒斷保護(hù)單片機(jī)內(nèi)代碼的功能,但由于通用低檔的單片機(jī)并非定位于制作安全類產(chǎn)品,因此,它們往往沒有提供有針對(duì)性的防范措施且安全級(jí)別較低。加上單片機(jī)應(yīng)用場(chǎng)合廣泛,銷售量大,廠商間委托加工與技術(shù)轉(zhuǎn)讓頻繁,大量技術(shù)資料外瀉,使得利用該類芯片的設(shè)計(jì)漏洞和廠商的測(cè)試接口,并通過修改熔絲保護(hù)位等侵入型攻擊或非侵入型攻擊手段來(lái)讀取單片機(jī)的內(nèi)部程序變得比較容易。
- 單片機(jī)(619327)
相關(guān)推薦
評(píng)論
查看更多