時間:2019-05-09 00:00:00 來源:信盈達 作者:信盈達
一、前言 很多單片機初學者與我交流時總說的一句話是我現(xiàn)在是單片機初學者,我怎樣才能更快的學好 單片機,我該從哪方便入手。對于這個問題,現(xiàn)在就我自己如何學單片機,如何入門,如何熟練談 談想法。 先說單片機,現(xiàn)在用的比較多的以 51 為內(nèi)核的 8 位單片機(考慮到成本及引腳資源在實際開 發(fā)中用的 51 單片機型號不一),它的學習資料非常多,且學習成本非 常低,可能有些初學者會說 企業(yè)里用的不是 51 單片機,更多的是松翰、義隆什么,但是我想說的是那些單片機的輔助開發(fā)工 具你有嗎。51 單片機對于智能電子技 術(shù)的入門學習是非常有優(yōu)勢,成本低,開發(fā)簡單,一線下載 程序,ARM太神秘,PLC太高貴,想來想去還是 51,曾經(jīng)有過AVR和PIC,但是現(xiàn)在 51 也不 賴。 那怎樣才能更快更好的學好單片機呢? 單片機作為集電子技術(shù)與計算機編程技術(shù)為一體是一項非常重視動手實踐的科目,如果你是單 片機高手,那么說明你也是計算機編程和電子技術(shù)高手。 二、學習單片機一定要看書 不能總是看書,但是學習它首先必須得看書,那這不很矛盾?因為從書中你需要了解單片機各 個功能寄存器(比如引腳控制寄存器、定時、中斷、串口相關(guān)寄存 器),控制單片機的核心是用 程序去控制單片機的各個功能寄存器,給寄存器賦值二進制數(shù)據(jù) 0 或者 1,對于像中斷、定時器、 串口、AD轉(zhuǎn)換等內(nèi)部資源寄存器, 單片機也可以通過二進制數(shù)據(jù) 0 和 1 進行設(shè)置和使用。比如單 片機引腳寄存器P1,語句P1=0xfe;(MOV P1,#0FEH)指控制單片機P1 口的第 一個引腳輸出 低電平, 其他引腳輸出高電平, 外設(shè)電路根據(jù)高低電平工作。 比如中斷允許寄存器IE, 語句IE=0x81; (MOV IE,#81H) 則說明 控制中斷打開總開關(guān)和外部中斷 0 的子開關(guān)。當然了,單片機的寄存 器還可以接受位控制,這樣編程更方便。 至于看書,只需大概了解單片機各管腳、各個功能寄存器是干什么的能實現(xiàn)什么功能就夠了? 這個非常重要,這也許是看單片機參考書最主要目的之一。 第一次,第二次你可能看不明白,但這不要緊,因為還缺少實際的感觀認識。通過接下來的實 驗就可以非常感觀的認識,在這個過程一定要花時間,學習程序不能硬背,但是學習寄存器一定要 下功夫,理解他的功能所在,適當?shù)臅r候當單詞背下來。 推薦一本書,就這一本就足夠了,書名是《列說 8051》,有匯編語言和C語言兩種版本,現(xiàn)在 已經(jīng)是第三版本了。非常強悍的一本書,沒有廣告,沒有局限,不 像培訓手冊,更不像教科書, 完全是一本非常好的參考書。我用一個五一假期的時間看完了這本書,真的當時看完后,覺得自己
已經(jīng)是單片機高手了,很多曾經(jīng)抽象 的知識不在抽象。書中圖文并茂,內(nèi)容安排緊張有序,并非 市面上很多說教的技術(shù)文檔式的書,什么學完概念,學指令,學完指令學接口,學完接口才知道, 原來學 習單片機像在學天書,因為前面的章節(jié)已經(jīng)使你頭昏腦脹了,自己看還好,一講更有問題。 那如何看書呢?第一步先根據(jù)書本的安排循序漸進的看完前兩章,在你腦子開始發(fā)熱,覺得自 己已經(jīng)是工程師的時候,接下來一定是實踐,一定是實踐啊,這是非常 非常關(guān)鍵的,當然了實踐 并非一定是左手電烙鐵右手萬能板的那種,也可以是仿真軟件 Proteus,或者是自己自己電路原理 路的簡單單片機實驗板(千萬不要 用那種有貼片器件很多,看半天看不清電路連接的那種)。三 國期間,諸葛亮揮淚斬馬謖的重典告訴我們紙上談兵害人害己,學習單片機也一樣,很多相關(guān)專業(yè) 的研 究生甚至博士生直到畢業(yè)都不清楚單片機的 IO 口的分布,不知分布談何開發(fā)。 只要過了第一關(guān),后面的路就好走,萬事起步難啊。 第二:你身邊如果有單片機入門者,動手能力比較強,請他幫忙,搭個簡單的單片機最小電路, 哪怕是控制一個LED閃爍的電路。只要在你眼皮底下經(jīng)過電路設(shè) 計、程序編寫、程序下載都通過 了,那你就要感謝他一輩子,因為你已經(jīng)在入門了。對于他們來說,做個單片機的最小系統(tǒng)板是輕 而易舉,而對于初學者可就難多, 中間的一層窗戶紙破了什么都簡單了。因為在這個過程中,你 學會了如何下載程序到單片機內(nèi)部,如何識別單片機,如何設(shè)計單片機最小電路。為什么有很多電 子和 計算機專業(yè)的學生不好找工作,因為他們中很多同學在將自己簡歷設(shè)計的眉飛色舞的時候, 他還沒有見過單片機單片機。 因為只有對硬件了解,才能熟練運用。只有知道程序是如何被下載的,才會清楚為什么要寫單 片機控制程序,這個動力來自于哪里,來至于心里有底。 單片機編程就是與單片機對話,如果不知道對方誰,有沒有再聽,你還會有說話的沖動嗎。當 然了如果沒有這樣的人,還是那句話,在網(wǎng)上多找?guī)讉€最小電路電路原 理圖,在面包板上焊接就 可以了。當然了這個也不會的,那建議你一定要買一塊功能簡單的實驗板,以后單片機的學習實驗 及項目測試驗都用的上。 四、如何邁入單片機開發(fā)世界 有了單片機實驗板你就要多練習,最好是自己有臺電腦,少下載幾部電影,少網(wǎng)絡(luò)游戲,把實 驗板和電腦連好,安裝上必備的軟件 (Keil Proteus STCisp),下載參考程序,并修改參考程序, 從最簡單的交通燈實驗開始,等你發(fā)現(xiàn)你能控制交通燈,并了解交通的軟硬設(shè)計 的時其實你已經(jīng) 入門了,你會發(fā)現(xiàn)單片機是多么迷人的東西啊,這不是在學習知識,而是在提升自身的價值。 用途那么廣的交通設(shè)計都不在話下,你還會為自己身無絕技而煩擾嗎?還會覺得自己什么都不 會嗎?計算機編程、電子技術(shù)的專業(yè)知識都用上了啊。 當你編寫的程序按你的意愿實現(xiàn)時,比做什么事都開心,那種學習的收獲感和成就感還有充實 感是非常難得的。然后讓數(shù)碼管亮起來顯示你所需要的數(shù)字,都到這一步,你已經(jīng)不能自拔了,你 已經(jīng)開始考慮你這輩子要走哪一行了。
入門入門,什么才叫入門,要對得起自己啊。 我的要求很簡單,單片機是否入門只有三點: 1、獨立掌握 Keil+Proteus 兩大軟件的使用方法并設(shè)計出仿真版的交通燈。 2、獨立在面包板上搭接單片機最小電路,并通過下載器將控制一個 LED 閃爍的 HEX 文件下 載進去看到效果。 3、清楚自己單片機學的動力所在,并為自己的學習做一個規(guī)劃。 但是在寫程序的時候你肯定會遇到很多問題,而這時你再去翻書找,這其中你會找你之前學過 的編程的書,還有數(shù)電模電的書,你會發(fā)現(xiàn)原來之前學的知識還是有用 的。遇到不懂再去找以前 學過的書本查閱,這才是 “溫故而知新,可以為師矣”的大道理啊。知識必須用于現(xiàn)實生活中,解決 實際問題,用單片機設(shè)計個簡易的家 電定時器、紅外遙控器什么,這樣才能發(fā)揮它的作用,好好 想想,上了這么多年大學,探索了那么久,猶豫徘徊,天天上課,在課堂上學到了什么?、 是不是為了期末 60 分的考試而忙碌,僥幸靠了 90 分,很高興啊,在別人面前吹自己專業(yè)知識 如何如何學習的好,殊不知,大學考試不像高中考試啊,拿到獎學金 又怎么樣。下學期開學回來 一想,所學的知識已經(jīng)忘得一干二凈。學到什么了?為什么要推薦學習單片機,因為單片機是工科 生學的,集合計算機編程電子技術(shù)及多 門控制語言為一體的學科,與其說是在學習單片機,不如 說是在學習一個大學科。 五、學習單片機是匯編編程還是 C 語言編程 關(guān)于用匯編和 C 語言編程的問題。 這個問題困惱很多人, 但是我覺得學習匯編語言和 C 語言就像一個人進入社會要學習方言和普 通話一樣。都要掌握,孰重孰輕自己把握。可能主要是學校教學和部分 教材引導,大一開了 C 語 言編程,沒等學生知道到底 C 語言有什么實際用途,馬上其他的語言一下子過來了。即使開設(shè)了專 門單片機課程,但是課程的內(nèi)容與技術(shù)文 檔很相識,程序雖然很多,但完整的不多,所以學完了 也不知道,到底為什么要學習編程。 很多同學大一就開設(shè)了 C 語言的課,我也上過,但是那時就是天天幾乘幾,幾加幾啊,求個階 乘啊, C 語言去解決小學數(shù)學問題, 用 每周兩次上機, 對著書本不停的敲打, 完全在練習打字速度。 下課了也不知道自己到底掌握了什么,掌握了這個有什么用途。學完了有什么用? 如果在面試的時候,老板問,你學過編程嗎,你腦子里馬上是什么“C 語言,VC 什么 VB。很 多,什么 C 語言是基礎(chǔ)是面向工程的,什么 VC 是高級面向?qū)ο?/span> 的”,但是老板又問,你能將你所 學習的 C 語言應(yīng)用到實際開發(fā)中,比如設(shè)計一個定時報警器的 C 語言。這下傻了,老師沒教過啊。 單片機編程用C語言或匯編語言都可以,但是我建議用C語言比較好,模塊化管理編程方便, 移植性強,適合編寫大程序。如果原來有C語言的基礎(chǔ)那學起來會更 好,如果沒有,也可以邊學單 片機邊學C語言。雖然很多人是從匯編語言開始接觸單片機的,但是寫小程序匯編語言還是簡單的,
如果要實現(xiàn)一些算法,那匯編語言 就不簡單了。雖說C語言編譯以后代碼量明顯比匯編長,而且執(zhí) 行效率也沒有匯編語言高,但是在以前單片機開發(fā)中芯片工藝的限制,及單片機主頻的限制,很多 單 片機內(nèi)部存儲器小的可伶,主頻也小得可伶。但是現(xiàn)在不一樣了,芯片內(nèi)部的存儲器根不不在 乎這點差別。主頻也越來越高。 那匯編語言是不是不學了呢?不是的,一定要學習,有兩方面首先入門單片機的時候要用匯編 語言,它的語法簡單。第二如果你要做單片機的程序的高級設(shè)計師,那 匯編語言是非掌握不可的, 很多像高級單片機 ARM 都是匯編語言作為引導代碼的,還有就是很多新出品的單片機起先也是先 有匯編語言編譯器之后才有 C 語言編譯 器。所以,我覺得對于單片機學習匯編語言入門,C 語言 精通,匯編語言再精通。 有句話很有道理“單片機 C 語言高手絕對是匯編語言高手,但是匯編語言高手不一定是 C 語言 高手” 最后,對于單片機的學習,入門為先,入門了以后就要去關(guān)注市場,關(guān)注企業(yè),企業(yè)需要什么 樣的人才,我想有了基礎(chǔ)以后在面試之前了解下企業(yè)所需要的單片機類型,很快就上手了,畢竟學 習是相同的。
免費領(lǐng)取試聽卡
申請已經(jīng)提交
老師會馬上給您安排試聽課程!
申請出錯了
您可以加老師QQ:914865590報名咨詢!