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