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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)小白學(xué)步(7) 準(zhǔn)備實(shí)驗(yàn)板——蘿卜青菜,各有所愛

          單片機(jī)小白學(xué)步(7) 準(zhǔn)備實(shí)驗(yàn)板——蘿卜青菜,各有所愛

          作者: 時(shí)間:2016-11-19 來源:網(wǎng)絡(luò) 收藏
          單片機(jī)的學(xué)習(xí),最重要的一點(diǎn)就是多實(shí)踐。站在岸上學(xué)不會(huì)游泳。沒有實(shí)踐,恐怕永遠(yuǎn)也學(xué)不好單片機(jī)。我將和大家一起,選擇一款適合自己的單片機(jī)實(shí)驗(yàn)板。

          方案選擇

          我們主要有三個(gè)可選方案:

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

          1、自己動(dòng)手搭建學(xué)習(xí)板;

          2、購買成品開發(fā)板;

          3、使用Proteus等仿真軟件。

          方案一非常適合動(dòng)手能力較強(qiáng),想鍛煉動(dòng)手能力,時(shí)間比較充裕的讀者選用。自己動(dòng)手搭建電路,能讓我們對(duì)單片機(jī)更加了解,充分鍛煉了動(dòng)手能力,對(duì)以后需要自己制作東西很有幫助。或許你只是用現(xiàn)成的開發(fā)板學(xué)完單片機(jī),等到想給好友或者心儀的異性做點(diǎn)東西表達(dá)下自己的心意時(shí),才發(fā)現(xiàn)不會(huì)焊板子,那實(shí)在非常尷尬。這種方案的缺點(diǎn)在于:各種零散的元件不是很方便購買,不過如果能在淘寶上找到合適的賣家就好了;只適合一開始搭建比較簡(jiǎn)單的電路,如果太復(fù)雜或者有一些不便于焊接的器件,就很麻煩了;比較耗費(fèi)時(shí)間,容易出現(xiàn)一些疑難問題,并且很難解決,不過解決問題的過程中能加深對(duì)單片機(jī)的了解。

          如果動(dòng)手能力不強(qiáng),沒有很多時(shí)間精力自己搭電路,以及一些不方便自己搭建電路的情況(比如電路很復(fù)雜),可選用方案二。我會(huì)對(duì)這個(gè)方案做一些介紹,尤其是方便大家能將所購買的各種不同的開發(fā)板和文中內(nèi)容聯(lián)系起來,比如如何識(shí)讀電路圖。方案二既能讓我們實(shí)際感受單片機(jī)的工作情況,又免去了自己搭電路的麻煩,非常適合初學(xué)者學(xué)習(xí)單片機(jī)的編程。

          對(duì)于只想簡(jiǎn)單了解單片機(jī)、不打算實(shí)際動(dòng)手和深入研究的讀者,以及經(jīng)濟(jì)條件不好,不想花很多錢,或者不便購買電子元器件的讀者,則可以選用方案三,對(duì)于較為復(fù)雜系統(tǒng)的開發(fā)過程,也要用到方案三。Proteus軟件的使用,可以從網(wǎng)上找到一些學(xué)習(xí)資料,我只做一些簡(jiǎn)單介紹。

          我們可以根據(jù)不同的需要,靈活選擇不同的方案,還可以同時(shí)用三種方案去實(shí)踐。

          仿真軟件Proteus

          不論選擇哪種方案,建議大家都了解一下Proteus軟件的使用。Proteus是一款EDA軟件(EDA = Electronic Design Automation,電子設(shè)計(jì)自動(dòng)化),常用于單片機(jī)等數(shù)字電路仿真。

          何為仿真呢?就是利用計(jì)算機(jī)軟件來模擬一個(gè)實(shí)際系統(tǒng),并利用計(jì)算機(jī)的運(yùn)算存儲(chǔ)能力輔助開發(fā)者進(jìn)行設(shè)計(jì)。廣義的理解,這個(gè)系統(tǒng)可以是電路,也可以是機(jī)械結(jié)構(gòu),甚至還可以是音樂、視頻等。

          仿真軟件有什么好處,為什么要掌握Proteus呢?我舉一個(gè)不是很恰當(dāng)?shù)睦印,F(xiàn)在很多人寫一些文字材料,都是用電腦寫的,在寫的時(shí)候,經(jīng)過了很多次的修改調(diào)整,才能比較滿意,最后打印。在修改的過程中,我們可以利用電腦很自由的進(jìn)行排版,剪切復(fù)制粘貼等操作。而如果用老式的打字機(jī),每打一個(gè)字就直接印上去,或者直接手寫,就不方便進(jìn)行修改,特別麻煩,還浪費(fèi)很多紙張。

          同樣,在實(shí)際項(xiàng)目中,我們開發(fā)一個(gè)產(chǎn)品往往需要進(jìn)行很多次實(shí)驗(yàn),經(jīng)過不斷的測(cè)試和修改,最后才能做出來符合要求的產(chǎn)品。而如果我們每次都修改實(shí)際的電路等部件時(shí),同樣會(huì)導(dǎo)致效率低,修改麻煩,浪費(fèi)時(shí)間資源等問題。仿真軟件還有一些好處,比如在Proteus中有很多虛擬儀器,如此示波器、邏輯分析儀、計(jì)數(shù)器、信號(hào)發(fā)生器等,其中有些儀器非常昂貴,我們往往不容易接觸到,但是在仿真軟件中,我們可以很容易的使用它們。另外Proteus中調(diào)試單片機(jī)程序也是非常方便的,我們可以輕松的查看單片機(jī)內(nèi)部存儲(chǔ)器存儲(chǔ)的數(shù)據(jù),大大方便了我們調(diào)試程序。而在實(shí)際電路中,想直接查看單片機(jī)內(nèi)部的具體情況就很麻煩了。

          但是仿真自然也有其缺點(diǎn)。還是上面的例子,在電腦上編輯文本的時(shí)候,盡管編輯器已經(jīng)非常好用了,但是跟紙質(zhì)相比,還是有它的局限性。不容易直接看到這些文字被打印到紙上的效果,也不能像在紙上一樣用筆自由的圈點(diǎn)批注。同樣在電路仿真中,對(duì)于單片機(jī)這樣的數(shù)字電路來說,通常仿真結(jié)果會(huì)和實(shí)際情況相符;而對(duì)于一些復(fù)雜電路尤其是模擬電路,計(jì)算機(jī)軟件仿真就很難做到和真實(shí)電路一樣了。所以仿真只是輔助進(jìn)行設(shè)計(jì),電路通常還是需要實(shí)際搭建出來進(jìn)行驗(yàn)證。所以如果有條件最好還是自己搭建電路,將軟件仿真和實(shí)際電路結(jié)合起來進(jìn)行學(xué)習(xí)。

          總結(jié)

          總體來說,條件允許的情況下,我的建議是這樣的。一開始的簡(jiǎn)單電路,我們有必要自己動(dòng)手搭建來加強(qiáng)對(duì)單片機(jī)的認(rèn)識(shí);而后來我們學(xué)到一些單片機(jī)外設(shè),電路連線比較多,自己搭建費(fèi)時(shí)較多,而且容易出現(xiàn)接觸不良等情況,可以選用一塊好用的成品單片機(jī)開發(fā)板來學(xué)習(xí);當(dāng)我們的程序出現(xiàn)問題、需要調(diào)試時(shí),或者再到后來我們可能想自己設(shè)計(jì)制作一些作品,設(shè)計(jì)過程中電路可能需要經(jīng)過多次修改,這時(shí)選用仿真軟件分析、并結(jié)合實(shí)際電路實(shí)驗(yàn)將是一個(gè)不錯(cuò)的選擇。

          后面會(huì)對(duì)每種方案進(jìn)行一些介紹,包括使用方法和技巧。正所謂蘿卜青菜,各有所愛,大家可以根據(jù)自己的需要去選擇。

          =======================================================



          評(píng)論


          技術(shù)專區(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); })();