51單片機(jī)開發(fā)環(huán)境的搭建

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


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

但是LED會很快熄滅,為什么?假設(shè)LED正向?qū)〞r兩端壓價約為2.2V,那么剩余的壓降(5-2.2)V會施加在導(dǎo)線上,電阻幾乎為0,根據(jù)歐姆定律,電流無窮大,LED很快被燒掉。因此我們需要給這個電路加個限流電阻,這個限流電阻應(yīng)該取多大,同樣假設(shè)LED正向?qū)ǖ膲簝r約為2.2V(具體查閱LED廠家提供的參數(shù)),電源電壓為5V,電流設(shè)定為5mA,根據(jù)歐姆定律就能算出限流電阻為560R。計算過程如下


R1兩端的電壓等于電源電壓減去LED電壓降,電流I取5mA,這樣可以計算出電阻R1為560歐姆。這樣LED就能持續(xù)發(fā)光了,如圖2所示。


圖2串聯(lián)一個電阻R1,其阻值為560歐姆,此時LED正常發(fā)光

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


圖3LED兩邊等勢,LED熄滅

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

圖4單片機(jī)實現(xiàn)對LED點(diǎn)亮和熄滅的控制

你使用人類語言與單片機(jī)交流,單片機(jī)是聽不懂的。因此你對單片機(jī)發(fā)送的指令他是聽不懂的。那么單片機(jī)聽的懂什么語言?我們知道單片機(jī)只認(rèn)識0和1.那么我們馬上想到用0和1來和單片機(jī)對話,這當(dāng)然可以。其實早期的程序就是直接寫0和1的(www.ppptalk.com)??墒沁@樣做對程序員來說太痛苦了,單片機(jī)是認(rèn)識了,程序員卻暈倒了。不信的話,你自己在一張A4的紙上填滿0和1,姑且不論什么含義,看著就暈倒了。這樣就產(chǎn)生了一個問題,用人類語言,單片機(jī)聽不懂,用單片機(jī)的語言,人類使用不方便。因此就各退一步,來個折中吧。用什么呢,C語言(早期是匯編,我們以后再談),既像機(jī)器語言又帶有人類語言的味道。這樣我們就先把人類語言轉(zhuǎn)成C語言,然后再按照一定的規(guī)則把C語言轉(zhuǎn)成機(jī)器語言,從而實現(xiàn)人與機(jī)器的交流。因此簡單來講,就是把人的語言(或者說指令)先翻譯成C語言,然后進(jìn)一步翻譯成機(jī)器語言(或者機(jī)器指令)。那么這個指令如何傳送給單片機(jī)呢,這個過程就叫程序燒寫,或者程序下載,燒寫過程中用到的工具就是燒寫器。把機(jī)器指令輸送到單片機(jī),上電后,單片機(jī)就開始執(zhí)行這個指令,從而到達(dá)我們控制器件的目的。其過程如下所示::



圖5單片機(jī)開發(fā)環(huán)境搭建流程圖。一共包括三個過程,STEP1-把人的指令翻譯成C語言,STEP2-把C語言進(jìn)一步翻譯(編譯)成機(jī)器語言,STEP3-把機(jī)器語言傳送給單片機(jī),從而實現(xiàn)對單片機(jī)的控制

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

對于STC89C52RC單片機(jī),編輯和編譯指令采用的是KEIL軟件,下載程序(燒寫指令)采用STC_ISP(宏晶)。因此簡單來講,對于STC89C52RC單片機(jī)搭建開發(fā)環(huán)境,就是安裝這個兩個軟件(KEIL和STC_ISP)

前面羅嗦了這么多,主要是為初學(xué)者講解了單片機(jī)開發(fā)的初步思想以及單片機(jī)開發(fā)環(huán)境的搭建。主要總結(jié)如下兩點(diǎn):

1.從被控制對象入手來研究如何操作控制對象。所謂被控制對象其實就是我們想要使用的外圍工作器件,他可以是LED,也可以是溫度傳感器,步進(jìn)電機(jī)等等,是我們的最終目的,比如讓LED閃爍,測量溫度,控制轉(zhuǎn)速等等。如何了解他們的工作原理,最好的方式就是閱讀廠家提供的說明資料。對于控制對象(單片機(jī)),這個也很多,51,MSP430,AVR,PIC等等,如何與他們對話,同樣的道理,查看芯片手冊(也是官方資料)。

2.了解這兩個對象之間的關(guān)系后,我們就開始搭建單片機(jī)開發(fā)環(huán)境,編寫指令,編譯指令,最后燒寫指令。



補(bǔ)充內(nèi)容:發(fā)光二極管的導(dǎo)通壓降

發(fā)光二極管導(dǎo)通后的壓降基本穩(wěn)定在1.2~2V左右,隨著電壓的升高壓降略有升高

對于直插發(fā)光二極管壓降

主要有三種顏色,這三種顏色的壓降都不相同,具體壓降參考值如下:

紅色發(fā)光二極管的壓降為2.0~2.2V

黃色發(fā)光二極管的壓降為1.8~2.0V

綠色發(fā)光二極管的壓降為3.0~3.2V

直插型發(fā)光二極管正常發(fā)光時的額定電流約為20mA

對于貼片發(fā)光二極管壓降:

紅色發(fā)光二極管壓降為1.82~1.88V,額定電流5-8mA

綠色發(fā)光二極管壓降為1.75~1.82V,額定電流3-5mA

橙色發(fā)光二極管壓降為1.7~1.8V,額定電流3-5mA

藍(lán)色發(fā)光二極管壓降為3.1~3.3V,額定電流8-10mA

這里列出這些參數(shù),主要給大家一個簡單的印象,在具體項目中要查看使用的發(fā)光二極管廠家提供的參數(shù)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容