單片機系統(tǒng)學結(jié)
從剛開始接觸單片機,到現(xiàn)在已經(jīng)有4年的時間了,在這期間學習和使用了51單片機、飛思卡爾單片機,lpc2138,pic16f887等系列的單片機,每接觸一款單片機,都會經(jīng)歷熟悉其基本開發(fā),然后將其用于項目中的過程,對于如何學習一款單片機,自己做了如下的總結(jié)。
大家都知道,51單片機是最容易入門的,不僅因為其編程簡單,更重要的是網(wǎng)上的資料非常豐富。所以一般學習單片機開發(fā)的都將51單片機作為入門開發(fā)的首選。我學習51單片機的時候是采用這樣的一個步驟進行學習的:
第一步(熟悉的過程):買了一款51單片機開發(fā)板,然后就開始了我的學習之旅,剛開始的時候沒有去看視頻教程,而是對著一本實驗教材進行學習,那本實驗教材的名字記不清楚了,但是其內(nèi)容就是圍繞單片機的led燈進行控制,將51單片機內(nèi)部的各個功能部件全部都使用到了,這樣就能使我在很短的時間內(nèi),通過控制led燈的亮、滅熟悉了51單片機的內(nèi)部的各種資源,這時對51單片機也就沒有感到陌生了。所以,個人覺得,學習單片機,要從實驗入手,先熟悉單片機再說,開發(fā)語言開始使用的是c語言。
第二步(進階的過程):有了第一步的基礎(chǔ)之后,接下來的便是進階的過程,當時,我看的是郭天祥十天學會單片機的視頻教程,因為這個教程從基礎(chǔ)到復雜的編程慢慢深入,講的比較的全面,而且也生動,所以那一階段,也是我學習單片機進步最快的階段,每次聽課的時候,按照上面的實驗,以及課堂上面調(diào)試程序時出現(xiàn)的一些問題,自己認真的在電腦上進行調(diào)試,并分析產(chǎn)生故障的原因,讓我有了一定的開發(fā)基礎(chǔ)。在看完了視頻教程之后,后面又對基礎(chǔ)的知識進行了下補習,主要是看單片機原理性的教材,因為有些細節(jié)性的東西還是要從教材上面獲得。
第三步(項目實戰(zhàn)的階段):學習單片機的時候,雖然也編寫了一些程序,但是那些都是一些很小的模塊程序,并沒有起到綜合應用的目的,所以在這之后,我和另外一個學習硬件的同學一起組成了一個小的團隊,進行項目實踐開發(fā),那時候,實驗室的條件比價好,有很多的器件可以自己使用。所以,我們就設(shè)計了我們的第一個作品,基于單片機的液體點滴監(jiān)控系統(tǒng)。做這個系統(tǒng)時,就將以前單片機所學的知識,做了一個綜合的應用,包括有l(wèi)cd1602控制,串口的控制等。
經(jīng)過以上三個步驟的學習之后,對于51單片機的開發(fā)基本上就算入門了。而對于其他類型的單片機,如飛思卡爾單片機,lpc2148 arm7單片機,pic16f887等,雖然每個系列的功能不一樣,但是最基本的編程思想還是一樣的,不同的可能就是編譯器,程序下載的軟件等差別,所以有了51單片機的開發(fā)基礎(chǔ)之后,學習其他單片機所采用的方法就是一個差異化的學習,學習各種單片機不同的地方,這樣,就能很快的熟悉一款新的型號的單片機。
如在學習pic16f887這個系列的單片機時,我首先做的工作不是去閱讀數(shù)據(jù)手冊,而是先拿著demo代碼,在編譯軟件中編譯、鏈接、生成hex文件,然后將其下載到開發(fā)板中跑起來,這個過程主要就是學習其軟件的基本操作,有了這個基礎(chǔ)之后,就能自己進行編程、測試。之后就是熟悉其編程的模式,所謂其編程模式,就是寄存器的控制,中斷程序的編寫,熟悉了這個操作,也就能控制其他的功能模塊了,如串口的控制、i2c硬件控制器的控制。這些基本的開發(fā)熟悉了之后,接下來便是學習差異的部分,例如pic單片機c語言中,其堆棧深度不能超過8級,超過了之后,將會使得程序出現(xiàn)跑飛的現(xiàn)象。而且內(nèi)存的分配完全要靠自己來控制,分成了4個bank的數(shù)據(jù),bank0,bank1,bank2,bank3 等。這些就是每個系列單片機所獨有的一些東西,這些東西需要詳細的了解,因為它們可能為你的編程帶來很大的便利。
以上就是我學習單片機的總結(jié),如果大家有更好的學習方法,希望大家能夠提出來,一起討論,共同進步。
單片機系統(tǒng)學結(jié) [篇2]
人的一生是一個不斷學習、不斷成長的過程。轉(zhuǎn)眼間,研究生的學習生涯結(jié)束了,走上新的工作崗位;仡^看看,發(fā)現(xiàn)自己不知不覺已經(jīng)走過了五年的單片機學習之旅。
在2003年最初接觸單片機的時候,在我心中覺得51就是單片機,單片機就是51,根本不知道還有其他單片機的存在。那時候老師只教會了我們匯編語言,根本不知道用c語言也可以進行單片機開發(fā)。幸運的.是,我加入了單片機興趣小組,在老師的指導下,做了一系列實驗,有“基于ds18b20的溫度采集系統(tǒng)”、“有基于164的移位寄存器的燈光控制系統(tǒng)”、“有步進電機和直流電機的控制系統(tǒng)”。這時候我才發(fā)現(xiàn),這是學習單片機的一個最好途徑——在實踐中領(lǐng)悟理論,用理論指導實踐。在上課的整整一個學期中,雖然老師講得很詳細,但是大部分概念都是到了實際動手做東西的時候才弄明白的。而且在經(jīng)歷了迷惑之后再搞清楚,印象就特別深刻。直到現(xiàn)在我對那些概念和接口都非常清晰。其實我也很慶幸學習和使用了兩年多的匯編語言。由于有這些鍛煉,我對單片機底層結(jié)構(gòu)和接口時序就弄得很清楚。在使用c語言開發(fā)的時候,優(yōu)化代碼和處理中斷也就不會太費勁。我覺得,雖然現(xiàn)在絕大部分單片機開發(fā)都使用c語言,甚至有些公司還推出了圖形化編程的工具,這樣對于項目的開展從時間上快了很多,在管理上也規(guī)范了不少,但是從學習和想深入掌握單片機精髓的角度來說,還是需要熟練掌握匯編語言的使用。
機會總是青睞于有準備的人。也許有了前面一段時間的理論和實踐的積累,我才慢慢得到了一些參加科技競賽和參與科研項目的機會。在參加第一屆浙江省機械設(shè)計競賽的時候,我們設(shè)計的由多單片機系統(tǒng)協(xié)調(diào)控制的“月球車”機器人奪得了唯一的一個特等獎。這個競賽給我最大的收獲是我對單片機的認識改變了,它不再僅僅是一門學科了,它是一個可以讓你的創(chuàng)意得到充分發(fā)揮的平臺。后來參與了“基于視頻分劃技術(shù)的鋼卷尺自動切零位機”、“電能表渦杠渦輪嚙合深度檢測系統(tǒng)”、“基于公共電話網(wǎng)的水表集抄數(shù)據(jù)路由器”、“高精度電感微位移測量系統(tǒng)”等一些實際的項目。在這些過程中,我發(fā)現(xiàn)只是精通單片機技術(shù)還不能很好的解決問題。體會最深的是,單片機只有融合到各種應用領(lǐng)域中,才能展現(xiàn)它的最大活力。然而單片機僅僅是一個工具而已,要做好單片機系統(tǒng)還需要各種應用領(lǐng)域的專業(yè)知識的支持。例如,在“基于視頻分劃技術(shù)的鋼卷尺自動切零位機”中,就需要搞清楚全電視信號的時序,弄明白鋼卷尺切零位機的工作原理,懂得怎么利用疊加在視頻信號中的橫豎線來進行刻度的瞄準等。沒有這些專業(yè)知識,就算單片機技術(shù)再厲害也不可能做好這個項目。脫離應用背景的單片機開發(fā),就像一個沒有靈魂的軀體一樣。
隨著arm的出現(xiàn),我曾經(jīng)認為,8位單片機可能在32位單片機的沖擊下就此走進歷史,可是很快就認識到我是錯誤的。隨著技術(shù)的革新和時間的推移,各大單片機公司紛紛將單片機朝著片上系統(tǒng)這個方向發(fā)展,集成了現(xiàn)在各種流行的技術(shù)和常用的模塊。我相信,在當前國內(nèi)和國外的這個市場中,8位單片機應用的市場仍然是充滿生機,活力無限。在市場的不斷變化和技術(shù)的不斷更新過程中,8位單片機也會順應潮流不斷革新。
從我五年走過的路來看,單片機學習的過程應該是一個循序漸進、不斷學習、不斷積累的過程,可以分為三個階段。
第一階段:掌握開發(fā)單片機的必備基礎(chǔ)知識。首先是熟練掌握單片機的基本原理,其實各家各門的單片機其基本結(jié)構(gòu)和原理都差不多,特別是共有的知識需要好好理解和掌握。例如,內(nèi)核結(jié)構(gòu)、內(nèi)存分配、中斷處理、定時計數(shù)、串行通信、端口復用等一些最基本的概念和原理。除此之外,我們還需要具備模擬電子、數(shù)字電子、c語言程序開發(fā)知識以及原理圖和pcb設(shè)計等一些技能。在進行系統(tǒng)開發(fā)的時候,進行原理設(shè)計、pcb布板、程序編寫、系統(tǒng)聯(lián)調(diào)這些工作都是在所難免的。
第二階段:在掌握好一款單片機原理和應用的基礎(chǔ)上,開始學習其他各家單片機的獨有技術(shù),學不了那么多也要多了解了解。同時盡可能多地掌握單片機的一些外圍器件和常用電路,以備不時之需。有時候客戶要求低成本,那我們只好選用合鈦、義隆、華邦等這類臺灣芯片;如果客戶要求工業(yè)級的性能,那么我們就得從pic、nec、飛思卡爾、nxp等這些歐美和日式單片機中選擇;若要進行功耗的開發(fā),選用msp430系列應該有一定優(yōu)勢;在進行測量儀器設(shè)計的時候,c8051和aduc842這類數(shù)模混合芯片就顯得比較方便。所以說最好每個類型的單片機都會一兩款,在實際項目選型中可以更加靈活。另外,要注意平時的技術(shù)積累。比如,在項目開發(fā)過程中將一些常用的接口程序和控制算法整理成模塊或者函數(shù),在其他的項目開發(fā)中,有同樣或者接近的需求時馬上就可以使用,又快又好。
第三階段:在實際的項目開發(fā)過程中,不斷深化單片機應用技術(shù),不斷積累應用行業(yè)的專業(yè)知識。例如,我完成了“高精度電感微位移測量系統(tǒng)”,就會對電感傳感器的測量機理和信號特性、測量電路的設(shè)計、電磁兼容處理、誤差修正和非線性處理等測控方面的專業(yè)技術(shù)有很深的認識。以后碰到類似的項目時,很多東西就可以直接利用了。有了扎實的單片機應用相關(guān)的基礎(chǔ)知識,并且熟悉掌握了幾款不同類型單片機的開發(fā)方法,再結(jié)合實際的應用背景,那么就可以隨心所欲,設(shè)計出性能最優(yōu)、結(jié)構(gòu)最合理的單片機應用系統(tǒng)。這是我最大的奮斗目標,我覺得這也應該是單片機應用的最高境界吧。
在這五年的學習中,有感慨、有遺憾、有憧憬、有希望,更重要的是我對單片機應用這個領(lǐng)域充滿熱情。由于才疏學淺、涉世未深,希望能與行業(yè)里的各位老師多多交流,不斷學習,不斷成長。
單片機系統(tǒng)學結(jié) [篇3]
基于本人學習單片機的痛苦經(jīng)歷,特編寫本教程,以此獻給廣大的單片機初學者,希望您能從中受益。
作者提示:本教程乃最通俗易懂之單片機教材也,如果您還是看不懂,請千萬不要涉足此行,以免誤入歧途,耽誤您的前程*_*
拿到這本教程您首先就會想,什么是iap教學法?是不是一種什么全新的教學方法?當然不是,我可沒有那么大的本事,其實這只是我杜撰的一個新名詞,意思就是in applications program(在應用中編程),當然這只是針對單片機教學,說法是否正確,還得您說了算。
至于為什么要提這種說法,那我倒想說幾句。大家都知道,學習電子技術(shù)是一件非常無聊和枯燥的事情,為什么會有這種想法,就是因為我們傳統(tǒng)的教學方法只重理論而忽略了實踐,要一個人記住那些空洞而有無聊的理論知識實在不是一件容易的事,好在我們總算熬過來了,不管如何,也多多少少的學習了一些電子基礎(chǔ)知識。
接下來我們應該進一步掌握些什么知識呢,凡涉足此行的朋友都知道,那就是單片機。不過這可不是一件容易的事,倒不是因為單片機很難學,而實在是我們身邊很難找到一本專為單片機入門者而編寫的教材。翻一下傳統(tǒng)的單片機教材,都好象是為已經(jīng)懂單片機的人而寫的,一般總是以單片機的結(jié)構(gòu)為主線,先講硬件原理,然后是指令,接著講軟件編程,再是系統(tǒng)擴展和外圍器件,最后舉一些實例(隨
,很少涉及單片機的基礎(chǔ)知識,如果按照此種學習方法,想便說一點:很多書中的實例都是有錯誤的)
進行產(chǎn)品開發(fā),就必須先把所有的知識全部掌握了才可以進行實際應用。孰不知,單片機不象模擬電路和數(shù)字電路那樣,只要搞懂了電路原理,再按照產(chǎn)品要求設(shè)計好相應的電路就可以了。它是一種以簡單的硬件結(jié)構(gòu),復雜而有靈活的軟件系統(tǒng)來完成設(shè)計的通用性產(chǎn)品,不同的設(shè)計者只會使用其不同的功能,幾乎沒有人會把它的全部指令都使用起來,所以學習使用單片機只能靠循序漸進的積累,而不可能先把
。 它全部掌握了再去做產(chǎn)品開發(fā)(當然天才就例外了*_*)
基于以上原因,本人想嘗試一種全新的單片機教學方法,打破傳統(tǒng)的循序漸進式的教學方法,以單片機的應用為藍本,結(jié)合基本的工業(yè)控制系統(tǒng)和實踐工作中的具體應用,不分先后順序,將各條指令貫串于一個又一個的實驗中,通過所見即所得的實驗來講解各種指令的編程方法,順便講解相關(guān)的基本概念,使您盡快地熟悉單片機應用的基本步驟,掌握軟件編程的基本方法。
如果您學完了就能成為單片機的入門者,完全可以進行一般產(chǎn)品的開發(fā);下冊部分是單片機應用的提高部分,主要學習單片機的系統(tǒng)擴展(比如:rom和ram存儲器的擴展,并行口的擴展,串行口的擴展,a/d和d/a與單片機的接口)以及相關(guān)開發(fā)工具和軟件的使用(包括kell c51的應用與調(diào)試技巧,硬件仿真器的使用)等等,如果您學完了下冊部分,那就得恭喜您成為了單片機開發(fā)的高手了,不過單片機的技術(shù)是在不斷的發(fā)展和提高的,您也不要太驕傲哦!
為了盡量把最新的單片機知識和應用成果收錄進我們的教程,希望您能不吝賜教,共同來努力把我們的教程不斷的改進和完善。還是那句題外話,技術(shù)是靠不斷的積累和交流才會進步的,固封自守只會更加落后。
由于時間和精力的限制,我還是希望在您學習本教程之前,自己先熟悉一點相關(guān)的電子技術(shù)知識,特別是數(shù)字電路基礎(chǔ),這對您學習中碰到的相關(guān)概念會有很大的幫助。
【單片機系統(tǒng)學結(jié)】相關(guān)文章:
操作系統(tǒng)學結(jié)05-31
單片機學結(jié)06-02
管理信息系統(tǒng)學結(jié)06-06
單片機學結(jié)與心得06-02
單片機學結(jié)報告06-02
單片機的課程學結(jié)06-02
單片機生產(chǎn)實結(jié)12-02
財務系統(tǒng)學結(jié)05-31