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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)環(huán)境的搭建-1.1 由點(diǎn)亮一個(gè)LED引入

          51單片機(jī)環(huán)境的搭建-1.1 由點(diǎn)亮一個(gè)LED引入

          作者: 時(shí)間:2016-11-21 來(lái)源:網(wǎng)絡(luò) 收藏
          第一章 51單片機(jī)環(huán)境的搭建

          1.1 由點(diǎn)亮一個(gè)LED引入

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

          單片機(jī)來(lái)點(diǎn)亮LED,這幾乎是每個(gè)同學(xué)學(xué)習(xí)單片機(jī)的第一個(gè)實(shí)驗(yàn)。那么誰(shuí)來(lái)點(diǎn),怎么亮?注意這里面涉及到兩個(gè)研究對(duì)象,單片機(jī)和LED。要想知道單片機(jī)如何來(lái)點(diǎn),先要知道LED為什么亮。這種由分析被控制對(duì)象來(lái)研究控制對(duì)象的思路在本教程后面會(huì)反復(fù)用到,這里先提出來(lái)亮個(gè)相。我們先來(lái)看LED為什么會(huì)亮,也就是說(shuō)先來(lái)了解LED的工作原理。當(dāng)有電流通過(guò)時(shí)(達(dá)到一定值比如5mA), LED便會(huì)發(fā)光。至于進(jìn)一步的工作原理我們不去追究,有興趣的可以自己查查,不屬于我們討論的內(nèi)容。根據(jù)這個(gè)原理,我們只需要給LED一端(右邊)接在5V電源下,LED左邊接地,如圖1所示,產(chǎn)生電勢(shì)差,正向?qū)?,那么LED有電流通過(guò),就發(fā)光了。


          圖1 點(diǎn)亮LED,由于電流過(guò)高,LED很快熄滅

          但是LED會(huì)很快熄滅,為什么?LED正向?qū)〞r(shí),電阻幾乎為0,根據(jù)歐姆定律,電流無(wú)窮大,LED很快被燒掉。因此我們需要給這個(gè)電路加個(gè)限流電阻,這個(gè)限流電阻應(yīng)該取多大,這里我們把LED的電阻當(dāng)作0,電壓為5V,電流設(shè)定為5mA(具體的數(shù)值需要看你購(gòu)買的LED廠家提供的參數(shù)),根據(jù)歐姆定律就能算出限流電阻為1K。這樣LED就能持續(xù)發(fā)光了,如圖2所示。

          ?

          圖2 串聯(lián)一個(gè)電阻,LED正常發(fā)光

          那么LED怎么熄滅呢?沒(méi)有電流通過(guò)就可以了。如何實(shí)現(xiàn)沒(méi)有電流?LED兩邊等電勢(shì)就行了。因此只需要在LED左邊提供一個(gè)高電平5V,LED就熄滅了,如圖3所示

          ?

          圖3 兩邊等電勢(shì),LED熄滅

          以上我們完成了對(duì)LED的分析。前面說(shuō)了,我們要通過(guò)分析被控制對(duì)象(LED)來(lái)操作控制對(duì)象(MCU).下面再來(lái)分析,如何操作控制對(duì)象。首先要知道MCU是什么?根據(jù)定義,MCU是具有一定可編程能力的數(shù)字電路集合體。那么什么叫做可編程呢?通俗的講,就是根據(jù)人給單片機(jī)的不同指令去執(zhí)行不同的任務(wù)。那這樣就好辦了,如下圖所示,LED左邊接在了MCU的P1.0引腳。根據(jù)前面的分析,只要跟MCU講:”把你的P1.0引腳輸出低電平“,(假設(shè)這里我們的單片機(jī)輸出高電平是5V,低電平是0V。因?yàn)橛械膯纹瑱C(jī)高電平為3.3V)。這時(shí)候LED就點(diǎn)亮了,如果輸出高電平,LED就熄滅了,這樣就實(shí)現(xiàn)了單片機(jī)對(duì)LED的控制,如圖4所示。

          ?

          圖4 單片機(jī)實(shí)現(xiàn)對(duì)LED的控制

          你使用人類語(yǔ)言與單片機(jī)交流,單片機(jī)是聽(tīng)不懂的。因此你對(duì)單片機(jī)發(fā)送的指令無(wú)法傳送給單片機(jī)。單片機(jī)只認(rèn)識(shí)0和1.那么我們馬上想到用0和1來(lái)和單片機(jī)對(duì)話,這當(dāng)然可以。其實(shí)早期的程序就是直接寫0和1的??梢赃@樣做對(duì)程序員來(lái)說(shuō)太痛苦了,單片機(jī)是認(rèn)識(shí)了,程序員卻暈倒了。不信的話,你自己在一張A4的紙上填滿0和1,姑且不論什么含義,看著就暈倒了。這樣就產(chǎn)生了一個(gè)問(wèn)題,用人類語(yǔ)言,單片機(jī)聽(tīng)不懂,用單片機(jī)的語(yǔ)言,人類使用不方便。因此就各退一步,來(lái)個(gè)折中吧。用什么呢,C語(yǔ)言(早期是匯編,我們后面再談)。把人類語(yǔ)言轉(zhuǎn)成C語(yǔ)言,然后再按照一定的規(guī)則把C語(yǔ)言轉(zhuǎn)成機(jī)器語(yǔ)言。前者叫開(kāi)發(fā)環(huán)境,后者就是我們通常所說(shuō)的編譯。你完全可以理解為翻譯。編譯出來(lái)的結(jié)果就是單片機(jī)認(rèn)識(shí)的機(jī)器指令。那么這個(gè)指令如何傳送給單片機(jī)呢,這個(gè)過(guò)程就叫程序燒寫,或者程序下載,燒寫過(guò)程中用到的工具就是燒寫器。把機(jī)器指令輸送到單片機(jī),但上電后,單片機(jī)就開(kāi)始執(zhí)行這個(gè)指令,從而到達(dá)我們控制器件的目的。

          這個(gè)例子非常簡(jiǎn)單,但是給出了單片機(jī)開(kāi)發(fā)的基本流程。首先我們要知道工作器件的原理。工作器件是我們最終的目的,比如控制led,用來(lái)照明;溫度傳感器測(cè)量溫度;液晶顯示內(nèi)容等等。單片機(jī)只是達(dá)到最終目的的手段或者途徑。因此用單片機(jī)來(lái)控制工作器件,一開(kāi)始就要理解工作器件是如何工作的。然后在這個(gè)基礎(chǔ)上,根據(jù)工作器件的需要對(duì)單片機(jī)傳遞不同的指令(人類語(yǔ)言)。單片機(jī)是看不懂人類指令的,因此需要翻譯成單片機(jī)看得懂的語(yǔ)言。然后把翻譯的結(jié)構(gòu)傳送給單片機(jī)。

          前面羅嗦了這么多,主要是為初學(xué)者講解了單片機(jī)開(kāi)發(fā)的初步思想以及單片機(jī)開(kāi)發(fā)環(huán)境的搭建。主要總結(jié)如下兩點(diǎn):1. 從被控制對(duì)象入手來(lái)研究如何操作控制對(duì)象。所謂被控制對(duì)象其實(shí)就是我們想要使用的外圍工作器件,他可以是LED,也可以是溫度傳感器,步進(jìn)電機(jī)等等,是我們的最終目的,比如讓LED閃爍,測(cè)量溫度,控制轉(zhuǎn)速等等。如何了解他們的工作原理,最好的方式就是閱讀廠家提供的說(shuō)明資料。對(duì)于控制對(duì)象(單片機(jī)),這個(gè)也很多,51,MSP430,AVR,PIC等等,如何與他們對(duì)話,同樣的道理,查看芯片手冊(cè)(也是官方資料)。這里反復(fù)強(qiáng)調(diào)是因?yàn)榭吹胶芏喑鯇W(xué)者一碰到問(wèn)題就去網(wǎng)上論壇發(fā)帖求助,殊不知最好的解決問(wèn)題的方式是去查看官方資料。2. 了解這兩個(gè)對(duì)象之間的關(guān)系后,我們就開(kāi)始搭建單片機(jī)開(kāi)發(fā)環(huán)境,編寫指令,編譯指令,最后燒寫指令。



          關(guān)鍵詞: 51單片機(jī)環(huán)境LE

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