下面我們就使用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)/I,U為電源電壓,UL為發光二極體正常發光時端電壓,I為發光二極體的電流。
以上是發光二極體的基礎知識,但這裡只說了一些重要的性質和參數,實際在做電路時還要考慮到其它的因素,如各種種樣的封裝尺寸以及價格等,下面說一下如何通過編程讓實驗板上的一個發光二極體發光。
學過電子技術的人應該知道,要讓一個發光二極體發光我們可能採用如下電路實現,如圖2,這裡只要限流電阻選擇恰當,就可以讓發光二極體發光。
圖2 全硬體電路實現發光二極體發光
下面我們把電路稍作變化,如圖3,把圖2中接地的一端直接接到單片機的P1口的第1個引腳上,大家想想現在怎麼才能讓發光二極體發光呢?可能大家馬上會說出,讓單片機第1腳輸出低電壓,而單片機的引腳可以輸出0和1兩種電平,0代表低電平也就是低電壓,1代表高電平也就高電壓這個我們在前面的課程中講過,也就是說我們現在只要能通過程序讓每1腳輸出0就可以了。
圖3 單片機實現發光二極體發光的原理圖
為了便於演示結果,我們先給出實驗板上的原理圖,如圖4所示,8個發光二極體通過一個排阻,再通過一個跳線帽接電源的正極5V,而所有管的負極則分別接到單片機的P1口的8個引腳上。關於跳線帽這裡就不解釋了,下面先說下排阻吧。
所謂排阻,其實就是一排若干個參數完全相同的電阻,主要有有直插和貼片兩種形式,如圖5所示。它們的一個引腳都連到一起,作為公共引腳,其餘引腳正常引出,通常最左邊的那個是公共引腳,它在排阻上一般用一個色點標出來。如圖4所示,8個發光二極體陰極接單片機P1口的8個引腳,陽極分別接8個電阻的一端,然後電阻的另一端全部接在一起由1腳引出,然後通過跳線帽直接接電源的正極5V。採用排阻直接代替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 第一個發光二極體發光的實驗現象
本文轉自網絡,版權歸原作者,如果您覺得不好,請留言聯繫我們刪除!