單片機(jī)常見(jiàn)問(wèn)題(一)
1.什么是單片機(jī)?
簡(jiǎn)單地說(shuō),單片機(jī)就是一個(gè)小計(jì)算機(jī)系統(tǒng)。為了說(shuō)明清楚這個(gè)問(wèn)題,得要從計(jì)算機(jī)說(shuō)起。提到計(jì)算機(jī),大家可能馬上會(huì)想到“顯示器、鼠標(biāo)、鍵盤(pán)”,不過(guò),這不是一個(gè)計(jì)算機(jī)的核心和關(guān)鍵,計(jì)算機(jī)的核心部分在一邊的機(jī)箱里呢。打開(kāi)機(jī)箱,可以看到,機(jī)箱里有主板、硬盤(pán)、光驅(qū)等。仔細(xì)觀察主板,這上面有CPU、內(nèi)存條、BIOS芯片,通常還有25針的打印機(jī)接口等,這些部件都是通過(guò)主板上的連線相互連接。
不論計(jì)算機(jī)復(fù)雜程度如何,它總是由運(yùn)算器,控制器,存儲(chǔ)器,輸入/輸出接口,總線這五個(gè)部分組成。通常運(yùn)算器和控制器被做成一塊芯片,也就是CPU(中央處理器)。在計(jì)算機(jī)主板上,內(nèi)存條和BIOS芯片就是存儲(chǔ)器,25針打印機(jī)接口就是輸出/輸出設(shè)備,而總線則被設(shè)計(jì)在主板上,即各部件相互連接的線路。
圖1
在一些應(yīng)用場(chǎng)合,人們不需要計(jì)算機(jī)完成十分復(fù)雜的運(yùn)算,但卻希望計(jì)算機(jī)小巧,可靠,價(jià)格低。于是人們就把組成計(jì)算機(jī)的這5個(gè)部分全部集成到一塊芯片上,也說(shuō)是一塊芯片就能構(gòu)成一個(gè)獨(dú)立的計(jì)算機(jī),在當(dāng)時(shí)的技術(shù)條件下,這是一件了不起的事情,于是人們就用這個(gè)特征來(lái)為之命名,稱為“單片機(jī)”。
將構(gòu)成一個(gè)計(jì)算機(jī)所需要的5個(gè)部分全部都集成到一塊芯片中,這塊芯片是否要很大、價(jià)格是否很高呢?并非如此。如果要把圖1所示主板上的所有元件都集成到一塊芯片中,那當(dāng)然非常昂貴,可能技術(shù)上也無(wú)法實(shí)現(xiàn),但很多單片機(jī)中所需要用到的功能完全沒(méi)必要那么強(qiáng)大,因此很多單片機(jī)體積很小,價(jià)格也很低。如市場(chǎng)上常見(jiàn)的單片機(jī)有8,14,16,18,20,28,40,84等引腳,有些甚至只有6個(gè)引腳,如圖2所示是微芯公司(Microchip)發(fā)布的一款6引腳單片機(jī)。而價(jià)格從幾元到幾十、上百元的都有,有些品種在大批量定購(gòu)時(shí)甚至可以低至1元以下。
圖2
剛接觸到單片機(jī)的人往往會(huì)有個(gè)疑惑:既然人們已經(jīng)有能力制造功能強(qiáng)大的計(jì)算機(jī),為何還要生產(chǎn)些功能不強(qiáng)的計(jì)算機(jī)?其實(shí),功能強(qiáng)弱并不是決定是否生產(chǎn)的決定因素,市場(chǎng)需要才是關(guān)鍵。比如,用來(lái)控制一臺(tái)電箱的計(jì)算機(jī)顯然沒(méi)必要使用“奔騰”芯片的強(qiáng)大運(yùn)算能力,只要進(jìn)行非常簡(jiǎn)單的計(jì)算,作個(gè)比較,看一看溫度是否在所控制區(qū)間之內(nèi),然后再做出相應(yīng)的控制就行了。
單片機(jī)在人們的生活中、工農(nóng)業(yè)生產(chǎn)設(shè)備中處處有應(yīng)用,例如各定時(shí)裝置、自動(dòng)控制裝置等。愛(ài)好者學(xué)習(xí)單片機(jī)應(yīng)該注意觀察事物,找到自己周圍能夠使用單片機(jī)的場(chǎng)合,從而將學(xué)到的知識(shí)應(yīng)用到實(shí)際中去。例如,使用單片機(jī)技術(shù)改造傳統(tǒng)的機(jī)電設(shè)備、在特定的場(chǎng)合使用單片機(jī)替代PLC等就有著廣闊的應(yīng)用前景;又如,使用單片機(jī)控制電扇、抽油煙機(jī)、空調(diào)等,從而制作出具有更強(qiáng)功能、能夠通用的控制器,也是可以嘗試的。
2.單片機(jī)是如何工作的?
單片機(jī)的工作過(guò)程就是一個(gè)不斷“取指令-分析指令-執(zhí)行指令”的過(guò)程。單片機(jī)的程序以一條一條指令的形式存放在程序存儲(chǔ)器中,單片機(jī)開(kāi)始工作后,就從程序存儲(chǔ)器的特定位置開(kāi)始取指令,然后由單片機(jī)內(nèi)部的控制器對(duì)指令進(jìn)行分析,根據(jù)指令要求,進(jìn)行“取數(shù)、送數(shù)、算術(shù)運(yùn)算、邏輯運(yùn)算、跳轉(zhuǎn)”等基本操作中的一種或幾種,這些操作都在一個(gè)規(guī)定的周期中完成,執(zhí)行完了以后,到下一個(gè)存儲(chǔ)器單元中取指令,重復(fù)剛才的操作(當(dāng)然,這些要執(zhí)行的操作具體內(nèi)容可能跟上一次不一樣了),如此不斷重復(fù),直到斷電為止。這里所說(shuō)的“存儲(chǔ)器特定位置”、“規(guī)定的周期”等與單片機(jī)的型號(hào)有關(guān),下面以51系列單片機(jī)為例來(lái)說(shuō)明。
在51系列單片機(jī)中有一個(gè)名為PC的寄存器(就是用來(lái)存數(shù)的一個(gè)容器),在單片機(jī)復(fù)位后,這個(gè)寄存器中的內(nèi)容被置為0000H,單片機(jī)內(nèi)部的控制器總是根據(jù)PC寄存器中的值去相應(yīng)的程序存儲(chǔ)器單元取指令,因此,開(kāi)機(jī)后,將從0000H單元取第一條指令,分析執(zhí)行,同時(shí),PC值將作相應(yīng)的調(diào)整,指向?qū)⒁獔?zhí)行的下一條指令的位置,下一條指令的位置在哪里呢?對(duì)于51單片機(jī)來(lái)說(shuō),一條指令可能占用一個(gè)字節(jié)、二個(gè)字節(jié)或三個(gè)字節(jié),如果第一條指令是單字節(jié)指令,取完第一條指令以后,PC的值就會(huì)變?yōu)?001H,因此,第一條指令執(zhí)行完畢以后,將從0001H單元中取出第二條指令來(lái)執(zhí)行,以此類推。如果程序是順序執(zhí)行的,PC的值將始終不斷增加,如果程序中有跳轉(zhuǎn)指令,該指令將影響PC中的值,使PC中的值指向?qū)⒁獔?zhí)行的下一條指令所在地址單元。這種跳轉(zhuǎn)既可能是正向的,例如由0000H跳轉(zhuǎn)到0030H,也可能是反向的,即往回跳轉(zhuǎn),如由200H跳轉(zhuǎn)到100H。正是由于指令可以影響到PC中的值,才使得程序可以實(shí)現(xiàn)“分支”、“循環(huán)”等各種功能。那么,執(zhí)行一條指令的時(shí)間又是多少呢?對(duì)于51單片機(jī)來(lái)說(shuō),指令執(zhí)行時(shí)間有三種可能,單周期、雙周期和四周期,不管一條指令需要做多少工作,都必然在規(guī)定的時(shí)間內(nèi)完成。
3.單片機(jī)程序的作用是什么?如何編寫(xiě)?如何寫(xiě)入單片機(jī)?
單片機(jī)程序的用途是讓單片機(jī)“聽(tīng)話”,按人們所預(yù)定的設(shè)計(jì)完成一系列動(dòng)作,最終實(shí)現(xiàn)一個(gè)特定的功能。
例如使用單片機(jī)控制流水燈,接通電源后,第一次燈亮,然后延時(shí)一段時(shí)間,第二次燈亮,然后延時(shí)一段時(shí)間,第三次燈亮……,延時(shí)一段時(shí)間后又回到第一次燈亮,如此循環(huán)不已。這里就有這樣的一些問(wèn)題:第一次亮幾盞燈、延時(shí)多少時(shí)間、一個(gè)循環(huán)中設(shè)置多少次不同的燈亮的情況……,這些決定了流水燈的花樣,流動(dòng)的速度,而這些,單片機(jī)顯然沒(méi)有自我判斷能力,必須依靠人們給它“布置”任務(wù),而它則是按人們的設(shè)計(jì)依次執(zhí)行。
要讓單片機(jī)“聽(tīng)話”,就要用單片機(jī)能夠聽(tīng)懂的語(yǔ)言發(fā)布命令,單片機(jī)能夠聽(tīng)懂的語(yǔ)言稱之為“指令”。任何一種型號(hào)單片機(jī)能夠接受的指令都是有限的,51單片機(jī)的指令條數(shù)為111條,而PIC單片機(jī)的指令僅有35條。每一條指令完成一個(gè)最基本的動(dòng)作,人們?yōu)榱艘瓿梢粋(gè)特定的功能,就要將這些指令排列組合,成為一個(gè)指令序列,這就是程序。
指令的表示形式有兩種:機(jī)器語(yǔ)言和匯編語(yǔ)言。以51為例,如果要讓P1.0引腳變?yōu)榈碗娖剑脵C(jī)器語(yǔ)言來(lái)表示就是 C2H 90H,將這兩個(gè)數(shù)放進(jìn)單片機(jī)的程序存儲(chǔ)器中,單片機(jī)執(zhí)行后,就可以讓P1.0引腳變?yōu)榈碗娖搅?而要讓P1.0引腳變?yōu)楦唠娖,用機(jī)器語(yǔ)言來(lái)表示就是D2H,90H。至于為什么是這兩個(gè)數(shù)字,大家沒(méi)必要追究,這是設(shè)計(jì)這塊芯片的設(shè)計(jì)工程師規(guī)定的,我們不能更改,只能學(xué)習(xí)。
C2H,90H就是一條指令,顯然這樣的指令形式是很難記憶的,編程也非常困難,于是人們使用了“助記符”來(lái)代替這些數(shù)字。例如C2H,90H的助記符是CLR P1.0,而D2H,90H的助記符是SETB P1.0,由于助記符采用了英語(yǔ)字母的縮寫(xiě),有一定含義,因此比數(shù)字形式的指令易記、易用。使用助記符形式的指令來(lái)編寫(xiě)程序就稱之為“匯編語(yǔ)言源程序”。但是匯編語(yǔ)言源程序是沒(méi)有辦法直接送到單片機(jī)內(nèi)部去的,使用助記符形式的指令編寫(xiě)的程序最終還是要變成為諸如:C2H,90H,D2H,90H,這種形式的指令才能被送入單片機(jī)的程序存儲(chǔ)器。將助記符形式的指令變?yōu)閿?shù)字形式的指令的過(guò)程稱之“匯編”。匯編有兩種方法,一種是“手工匯編”,即人們通過(guò)查表的形式找到所寫(xiě)匯編指令的數(shù)字形式然后寫(xiě)下來(lái);另一種是“機(jī)器匯編”,即編寫(xiě)好匯編語(yǔ)言源程序以后,使用一個(gè)計(jì)算機(jī)軟件對(duì)這些源程序進(jìn)行處理,從而得到數(shù)字形式的指令序列,這個(gè)指令序列通常被稱為“機(jī)器碼”,即可以直接被機(jī)器所執(zhí)行的代碼。
機(jī)器匯編后得到的數(shù)字形式的指令序列以一個(gè)文件的形式保存在磁盤(pán)上,這個(gè)文件的擴(kuò)展名一般是HEX,即人們常說(shuō)的HEX文件。得到了HEX文件后,就可以將其寫(xiě)入程序存儲(chǔ)器中了。要將程序?qū)懭胄酒,通常需要一個(gè)稱之為“編程器”的專用設(shè)備,在計(jì)算機(jī)上運(yùn)行與之配套的編程軟件,然后在這個(gè)軟件中打開(kāi)HEX文件,即可將其寫(xiě)入芯片中。隨著技術(shù)的發(fā)展,編程方式越來(lái)越多,但總的概念是這樣的,具體的細(xì)節(jié),將在另一個(gè)問(wèn)題“單片機(jī)編程器是什么”中回答。
4. 8位、16位、32位單片機(jī)中的“XX位”指什么?
8位、16位、32位是指單片機(jī)的“字長(zhǎng)”,也就是一次運(yùn)算中參與運(yùn)算的數(shù)據(jù)長(zhǎng)度,這個(gè)位是指二進(jìn)制位。以8位為例,8位二進(jìn)制的表達(dá)范圍是0000,0000~1111,1111即十進(jìn)制的0~255,即每次參與運(yùn)算的數(shù)據(jù)最大不能超過(guò)255。而16位機(jī)的字長(zhǎng)是16位,其數(shù)據(jù)表達(dá)范圍是0~65535,即每次參與運(yùn)算的數(shù)據(jù)最大不能超過(guò)65535;32位單片機(jī)的字長(zhǎng)是32位,其數(shù)據(jù)表達(dá)范圍是0~4294967295,即每次參與運(yùn)算的數(shù)據(jù)最大不能超過(guò)4294967295。
8位、16位、32位與單片機(jī)的性能密切相關(guān),通常32位機(jī)的性能要高于16位機(jī),而16位機(jī)的性能又要高于8位機(jī)。為什么會(huì)這樣呢?這要從2個(gè)方面來(lái)分析。第一,位數(shù)不同,運(yùn)算效率不同。對(duì)于8位機(jī)而言,由于在一次運(yùn)算中的每一個(gè)數(shù)都不能超過(guò)8位,因此即便如100+200=300這樣的運(yùn)算,它也不能一次完成,因?yàn)?00已超過(guò)了8位所能表達(dá)的最大范圍(255),因此,要對(duì)這樣的一個(gè)式子進(jìn)行運(yùn)算,就要編寫(xiě)一段程序,將運(yùn)算分步完成,最后合成起來(lái)得到一個(gè)正確的結(jié)果。而如果采用16位單片機(jī)來(lái)運(yùn)算的話,那么一次運(yùn)算就夠了,顯然分步完成所需要的時(shí)間要遠(yuǎn)遠(yuǎn)大于單步完成所需要的時(shí)間。同樣道理,當(dāng)某個(gè)運(yùn)算的結(jié)果或者中間值大于65535時(shí),16位機(jī)也不能一次運(yùn)算,要分步實(shí)現(xiàn)它,而32位機(jī)則可以一次運(yùn)算完成。第二,商業(yè)因素。通常運(yùn)算能力越高,表示這個(gè)單片機(jī)性能越強(qiáng),當(dāng)然,價(jià)格高一些人們也可以接受,有了價(jià)格空間,生產(chǎn)商通常都會(huì)在這些芯片中提供更多的其他的功能,使得芯片的整體性能得到更大的提升。
典型的單片機(jī)中,80C51系列,PIC系列,AVR系列都是8位單片機(jī);80C196、MSP430系列是16位機(jī);而目前非常熱門(mén)的ARM系列則是32位機(jī)。
5. 單片機(jī)編程器、仿真器、燒寫(xiě)器、下載線各是什么?有什么用處?
單片機(jī)編程器是用來(lái)將程序代碼寫(xiě)入存儲(chǔ)器芯片或者單片機(jī)內(nèi)部的工具,如圖5-1所示是一個(gè)典型的編程的外形。圖中黑色的集成電路插座,通過(guò)拔動(dòng)手柄可以將置于其中的集成電路芯片鎖緊或松開(kāi)。編程時(shí)鎖緊以保證接觸良好,編程完畢松開(kāi),可以更換下一片芯片。
圖5-1編程器
當(dāng)芯片是雙列直插形式時(shí),直接插在座子上就可以燒寫(xiě)了,但如果遇到如圖5-2所示的各種封裝形式的芯片,又如何寫(xiě)燒寫(xiě)呢?一種方法是使用適配器,如圖5-3所示是各種封裝芯片所使用的適配器。
圖5-2 各種封裝形式的集成電路
QFN32 適配器 SOP28適配器
圖5-3 各種封裝的編程適配器
另一種方法是使用下載線。隨著技術(shù)的進(jìn)步,越來(lái)越多的單片機(jī)芯片開(kāi)始支持“ISP”功能,即In System Programmer,在線可編程技術(shù)。利用這種技術(shù),將空白的(尚未編程的)芯片直接焊在印刷線路板上,利用預(yù)先留下的幾個(gè)引腳即可對(duì)芯片進(jìn)行編程,不必將芯片拆下來(lái)放到編程器上,因此,這給小批量制作帶來(lái)了極大的方便,也省去了購(gòu)買價(jià)格昂貴的適配器。如圖5-4所示是使用下載線對(duì)芯片進(jìn)行在線編程的示意圖。
圖5-4 下載線對(duì)芯片進(jìn)行在線編程示意圖
6.自學(xué)單片機(jī)必備的硬件設(shè)備有哪些?
學(xué)習(xí)單片機(jī),除了需要電腦以外,還需要以下的一些器材。
1.實(shí)驗(yàn)板
如果你對(duì)單片機(jī)還一無(wú)所知,那么自制或者購(gòu)買一塊實(shí)驗(yàn)板是比較好的選擇。通常在實(shí)驗(yàn)板上會(huì)設(shè)計(jì)一些開(kāi)關(guān)、LED指示燈、數(shù)碼管、各種接口芯片等常用器件,通過(guò)對(duì)這些器件的編程練習(xí),逐步掌握單片機(jī)的編程技術(shù)。
2.仿真機(jī)
仿真機(jī)的用途是替代電路板上的單片機(jī)芯片,仿真機(jī)通過(guò)串行口、USB接口等方式與與PC機(jī)聯(lián)機(jī)通信,接收PC端控制軟件發(fā)出的指令,以單步、過(guò)程單步、全速運(yùn)行等各種方式來(lái)執(zhí)行程序,以單步或過(guò)程單步方式執(zhí)行程時(shí),每次執(zhí)行完程序后可以將執(zhí)行的結(jié)果反饋到PC端的控制軟件中顯示出來(lái)。由于單片機(jī)編程時(shí)必須要明確每一條指令執(zhí)行完畢后會(huì)有什么樣的結(jié)果,弄清實(shí)際運(yùn)行后的結(jié)果是否與設(shè)想的結(jié)果相符,因此,仿真功能對(duì)于單片機(jī)的學(xué)習(xí)和開(kāi)發(fā)可以起到很重要的幫助作用。
3.編程器或者下載線
其用途是將代碼寫(xiě)入單片機(jī)芯片內(nèi)部。對(duì)于學(xué)習(xí)者來(lái)說(shuō),有了仿真機(jī)也可暫時(shí)不配編程器或下載線,因?yàn)橛辛藢?shí)驗(yàn)板、仿真機(jī)就可以做實(shí)驗(yàn)了。但是建議配置一臺(tái),這樣可以對(duì)單片機(jī)開(kāi)發(fā)的各個(gè)環(huán)節(jié)都有所了解。
4.萬(wàn)用表、電烙鐵等電子制作工具
單片機(jī)開(kāi)發(fā),不是簡(jiǎn)單的編程,到目前為止,還少有純粹的“單片機(jī)程序員”,通常要求開(kāi)發(fā)者軟、硬件方面都要熟悉,因此,這些電子制作工作還是要配備的。
需要說(shuō)明的是,這里所說(shuō)的仿真機(jī)、實(shí)驗(yàn)板、下載線或編程器等都是就一般概念而言的,并不涉及到具體的產(chǎn)品,市場(chǎng)上也有一些產(chǎn)品在設(shè)計(jì)時(shí)將實(shí)驗(yàn)板、仿真功能、下載或編程功能等中的一部分或者全部都集成到一塊板上,構(gòu)成一整套的實(shí)驗(yàn)系統(tǒng)。
上面介紹的這些設(shè)備,都需要有一定的投入,愛(ài)好者未必一定能夠購(gòu)買,其實(shí),只要有一定動(dòng)手能力,也可以自制一些簡(jiǎn)易的實(shí)驗(yàn)設(shè)備,同樣可以開(kāi)始學(xué)習(xí)。這里推薦采用STC單片機(jī)進(jìn)行學(xué)習(xí)的方案,STC系列單片機(jī)的特點(diǎn)是可以直接通過(guò)串口下載程序,從而將開(kāi)發(fā)工具的成本降到最低。如圖6-1所示是一個(gè)完整的電路,器件成本僅20多元,但可以實(shí)現(xiàn)諸如單燈閃爍、流水燈、鍵控?zé)簟C控制燈等一些常用功能,從而學(xué)習(xí)基本指令、定時(shí)器、計(jì)數(shù)器、串口通信等單片機(jī)知識(shí)。
圖6-1 簡(jiǎn)單的單片機(jī)實(shí)驗(yàn)電路板
圖中R1~R9為1K電阻,D1~D8是發(fā)光二極管,E1用10u電解,Y1用11.0592M晶振,C1和C2用27P小磁片,C3~C7用104磁片,U1使用STC89C52芯片,U2用MAX232。再自制或購(gòu)買一條串口電纜,用于和電腦的通信,制作線時(shí)使J1與電腦的串口端2,3,5分別相連即可。
制作好這個(gè)電路板以后,使用Keil軟件(在http://www.keil.com/demo/default.asp?bhcp=1可以下載DEMO版)編譯、鏈接程序,得到Hex文件,使用STC_ISP軟件(在http://www.mcu-memory.com下載)將Hex文件寫(xiě)入芯片中,從而觀察程序運(yùn)行的效果。
7.目前國(guó)內(nèi)常用的單片機(jī)有哪些?
1.80C51及其兼容系列
(1)80C51系列,這是最基本的系列。包括80C31,80C51,87C51,80C32,80C52,87C52等芯片,雖然這些芯片已基本不再使用,但它們是后續(xù)發(fā)展的芯片的基礎(chǔ)。其中80C31單片機(jī)片內(nèi)沒(méi)有ROM,80C51內(nèi)部是一次性可寫(xiě)4K的PROM,87C51內(nèi)部是4K的EEPROM,這幾種芯片內(nèi)部RAM均為128字節(jié)。而后三種芯片其內(nèi)部RAM均為8K,后兩種芯片的片內(nèi)ROM為8K字節(jié)。
(2)80C51兼容系列
這些芯片通常都與51系列單片機(jī)在指令一級(jí)兼容,但都擴(kuò)充了諸多的新功能。常見(jiàn)的主要有以下一些。
STC89系列單片機(jī),其主要特點(diǎn)有:直接通過(guò)串口對(duì)單片機(jī)編程;可編程為倍速運(yùn)行;超低功耗;內(nèi)置看門(mén)狗;內(nèi)部FLASH ROM可作為EEPROM作斷電保存數(shù)據(jù)之用。
STC12系列單片機(jī),其主要特點(diǎn)有:?jiǎn)螘r(shí)鐘周期,工作頻率0~35M,相當(dāng)于普通80C510~420M;寬電壓范圍;低功耗;芯片內(nèi)置E2PROM功能;內(nèi)置硬件看門(mén)狗;通用I/O口可以設(shè)置為四種工作模式,在強(qiáng)上拉模式時(shí)可以“吐出”電流。
菲利普的LPC系列,其主要特點(diǎn)有:內(nèi)置RC置振蕩器,選擇RC振蕩器時(shí)不需外接振蕩器件;所有口線均有20mA的LED驅(qū)動(dòng)能力;有較寬的工作電壓范圍。
C8051F系列,其主要特點(diǎn)有:一個(gè)機(jī)器周期僅為一個(gè)時(shí)鐘周期;增加了中斷源;有內(nèi)部獨(dú)立的時(shí)鐘源或接外部時(shí)鐘,并能在程序運(yùn)行時(shí)實(shí)現(xiàn)內(nèi)、外部時(shí)鐘的切換。每個(gè)I/O口引腳都可以設(shè)置為推挽或漏極開(kāi)路輸出,C8051F系列單片機(jī)I/O口最為獨(dú)特的是增加了數(shù)字交叉開(kāi)關(guān),利用數(shù)字交叉開(kāi)關(guān)可將內(nèi)部數(shù)字系統(tǒng)資源定向到P0、P1和P2端口I/O引腳。這個(gè)系列很多型號(hào)的芯片具有ADC、DAC、PCA等功能。
2.PIC系列
PIC單片機(jī)的發(fā)展思路與51單片機(jī)不同,它不搞單純的功能堆積,而是從實(shí)際出發(fā),重視產(chǎn)品的性能與價(jià)格比,依靠發(fā)展多種型號(hào)來(lái)滿足不同層次的應(yīng)用要求;精簡(jiǎn)指令使其執(zhí)行效率大為提高。目前有PIC10、PIC12、PIC16、PIC18系列數(shù)百個(gè)品種。以PIC16F676芯片為例,該芯片內(nèi)置1K字FLASH ROM,128字節(jié)EEPROM,64字節(jié)RAM,8路10位AD轉(zhuǎn)換器,內(nèi)置精度高達(dá)±1%的振蕩器,極低功耗,寬工作電壓范圍,這樣一款高性能的14腳芯片,價(jià)格不到¥7,性價(jià)比相當(dāng)高。
3.AVR系列
AVR系列單片機(jī)是增強(qiáng)型RISC結(jié)構(gòu)的單片機(jī),其主要特點(diǎn)是:速度快,一個(gè)機(jī)器周期僅為一個(gè)時(shí)鐘周期;品種豐富,與PIC系列類似,依靠發(fā)展多種型號(hào)來(lái)滿足不同層次的應(yīng)用要求;支持ISP、IAP功能,可在線編程,方便遠(yuǎn)程維護(hù);工作范圍寬、抗干擾能力強(qiáng)。以ATMEGA8芯片為例,該芯片內(nèi)置8K Flash ROM,512字節(jié)EEPROM,1K字節(jié)的RAM,8路10位AD,內(nèi)置RC振蕩器。這樣一款高性能28引腳的芯片,價(jià)格僅在¥7左右,性價(jià)比也相當(dāng)高。
4.其他
其他常用的單片機(jī)包括:ST、EMC、摩托羅拉、三星等等。這些單片機(jī)有些市場(chǎng)用量很大,但我們并沒(méi)有重點(diǎn)介紹,因?yàn)槲覀兘榻B的內(nèi)容主要針對(duì)業(yè)余愛(ài)好者,有些芯片雖然功能強(qiáng)大、性價(jià)比也很高,但其并不針對(duì)業(yè)余愛(ài)好者,小批量的芯片很難買到,仿真機(jī)、C編譯器等開(kāi)發(fā)工具價(jià)格極其昂貴,所以這里不作介紹,有興趣可以在網(wǎng)絡(luò)上搜索有關(guān)資料。
8.常用單片機(jī)的大致價(jià)位是多少?
單片機(jī)的價(jià)格相差很大,從小于1元到幾十元,上百元不等。下面就大致介紹一下常用單片機(jī)的價(jià)格。
單片機(jī)的價(jià)格與其出貨量、性能等有很大的關(guān)系。以80C51系列單片機(jī)為例,這是一個(gè)龐大的系列,這個(gè)系列中的單片機(jī)性能有很大差別。如內(nèi)部ROM不同,從1K~64K不等;引腳數(shù)不同,從14腳到84腳不等;內(nèi)部RAM不同,從128字節(jié)到2K不等;內(nèi)部模塊不等,如有一些單片機(jī)內(nèi)部配置了8位模數(shù)轉(zhuǎn)換器,有一些配置了10位模數(shù)轉(zhuǎn)換器,有一些內(nèi)部帶有CCP模塊等等。不同配置的單片機(jī)價(jià)格不同,一般愛(ài)好者常用的89S52單片機(jī)芯片價(jià)格約為6元左右。這款芯片片內(nèi)ROM為8K,片內(nèi)RAM為128字節(jié),內(nèi)部有看門(mén)狗電路。一種常用的PIC單片機(jī)PIC16F676,14引腳,帶有10位的AD轉(zhuǎn)換器,價(jià)格僅7元左右。通常功能越強(qiáng),價(jià)格也越高,但這并不絕對(duì),尤其是不同廠商的同內(nèi)類產(chǎn)品,往往沒(méi)法直接加以比較,因此,讀者如希望了解各種芯片的價(jià)格,還是要針對(duì)具體的型號(hào)進(jìn)行查找,有一些網(wǎng)站有相關(guān)報(bào)價(jià),可以供參考。
編輯:admin 最后修改時(shí)間:2018-05-19