專(zhuān)注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

第3課 點(diǎn)亮第一個(gè)發(fā)光二極管

作者:huqin   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2013年12月30日   【字體:

 

在第上一課中,我們主要講了keil軟件的使用及如何使用keil軟件建立一個(gè)工程文件,下面我們就使用C語(yǔ)言編寫(xiě)一個(gè)程序點(diǎn)亮實(shí)驗(yàn)板上的一個(gè)發(fā)光二極管。首先我們來(lái)講一下發(fā)光二極管的發(fā)光原理。
1、發(fā)光二極管發(fā)光原理
發(fā)光二極管簡(jiǎn)稱(chēng)LED,采用砷化鎵、鎵鋁砷、和磷化鎵等材料制成,其內(nèi)部結(jié)構(gòu)為一個(gè)PN結(jié),具有單向?qū)щ娦浴?當(dāng)在LED發(fā)光二極管PN結(jié)上加正向電壓時(shí), P區(qū)的空穴注入到N區(qū),N區(qū)的電子注入到P區(qū),這空穴與電子相復(fù)合時(shí)產(chǎn)生的能量大部分以光的形式出現(xiàn),因此而發(fā)光,并且根據(jù)釋放能量的不同能發(fā)出不同波長(zhǎng)的光,在電路或儀器中可用作指示燈,也可以組成文字或顯示器件。
發(fā)光二極管按封裝(這里可以暫理解為外形)可分為直插式和貼片式的兩種,按發(fā)光顏色可分為紅色、藍(lán)色、綠色等,如圖1所,上面為帖片發(fā)光二極管,下邊為直插式的發(fā)光二極管。
 
圖1 發(fā)光二極管
    LED工作時(shí),應(yīng)該串接一個(gè)限流電阻,該電阻的阻值大小應(yīng)根據(jù)不同的使用電壓和LED所需工作電流來(lái)選擇。LED發(fā)光二極管的壓降一般為1.5~3.0 V(紅色和黃色一般為2V。其它顏色一般為3V),其工作電流一般取10~20 mA為宜。其限流電阻的計(jì)算公式為R=(U-UL)/IU為電源電壓,UL為發(fā)光二極管正常發(fā)光時(shí)端電壓,I為發(fā)光二極管的電流。
以上是發(fā)光二極管的基礎(chǔ)知識(shí),但這里只說(shuō)了一些重要的性質(zhì)和參數(shù),實(shí)際在做電路時(shí)還要考慮到其它的因素,如各種種樣的封裝尺寸以及價(jià)格等,下面說(shuō)一下如何通過(guò)編程讓實(shí)驗(yàn)板上的一個(gè)發(fā)光二極管發(fā)光。
學(xué)過(guò)電子技術(shù)的人應(yīng)該知道,要讓一個(gè)發(fā)光二極管發(fā)光我們可能采用如下電路實(shí)現(xiàn),如圖2,這里只要限流電阻選擇恰當(dāng),就可以讓發(fā)光二極管發(fā)光。
圖2 全硬件電路實(shí)現(xiàn)發(fā)光二極管發(fā)光
下面我們把電路稍作變化,如圖3,把圖2中接地的一端直接接到單片機(jī)的P1口的第1個(gè)引腳上,大家想想現(xiàn)在怎么才能讓發(fā)光二極管發(fā)光呢?可能大家馬上會(huì)說(shuō)出,讓單片機(jī)第1腳輸出低電壓,而單片機(jī)的引腳可以輸出0和1兩種電平,0代表低電平也就是低電壓,1代表高電平也就高電壓這個(gè)我們?cè)谇懊娴恼n程中講過(guò),也就是說(shuō)我們現(xiàn)在只要能通過(guò)程序讓每1腳輸出0就可以了。
圖3 單片機(jī)實(shí)現(xiàn)發(fā)光二極管發(fā)光的原理圖
為了便于演示結(jié)果,我們先給出實(shí)驗(yàn)板上的原理圖,如圖4所示,8個(gè)發(fā)光二極管通過(guò)一個(gè)排阻,再通過(guò)一個(gè)跳線(xiàn)帽接電源的正極5V,而所有管的負(fù)極則分別接到單片機(jī)的P1口的8個(gè)引腳上。關(guān)于跳線(xiàn)帽這里就不解釋了,下面先說(shuō)下排阻吧。
 
圖4 實(shí)驗(yàn)板上的8個(gè)發(fā)光二極管
 
 
圖5 直插排阻和貼片的排阻
2、發(fā)光二極管及流水燈程序
2.1 點(diǎn)亮第一個(gè)發(fā)光二極管
上面我們介紹了發(fā)光二極管的發(fā)光原理,同時(shí)對(duì)實(shí)驗(yàn)板上的原理圖作了相應(yīng)的分析,下面給出點(diǎn)亮第一個(gè)發(fā)光管具體程序。關(guān)于工程文件的建立,前面已經(jīng)詳細(xì)的講過(guò),這里不在敘述,這里我們點(diǎn)擊keil軟件,建立工程LED1,然后建立文件LED1,最后輸入程序如下。
例1 點(diǎn)亮第一個(gè)發(fā)光二極管程序
(2)輸入源程序(又稱(chēng)為程序編輯)
#include<reg52.h>//52系列單片機(jī)頭文件
sbit D1=P1^0;//位定義單片機(jī)P1口的第1位
 
void main()//主函數(shù)
{
       D1=0;//點(diǎn)亮第一個(gè)發(fā)光二極管
}
輸入上面程序時(shí),keil軟件會(huì)自動(dòng)識(shí)別C51的關(guān)鍵字,如本程序中的include、sbit、void,并會(huì)以不同的顏色加以提示,如果輸入有誤,則不會(huì)變顏色,這樣就可以使得程序編寫(xiě)者減少輸入錯(cuò)誤,提高編程質(zhì)量,當(dāng)然這一系列的前提是,建立文件時(shí)必須先保存才會(huì)出現(xiàn)這種效果,這個(gè)也是我們上一節(jié)講的為什么文件建好后最好先進(jìn)行保存的原因。
(2)程序的編譯與錯(cuò)誤檢查
程序輸入完畢后,下一步的工作就是對(duì)文件進(jìn)行編譯和錯(cuò)誤檢查與排除。
圖6 輸入代碼后的界面
如圖6所示,為程序輸入后的界面。點(diǎn)擊全部編譯快捷按鈕,此時(shí)會(huì)進(jìn)入編譯后的界面如圖7.
圖7 編譯后的界面
在圖7中我們會(huì)下到最下邊的編譯對(duì)話(huà)框里會(huì)多出幾行字,具體的含義如下:
 
創(chuàng)建目標(biāo)“Target1”
編譯文件led1.c…
鏈接…
程序大。簝(nèi)部RAM= 9.0個(gè)字節(jié) 外部RAM =0個(gè)字節(jié),ROM空間=18字節(jié)
工程“led1”0錯(cuò)誤,0警告。
 
這就表示程序語(yǔ)法上沒(méi)有錯(cuò)誤,當(dāng)然如果有錯(cuò)誤,剛編譯不能通過(guò),現(xiàn)在我們更改程序,如我們把“sbit D1=P1^0; ”后面的“; ”,再次編譯,此時(shí)會(huì)出現(xiàn)錯(cuò)誤提示界面如圖8所示。
 
圖8編譯錯(cuò)誤的界面
此時(shí)雙擊錯(cuò)誤提示行(圖8藍(lán)色行),會(huì)有在程序中出現(xiàn)一個(gè)箭頭,錯(cuò)誤信息就出現(xiàn)在箭頭附近,這里相當(dāng)于一個(gè)提示,此時(shí)根據(jù)該提示信息,就可以快速的找到程序錯(cuò)誤的地方。
(3)程序下載
在下載程序到單片機(jī)之前,我們還需做一步工作就是生成“HEX”文件生成的設(shè)置,因?yàn)閱纹瑱C(jī)只能認(rèn)識(shí)0和1之類(lèi)的二進(jìn)制數(shù)字代碼,也就是說(shuō)再?gòu)?fù)雜的程序最終下載到單片機(jī)內(nèi)部都只能是一連串的二進(jìn)數(shù)。單片機(jī)允許下載HEX文件和BIN文件,BIN是二進(jìn)制文件,是binary的簡(jiǎn)稱(chēng),可直接下載到單片機(jī)內(nèi)部,HEX是十六進(jìn)制文件,是hexadecimax的簡(jiǎn)稱(chēng),下載時(shí)經(jīng)過(guò)下載軟件,又被翻譯成二進(jìn)制文件,最終下載到單片機(jī)里。
Keil軟件可以直接輸出HEX文件,但需要設(shè)置。此時(shí)回到編輯界面,然后點(diǎn)擊Project Opitions for Targtet ‘Target 1’選項(xiàng),或直接點(diǎn)擊界面左上角快捷方式按鈕,出現(xiàn)設(shè)置界面如圖9。選擇Output選項(xiàng),然后在Creat Hex file選項(xiàng)前打鉤,然后點(diǎn)擊確定即可。
圖9 hex文件輸出設(shè)置窗口
HEX文件設(shè)置后,會(huì)重新回到編輯界面,此時(shí)再次點(diǎn)擊全部編譯按鍵,此時(shí)會(huì)在最后面的編譯信息窗口看到多出了creating hex file from “led1”…,如圖10所示此時(shí)表明在工程文件中生成了hex文件,這個(gè)
圖10 生成hex文件后的窗口
此時(shí)我們用ISP軟件將來(lái)此HEX文件下載到實(shí)驗(yàn)板中,看到的實(shí)驗(yàn)現(xiàn)象如圖11所示。
圖11 第一個(gè)發(fā)光二極管發(fā)光的實(shí)驗(yàn)現(xiàn)象
關(guān)閉窗口

相關(guān)文章