很多單片機初學者問我的第一句話都是:怎樣才能學好單片機?今天,我就結合我自己是如何開始學習單片機的,如何開始上手,又如何開始熟練等話題與大家分享。
我們現(xiàn)在用的比較多的是8051單片機,它的資料比較全,用的人也較多,市場也很大,51單片機內(nèi)部結構簡單,非常適合初學者學習,建議初學者將51單片機作為入門級芯片。
單片機屬于硬件,我強烈反對大家使用單片機仿真軟件來學習單片機,我可以肯定地告訴大家,使用仿真軟件是學不會單片機的,只有把硬件擺在你面前,親自操作它,才會有深刻的體會,也才能掌握它。
單片機這門課是非常重視動手實踐的,不能總是看書,但是也不能完全不看書,我們需要從書中大概了解一下單片機的各個功能寄存器,如果看的多了反而容易搞亂,尤其是現(xiàn)在市場上大多數(shù)講單片機的書一開始就講解較復雜的內(nèi)存、地址、存儲器,更讓初學者感到不知所云、難以入門。簡單地說,當我們使用單片機時,實際上就是用我們自己編寫的軟件去控制單片機的各個功能寄存器。再簡單些,就是控制單片機哪些引腳的電平什么時候輸出高,什么時候輸出低,由這些高、低變化的電平來控制外圍電路,實現(xiàn)我們需要的各種功能。
關于看書,大家只需大概了解單片機各引腳的功能,簡單了解寄存器。第一次、第二次你可能看不明白,但這不要緊,因為還缺少實際的感觀認識。所以我總是說,學單片機看書看兩三天就夠了,而我們要把更多的時間放到實踐中去,這才是最關鍵的,在實踐過程有不懂之處再查書,這樣記憶才深刻。
關于實踐,有兩種方法建議讀者選擇:
方法一,你自己花錢買一塊單片機的學習板,不*要求那種價格上千塊、功能特別全的,對于初學者來說你買功能太全的板子,上面有很多東西你這輩子都用不著,我建議有流水燈、數(shù)碼管、獨立鍵盤、矩陣鍵盤、A/D和D/A、液晶、蜂鳴器、FC總線,有USB擴展也最好,這些就差不多了(由于本書中所有例子及講解完全依照天祥電子的TX-1C單片機學習板,建議大家選擇此款學習板,這樣更有利于盡快掌握單片機)。如果說我上面提到的這些功能你能熟練應用,可以說對單片機的操作你已經(jīng)入門了,剩下的就是自己練習設計外圍電路,不斷地積累經(jīng)驗。只要過了第一關,后面的路就好走多了,萬事開頭難,大家都聽說過。
方法二,你身邊如果有單片機方面的高手,向他求助,讓他幫你搭個簡單的最小系統(tǒng)板。對于高手來說,做個單片機的最小系統(tǒng)板可能只需要幾分鐘
的時間,而對于初學者可就難多了,因為只有對硬件徹底了解了,你才能熟練地駕馭它。而如果你身邊沒有這樣的高手,又找不到可以幫助你的人,那我勸你還是選擇方法一,畢竟自己有一塊學習板要方便得多,以后做單片機類的小實驗時經(jīng)常都能用得上,省時又省事。
有了單片機學習板之后你就要多練習,最好自己有臺計算機(少看電影,少打游戲),把學習板和計算機連好,打開調(diào)試軟件坐在計算機前,先學會怎么用調(diào)試軟件,然后從最簡單的流水燈實驗做起,等你能讓8個流水燈按照你的意愿隨意流動時,你已經(jīng)入門了,你會發(fā)現(xiàn),單片機是多么迷人的東西啊,太好玩了,這不是在學習知識,而是在玩,比起跑跑卡丁車,玩玩魔獸世界,要有趣得多。當你編寫的程序按你的意愿實現(xiàn)時,你比做任何事都開心,你會上癮的,真的,做電子設計的人真的會上癮。然后你讓數(shù)碼管亮起來,這兩項會了以后,你已經(jīng)不能自拔了。就是要這樣練習,在寫程序的時候你肯定會遇到很多問題,而這時你再去翻書找答案,或是請教別人,或是上網(wǎng)搜索。當?shù)玫浇獯鸷竽銜浰惠呑?,知識必須應用于現(xiàn)實生活中,解決實際問題,這樣才能發(fā)揮它的作用,你自己好好想想,上了這么多年大學,天天上課,你在課堂上學到了什么?是不是為了期末考試而忙碌呢?考完得了90分,哈哈哈,好高興啊,過一個假期,甚至過一個周末,然后忘得一干二凈,是不是?你學到什么了?但是我告訴你單片機一旦學會,永遠不會忘了。
另外,我再說說關于用匯編語言還是用C語言編程的問題。很多學校大一、大二就開設了C語言課,我也上過,我知道那時上課老師講的就是幾乘幾、幾加幾、求階乘、畫星星什么的。學完了有什么用?雖然考試我考了90分,可我心里比誰都明白,C語言到底是什么?它有什么用?到底它能做什么?我還是一無所知。我們不能過多地評價當今的高校教育,但我們必須對自己負責。讓你用C語言編單片機的程序時,你是不是就傻了?單片機編程用C語言或匯編語言都可以,但是我建議用C語言比較好,如果原來有C語言的基礎那學起來會更好,如果沒有,也可以邊學單片機邊學C語言。C語言很簡單,只是一種工具而已,我勸大家最好能學好學精它,將來肯定用得著,要不然以后也得學,你一點匯編語言都不會根本無所謂,但你一點C語言都不會那你將來會吃苦頭。
給大家推薦譚浩強編寫的《C程序設計》,大家在學習本書的同時再參考上面提到的這本書更有利于C語言學習,但根本沒必要再從頭把《C程序設計》學一遍,就算再學一遍也許結果還是和你現(xiàn)在一樣,最好的辦法就是用到哪里學到哪里。匯編語言寫程序代碼效率高,但相對難度較大,而且很煩瑣,尤其是遇到算法方面的問題時,麻煩得不得了,現(xiàn)在單片機的主頻在不斷提咼,我們完全不需要那么高效率的代碼,因為有高頻率的時鐘,單片機的ROM空間也在不斷提高,足夠裝下你用C語言編寫的任何代碼,C語言的資料又多又好找,將來可移植性非常好,所以我勸大家用C語言編程。
總結上面,只要你有信心,做事能堅持到底,有不成功絕不放棄的堅強意志,學會單片機對你來說就是件非常容易的事。建議學習步驟如下:
①看書大概了解一下單片機結構,大概了解就行,不用都看懂,又不讓你出書。
②用學習板練習編寫程序。學習單片機主要就是練習編寫程序,遇到不會的再問人或查書。
③自己在網(wǎng)上找些小電路類的資料,練習設計外圍電路,焊好后自己調(diào)試,熟悉過程。
④自己獨立設計具有個人風格的電路、產(chǎn)品……你已經(jīng)是高手了。