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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)初學(xué)者學(xué)習(xí)之路—經(jīng)驗(yàn)

          單片機(jī)初學(xué)者學(xué)習(xí)之路—經(jīng)驗(yàn)

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

          想對(duì)說(shuō)的話(huà)

          不知不覺(jué)自己接觸已經(jīng)有兩年多了,從最初的MCS-51,到后來(lái)的AVR、MSP430,對(duì)于也還是有一點(diǎn)理解的,當(dāng)然我還只算是一只入門(mén)不久的菜鳥(niǎo),對(duì)于很多技術(shù)我還是一個(gè),人外有人,牛人真的太多了。也常有同學(xué)問(wèn)我單片機(jī)應(yīng)該怎么學(xué),我的回答都是兩個(gè)字:實(shí)踐。我覺(jué)得實(shí)踐才能出真知,不實(shí)踐是永遠(yuǎn)也學(xué)不會(huì)單片機(jī)的,這和你看一百道菜譜不下廚永遠(yuǎn)也做不出佳肴,看一百本游泳的書(shū)不下水永遠(yuǎn)也學(xué)不會(huì)游泳是一個(gè)道理。那么怎么去實(shí)踐?這可能是最關(guān)心的問(wèn)題,網(wǎng)上類(lèi)似的回答也很多,這都是老生常談了,只要你是有心人,一搜一大把。

          簡(jiǎn)單說(shuō)一下學(xué)習(xí)單片機(jī)的步驟:

          1.購(gòu)買(mǎi)常用的工具(萬(wàn)用表,烙鐵,烙鐵架,松香,焊錫,螺絲刀,吸錫器,攝子)和電子元件(萬(wàn)能板,電阻,電容,發(fā)光二極管,整流橋,數(shù)碼管,常用接插件等),先做個(gè)5V的直流電源(變壓器/整流橋/7812/7805/電解電容若干,電容的極性可別反了),再?gòu)幕镜陌l(fā)光二極管驅(qū)動(dòng)電路開(kāi)始,灌電流還是拉電流?限流電阻取多大?怎么計(jì)算的?你是不是發(fā)現(xiàn),很多基本的知識(shí)你都不懂,甚至連元件的型號(hào)你都叫不出來(lái)。沒(méi)有關(guān)系,多問(wèn)人,論壇、QQ技術(shù)群里熱心人還是有的。準(zhǔn)備一個(gè)筆記本,有用的知識(shí)應(yīng)該記下來(lái)。

          2.用萬(wàn)能板搭建一個(gè)51的最小系統(tǒng)(當(dāng)然要從51入手,資料太多了),點(diǎn)亮一個(gè)LED再說(shuō),接著是數(shù)碼管、蜂鳴器,繼電器,EEPROM,AD/DA,LCD,時(shí)鐘芯片,數(shù)字溫度計(jì),紅外遙控編解碼等等,這里面三極管用的很普遍,有時(shí)用作放大,有時(shí)用開(kāi)關(guān),一定要理解清楚??磥?lái)要做的工作還真不少,這可不能急,一樣一樣來(lái),誰(shuí)讓你想學(xué)到真本領(lǐng)。有條件買(mǎi)個(gè)開(kāi)發(fā)板也很方便,若是能堅(jiān)持DIY,也是趣味無(wú)窮。很多芯片是可以免費(fèi)申請(qǐng)到的,最好申請(qǐng)的是美信公司的片子,我用的很多芯片都是從那申請(qǐng)的,例如:MAX1270、DS12C887、DS18B20、MAX518、MAX396、MAX7219、MAX145等,在此我是發(fā)自?xún)?nèi)心的感謝美信公司為我提供的免費(fèi)午餐,確實(shí)要用的話(huà)就申請(qǐng)一下,只是好奇,或貪小便宜,那就別申請(qǐng),別讓人家小瞧了咱中國(guó)未來(lái)的電子工程師。當(dāng)然這些芯片的datasheet都是英文的,所以,大學(xué)生朋友們,盡管我們是學(xué)電的,英文還是要好好學(xué)的。

          3.單片機(jī)的編程,多數(shù)人先接觸匯編,要學(xué)好單片機(jī),匯編是要懂的,但最終你必須掌握C語(yǔ)言,C語(yǔ)言真的太強(qiáng)大、太方便了,其好處不用我多說(shuō)了。IDE個(gè)人感覺(jué)最好的是Keil,在這推薦一下。剛開(kāi)始當(dāng)然是從跑馬燈開(kāi)始,網(wǎng)上有很多單片機(jī)實(shí)驗(yàn)的源代碼,都是絕好的學(xué)習(xí)資料,好好消化一下,收獲會(huì)很大。 “hello world”的串口通信例子應(yīng)該盡早調(diào)通,在沒(méi)有仿真器的情況下,串口就是最好的調(diào)試工具,一個(gè)高人曾指點(diǎn)我:拿到一個(gè)處理器,首先要做的就是打通串口。串口一通就好比一個(gè)習(xí)武之人打通了全身筋脈,再學(xué)其它武功就會(huì)易如反掌。定時(shí)器是單片機(jī)非常重要的資源,其使用方法一定要整清楚。高人說(shuō)過(guò),沒(méi)有定時(shí)器的單片機(jī)不是單片機(jī),事實(shí)上我也沒(méi)見(jiàn)過(guò)哪款單片機(jī)沒(méi)有定時(shí)器的。另外,一個(gè)好的編程風(fēng)格也很重要,看一看相關(guān)的資料,你會(huì)受益很多,網(wǎng)上這樣的資料也很多。

          4.程序?qū)懞昧?,怎么下載到單片機(jī)里,總是借別人的編程器總是不太好,現(xiàn)在一些單片機(jī)有ISP功能了,如89S5X和AVR單片機(jī)。網(wǎng)上有一個(gè)Easy 51Pro v2.0宇宙版,資料很全,感謝前輩的無(wú)私奉獻(xiàn)啊。照他說(shuō)的電路自己做個(gè)ISP下載線(xiàn),非常好用,若是自己做的不好用,買(mǎi)個(gè)現(xiàn)成的也不貴。這錢(qián)若還舍不得,那就試試STC的51系列單片機(jī)吧,可以用串口燒你的程序,這其實(shí)叫IAP,有興趣可以去網(wǎng)上搜一下。當(dāng)然,等你以后的用的單片機(jī)多了,編程器還是不可缺少的。

          5. 單片機(jī)故障的排查:對(duì)于單片機(jī)的問(wèn)題,首先搞清楚一個(gè)CPU工作的三要素:電源,時(shí)鐘源(晶振),復(fù)位電路,是不是都沒(méi)有問(wèn)題了,如果有示波器那就更好了,看一下ALE腳是不是有fosc/6的方波信號(hào),有的話(huà)說(shuō)明單片機(jī)在工作,三要素已經(jīng)滿(mǎn)足了,沒(méi)有的話(huà)只能再不厭其煩的檢察了,其實(shí)很簡(jiǎn)單,參照書(shū)上的電路一般沒(méi)問(wèn)題。

          等自己動(dòng)手做出些東西來(lái)了,可以算是入門(mén)了,會(huì)有一種成就感,但是不要滿(mǎn)足于這點(diǎn)小成功,這些還都是小把戲,前面的路還是漫長(zhǎng)的,如FPGA,PCB,DSP,ARM等,都是需要學(xué)習(xí)的。保存好你的電路和源代碼,這都是你的財(cái)富。會(huì)有用到它們的時(shí)候。另外,你做的東西可能只是功能上能實(shí)現(xiàn),離一個(gè)成熟的產(chǎn)品還有很大差距,穩(wěn)定性、抗干擾都不是小問(wèn)題。這些知識(shí)必須有良好的電路基礎(chǔ)理論,大學(xué)里學(xué)的數(shù)電、模電、信號(hào)都是非常重要的,特別是模電,好好復(fù)習(xí),保證每次復(fù)習(xí)你都會(huì)有新的收獲。路漫漫其修遠(yuǎn)兮,耐心去求索吧。

          地球真的很危險(xiǎn),沒(méi)有兩把刷子何以立足,總要有吃飯的家伙啊童鞋們。認(rèn)真掌握一項(xiàng)技術(shù),其必要性不言自明。想學(xué)就不要猶豫不決,不要老是等明天。



          評(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); })();