<menuitem id="t17lb"><menuitem id="t17lb"><ruby id="t17lb"></ruby></menuitem></menuitem><ins id="t17lb"></ins>
<ins id="t17lb"><i id="t17lb"><progress id="t17lb"></progress></i></ins>
<cite id="t17lb"><i id="t17lb"></i></cite>
<ins id="t17lb"></ins>
<address id="t17lb"><i id="t17lb"></i></address>
<address id="t17lb"><i id="t17lb"></i></address>
<ins id="t17lb"></ins>
<ins id="t17lb"></ins><var id="t17lb"><i id="t17lb"><th id="t17lb"></th></i></var><listing id="t17lb"><i id="t17lb"></i></listing>
<th id="t17lb"><i id="t17lb"><th id="t17lb"></th></i></th>
<del id="t17lb"><i id="t17lb"><listing id="t17lb"></listing></i></del>
<var id="t17lb"><span id="t17lb"><th id="t17lb"></th></span></var><th id="t17lb"><del id="t17lb"></del></th>
(玩電子) 電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

第3課 點亮第一個發光二極管

作者:huqin   來源:本站原創   點擊數:x  更新時間:2013年12月30日   【字體:

 

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

文章評論

相關文章

jijzzizz中国版