每天資訊掃盲教程:51微控制器控制單個LED燈閃爍 適合新手

菜單

掃盲教程:51微控制器控制單個LED燈閃爍 適合新手

說明:本文和上個教程一樣也是單純的掃盲教程,是上一篇點亮LED燈的升級版,也就是不光要把LED燈點亮,還要控制它熄滅,要控制它有規律的閃爍,本文同樣只對微控制器入門級的小夥伴,如果是老鳥請自覺飄過。

好了,我們繼續說今天的實驗,微控制器控制LED流水燈,這個其實比上一個點亮LED的實驗複雜一點點,硬體上就是把多幾個LED, 軟體上加上控制LED滅和閃爍的程式碼,其實他的控制原理並不複雜只要弄明白其中的原理,下面同樣我們從硬體和軟體兩個維度來深入剖析一下。希望你看完能有所收穫。

掃盲教程:51微控制器控制單個LED燈閃爍 適合新手

硬體方面

發光二極體:發光二極體的發光原理在上一篇文章中已經說得很明白啦,此處不再贅述。不明白的可以移駕此處檢視

掃盲教程:51微控制器控制單個LED燈點亮 適合新手

微控制器:微控制器其點亮的控制原理和上一篇一樣,沒有什麼可以說的,下面我著重說一下閃爍的控制原理,我們都知道想要LED閃爍,就要讓它亮和滅,只需要在上個程式碼中加入滅的程式碼就可以了,但是閃爍就需要有個控制時間的概念,那麼這個時間怎麼來的呢?大家還記不記得我有過一篇專門介紹微控制器最小系統的文章,裡面提到了一個晶振電路,對了這個閃爍時間就是根據晶振頻率的倒數來計算的,也就是根據機器週期來計算的,不明白的請自行充電計算機相關知識。我們根據機器週期算出時間,然後寫入C語言程式碼中,再把程式碼燒進微控制器,就可以實現控制。

掃盲教程:51微控制器控制單個LED燈閃爍 適合新手

好了,透過以上的講解我想你應該明白這個系統的工作原理了吧。下面開始講解一下軟體程式碼部分

軟體部分及其詳細註釋

#include“reg51。h” //定義標頭檔案

sbit led=P2^0; //定義引腳

void delay(unsigned char i) / /延時函式 i=1時 延時10us

{

while(i——); //迴圈語句

}

void main() //main代表主函式,程式執行的部分

{

led=0; //LED賦值為0

while(1) //代表這迴圈

{

led=~led; //~表示之前的值取反,即0變1 1變0

delay(100); //延時,使得led燈閃爍,改變此變數可以調整閃爍間隔時間

}

C語言入門經典

劉志銘;楊麗

計算機

免費閱讀

下面是我燒入程式碼後的實驗結果,實驗成果!

掃盲教程:51微控制器控制單個LED燈閃爍 適合新手

好了,看完了以上的文章,我想你應該明白這個實驗的軟硬體控制原理了吧,最後如果有什麼問題或者建議請給我留言或者私信啊,看到一定第一時間回覆,如果你喜歡我的文章,歡迎關注轉發評論哦,我們下期再見!

想了解更多精彩內容,快來關注從零開始學微控制器設計