學(xué)習(xí)單片機(jī)
從點(diǎn)亮第一顆LED燈開始
這一節(jié)學(xué)堂,我們來學(xué)習(xí)如何點(diǎn)亮一LED燈
首先是電路設(shè)計(jì)以及點(diǎn)亮這顆LED的方法
我們把LED燈接在P1.0上,使用的是上拉接法,如圖:
現(xiàn)在LED接好了,那么要怎樣點(diǎn)亮LED呢?
觀察我們的電路,這個(gè)電路里面LED的負(fù)極接在P1.0上,我們給P1.0寫低電平的時(shí)候P1.0相當(dāng)于一個(gè)負(fù)極,電流從LED正極流過,負(fù)極流出,LED導(dǎo)通,LED就點(diǎn)亮了
當(dāng)我們給P1.0寫高電平的時(shí)候,相當(dāng)于LED兩級(jí)都接上了正極,這時(shí)候LED不導(dǎo)通,所以LED就不能被點(diǎn)亮
這里可能有朋友會(huì)問,為何使用上拉接法,直接把LED的正極接在P1.0上,給P1.0寫高電平LED導(dǎo)通就點(diǎn)亮,不好嗎?
理論上這樣電路設(shè)計(jì)和操作更加簡便,但是由于C51的IO能提供的高電平電流很弱,如果把LED直接接在IO上,IO寫高電平時(shí)提供的電流不足以點(diǎn)亮LED燈或者點(diǎn)亮的LED燈亮度很低
因此我們使用上拉接法,這樣流過LED的電流就會(huì)更大,LED也就更亮
知道點(diǎn)亮LED就是給P1.0寫高電平,那么要怎樣才能操作P1.0呢?
這里我們就要操作C51的IO咯
在C51中,一共有四組IO:P0 P1 P2 P3
每一組IO有八只IO,一組IO在單片機(jī)內(nèi)對(duì)應(yīng)一個(gè)8位的寄存器,修改這個(gè)寄存器的值(0/1)單片機(jī)就能輸出0/1了
在reg52.h里面,已經(jīng)對(duì)這幾組IO的寄存器地址進(jìn)行了定義,我們要用的時(shí)候,可以直接使用關(guān)鍵字:P0,P1,P2,P3
我們可以對(duì)整組IO進(jìn)行修改,只需要給他賦上一個(gè)八位十六進(jìn)制數(shù)值即可
P1 = 0xFF;
也可以用sbit對(duì)一組IO中的一個(gè)IO定義一個(gè)名字,直接改變這個(gè)IO的0/1
比如說我們的LED接在P1.0,那么我給P1.0的IO定義一個(gè)叫LED的關(guān)鍵字
sbit LED = P1^0;
注意這里的格式
sbit 名稱 = IO組^IO標(biāo)號(hào);
P1.0對(duì)應(yīng)的IO組是P1,P1上的.0,所以我們寫作“P1^0”
一切準(zhǔn)備就緒,上代碼
下面是整個(gè)程序的代碼
#include< reg52.h >
sbit LED = P1^0;
void mian()
{
LED = 1;//復(fù)位LED狀態(tài),保證剛開始時(shí)候LED熄滅
LED = 0;//拉低LED的負(fù)極引腳,點(diǎn)亮我們的LED
while(1){}//執(zhí)行到這里,結(jié)束
}
上傳程序,你會(huì)發(fā)現(xiàn),LED點(diǎn)亮了!!
我們也可以對(duì)整個(gè)P1IO組進(jìn)行操作,
熄滅LED燈的時(shí)候,我們給P1所有的IO都寫上1,對(duì)應(yīng)0xFF
P1.7 | P1.6 | P1.5 | P1.4 | P1.3 | P1.2 | P1.1 | P1.0 |
---|---|---|---|---|---|---|---|
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
熄滅LED燈的時(shí)候,我們給P1.0單獨(dú)寫上0,對(duì)應(yīng)0xFE
P1.7 | P1.6 | P1.5 | P1.4 | P1.3 | P1.2 | P1.1 | P1.0 |
---|---|---|---|---|---|---|---|
1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
#include< reg52.h >
void mian()
{
P1 = 0xFF;//復(fù)位LED狀態(tài),保證剛開始時(shí)候LED熄滅
P1 = 0xFE;//拉低LED的負(fù)極引腳,點(diǎn)亮我們的LED
while(1){}
}
-
單片機(jī)
+關(guān)注
關(guān)注
6065文章
44946瀏覽量
648205 -
led燈
+關(guān)注
關(guān)注
22文章
1595瀏覽量
109444 -
寄存器
+關(guān)注
關(guān)注
31文章
5427瀏覽量
123712 -
電路設(shè)計(jì)
+關(guān)注
關(guān)注
6701文章
2531瀏覽量
213688
發(fā)布評(píng)論請先 登錄
STC15單片機(jī)為什么點(diǎn)亮LED燈的時(shí)候,點(diǎn)陣也要亮?
如何去完成一種基于51單片機(jī)點(diǎn)亮led燈的實(shí)驗(yàn)?
51單片機(jī)點(diǎn)亮led燈實(shí)驗(yàn)
如何去實(shí)現(xiàn)一種基于STC89C52單片機(jī)點(diǎn)亮LED燈的設(shè)計(jì)
如何去實(shí)現(xiàn)一種基于51單片機(jī)點(diǎn)亮led燈的設(shè)計(jì)
如何去實(shí)現(xiàn)基于一種51單片機(jī)點(diǎn)亮LED燈的程序
如何利用51單片機(jī)點(diǎn)亮LED燈實(shí)現(xiàn)跑馬燈效果?
使用單片機(jī)點(diǎn)亮LED燈的程序和工程文件免費(fèi)下載

評(píng)論