|
一提起單片機(jī),也許有好多好多的人暉然不知其為何物。但當(dāng)你生活在繁華的現(xiàn)
代化大都市時(shí),你有沒有想過,為什么我們隨時(shí)都可以在ATM自動(dòng)柜員機(jī)里取
錢?為什么十字路口的交通燈能夠在沒有人干預(yù)的情況下有條不紊地指揮著交
通?為什么我們能用手機(jī)隨時(shí)隨地與他人進(jìn)行通話?我們平常所使用的數(shù)碼相
機(jī)、數(shù)碼電視機(jī)、數(shù)碼音響、遙控器、空調(diào)、智能洗衣機(jī)、智能玩具等等所謂的
高科技產(chǎn)品,它們到底是怎么構(gòu)成的呢?其實(shí)說到底,服務(wù)于我們現(xiàn)代化生活的
神秘之物,正是不為人所知的單片機(jī)!
目前,單片機(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ī)。更不用說自動(dòng)控制領(lǐng)域的機(jī)
器人、智能儀表、醫(yī)療器械了。從當(dāng)前情況來看,科技越發(fā)達(dá),智能化的東西就
越多,使用的單片機(jī)就越多。
據(jù)統(tǒng)計(jì),我國的單片機(jī)年容量已達(dá)1-3億片,且每年以大約16%的速度增長,但
相對(duì)于世界市場,我國的占有率還不到1%。特別是沿海地區(qū)的玩具廠等生產(chǎn)的產(chǎn)
品多數(shù)用到單片機(jī),并不斷地輻射向內(nèi)地, 這說明單片機(jī)應(yīng)用在我國才剛剛起
步,有著廣闊的前景。面對(duì)著學(xué)習(xí)單片機(jī)是一門終生受用的技術(shù);同時(shí)面對(duì)著生
活的現(xiàn)代化,我們衣、食、住、行也就越來越依賴各式各樣的“高科技”了,也
就有很多地方都用到了高集成電路IC和單片機(jī)。學(xué)習(xí)單片機(jī),做現(xiàn)代生活的領(lǐng)航
人,它將帶你進(jìn)入最具魅力的電子世界。
那么什么叫單片機(jī)呢?一臺(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等。
此時(shí),有讀者就會(huì)驚嘆的問:“家用計(jì)算機(jī)中的CPU一塊就要賣幾百元,而單片
機(jī)里面就包含了這么多東西,這價(jià)格那還了得嗎?再說這塊芯片想想也是非常之
大,有那么實(shí)用嗎?”其實(shí)不然,一片單片機(jī)芯片的價(jià)格并不是大家想象中的那
么高,恰好相反,它的價(jià)格是從幾元人民幣到幾十元人民幣這么便宜,體積也不
大,一般是40腳封裝,當(dāng)然功能多一些的單片機(jī)引腳比較多的,如68引腳等,功
能少的只有10多個(gè)或20多個(gè)引腳,有的甚至只有8個(gè)引腳。
為什么會(huì)這樣呢?功能有強(qiáng)弱,打個(gè)比方,市面上有的組合音響一套才賣幾百塊
錢,可是有的僅一臺(tái)功放機(jī)就要賣好幾千。另外這種芯片的生產(chǎn)量很大,技術(shù)也
很成熟,51系列的單片機(jī)已經(jīng)做了二十幾年,所以價(jià)格就低了。 既然如此,單
片機(jī)的功能肯定不強(qiáng),干嗎要學(xué)它呢? 話不能這樣說,實(shí)際工作中并不是任何
需要計(jì)算機(jī)的場合都要求計(jì)算機(jī)有很高的性能,一個(gè)控制電冰箱溫度的計(jì)算機(jī)難
道要用PIII?應(yīng)用的關(guān)鍵是看是否夠用,是否有很好的性能價(jià)格比。所以8051出
來二十多年,依然沒有被淘汰,還在不斷的發(fā)展中。
對(duì)于要學(xué)習(xí)單片機(jī)或者對(duì)單片有濃厚興趣的人來說,那么如何才能既快速又方便
的學(xué)習(xí)好它呢?
第一、要多方面獲取學(xué)習(xí)單片機(jī)技術(shù)方面的資料。購買有關(guān)書籍,并到相關(guān)的單
片機(jī)技術(shù)網(wǎng)站和IT網(wǎng)站獲取資料,例如,在網(wǎng)上可以找到仿真器的使用指導(dǎo)書、
各種系列單片機(jī)的使用說明和具體單片機(jī)芯片的數(shù)據(jù)說明,可以找到仿真器的電
路圖、實(shí)驗(yàn)板電路圖、芯片封裝知識(shí)等大量的實(shí)際應(yīng)用參考電路,當(dāng)然有些資料
是英文的,看懂英文資料是個(gè)挑戰(zhàn),學(xué)會(huì)4、6級(jí)英語就是為看資料的。英語難
學(xué),但是看資料容易,只要下決心,看完一本資料,就可以看懂所有的相關(guān)資
料。
第二、購買仿真器和實(shí)驗(yàn)電路板,如果經(jīng)濟(jì)條件不錯(cuò),可以直接購買。如何自制
仿真器和實(shí)驗(yàn)電路板呢?首先要到網(wǎng)上找到仿真器的電路圖,然后就可以使用畫
電路板軟件畫電路圖和電路板圖,這又是個(gè)挑戰(zhàn),要求你先前必須認(rèn)真學(xué)好PCB
圖制作方面的相關(guān)知識(shí),并熟練掌握一種以上的電子電路制圖軟件的使用方法。
仿真器電路非常簡單,但要把它制作出來還是需要下一番苦工夫的,找一本有關(guān)
書,然后練習(xí)畫原理圖,畫完原理圖后,就學(xué)習(xí)認(rèn)識(shí)元件封裝,再購買元件,這
時(shí)就可以畫電路板圖了,一旦畫好,將形成的PCB文件交給電路板制作公司,若
干天后,就可以得到電路板,焊上元器件,等實(shí)驗(yàn)電路板做好后,就可以與實(shí)驗(yàn)
電路板一起調(diào)試了。另外,仿真器本身的系統(tǒng)程序,也需要向仿真器電路圖設(shè)計(jì)
者購買。自制實(shí)驗(yàn)電路板,需要單片機(jī)芯片內(nèi)部工作原理的知識(shí)、封裝知識(shí),清
楚的知道每一個(gè)引腳的功能,還需要數(shù)碼管、按鈕、排電阻、三端穩(wěn)壓器、二極
管、散熱器、電解電容、普通電容、電阻、鈕子開關(guān)等元件的知識(shí),對(duì)于初學(xué)
者,可以做一個(gè)只有3個(gè)數(shù)碼管、8個(gè)按鈕、8個(gè)發(fā)光二極管的簡單實(shí)驗(yàn)板,這樣
的實(shí)驗(yàn)板,雖然簡單,但足可以幫助初學(xué)者入門。
第三、可以從網(wǎng)上獲得仿真器用的仿真軟件,或者如果你是購買的仿真器,它也
有配套相關(guān)的仿真軟件,將其安裝到計(jì)算機(jī)上。這樣就可以調(diào)試仿真器和實(shí)驗(yàn)
板,將仿真器的一端與PC機(jī)相連,另一端連接實(shí)驗(yàn)板的接口,上電后,檢查仿真
器芯片、實(shí)驗(yàn)板上芯片是否發(fā)熱(用手模),PC機(jī)是否工作正常后,運(yùn)行仿真軟
件,找個(gè)C語言或匯編語言的例子,編譯成功后下載到單片機(jī)中,如果能夠下
載,說明一切成功。否則還需要仔細(xì)研究,一般情況下,只要電路板上的電路正
確,元件參數(shù)準(zhǔn)確,沒有不成功的。
上面的準(zhǔn)備工作做好后,我們就可以進(jìn)入到單片機(jī)技術(shù)的學(xué)習(xí)階段了。
第四、我們要從宏觀上把握好單片機(jī)技術(shù)的核心內(nèi)容。只有你在腦海里有了這門
技術(shù)的核心內(nèi)容,那么你在學(xué)習(xí)的過程中,你就會(huì)知道你是在學(xué)什么?學(xué)到哪一
部分了?學(xué)了有什么用?往往好多學(xué)生在學(xué)習(xí)這門技術(shù)的過程中,不注重對(duì)整門
技術(shù)的宏觀把握,導(dǎo)致了學(xué)習(xí)的時(shí)候糊里糊涂,然后除了天天喊什么“聽不懂
啦。”“在學(xué)天書啦!”“太難學(xué)太枯燥啦!”等等就真的什么也學(xué)不會(huì)了,其
實(shí)只要你掌握好單片機(jī)技術(shù)的知識(shí)主干,那么學(xué)習(xí)起來就心中有數(shù)了,最起碼也
能知道自己在學(xué)什么。圖1-1是當(dāng)前一般院校單片機(jī)教材的主要知識(shí)結(jié)構(gòu),大家
要把這一幅圖深深印在腦海里,帶著它學(xué)習(xí)起來心里就有底了。
單片機(jī)基礎(chǔ)知識(shí)主要是回顧一下學(xué)過的一些電子入門知識(shí),包括數(shù)字電子技術(shù),
計(jì)算機(jī)基礎(chǔ)知識(shí)等。然后分成軟硬件兩個(gè)方面來學(xué)習(xí)。
硬件方面主要學(xué)習(xí)單片機(jī)的內(nèi)部結(jié)構(gòu),這部分的知識(shí)非常重要,特別是存儲(chǔ)器結(jié)
構(gòu)這一方面的知識(shí),更要好好的掌握。硬件方面接下來要學(xué)習(xí)的就是單片機(jī)的三
件法寶,它們分別是中斷系統(tǒng)、定時(shí)/計(jì)數(shù)器,串行接口,這三個(gè)方面的內(nèi)容可
以為將來的單片機(jī)應(yīng)用系統(tǒng)電路設(shè)計(jì)帶來方便。然后就是要學(xué)習(xí)單片機(jī)的片外擴(kuò)
展及接口技術(shù),單片機(jī)的三件法寶有時(shí)不夠用怎么辦?不怕,可以通過擴(kuò)展來實(shí)
現(xiàn),比如8051有兩個(gè)定時(shí)/計(jì)數(shù)器,而我們?cè)O(shè)計(jì)的系統(tǒng)要用到四個(gè)定時(shí)器,怎么
辦,我們可以通過擴(kuò)展外部定時(shí)芯片來擴(kuò)展定時(shí)/計(jì)數(shù)器的個(gè)數(shù)。又比如單片機(jī)
要接收一個(gè)溫度信號(hào),我們就可以通過擴(kuò)展接口技術(shù),為單片機(jī)外部加一個(gè)溫度
傳感器,放大器,A/D轉(zhuǎn)換器等來完成任務(wù)。
軟件方面主要先學(xué)習(xí)單片機(jī)的指令系統(tǒng),所謂指令就是指示單片機(jī)完成一個(gè)動(dòng)作
的命令。每種型號(hào)的單片機(jī)都有各自的指令系統(tǒng),我們只要熟悉地掌握一種型號(hào)
的單片機(jī)的指令系統(tǒng),其它的就皆能觸類旁通了。熟悉指令系統(tǒng)以后,我們就可
以采用這些指令來編寫程序了,程序是能夠使單片機(jī)完成某個(gè)功能的指令的集
合。如何使編寫出來的程序符合單片機(jī)應(yīng)用系統(tǒng)的要求,如何達(dá)到程序的最優(yōu)
化,這就是學(xué)習(xí)程序設(shè)計(jì)技術(shù)的內(nèi)容了。
通過學(xué)習(xí)完單片機(jī)軟硬件方面的知識(shí),我們就可以來設(shè)計(jì)一個(gè)單片機(jī)應(yīng)用系統(tǒng),
但是在設(shè)計(jì)的時(shí)候要注意一些什么問題,如何設(shè)計(jì)才能使整個(gè)系統(tǒng)達(dá)到抗干擾、
可靠性高等等問題,都是在單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)這一方面我們要學(xué)習(xí)的。
第五、從細(xì)微處著手學(xué)習(xí)好單片機(jī)技術(shù)的每個(gè)主要知識(shí)點(diǎn)。可具體從下面幾步入
手:
1、先學(xué)習(xí)數(shù)字I/O的使用。信號(hào)的輸入輸出,都是通過單片機(jī)的I/O口來實(shí)現(xiàn)
的。我們可以通過使用按鈕輸入信號(hào),發(fā)光二極管顯示輸出電平這樣的實(shí)例,就
可以學(xué)習(xí)引腳的數(shù)字I/O功能,在按下某個(gè)按鈕后,某發(fā)光二極管發(fā)亮,這就是
數(shù)字電路中組合邏輯的功能,雖然很簡單,但是可以學(xué)習(xí)一般的單片機(jī)編程思
想,例如,必須設(shè)置很多寄存器對(duì)引腳進(jìn)行初始化處理,才能使引腳具備有數(shù)字
輸入和輸出功能。每使用單片機(jī)的一個(gè)功能,就要對(duì)控制該功能的寄存器進(jìn)行設(shè)
置,這就是單片機(jī)編程的特點(diǎn),千萬不要怕麻煩,所有的單片機(jī)都是這樣。
2、定時(shí)器的使用。學(xué)會(huì)定時(shí)器的使用,就可以用單片機(jī)實(shí)現(xiàn)時(shí)序電路,時(shí)序電
路的功能是強(qiáng)大的,在工業(yè)、家用電氣設(shè)備的控制中有很多應(yīng)用,例如,可以用
單片機(jī)實(shí)現(xiàn)一個(gè)具有一個(gè)按鈕的樓道燈開關(guān),該開關(guān)在按鈕按下一次后,燈亮3
分鐘后自動(dòng)滅,當(dāng)按鈕連續(xù)按下兩次后,燈常亮不滅,當(dāng)按鈕按下時(shí)間超過2s,
則燈滅。數(shù)字集成電路可以實(shí)現(xiàn)時(shí)序電路,可編程邏輯器件(PLD)可以實(shí)現(xiàn)時(shí)
序電路,可編程控制器(PLC)也可以實(shí)現(xiàn)時(shí)序電路,但是只有單片機(jī)實(shí)現(xiàn)起來
最簡單,成本最低。定時(shí)器的使用是非常重要的,邏輯加時(shí)間控制是單片機(jī)使用
的基礎(chǔ)。
3、中斷系統(tǒng)的學(xué)習(xí)。單片機(jī)的特點(diǎn)是一段程序反復(fù)執(zhí)行,程序中的每個(gè)指令的
執(zhí)行都需要一定的執(zhí)行時(shí)間,如果程序沒有執(zhí)行到某指令,則該指令的動(dòng)作就不
會(huì)發(fā)生,這樣就會(huì)耽誤很多快速發(fā)生的事情,例如,按鈕按下時(shí)的下降沿。要使
單片機(jī)在程序正常運(yùn)行過程中,對(duì)快速動(dòng)作做出反應(yīng),就必須使用單片機(jī)的中斷
功能,該功能就是在快速動(dòng)作發(fā)生后,單片機(jī)中斷正常運(yùn)行的程序,處理快速發(fā)
生的動(dòng)作,處理完成后,再返回執(zhí)行正常的程序。中斷功能使用中的困難是需要
精確地知道什么時(shí)候不允許中斷發(fā)生(屏蔽中斷)、什么時(shí)候允許中斷發(fā)生(開
中斷),需要設(shè)置哪些寄存器才能使某種中斷起作用,中斷開始時(shí),程序應(yīng)該干
什么,中斷完成后,程序應(yīng)該干什么等等。中斷學(xué)會(huì)后,就可以編制更復(fù)雜結(jié)構(gòu)
的程序,這樣的程序可以使CPU同時(shí)做幾件事。
4、與PC機(jī)進(jìn)行RS232通信。單片機(jī)一般都有USART接口, USART接口不能直接與
PC機(jī)的RS232接口連接,它們之間的邏輯電平不同,需要使用一塊232芯片進(jìn)行電
平轉(zhuǎn)換。USART接口的使用是非常重要的,通過該接口,可以使單片機(jī)與PC機(jī)之
間交換信息,雖然RS232通信并不先進(jìn),但是對(duì)于接口的學(xué)習(xí)是非常重要的。正
確使用USART接口,需要學(xué)習(xí)通信協(xié)議,PC機(jī)的RS232接口編程等等知識(shí)。試想,
單片機(jī)實(shí)驗(yàn)板上的數(shù)據(jù)顯示在PC機(jī)監(jiān)視器上,而PC機(jī)的鍵盤信號(hào)可以在單片機(jī)實(shí)
驗(yàn)板上得到顯示,將是多么神奇的事情啊!
以上三步學(xué)會(huì),就相當(dāng)于牢牢掌握了單片機(jī)三大法寶,就有能力設(shè)計(jì)一些簡單的
單片機(jī)應(yīng)用系統(tǒng)了。
5、學(xué)會(huì)用單片機(jī)外接RAM、ROM、A/D、D/A轉(zhuǎn)換等芯片。必竟僅依靠一片單片機(jī)
芯片來設(shè)計(jì)大型的應(yīng)用系統(tǒng),其力量是有限的,要想使單片機(jī)具有出神入化的功
能,就必須學(xué)會(huì)用它與其它各種類型的芯片連接,完成更加意想不到的功能。例
如讓單片機(jī)與芯片27512連接,那么單片機(jī)就可以存貯256KB的程序了;如果讓單
片機(jī)與芯片DAC0832或AD0809連接,那么這個(gè)單片機(jī)系統(tǒng)就具有數(shù)模轉(zhuǎn)換或模數(shù)
轉(zhuǎn)換的功能了,通過這些A/D或D/A轉(zhuǎn)換,可以使單片機(jī)操作模擬量,顯示和檢測
電壓、電流等信號(hào)。學(xué)習(xí)時(shí)注意模擬地與數(shù)字地、參考電壓、采樣時(shí)間,轉(zhuǎn)換速
率,轉(zhuǎn)換誤差等概念。使用A/D轉(zhuǎn)換功能的簡單的例子是設(shè)計(jì)一個(gè)電壓表。
6、學(xué)會(huì)PCI、I2C接口、USB接口、TCP/IP接口和液晶顯示器等的接口。這些接口
的使用可以使單片機(jī)更容易連接外部設(shè)備,在擴(kuò)展單片機(jī)功能方面非常重要。同
時(shí)可以學(xué)習(xí)一些比較、捕捉、PWM功能,這些功能可以使單片機(jī)能夠控制電機(jī),
檢測轉(zhuǎn)速信號(hào),實(shí)現(xiàn)電機(jī)調(diào)速器等控制起功能。
綜上所述,學(xué)習(xí)單片機(jī)就是要采用理論與實(shí)踐相結(jié)合的方法,采用軟件與硬件同
步掌握的方法來學(xué)習(xí)單片機(jī)技術(shù)。單片機(jī)技術(shù)是一門實(shí)操性很強(qiáng)的專業(yè)課,單方
面的啃書本是勞而無獲的。在學(xué)習(xí)的過程中也不能一味地學(xué)習(xí)硬件知識(shí)或者一個(gè)
勁地學(xué)習(xí)編程技術(shù),而是兩方面都要顧及,一方面要學(xué)習(xí)硬件,一方面也要學(xué)習(xí)
軟件。通過硬件知識(shí)的學(xué)習(xí),你能夠了解到如何編程來控制硬件,通過軟件編程
的學(xué)習(xí),你又可以更進(jìn)一步學(xué)習(xí)到單片機(jī)硬件的工作機(jī)制和原理。
在知識(shí)爆炸的年代里,即使天天學(xué)習(xí),也很難跟上科學(xué)技術(shù)的發(fā)展。學(xué)習(xí)單片機(jī)
技術(shù)首要的是興趣,愛好單片機(jī)才能學(xué)會(huì)單片機(jī),不為什么目的,只為學(xué)習(xí)的樂
趣,當(dāng)然要是興趣也能賺錢,則是一舉兩得。學(xué)會(huì)使用單片機(jī)其實(shí)是學(xué)會(huì)了使用
工具,充其量是個(gè)補(bǔ)鍋、鋦碗的匠人。如果再要進(jìn)步,就需要在信號(hào)識(shí)別、控制
理論、數(shù)字信號(hào)處理理論、通信理論等方面下工夫,只有這樣,才能開發(fā)出高水
平、高附加值、具有知識(shí)產(chǎn)權(quán)的產(chǎn)品,達(dá)到熟練運(yùn)用的至高境界。單片機(jī)是
DSP、嵌入式操作系統(tǒng)等高級(jí)硬件產(chǎn)品開發(fā)的基礎(chǔ)。如果想要進(jìn)一步的發(fā)展,必
須學(xué)會(huì)單片機(jī)的開發(fā)。如果在學(xué)會(huì)單片機(jī)的基礎(chǔ)之上,學(xué)會(huì)CPLD和FPGA的開發(fā)以
及硬件描述語言,就可以在高速產(chǎn)品的開發(fā)方面如魚得水。
|
|