51單片機學習方法?大牛一席話道(dao)破夢中人
時間(jian):2018-07-11 來源:單(dan)片(pian)機論(lun)壇
51單片機(ji)學(xue)習方法(fa)
51單(dan)片(pian)(pian)(pian)機(ji)作(zuo)為(wei)學(xue)習(xi)單(dan)片(pian)(pian)(pian)機(ji)的(de)一個(ge)啟蒙單(dan)片(pian)(pian)(pian)機(ji),基本(ben)所有出(chu)不(bu)學(xue)習(xi)單(dan)片(pian)(pian)(pian)的(de)朋友都會選擇51或(huo)者是被單(dan)片(pian)(pian)(pian)機(ji)開發人員老(lao)師推薦(jian)學(xue)習(xi)51,原因在于51相對(dui)(dui)來講是比(bi)較容易的(de),另外51單(dan)片(pian)(pian)(pian)機(ji)的(de)發展(zhan)歷(li)史比(bi)較久很(hen)多東西都有非常成熟的(de)學(xue)習(xi)方法,并(bing)且(qie)相對(dui)(dui)來講成本(ben)是比(bi)較低的(de),以及(ji)吧復(fu)雜的(de)東西簡化了(le)。
那怎樣(yang)才能更快更好(hao)(hao)的學好(hao)(hao)單片機呢?
單(dan)片機(ji)(ji)(ji)作為集電子(zi)技(ji)術(shu)與計算(suan)機(ji)(ji)(ji)編程技(ji)術(shu)為一(yi)體是(shi)一(yi)項非(fei)常(chang)重視動手(shou)實踐的科(ke)目(mu),如(ru)果你(ni)(ni)是(shi)單(dan)片機(ji)(ji)(ji)高手(shou),那么說明你(ni)(ni)也是(shi)計算(suan)機(ji)(ji)(ji)編程和電子(zi)技(ji)術(shu)高手(shou)。
學習單片(pian)機一定(ding)要看書,看書的目(mu)的我們只需大概了解單片(pian)機各管腳、各個功(gong)能寄存器是干什么的能實現什么功(gong)能就(jiu)夠了?這(zhe)個非(fei)常重要,這(zhe)也(ye)許是看單片(pian)機參(can)考書最主要目(mu)的之一。
不能總是(shi)看(kan)書,但是(shi)學習它(ta)首先必須得看(kan)書,那這(zhe)不很矛(mao)盾?因為(wei)從(cong)書中你需(xu)要了(le)解(jie)單(dan)片(pian)機(ji)(ji)各個(ge)功能寄(ji)(ji)存器(qi)(qi)(qi)(qi)(比如引腳控制(zhi)寄(ji)(ji)存器(qi)(qi)(qi)(qi)、定時、中斷、串口相關(guan)寄(ji)(ji)存器(qi)(qi)(qi)(qi)),控制(zhi)單(dan)片(pian)機(ji)(ji)的核心(xin)是(shi)用程序去控制(zhi)單(dan)片(pian)機(ji)(ji)的各個(ge)功能寄(ji)(ji)存器(qi)(qi)(qi)(qi),給寄(ji)(ji)存器(qi)(qi)(qi)(qi)賦值(zhi)二(er)進制(zhi)數據(ju) 0或者 1,對于像中斷、定時器(qi)(qi)(qi)(qi)、串口、AD轉換等(deng)內部資源寄(ji)(ji)存器(qi)(qi)(qi)(qi),單(dan)片(pian)機(ji)(ji)也可以通過二(er)進制(zhi)數據(ju) 0 和 1進行設置和使用。
當然(ran)了,單(dan)片機(ji)的寄存(cun)器還可以接受(shou)位控制,這樣編程更方(fang)便。
第一(yi)次(ci),第二次(ci)你可(ke)能看不明白,但(dan)這不要緊,因為還缺少實(shi)際(ji)的(de)感(gan)觀認(ren)識。通過接下(xia)(xia)來(lai)的(de)實(shi)驗(yan)就可(ke)以(yi)非(fei)常感(gan)觀的(de)認(ren)識,在(zai)這個過程(cheng)(cheng)一(yi)定要花時(shi)間(jian),學習程(cheng)(cheng)序不能硬(ying)背(bei),但(dan)是學習寄(ji)存器一(yi)定要下(xia)(xia)功夫,理解他的(de)功能所(suo)在(zai),適(shi)當的(de)時(shi)候當單詞背(bei)下(xia)(xia)來(lai)。
那如何看(kan)書呢(ni)?第一步先根據(ju)書本(ben)的(de)安排循序漸進(jin)的(de)看(kan)完前兩章,在你腦子開(kai)始(shi)發熱,覺得(de)自(zi)己(ji)已經(jing)是(shi)(shi)工程師的(de)時候,接下來一定(ding)是(shi)(shi)實(shi)踐,一定(ding)是(shi)(shi)實(shi)踐啊,這是(shi)(shi)非常(chang)非常(chang)關鍵的(de),當然了實(shi)踐并非一定(ding)是(shi)(shi)左(zuo)手電烙(luo)鐵右手萬(wan)能板的(de)那種,也可以是(shi)(shi)仿真軟件 Proteus,或者是(shi)(shi)自(zi)己(ji)自(zi)己(ji)電路(lu)原(yuan)理路(lu)的(de)簡單(dan)單(dan)片機實(shi)驗板(千萬(wan)不(bu)要(yao) 用(yong)那種有貼片器件很多,看(kan)半天(tian)看(kan)不(bu)清電路(lu)連(lian)接的(de)那種)。
只(zhi)要過了(le)第一關,后面的路(lu)就好走,萬(wan)事起步難啊。
第二:你(ni)(ni)身邊如果有單(dan)片機(ji)入門者,動手能力(li)比較強(qiang),請他(ta)幫忙,搭個簡單(dan)的單(dan)片機(ji)最(zui)小電(dian)路,哪怕是控制一個LED閃爍的電(dian)路。只要在(zai)你(ni)(ni)眼皮底下(xia)(xia)經過(guo)電(dian)路設(she) 計、程序編寫、程序下(xia)(xia)載都通過(guo)了,那你(ni)(ni)就要感謝他(ta)一輩子,因為你(ni)(ni)已經在(zai)入門了。
對(dui)于他們(men)來說,做個單片(pian)(pian)機(ji)(ji)的最(zui)小系統板是輕而易舉,而對(dui)于初學(xue)(xue)者可就難多(duo)(duo),中間(jian)的一(yi)層窗戶紙破了(le)什么都簡單了(le)。因(yin)(yin)為(wei)在這(zhe)個過(guo)程中,你學(xue)(xue)會了(le)如何下(xia)載(zai)程序到單片(pian)(pian)機(ji)(ji)內部,如何識別單片(pian)(pian)機(ji)(ji),如何設計(ji)單片(pian)(pian)機(ji)(ji)最(zui)小電(dian)路(lu)。為(wei)什么有很多(duo)(duo)電(dian)子和(he) 計(ji)算機(ji)(ji)專(zhuan)業的學(xue)(xue)生不(bu)好找工作(zuo),因(yin)(yin)為(wei)他們(men)中很多(duo)(duo)同學(xue)(xue)在將(jiang)自己(ji)簡歷設計(ji)的眉(mei)飛(fei)色舞(wu)的時候,他還沒有見過(guo)單片(pian)(pian)機(ji)(ji)單片(pian)(pian)機(ji)(ji)。
四(si)、如何邁入單片機(ji)開發(fa)世界
有了(le)單片(pian)機(ji)實(shi)驗(yan)(yan)板你就要多練習,最好(hao)是(shi)自(zi)己有臺電腦,少(shao)下載幾部(bu)電影,少(shao)網絡游戲,把實(shi)驗(yan)(yan)板和電腦連(lian)好(hao),安裝上必(bi)備的(de)軟件 (Keil Proteus STCisp),下載參考程(cheng)序,并修改參考程(cheng)序,從最簡單的(de)交(jiao)通燈實(shi)驗(yan)(yan)開始(shi),等你發現(xian)你能控制交(jiao)通燈,并了(le)解(jie)交(jiao)通的(de)軟硬設計(ji)的(de)時其實(shi)你已經入門(men)了(le),你會發現(xian)單片(pian)機(ji)是(shi)多么(me)迷人的(de)東(dong)西啊(a),這不是(shi)在(zai)學習知(zhi)識,而是(shi)在(zai)提升自(zi)身(shen)的(de)價值。
五、學習(xi)單片機是匯編編程還(huan)是 C語言編程
關于(yu)用(yong)匯編和 C語言(yan)編程的(de)問題。
這個問(wen)題(ti)困惱很(hen)多人,但(dan)是(shi)我覺得學(xue)習匯(hui)編(bian)(bian)(bian)語言和 C語言就像(xiang)一(yi)個人進入社會要(yao)學(xue)習方言和普通話一(yi)樣。都要(yao)掌(zhang)握(wo),孰重孰輕(qing)自己把(ba)握(wo)。可(ke)能(neng)主要(yao)是(shi)學(xue)校教(jiao)學(xue)和部分教(jiao)材引導,大一(yi)開(kai)(kai)了 C語言編(bian)(bian)(bian)程,沒等(deng)學(xue)生知道到底 C語言有什(shen)么實(shi)際用(yong)途(tu),馬上其他的(de)語言一(yi)下子過來了。即(ji)使開(kai)(kai)設了專門單片機課(ke)程,但(dan)是(shi)課(ke)程的(de)內容與技術(shu)文檔很(hen)相(xiang)識,程序雖然(ran)很(hen)多,但(dan)完整的(de)不(bu)多,所以學(xue)完了也不(bu)知道,到底為(wei)什(shen)么要(yao)學(xue)習編(bian)(bian)(bian)程。
單片機編(bian)(bian)程用C語(yu)(yu)(yu)(yu)(yu)言(yan)或匯(hui)(hui)編(bian)(bian)語(yu)(yu)(yu)(yu)(yu)言(yan)都可(ke)以,但是我建議(yi)用C語(yu)(yu)(yu)(yu)(yu)言(yan)比(bi)較好,模塊化(hua)管理編(bian)(bian)程方便,移植性強,適合編(bian)(bian)寫大程序。如果原(yuan)來(lai)有C語(yu)(yu)(yu)(yu)(yu)言(yan)的基礎那學起來(lai)會更好,如果沒(mei)有,也(ye)可(ke)以邊學單片機邊學C語(yu)(yu)(yu)(yu)(yu)言(yan)。雖然很多人是從匯(hui)(hui)編(bian)(bian)語(yu)(yu)(yu)(yu)(yu)言(yan)開始(shi)接(jie)觸單片機的,但是寫小程序匯(hui)(hui)編(bian)(bian)語(yu)(yu)(yu)(yu)(yu)言(yan)還是簡單的,如果要實現一些算法,那匯(hui)(hui)編(bian)(bian)語(yu)(yu)(yu)(yu)(yu)言(yan)就(jiu)不簡單了。
那匯(hui)編(bian)語(yu)(yu)(yu)言(yan)是(shi)(shi)不是(shi)(shi)不學(xue)了(le)呢?不是(shi)(shi)的(de),一定要學(xue)習,有兩方面(mian)首先入(ru)門(men)單(dan)(dan)片(pian)機(ji)的(de)時候要用匯(hui)編(bian)語(yu)(yu)(yu)言(yan),它(ta)的(de)語(yu)(yu)(yu)法簡單(dan)(dan)。第二如果你要做(zuo)單(dan)(dan)片(pian)機(ji)的(de)程序(xu)的(de)高級(ji)設計師,那匯(hui)編(bian)語(yu)(yu)(yu)言(yan)是(shi)(shi)非掌(zhang)握(wo)不可的(de),很多(duo)像高級(ji)單(dan)(dan)片(pian)機(ji) ARM都是(shi)(shi)匯(hui)編(bian)語(yu)(yu)(yu)言(yan)作為引導(dao)代碼的(de),還(huan)有就是(shi)(shi)很多(duo)新出(chu)品的(de)單(dan)(dan)片(pian)機(ji)起先也是(shi)(shi)先有匯(hui)編(bian)語(yu)(yu)(yu)言(yan)編(bian)譯器之后才有 C語(yu)(yu)(yu)言(yan)編(bian)譯 器。所以,我(wo)覺得(de)對于單(dan)(dan)片(pian)機(ji)學(xue)習匯(hui)編(bian)語(yu)(yu)(yu)言(yan)入(ru)門(men),C語(yu)(yu)(yu)言(yan)精通,匯(hui)編(bian)語(yu)(yu)(yu)言(yan)再精通。
有句(ju)話很有道理(li)“單片(pian)機 C語言(yan)(yan)(yan)高(gao)手絕對是匯(hui)編語言(yan)(yan)(yan)高(gao)手,但(dan)是匯(hui)編語言(yan)(yan)(yan)高(gao)手不一(yi)定(ding)是 C語言(yan)(yan)(yan)高(gao)手”
最后,對于(yu)單片(pian)機的學習(xi),入門(men)為先(xian),入門(men)了(le)以(yi)后就(jiu)要去(qu)關(guan)注(zhu)市場,關(guan)注(zhu)企業,企業需(xu)要什(shen)么(me)樣的人(ren)才(cai),我想有了(le)基(ji)礎以(yi)后在面試之前(qian)了(le)解下企業所需(xu)要的單片(pian)機類(lei)型,很快就(jiu)上手了(le),畢(bi)竟學習(xi)是相同的。