如何學習單片機編程開發(fā)
在錯誤的道路上日夜兼程,最終也無法成功。因此,方法和思路絕對是第一重要的。一些學技術的同學,往往看到這類章節(jié)會直接跳過去,因為大多數(shù)類似章節(jié)都是廢話連篇。但是,今天在這里我可以很負責任的告訴你,本章節(jié)講到的學習單片機的方法,都是我們學習單片機的無數(shù)經(jīng)驗和教訓總結(jié)出來的瑰寶。因為我們披荊斬棘,開辟了道路,所以可以告訴你路在何方;也因為我們摸過燒紅的鐵塊,燙了手,所以可以把教訓告訴你。希望各位都能站在我們的肩膀上,成為巨人。 1、學什么單片機 單片機的型號那么多,如何選取一款合適的進行學習?如果身邊有比較便利的學習單片機的條件,有什么條件就學習什么型號。比如,你所在的公司剛好用到某個型號單片機,那么就方便多了。開發(fā)板不用購買,直接用公司現(xiàn)成的板子,指導老師到處是,公司的工程師,只要你耐心虛心的不恥上問,相信他們都會幫你解答問題。如果你跟著學習的導師,正在使用某個型號開發(fā)產(chǎn)品,那么同樣的道理,你也會有得天獨厚的優(yōu)勢,直接跟著學就行了。其實單片機型號雖然多,但是用法大同小異,學會一種,再上手其他的就很快了! ∪绻氵@些條件都沒有,那就跟著我學吧,我建議你學習51單片機。為什么呢?現(xiàn)在單片機種類和型號非常多,每個型號都有一定的市場份額,但是哪個型號也沒有早期51單片機那般的風光和火爆,雖然現(xiàn)在地位不是那么高了,但是因為51單片機資料非常多,大家學起來有很多可以參考的東西,所以上手肯定比其他型號的要快一些。如果你學習稍微偏門的單片機,可能一個簡單的軟件問題就要折騰你好長時間,不僅僅浪費了你的學習時間,更重要的是打擊你學習單片機的信心! ∧鞘遣皇俏覀兠總單片機都要學習一遍呢?答案當然是否定的。大家跟著我來學習51單片機,必須得跟著學會舉一反三和融會貫通的能力。單片機型號那么多,挨個學下來估計頭發(fā)白了也學不完,所以大家跟著我學51單片機,不能僅僅當做51來學習,更重要的是要當做單片機來學,要通過我們的這個教程,把所有的單片機的內(nèi)部資源都搞清楚弄明白,每個內(nèi)部模塊的用法理解透徹,這樣當你遇到一個從沒有用過的單片機,也就知道如何下手去應用開發(fā)了。 2、如何學習單片機 前邊提到過,單片機是一門實用技術,我們學習它已經(jīng)不是為了應付考試了,我給大家總結(jié)了單片機的學習方法是:一個要領,四個步驟! W習單片機的要領就是:在實踐中成長,In Doing We Learn! 學射箭,你得去拉弓,整天只擺造型肯定不行;學游泳,你得下水撲騰,整天在岸上做模仿活動不行;學開車,你得坐車上去開,坐沙發(fā)上肯定學不會。同樣的道理,學單片機,整天盯著單片機看肯定不行,你也必須得親自動手去練! ]有不下水就學會游泳成為游泳健將的,沒有不到車上練就能成為賽車手的,這點大家都清楚,可為什么總是那么多人學單片機的時候,總是要抱著一本書看呢。第一,我們小學中學甚至大學的學習模式都是如此,學什么東西主要都是靠看書;第二,很多人想實踐不太清楚該怎么去實踐。 不是不讓大家看書,而是看了一點以后,要馬上去實踐驗證,然后再回頭結(jié)合實踐的結(jié)果,理解書上的內(nèi)容。從這個地方,大家要得出一個結(jié)論來,就是在學實際技術過程中,和應付考試不同,書上的內(nèi)容不需要你去硬性記憶,書是用來查的,不是用來記憶的。遇到問題,你學會翻書,知道該去哪里找,找到相關知識點,分析明白,領悟透徹即可,包括咱這本書也是一樣,大家先看完一節(jié)課,然后馬上就把這節(jié)課相應的實驗做了,做實驗的過程中,哪里有不懂的問題,隨時翻閱書籍查找,再實驗,再查找,反反復復的過程就可以把本節(jié)課的內(nèi)容掌握! ∠旅,就是我總結(jié)的跟著我學習單片機的四個步驟。 第一步,鸚鵡學舌。 剛出生的孩子叫“爸爸”“媽媽”的時候,他甚至不知道“爸爸”“媽媽”是什么意思,更不會理解這些聲音是什么意思,但是我們帶著孩子見到他爸爸就讓他喊“爸爸”,見到媽媽就讓他喊“媽媽”,見到爺爺就喊“爺爺”……慢慢的你會發(fā)現(xiàn),次數(shù)多了,孩子就知道誰是爸爸,誰是媽媽,誰是爺爺,誰是奶奶了。 大家剛開始接觸單片機的時候,也屬于單片機行業(yè)的新生兒。單片機的樣子,單片機外圍的各種器件,單片機內(nèi)部的各種結(jié)構,單片機用C語言的編程方法,初學者可能都沒有見過。沒關系,有些概念和方法你不理解也沒有關系,甚至不需要你理解,你只需要跟著我去鸚鵡學舌式學習,第一遍學習某一節(jié)課的內(nèi)容時,對于程序,大家就可以完全跟著抄下來,甚至抄兩三遍,過一段你會發(fā)現(xiàn),好多東西你也認識了,好多概念你慢慢的也理解清楚了,你也能大概看懂別人的小程序了,切忌覺得自己看會了,而簡單復制粘貼。 第二步,照葫蘆畫瓢。 很多同學學習的時候喜歡看,看我做的視頻,看我寫的程序,甚至看別人的程序,都能看懂,覺得自己就會了,等到自己寫程序的時候,感覺就是老鼠啃天,不知道從哪里下手了,這是初學者很容易犯的“眼高手低”這樣一個毛病,所以第二步的內(nèi)容就非常重要了! ∥业囊笫,每一位同學,在學完了當前課的內(nèi)容,把第一步順利完成以后,然后關掉視頻教程,關掉源代碼,自己通過看電路圖和查找非源代碼的其他任何資料,把當節(jié)課我寫的程序代碼重新默寫出來,邊寫邊多少理解那么一點點,不是純粹的背誦,應該說是背誦加理解的結(jié)合體。甚至學過幾節(jié)課以后,可以回頭把前邊曾經(jīng)這樣實現(xiàn)過的課程,再按照這種方法做一遍。千萬不要認為這一步?jīng)]必要,這一步是你能否學會單片機的一個關鍵步驟,在學完本教程之前,每一課內(nèi)容都要這樣做,如果每一個程序你都能夠完美的完成,那么可以說,當節(jié)課的內(nèi)容,百分之七八十你已經(jīng)掌握了。 第三步,他山之石可以攻玉。 單片機技術的最大特點就是可以通過修改程序來實現(xiàn)不同的功能,因此舉一反三的能力就必不可少了。每一節(jié)課的例程后邊,我一般都會布置一兩個作業(yè),大家盡量去獨立完成這個作業(yè)。在完成這個作業(yè)的過程中,都可以參考我的程序思路,在這個基礎上通過動腦思考去構建你自己的程序框架,最終將程序完成! ≡谖覀児こ處煂嶋H產(chǎn)品研發(fā)的時候,很多種情況下也是如此。比如一個產(chǎn)品,我們?nèi)绻麖?開始著手的話,可能會走很多彎路,所以我們通常的做法是尋找購買同類幾款產(chǎn)品,然后先研究他們的各自優(yōu)缺點,學習他們的長處,然后在同類產(chǎn)品基礎上在來設計我們的產(chǎn)品,這就是他山之石可以攻玉。 初學者在學習的時候,往往遇到的問題很多,你應該想到,你遇到的問題,可能前輩們早就遇到過了,所以遇到問題后,不要慌張,首先利用谷歌或者百度這些搜索引擎搜索一下,要做什么新東西,先去網(wǎng)上找找相關資料了解一下,不管是編程還是硬件設計,多參考參考別人的東西,只要把別人的東西分析明白了,自己用起來,就可以成為自己的知識了。 第四步,理論實踐結(jié)合,溫故知新。 當大家把所有的課程都按照前邊三步完成后,這個時候不妨把書打開,看看書,通過自己實戰(zhàn)的經(jīng)驗,再看書的時候,很多知識點會有一種恍然大悟的感覺。甚至視頻教程,書籍,都可以反復看兩遍,可能有的知識點當時學習的時候不明白,過了一段時間,回過頭來再學習的時候,一下就明白了。 3、單片機學習的準備工作 第一、足夠的信心、恒心和耐心! ∮型瑢W問過我,單片機這門技術難不難。我覺得這個問題得從兩個方面去分析! ∈紫龋覀儚膽(zhàn)略上藐視它。那么多同學跟著老師學一段時間就可以做出來小車,超聲波測距,甚至做出來機器人,似乎很拽的樣子。那他們又不是三頭六臂,我們也沒有什么做不了的道理。實際上要說技術,其實就是一層窗戶紙,表面看不透徹,感覺特別神秘,實際只要你稍微一努力就可以捅破它,夸張點說,單片機的邏輯上的關系,只有小學的水平,簡單的很。正所謂會者不難,難者不會,大家不懂這個東西,看起來感覺很神秘。所以大家只要認真踏實堅持學下去,肯定能學好這么技術! ∑浯文兀覀儚膽(zhàn)術上要重視它。你說單片機這東西,如果十天八天就學會了,那么這個技術還能值錢嗎?我可以這樣去表達,如果一個技術很簡單就被學會,那么很多人都會的這個技術,肯定也沒什么前途和錢途。那究竟多久能學會呢?我給大家制定的學習方案,根據(jù)每個人的基礎不同,平均每天要拿出2個小時以上的學習時間,大概一到三個月可以入門。入門的概念是給你一個單片機開發(fā)任務,你起碼知道努力的方向和解決問題的方法了。技術這東西,關鍵是堅持做下去,有恒心和耐心,如果長時間不用的話,肯定還會生疏。所以要想成為單片機高手,起碼需要一年左右的單片機開發(fā)的歷練才行。成為單片機高手的概念就是你自己可以從頭根據(jù)自己的想法,去設計一個電路,根據(jù)需要的功能編寫代碼,做一個產(chǎn)品出來! 〉诙、教材和教程! ∫獙W習單片機這門技術,良好的教材和教程必不可少。單片機方面,大家可以直接學習我們這本《手把手教你學單片機--51單片機C語言開發(fā)》,我們也有精心制作了《手把手教你學單片機》視頻教程和《單片機高手之路》視頻教程,并且后期會進行不定期更新。本著開源、共享的理念,我們的視頻教程和電子教程都是免費開放的,大家可以到我們的網(wǎng)站www.kingst.org找到下載鏈接,如果有條件,也可以購買我們一般紙質(zhì)教材,紙質(zhì)書籍查閱起來比視頻教程和電子教程更方便。另外,因為我們做單片機開發(fā)使用的是C語言,所以最好能有一本純C語言教材,我們學到一些C語言語法性質(zhì)的問題的時候,大家可以方便查閱,或者你可以直接把相關語法問題通過百度和谷歌等搜索一下也可以! 〉谌㈦娔X一臺,單片機開發(fā)板一塊。 電腦呢,是學習單片機必不可少的工具,因為我們編程,查資料都用得到,但是有句題外話說一下,不要把電腦當成游戲機或者影碟機,偶爾玩玩游戲看看電影是可以的,勞逸結(jié)合,但是不可沉溺其中,否則還不如不買電腦! 纹瑱C開發(fā)板,這也是必須的。如果還上學,老師實驗室有開發(fā)板,可以考慮跟老師借一個,或者使用師兄師姐用完的,這樣可以省點錢。當然,如果身邊有高手,比如輔導老師,會單片機的師兄,在他們的指導下做一個也可以,身邊有人指導的話,不懂的問題還可以問他們。如果這些條件不具備,那么可以購買一個,先學習別人的板子設計思路,給自己以后設計電路板打下基礎。在這里我推薦一下我們的KST-51開發(fā)板,用來配套學習。我不敢說我們的設計是最好的,但是我可以很負責任的說,我們的板子是出自經(jīng)驗豐富的一線工程師之手,其中的設計都是根據(jù)實際項目開發(fā)的思路進行的,包括整體規(guī)劃、電路設計、器件布局等等,可以為你今后的項目開發(fā)提供一個優(yōu)質(zhì)的參考。另外一方面,因為我們的教程是基于我們的開發(fā)板做的,所以大家用配套的話可以節(jié)省時間,提高學習效率! ‘斎,即使不購買我們的開發(fā)板,你想學單片機,必須要有一塊開發(fā)板,不要總?cè)ビ密浖抡,軟件仿真是學不會單片機技術的。經(jīng)常有同學過來問我,老師我用軟件模擬的好用,做了硬件不好用是什么原因。在這里我提一下,如果你上課用這個軟件仿真,糊弄老師應付考試可以的,但是實際開發(fā)和仿真軟件差別太大,如果是學習單片機這門技術,那我只能告訴你,拿起烙鐵焊電路,動手寫程序,遠離仿真軟件,靠軟件仿真永遠學不到真正的技術。編輯:admin 最后修改時間:2018-05-08