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