我對(duì)單片機(jī)的理解
單片機(jī),single chip microcomputer,單芯片微型計(jì)算機(jī)。總體來說,他就是一個(gè)芯片。但是他是一個(gè)特殊的芯片,因?yàn)樗皇菍?shí)現(xiàn)單獨(dú)的邏輯功能。他是將一個(gè)整體的計(jì)算機(jī)系統(tǒng)集成到這個(gè)芯片上。這個(gè)計(jì)算機(jī)系統(tǒng)包括運(yùn)算器,控制器,存儲(chǔ)器,輸入設(shè)備和輸出設(shè)備。
其實(shí)單片機(jī)的學(xué)習(xí),和計(jì)算機(jī)的學(xué)習(xí)差別不是太大。包括運(yùn)算器,控制器,存儲(chǔ)器,以及輸入輸出設(shè)備的學(xué)習(xí)。
運(yùn)算器
運(yùn)算器由運(yùn)算部件--算術(shù)邏輯單元(alu)、累加器、計(jì)算器等部件組成。
控制器
學(xué)習(xí)的難點(diǎn)在于涉及到指令方面的操作。控制器由程序計(jì)數(shù)器,指令寄存器,指令譯碼器,時(shí)序發(fā)生器和操作控制器。
單片機(jī)的開發(fā)過程:
這里所說的開發(fā)過程并不是一般書中所說的從任務(wù)分析開始,我們假設(shè)已設(shè)計(jì)并制作好硬件,下面就是編寫軟件的工作。在編寫軟件之前,首先要確定一些常數(shù)、地址,事實(shí)上這些常數(shù)、地址在設(shè)計(jì)階段已被直接或間接地確定下來了。如當(dāng)某器件的連線設(shè)計(jì)好后,
其地址也就被確定了,當(dāng)器件的功能被確定下來后,其控制字也就被確定了。然后用文本編輯器(如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)入即可寫片。
開發(fā)語(yǔ)言的選擇
目前,很多人對(duì)匯編語(yǔ)言并不認(rèn)可??梢哉f,掌握用C語(yǔ)言單片機(jī)編程很重要,可以大大提高開發(fā)的效率。不過初學(xué)者可以不了解單片機(jī)的匯編語(yǔ)言,但一定要了解單片機(jī)具體性能和特點(diǎn),不然在單片機(jī)領(lǐng)域是比較致命的。如果不考慮單片機(jī)硬件資源,在KEIL中用C胡亂編程,結(jié)果只能是出了問題無法解決!可以肯定的說,最好的C語(yǔ)言單片機(jī)工程師都是從匯編走出來的編程者,因?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)合下。總的來說做單片機(jī)編程要靈活使用匯編語(yǔ)言與C語(yǔ)言,讓單片機(jī)的強(qiáng)大功能以最高是效率展示給用戶。
常用的單片機(jī)類型
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ī):
是臺(tái)灣義隆公司的產(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 51LPC系列單片機(jī)(51單片機(jī)):
PHILIPS公司的單片機(jī)是基于80C51內(nèi)核的單片機(jī),嵌入了掉電檢測(cè)、模擬以及片內(nèi)RC振蕩器等功能,這使51LPC在高集成度、低成本、低功耗的應(yīng)用設(shè)計(jì)中可以滿足多方面的性能要求.
HOLTEK單片機(jī):
臺(tái)灣盛揚(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):
是臺(tái)灣松翰公司的單片,大多為8位機(jī),有一部分與PIC 8位單片機(jī)兼容,價(jià)格便宜,系統(tǒng)時(shí)鐘分頻可選項(xiàng)較多,有PMW ADC 內(nèi)振 內(nèi)部雜訊濾波。缺點(diǎn)RAM空間過小,抗干擾較好。
三星單片機(jī)
三星單片機(jī)有KS51和KS57系列4位單片機(jī),KS86和KS88系列8位單片機(jī),KS17系列16位單片機(jī)和KS32系列32位單片機(jī),三星還為ARM公司生產(chǎn)ARM單片機(jī),常見的S344b0等.三星單片機(jī)為OTP型ISP在片編程功能.
SST 單片機(jī)
美國(guó)SST公司推出的SST89系列單片機(jī)為標(biāo)準(zhǔn)的51系列單片機(jī),包括SST89E/V52RD2, SST89E/V54RD2,SST89E/V58RD2,SST89E/V554RC,SST89E/V564RD等.它與8052系列單片機(jī)兼容.提供系統(tǒng)在線編程(ISP功能).內(nèi)部flash擦寫次數(shù)1萬次以上,程序保存時(shí)間可達(dá)100年.
還有很多優(yōu)秀的單片機(jī)生產(chǎn)企業(yè)這里沒有收集,每個(gè)企業(yè)都有自己的特點(diǎn),大家根據(jù)需要選擇單片機(jī),在完全實(shí)現(xiàn)功能的前提下追求低價(jià)位,當(dāng)然并不是這樣最好,實(shí)際中選擇單片機(jī)跟開發(fā)者的應(yīng)用習(xí)慣和開發(fā)經(jīng)驗(yàn)是密不可分的。
單片機(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)。