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

          新聞中心

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

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

          作者: 時間:2016-11-21 來源:網絡 收藏
          第一章 51單片機環(huán)境的搭建

          1.1 由點亮一個LED引入

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

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


          圖1 點亮LED,由于電流過高,LED很快熄滅

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

          ?

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

          那么LED怎么熄滅呢?沒有電流通過就可以了。如何實現沒有電流?LED兩邊等電勢就行了。因此只需要在LED左邊提供一個高電平5V,LED就熄滅了,如圖3所示

          ?

          圖3 兩邊等電勢,LED熄滅

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

          ?

          圖4 單片機實現對LED的控制

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

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

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



          評論


          技術專區(qū)

          關閉
          看屁屁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); })();