怎么玩單片機
我喜歡用“玩”,而不喜歡用“學”來描述怎么掌握單片機。我們要以玩的心態(tài)來學,而不是為了完成任務的來學。
一句話:要像愛女朋友一樣,愛單片機。
一.玩單片機需要哪些基本條件?
模擬電路,數(shù)字電路基礎,對C語言或匯編語言有一定的了解。硬件條件的話,電腦一臺,實驗板一套。有些人一看,哎呀我的媽呀,這沒學那沒學,等學了模擬電路,數(shù)字電路,C再來學,你OUT了。
我的觀點是:我們要什么就學什么,現(xiàn)學現(xiàn)用。對公司來說,不問你學過什么,而是問你用過什么;不問你懂什么,問你會什么;對于電子類的同學,沒搭過電路,你不知道LED怎么亮的;沒有編過單片機程序,你真不知道C語言能做什么,你還以為C語言 TMD好像就算些數(shù)學公式還行,光理論不實踐學也白學。
一句話:我們要什么就學什么,現(xiàn)學現(xiàn)用。
二. 該玩哪種單片機?
單片機型號有很多,常見的有51,PIC,AVR幾個系列,每個系列又有很多型號。那么,作為初學者的我們,該玩哪款單片機呢?
其實單片機都是一樣的,就像電腦一樣,不同的電腦只是配置不同,不同的單片機也只是配置不同(匯編指令不一樣是后話)只要認真學了,掌握了任一一款單片機,在學習其他款,最長一個月搞定。51系列作為經(jīng)典的一款單片機,它的資料非常的豐富,也比較容易掌握,因此,從51開始入門應該是非常明智的選擇。
在這里我要批判一些觀點,有人老是叫囂:51早就過時了,還學這玩意,要玩起碼玩ARM。他連基本的道理都不懂,不學會初等數(shù)學,你能直接學會高等數(shù)學嗎?(除非你是天才另當別論)不學51,你學ARM你那是一口氣要上珠峰,多半“死”在半路,估計你從此連51的小山都沒信心爬了。再說俺們是以51入門,不是就只學51,俺將來也是要登“珠峰”的人。
一句話:什么簡單學什么,入門最重要。
三. 要不要買開發(fā)板
我的答案是“看你個人的學習方法”,但是如果大家是需要看這篇文章的水平,個人推薦還是買現(xiàn)成的。
1 買
買板子可以把注意力集中在軟件開發(fā)上,軟件開發(fā)可以不必擔心自己硬件上的問題。咱本來就剛起步,寫個程序半天沒反應,也不知道是硬件還是軟件,到頭來,雄性壯志磨沒了。另外,買板子更省時間,再有就是買的資料相對來說比較全,但是不要指望有技術支持!都是騙人的,賣你之后就不會理你。
2 做
自己做可以更了解底層硬件,可以按照自己的要求加東西,就是時間要多花些,剛開始的困難也會多很多,你要有恒心,做也沒問題,關鍵是要找到正確的電路圖。
一句話:你喜歡怎樣就怎樣。
四.該學匯編還是學C51?
這估計是爭論最大的一個問題了,有些人堅持學單片機軟件一定要匯編,也有人堅持選擇高級語言,這主要是C51推行不久時,那時候單片機內(nèi)部資源比較寶貴,而且C51本身的編譯器效率也不夠高,導致當時很多人選擇用匯編來寫代碼。
現(xiàn)在的情況是怎樣的呢?編譯器效率高了,單片機內(nèi)部的資源也豐富了,用C來寫單片機軟件不會再遇到以前程序代碼太大的問題。
外面的企業(yè),大部分都是用C,C好寫,可讀性強,可移植性強。那么匯編就不用學了嗎?光會C也還是不夠的,你還得了解匯編,實際上不是了解匯編指令,是了解單片機的體系結構。所以我以為學習單片機,還是推薦用C來寫代碼,但是平時也得多看看匯編代碼,最低要求就是: 能熟練運用C寫代碼,能讀懂匯編代碼。
這里匯報個情況,在大學里老師基本都是用匯編教學,我老師也是用匯編教,剛出來公司要求用C,當時大家都一頓罵老師,現(xiàn)在明白老師的良苦用心了,用C教學,老師要輕松很多,而老師卻選擇匯編,為什么在大家眼中的“壞老師”要如此吃力不討好呢?
這是因為,用匯編教,能讓大家更清晰的掌握單片機的體系結構,運行機理,掌握單片機的核心本質(zhì),用匯編你才會掌握什么是立即尋址,直接尋址,什么是間接尋址,什么是偏移量?等等一系列的問題。你不知道這些,用C也能把程序玩轉,但你不知道運行機理,你不覺得心慌嗎?你學ARM時你能看懂啟動代碼嗎?你能寫啟動代碼嗎?
一句話:先學用C寫代碼,后學匯編,研究單片機體系結構.老師在教匯編,那是一種幸福。
五.要什么軟件,怎么下載程序
Keil c趕緊下一個不管什么版本的,再下一個Keil的使用說明。就OK了。單片機我們選支持 ISP下載的,(買開發(fā)板都會帶下載線的)89S系列的帶ISP下載功能。
要想在線調(diào)試,就要買個仿真器了。
心態(tài)擺正了,型號選好了,板子咱有了(無論買,還是做,最起碼要有),管他過不過時,管他C好還是匯編好,疑問可以帶著,爭論可以有,“上路”不能耽擱!
編輯:admin 最后修改時間:2018-05-18