單片機LED發光二級管的工作原理和編程方法
單片機LED發光二級管的工作原理和編程方法
單片機由於體積小、價格低廉、功能強、可靠性高、麵向控製和價格低廉等優點,不僅成為工業測控領域使用的智能化控製工具,而且已滲入到人們工作和生活的各個角落。在工科學校中基本都開設有《單片機原理及應用》這門課,而對所有學習單片機的人來說最入門的就是對發光二級管LED的控製。
1 發光二級管的工作原理
發光二極管Light- EmittingDiode簡稱為LED,由镓(Ga)與砷(As)、磷(P)的化合物製成的二極管。發光二極管與普通二極管一樣是由一個PN結組成,也具有單向導電性。當給發光二極管加上正向電壓後,從P區注入到N區的空穴和由N區注入到P區的電子,在PN結附近數微米內分別與N 區的電子和P區的空穴複合,產生自發輻射的熒光,因而可以用來製成發光二極管。在電路及儀器中作為指示燈,或者組成文字或數字顯示。磷砷化镓二極管發紅光,磷化镓二極管發綠光,碳化矽二極管發黃光。
LED隻能往一個方向導通,發光二極管的反向擊穿電壓約5 伏。它的正向伏安特性曲線很陡,使用時必須串聯限流電阻以控製通過管子的電流來控製LED 的亮度。限流電阻R 可用下式計算:
R=(E-UF)/IF
式中E為電源電壓,UF 為LED的正向壓降,IF 為LED 的一般工作電流。
2 LED 的編程方法
假設LED 的連接電路圖如圖1 所示,八個紅色發光二極管通過限流電阻分別接到單片機P1 端口的8 個引腳上,單片機選用AT89C51.
2.1 單個發光二極管的控製
在圖1 中,如圖所示,如果要使發光二極管D1 點亮,由於D1 的正極通過電阻R1 接到電源VCC 上,那麼D1要正向導通必須使D1 的陰極為低電平,也就是P1.0 引腳為低電平,這個可以通過軟件可以控製,完整的C51 程序如下:
同樣的,如果要使發光二極管D1 一亮一滅不停地閃爍,則工作原理是讓D1 點亮並延時一段時間,接著使D1熄滅並延時一段時間並不斷的循環,這樣就可以觀察到D1 一亮一滅不停地閃爍。延時可以采用軟件延時或者定時計數器定時延時兩種方式,本文采用軟件延時,其工作原理是利用每條指令運行都需要一定的時鍾周期,運行一定數量的時鍾周期可以實現延時的功能,本圖中晶振為12MHz,那麼12 個振蕩周期為1us,延時1ms 的延時程序如下:
控製發光二極管D1 一亮一滅不停地閃爍完整C51程序如下:
2.2 多個發光二極管的控製
多個多個發光二極管的控製原理與單個發光二級管的控製原理一樣,在圖1 中,如果要控製8 個發光二極管同時一亮一滅的閃爍,那麼隻需要同時使8 個發光二級管點亮延時一段時間,再同時使8 個發光二級管熄滅並延時一段時間,周而複始不斷循環就可以實現8 個LED 不停地閃爍,完整的C51 程序如下:
在圖1 中如果要控製8 個發光二極管D1,D3,D5,D7奇數燈和D2,D4,D6,D8 偶數等交替閃爍,則隻需要把P1端口所接8 個LED 對應狀態的值送給P1 端口並延時就可以實現該功能,完整程序如下:
2.3 花樣流水燈的控製
對於花樣流水燈,工作原理和前麵多個發光二極管的控製原理一樣,隻需要把不同狀態下燈所對應端口的值送到相應的控製端口並延時一定的時間就可以實現,編程時可以把所以對應狀態的端口值放在一個數組裏存放,不停循環地取數組的值,每取一個值延時一段時間,即可以實現,程序略。
3 總結
單片機在各行各業中使用越來越多,文中對單片機中發光二極管的使用和編程方法進行總結,並給出各種方法的工作原理和完整的程序
初學單片機從51入門的好處 | |
51單片機是一款已經出現很久的單片機,它的出現可以說是劃時代的。同時期出現的其它單片機都已經逐漸退出曆史的舞台,而它卻依舊出現在某些專業的教材上。從這點來看,它依舊有其學習的意義。下麵說說初學單片機從51入門的好處。 51單片機的學習資源非常多... |
如何使用C語言控製硬件 | |
C語言的應用編程在單片機的領域占了很大一部分,使用的比較多的51單片機和STM32單片機都可以使用MDK軟件編寫固件。 單片機燒寫了固件後可以點亮LED燈,可以驅動ADC檢測電壓,也可以驅動蜂鳴器發聲,這就是簡單地控製硬件。稍微複雜一點的,可以驅動NRF2401進... |
c語言怎麼讀取一個變量的二進製文件內容 | |
C語言是一種高級語言,很多設置都為了符合我們程序員的理解做了相應的調整。機器對於變量的理解是基於電路,也就是所謂的高低電平。也是因為這個出現了一個二進製。 而人類的計數更喜歡使用十進製,有專家說是因為是人類當初計數使用的手指,這樣十進製比較... |
單片機為啥叫單片機 | |
1、MCU 我一般在工作計劃和原理圖的說明上,就直接將STM32或者STC89的單片機,標注為MCU。 無論是理解為Micro CPU,還是Microcontroller Unit,我認為都行,也沒有仔細去區分去過。自從32位單片機出來後,一些單片機設計的係統確實是具備部分電腦的功能。 你... |
16位單片機低端打不過8位高端打不過32位怎 | |
有時間去了解一下TI的MPS係列的單片機,它的低功耗和8位的51還有32位的STM32還是有一定的區別度的。 就比如MSP430係列,一些醫療的應用也少不了它,其各種低功耗的應用和例子一抓一大把。 也許從價格上來說,感覺,8位的便宜好買;從性能上來說,感覺,32位的... |
- 單片機和嵌入式哪個好
- 單片機重要特性含義解讀
- 單片機三總線結構及時序分析
- 單片機沒有PWM外設也可以做可調占空比
- 開源硬件arduino是什麼
- 標誌寄存器中的狀態標誌和控製標誌
- at89c51和stc12c5a60s2的引腳的區別
- 學習51單片機要用到哪些硬件工具
- 單片機定時的時間怎麼改變
- 單片機自動斷電或關機電路圖講解
- 串口的波特率如何計算?串口通信波特率計
- 單片機波特率計算公式和方法
- 51單片機ram區域劃分
- spi時序圖怎麼看?spi時序圖閱讀方法
- 51單片機怎麼顯示出數字的?單片機數碼管
- 51單片機有幾個中斷源_52單片機中斷源
- 嵌入式係統的評價方法
- AT89C51單片機為核心的時鍾電路的程序設
- stm32學到什麼程度叫精通
- 用STM32隻會庫函數不會用寄存器有影響嗎