<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 如何快速學(xué)習(xí)單片機(jī)

          如何快速學(xué)習(xí)單片機(jī)

          作者: 時(shí)間:2012-04-29 來(lái)源:網(wǎng)絡(luò) 收藏

          一、前言

          本文引用地址:http://www.ex-cimer.com/article/171543.htm

            很多初學(xué)者在與我交流的時(shí)候總是的一句話(huà)是我現(xiàn)在是初學(xué)者,我怎樣才能更快的學(xué)好,單片機(jī)有市場(chǎng)不,對(duì)于這個(gè)問(wèn)題現(xiàn)在就我自己學(xué)單片機(jī),入門(mén),熟練,整個(gè)過(guò)程談?wù)勛约旱南敕?。先說(shuō)說(shuō)單片機(jī),現(xiàn)在用的比較多的的MCS-51的單片機(jī)(但是考慮到成本及引腳資源在實(shí)際開(kāi)發(fā)中用的單片機(jī)型號(hào)不一),它的資料非常多,且成本非常低,如果你聽(tīng)說(shuō)企業(yè)里用的是什么什么芯片,但是不知道,你問(wèn)過(guò)沒(méi)有,那個(gè)仿真器需要多少錢(qián),51單片機(jī)對(duì)于智能控制入門(mén)來(lái)說(shuō)是非常好的,一線(xiàn)下載程序,ARM太神秘,PLC太高貴,想來(lái)想去還是51。那怎樣才能更快更好的學(xué)好單片機(jī)呢?單片機(jī)這門(mén)課是一項(xiàng)非常重視動(dòng)手實(shí)踐的科目,而且單片機(jī)也是一門(mén)集計(jì)算機(jī)編程與電子技術(shù)為一身的學(xué)科,如果你是單片機(jī)高手,那么說(shuō)明你也是計(jì)算機(jī)編程和電子技術(shù)高手。

            二、學(xué)習(xí)單片機(jī)時(shí)候一定要看書(shū)

            不能總是看書(shū),但是學(xué)習(xí)它首先必須得看書(shū),那這不很矛盾。因?yàn)閺臅?shū)中你需要大概了解單片機(jī)各個(gè)功能寄存器(比如引腳控制寄存器、定時(shí)、中斷、串口相關(guān)寄存器),控制單片機(jī)的核心是用程序去控制單片機(jī)的各個(gè)功能寄存器,給寄存器賦值二進(jìn)制數(shù)據(jù)0或者1,這樣一來(lái)對(duì)于引腳寄存器單片機(jī)可以根據(jù)二進(jìn)制數(shù)據(jù)0和1輸出高低電平控制外部設(shè)備,對(duì)于內(nèi)部資源寄存器,單片機(jī)也通過(guò)二進(jìn)制數(shù)據(jù)0和1使用單片機(jī)內(nèi)部的功能。比如單片機(jī)引腳寄存器P1,語(yǔ)句P1=0xfe;(MOV P1,#0FEH)。說(shuō)明現(xiàn)在控制單片機(jī)P1口的第一個(gè)引腳輸出低電平,其他引腳輸出高電平。比如中斷中斷允許寄存器IE,語(yǔ)句IE=0x81;(MOV IE,#81H) 則說(shuō)明控制中斷打開(kāi)總開(kāi)關(guān)和外部中斷0的子開(kāi)關(guān)。至于看書(shū),只需大概了解單片機(jī)各管腳、各個(gè)特殊功能寄存器都是干什么的?能實(shí)現(xiàn)什么樣的功能?這個(gè)非常重要,這也許是看書(shū)的最主要的目的。第一次,第二次你可能看不明白,但這不要緊,因?yàn)檫€缺少實(shí)際的感觀認(rèn)識(shí)。通過(guò)接下來(lái)的實(shí)驗(yàn)就可以非常感觀的認(rèn)識(shí),在這個(gè)過(guò)程一定要花時(shí)間,學(xué)習(xí)程序不能硬背,但是學(xué)習(xí)寄存器一定要下功夫,理解他的功能所在。推薦一本書(shū),就這一本就足夠了,書(shū)名是《例說(shuō)8051》有匯編語(yǔ)言和C語(yǔ)言版本的,非常強(qiáng)悍的一本書(shū),但是我用一個(gè)五一放假的時(shí)間看完了這本書(shū),看完后,覺(jué)得自己已經(jīng)是單片機(jī)高手了。書(shū)中圖文并茂,內(nèi)容安排緊張有序,并非市面上很多說(shuō)教的技術(shù)文檔式的書(shū),什么學(xué)完概念,學(xué)指令,學(xué)完指令學(xué)接口,學(xué)完接口才知道,原來(lái)學(xué)習(xí)單片機(jī)是學(xué)天書(shū)。根據(jù)書(shū)本的安排循序漸進(jìn)的看完前兩章,然后一定是實(shí)踐,一定是實(shí)踐啊,這是非常關(guān)鍵的一步,在戰(zhàn)場(chǎng)上上紙上談兵的列子很多,在學(xué)習(xí)單片機(jī)也一樣,很多相關(guān)專(zhuān)業(yè)的研究生甚至博士生直到畢業(yè)都不清楚單片機(jī)的IO口的分布,不知道分布談何說(shuō)開(kāi)發(fā)呢?更有一些所謂的單片機(jī)高手只停留在編程,以為了買(mǎi)了一塊高級(jí)學(xué)習(xí)板,練習(xí)完了里面所有的程序,感覺(jué)自己排第二沒(méi)人敢拍第一,覺(jué)得下一步不知道如何學(xué)習(xí)單片機(jī)了。殊不知,他們中的很多人到最后單片機(jī)LED的電阻加多大都不清楚更不用說(shuō)單片機(jī)的引腳分布,你說(shuō),如果這樣去開(kāi)發(fā)那不是“草菅人命”啊。不是紙上談兵是什么啊。

            三、學(xué)習(xí)單片機(jī)準(zhǔn)備什么所以啊?

            學(xué)習(xí)單片機(jī)看書(shū)不夠,實(shí)踐也要從實(shí)際出發(fā),現(xiàn)在的技術(shù)太模塊了,什么都可以模塊,模塊的到最后,技術(shù)人員都成了只會(huì)用了,祖先的留下的知識(shí),基礎(chǔ)的知識(shí)該知道還是一定要知道的啊。 畢竟學(xué)習(xí)單片機(jī)的最終目的是開(kāi)發(fā),是通過(guò)創(chuàng)造智能控制的實(shí)物,體現(xiàn)自己的價(jià)值。關(guān)于實(shí)踐有兩種方法可以選擇一種方法:購(gòu)買(mǎi)一塊51單片機(jī)的實(shí)驗(yàn)板,不要求功能太的,對(duì)于初學(xué)者來(lái)功能非常多的那種板子,上面有很多東西你這輩子都用不著,更有實(shí)驗(yàn)板為了增加功能,降低成本,實(shí)驗(yàn)板上到處用的是貼片元件,雙面布線(xiàn),越復(fù)雜就越有水平,好像他們?cè)谠O(shè)計(jì)的時(shí)候就想著,學(xué)習(xí)單片機(jī)只要根據(jù)我的提示下載程序就可以了,更有甚者將下載器和集成了實(shí)驗(yàn)板上。很多初學(xué)者學(xué)完單片機(jī)還認(rèn)為,原來(lái)單片機(jī)不是一塊芯片,是老教材上經(jīng)常提到的使用已經(jīng)不到的單板機(jī)。我覺(jué)得初學(xué)單片機(jī)有這幾個(gè)模塊就夠了,剩下的得自己去開(kāi)發(fā)。流水燈、數(shù)碼管、鍵盤(pán)、蜂鳴器、串口通訊、AD等這就差不多了。如果上面我提到的這些,你能熟練應(yīng)用,那可以說(shuō)對(duì)于單片機(jī)方面的硬件你已經(jīng)入門(mén)了,剩下的就是自己練習(xí)設(shè)計(jì)電路,不斷的積累經(jīng)驗(yàn)。設(shè)計(jì)的電路的時(shí)候必須要學(xué)習(xí)下PCB板設(shè)計(jì)軟件,畢竟現(xiàn)在做開(kāi)發(fā)要產(chǎn)品批量化還得電腦輔助設(shè)計(jì)啊,手工的效率太低了。但是在學(xué)習(xí)的過(guò)程中建議自己動(dòng)手焊接。在焊接前一定要了解電路連接,網(wǎng)上隨便搜索可以找到很多電路原理圖,但是都不一定都能用,所以建議備一塊面包板,有了它你在焊接電路前就可以先測(cè)試下了。如果在面包板上測(cè)試成功,后來(lái)的焊接你就志在必得了,如果失敗,大不了重新再找一個(gè)。只要過(guò)了第一關(guān),后面的路就好走,萬(wàn)事起步難。方法二:你身邊如果有單片機(jī)入門(mén)者,動(dòng)手能力比較強(qiáng),請(qǐng)他幫忙,搭個(gè)簡(jiǎn)單的單片機(jī)最下電路,哪怕是控制一個(gè)LED工作的電路。對(duì)于他們來(lái)說(shuō),做個(gè)單片機(jī)的最小系統(tǒng)板是輕而易舉,而對(duì)于初學(xué)者可就難多,這中間的一層窗戶(hù)紙破了就什么都簡(jiǎn)單了。因?yàn)橹挥袑?duì)硬件了解了,才能熟練運(yùn)用。只有知道程序是和下載到單片機(jī)內(nèi)部的,才會(huì)清楚為什么要寫(xiě)單片機(jī)程序,這個(gè)動(dòng)力來(lái)自于哪里,來(lái)至于心里有底。單片機(jī)編程就是與單片機(jī)對(duì)話(huà),如果不知道對(duì)方誰(shuí),有沒(méi)有再聽(tīng),你還會(huì)有說(shuō)話(huà)的激情嗎。當(dāng)然了如果沒(méi)有這樣的人,還是那句話(huà),在網(wǎng)上多找?guī)讉€(gè)最小電路電路原理圖,在面包板上焊接就可以了。當(dāng)然了這個(gè)也不會(huì)的,那建議你一定要買(mǎi)一塊實(shí)驗(yàn)板,以后單片機(jī)的學(xué)習(xí)實(shí)驗(yàn)及項(xiàng)目測(cè)試驗(yàn)都用的上。

          四、如何邁入單片機(jī)開(kāi)發(fā)世界

            有了單片機(jī)實(shí)驗(yàn)板你就要多練習(xí),最好是自己有臺(tái)電腦,少下載幾部電影,少網(wǎng)絡(luò)游戲,把實(shí)驗(yàn)板和電腦連好,安裝上必備的軟件,下載參考程序,并修改參考程序,從最簡(jiǎn)單的交通燈實(shí)驗(yàn)做起,等你發(fā)現(xiàn)你能控制交通燈,并了解交通的軟硬設(shè)計(jì)的時(shí)候你已經(jīng)入門(mén)了,你會(huì)發(fā)現(xiàn)單片機(jī)是多么迷人的東西啊,這不是在學(xué)習(xí)知識(shí),而是在提升自我的價(jià)值。用途那么廣的交通的設(shè)計(jì)都不在話(huà)下了,你還會(huì)覺(jué)得你沒(méi)有學(xué)到東西嗎。還會(huì)覺(jué)得自己什么都不會(huì)嗎?計(jì)算機(jī)編程、電子技術(shù)的專(zhuān)業(yè)知識(shí)都用上了啊。當(dāng)你編寫(xiě)的程序按你的意愿實(shí)現(xiàn)時(shí),你比做什么事都開(kāi)心,那種學(xué)習(xí)的收獲感和成就感還有充實(shí)感是非常難得的。然后讓數(shù)碼管亮起來(lái)顯示你所需要的數(shù)字。這兩部分會(huì)了以后,你已經(jīng)不能自拔了,你已經(jīng)開(kāi)始考慮你這輩子要走哪一行了。就這樣學(xué)習(xí),在寫(xiě)程序的時(shí)候你肯定會(huì)遇到很多問(wèn)題,而這時(shí)你再去翻書(shū)找,這其中你會(huì)找你之前學(xué)過(guò)的編程的書(shū),還有數(shù)電模電的書(shū),你會(huì)發(fā)現(xiàn)原來(lái)之前學(xué)的知識(shí)還是有用的。遇到不懂再去找以前學(xué)過(guò)的書(shū)本查閱這才是 “溫故而知新,可以為師矣”的大道理啊。知識(shí)必須用于現(xiàn)實(shí)生活中,解決實(shí)際問(wèn)題,用單片機(jī)設(shè)計(jì)個(gè)簡(jiǎn)易的家電定時(shí)器、紅外遙控器什么,這樣才能發(fā)揮它的作用,好好想想,上了這么多年大學(xué),探索了那么久,猶豫徘徊,天天上課,在課堂上學(xué)到了什么?是不是為了期末60分的考試而忙碌,僥幸靠了90分,很高興啊,在別人面前吹自己專(zhuān)業(yè)知識(shí)如何如何學(xué)習(xí)的好,殊不知,大學(xué)考試不像高中考試啊,那了獎(jiǎng)學(xué)金又怎樣。但是下學(xué)期開(kāi)學(xué)回來(lái)一想,所學(xué)的知識(shí)已經(jīng)忘記的一干二凈。學(xué)到什么了?為什么要推薦學(xué)習(xí)單片機(jī),因?yàn)閱纹瑱C(jī)是工科生學(xué)的,集合計(jì)算機(jī)編程電子技術(shù)及多門(mén)控制語(yǔ)言為一體的學(xué)科,與其說(shuō)學(xué)習(xí)是在學(xué)習(xí)單片機(jī),不如說(shuō)是在學(xué)習(xí)一個(gè)大學(xué)科。 五、學(xué)習(xí)單片機(jī)是匯編編程還是C語(yǔ)言編程 關(guān)于用匯編和C語(yǔ)言編程的問(wèn)題。這個(gè)問(wèn)題困惱很多人,可能主要是學(xué)校教學(xué)和部分教材的教育引導(dǎo)引起的吧,大一開(kāi)了C語(yǔ)言編程,沒(méi)等學(xué)生知道到底C語(yǔ)言有什么實(shí)際的用途,馬上其他的語(yǔ)言一起來(lái)過(guò)來(lái)了。即使是開(kāi)始了專(zhuān)門(mén)的單片機(jī)課程,但是課程的內(nèi)容與技術(shù)文檔很相識(shí),指令很多,但是完整的不多,所以學(xué)完了也不知道,到底為什么要學(xué)習(xí)編程。很多同學(xué)大一就開(kāi)設(shè)了C語(yǔ)言的課,我也上過(guò),但是那時(shí)候就是天天幾乘幾,幾加幾啊,求個(gè)階乘啊,用C語(yǔ)言去解決小學(xué)數(shù)學(xué)問(wèn)題,每周兩次上機(jī),對(duì)著書(shū)本不停的敲打,下課了也不知道自己到底掌握了什么,掌握了這個(gè)有什么用途。學(xué)完了有什么用?如果在面試的時(shí)候,老板問(wèn),你學(xué)過(guò)編程嗎,你腦子里馬上是什么“C語(yǔ)言,VC什么VB。很多,什么C語(yǔ)言是基礎(chǔ)是面向工程的,什么VC是高級(jí)面向?qū)ο蟮?rdquo;,但是老板又問(wèn),你能將你所學(xué)習(xí)的C語(yǔ)言應(yīng)用到實(shí)際中不,比如設(shè)計(jì)一個(gè)定時(shí)報(bào)警器的C語(yǔ)言。這下傻了,學(xué)校里沒(méi)有學(xué)過(guò)啊。單片機(jī)編程用C語(yǔ)言或匯編語(yǔ)言都可以,但是我建議用C語(yǔ)言比較好,模塊化管理編程方便,移植性強(qiáng),適合編寫(xiě)大程序。如果原來(lái)有C語(yǔ)言的基礎(chǔ)那學(xué)起來(lái)會(huì)更好,如果沒(méi)有,也可以邊學(xué)單片機(jī)邊學(xué)C語(yǔ)言。雖然很多人是從匯編語(yǔ)言開(kāi)始接觸單片機(jī)的,但是寫(xiě)小程序匯編語(yǔ)言還是簡(jiǎn)單的,如果要實(shí)現(xiàn)一些算法,那匯編語(yǔ)言就不簡(jiǎn)單了。雖說(shuō)C語(yǔ)言編譯以后代碼量明顯比匯編長(zhǎng),而且執(zhí)行效率也沒(méi)有匯編語(yǔ)言高,但是在以前單片機(jī)開(kāi)發(fā)中芯片工藝的限制,及單片機(jī)主頻的限制,很多單片機(jī)內(nèi)部存儲(chǔ)器小的可伶,主頻也小得可伶。但是現(xiàn)在不一樣了,芯片內(nèi)部的存儲(chǔ)器根不不在乎這點(diǎn)差別。主頻也越來(lái)越高。 那匯編語(yǔ)言是不是不學(xué)了呢?不是的,一定要學(xué)習(xí),有兩方面首先入門(mén)單片機(jī)的時(shí)候要用匯編語(yǔ)言,它的語(yǔ)法簡(jiǎn)單。第二如果你要做單片機(jī)的程序的高級(jí)設(shè)計(jì)師,那匯編語(yǔ)言是非掌握不可的,很多像高級(jí)單片機(jī)ARM都是匯編語(yǔ)言作為引導(dǎo)代碼的,還有就是很多新出品的單片機(jī)起先也是先有匯編語(yǔ)言編譯器之后才有C語(yǔ)言編譯器。所以,我覺(jué)得對(duì)于單片機(jī)學(xué)習(xí)匯編語(yǔ)言入門(mén),C語(yǔ)言精通,匯編語(yǔ)言再精通。最后,對(duì)于單片機(jī)的學(xué)習(xí),入門(mén)為先,入門(mén)了以后就要去關(guān)注市場(chǎng),關(guān)注企業(yè),企業(yè)需要什么樣的人才,我想有了基礎(chǔ)以后在面試之前了解下企業(yè)所需要的單片機(jī)類(lèi)型,很快就上手了,畢竟學(xué)習(xí)是相同的。預(yù)祝還在徘徊或則之前接觸過(guò)單片機(jī)的初學(xué)者提前入門(mén)

          蜂鳴器相關(guān)文章:蜂鳴器原理


          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();