『壹』 單片機彩燈閃爍陰極控制的好處
①陰極控制:燈正極接電源(不討論串聯電阻),負極接單片機,電流流向由:電源→燈→單片機→地。
②陽極控制:燈正極接單片機,負極接地,電流流向由:電源→單片機→燈→地。
在單片機 IO中,①點電流是 流進的,稱 灌電流;②點電流是流出的,稱 拉電流;
單片機的 灌電流能力 要比 拉電流 能力 強得多,就是說,再不增加驅動電路的情況下,使用 負極驅動方式,能讓 燈更亮。
『貳』 繼電器用單片機控制,是控制陽極好還是陰極好
繼電器用單片機控制:
1, 用三極體控制共陽極數碼管是利用三極體的開關特性,比如用pnp三極體的話,集電極接地,然後通過基極控制三極體的通斷,當通過單片機給基極一個低電平時,發射極導通,集電極與發射極也之間也導通了,一般都是用三極體控制數碼管的位選引腳。簡單地說就集電極和發射極相當於一個開關,基極是控制端,基極給高電平是,開關是斷開基極給低電平時,開關合上!象單片機學習板上的蜂鳴器和繼電器也是用樣的繼電器正輸入接24V/12V上拉,負輸入接NPN管子/達林頓管的OC ,單片機口線經光偶控制管子。
2, 這樣做的原因,一是可以將繼電器作為管子的集電極負載,二是有利於單片機端的控制,因為將管子OC接24V的話,繼電器就是管子的射極負載,會造成管子的發射極電位浮動變化,不利於管子飽和輸出。而且由於NPN管子的結構,接發射極,繼電器開關時的脈沖干擾會對基極造成更大的影響。
『叄』 怎麼區分單片機上面LED是共陽極還是共陰極
使用萬用表來測試完成。步驟如下:
前提是你的萬用表最好是用3V以上電池,因為1.5V不夠點亮LED,特別是高亮超高亮的,點亮電壓高。另外萬用表在RX1檔或最高檔。
萬用表筆隨便一腳,假設紅筆, 搭在數碼管上任一腳 。黑筆在其它腳上掃過,如果不亮,有可能此管為共陰,可用3法再試。如有一段點亮。黑筆不動, 移動紅筆,在其它腳測。如果其它腳 分別都 能點亮,則可以說明黑筆接的是公共腳 ,此管共陽。(指針 表的黑表筆是正電源)
3. 表筆更換一下,黑筆先搭一腳,掃紅筆。如有一段點亮,紅筆不動,掃黑筆。如各段分別點亮,則紅筆所接為公共 ,此管共陰。
4. 如2、3兩法均不亮,可能數碼管額定電壓較高,也可能數碼管是壞的。這時,可用5V電源串一500歐電阻繼續測試
『肆』 單片機實驗板上的發光二極體陰極接地還是陽極接地可以自己改嗎
發光二極體發光必須要陽極電位高於陰極電位,這個壓降得看你的發光管顏色,從0.幾伏到幾伏不等的。怎麼接要看控制電路的,你說一段接了地,常規來說應該是陰極接地了。
『伍』 發光二極體的陰極或陽極引腳都可以和單片機引腳相連
當然都可以,接陽極時,單片機的I/O口是輸出驅動電流,高電平時亮;接陰極時,單片機的I/O口是灌入驅動電流,低電平時亮。根據需要選擇。但對於51單片機,一般I/O口屬於集電極輸出,所以灌電流可以比較大,比如可達35mA左右,而輸出(拉電流)電流比較小,一般小於10mA,所以通常使用陰極接單片機方式,可獲得較大電流和較高亮度。
『陸』 在單片機中,怎樣判斷數碼管的陰陽極
1、檢查數碼管是共陰還是共陽,A表示共陽,K表示共陰。或者直接給公共端接高電平或者低電平,段碼端一部分接高電平,一部分接低電平,這樣數碼管亮的話看公共端接的是高還是低電平就可以判斷了。
2、看你接的限流電阻是不是太大,大於1K的值有可能不亮,最好不要接限流電阻。做實際的實物電路再加上470歐姆。
3、是不是接到51單片機的P0口了,接到P0口必須加上拉電阻,否則不會亮。
4、如果是程序控制數碼管,注意延時時間的長短,太短會看不到亮。
『柒』 LED數碼管哪個腳是陰極哪個是陽極
如果共陽的,3或8應該是陽極,接電源,單片機控制其他管腳就可以了。
如果是共陰的,3或8就是陰極,接地,單片機控制腳要通過三極體再接數碼管的管腳。
一般單片機不用輸出直接接數碼管管腳進行驅動,而是要通過hc595、cd4094等晶元驅動。
『捌』 單片機里數碼管的共陰極和共陽極是怎麼回事
數碼管是共陰極,意思是幾段數碼管的陰極都接在一起。這樣只要給陰極一個高電平,所有的段碼都不會亮,如果給低電平,則看對應陽極的電平高低,所以共陰極就是位選,只有它為低電平(選中這位)才能對該數碼管操作。
『玖』 單片機 匯編語言編寫 獨立鍵盤 控制小燈
單片機的P1.0-P1.3接四個發光二極體L1-L4的陰極,P1.4-P1.7接四個開關K1-K4
程序:
ORG 00H
START: MOV A,P1
ANL A,#0F0H
RR A
RR A
RR A
RR A
ORl A,#0F0H
MOV P1,A
SJMP START
可以檢測單個按鍵,也可以同時檢測多個按鍵
過程:開始——讀P1口數據到A——A中的數據右移4次——A中的內容和F0H相或——A中的數據送到P1口——回到開始
『拾』 單片機控制led燈的創新點是什麼
單片機控制led燈的創新點是,LED的陽極全部接到了正極(電源),當負極接到LED的陰極時就會發光,因為LED的陰極與單片機的P2口相接,如果你想點亮那一個LED就把單片機相應的引腳賦值為低電平。具體如下:1、LED基礎知識
LED是發光二極體的一種,它具有單向導電的特點,在51開發板上使用的是貼片式發光二極體,正向導電電壓在1.8-2.2v之間,工作時的電流在1-20mA。當電流在1-5mA之間變化時,肉眼可以觀測到亮度的變化,但是當電流在5-20mA之間變化時,亮度變化不太明顯。如果電流一直增大二極體可能會燒壞。其餘LED知識就不再進行敘述,其中LED原理圖如下圖所示。
LED原理圖
2、點亮第一個LED燈
由原理圖可知,LED的陽極全部接到了正極(電源),當負極接到LED的陰極時才會發光,因為LED的陰極與單片機的P2口相接,如果你想點亮那一個LED就把單片機相應的引腳賦值為低電平,具體程序如下:
#include "reg52.h" //此文件中定義了單片機的一些特殊功能寄存器
sbit led=P2^0; //將單片機的P2.0埠定義為led
void main()
{
while(1)
{
led=0;//P2.0埠設置為低電平
}
}
1
2
3
4
5
6
7
8
9
10
11
12
1
2
3
4
5
6
7
8
9
10
11
12
3、LED閃爍
如果想讓LED進行閃爍就要涉及到延時,針對單片機進行延時的方法有很多,在此向大家推薦一種比較簡單的程序助手—單片機小精靈,可以直接進行設置時間,並且生成相應的代碼。
將P2^0引腳的LED進行間隔一秒閃爍的程序如下:
#include "reg52.h" //此文件中定義了單片機的一些特殊功能寄存器
#include "intrins.h" //頭文件
sbit led=P2^0; //將單片機的P2.0埠定義為led
void delay1s() //延時1s,誤差 0us
{
unsigned char a,b,c;
for(c=46;c>0;c--)
for(b=152;b>0;b--)
for(a=70;a>0;a--);
_nop_(); //if Keil,require use intrins.h
}
void main()//主程序
{
while(1)
{
led=0;//P2.0埠設置為低電平
delay1s();//調用延時函數
led=1;//P2.0埠設置為低電平
delay1s();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
為了使程序更好的進行表達,使用16進制進行表述,程序如下:
#include "reg52.h" //此文件中定義了單片機的一些特殊功能寄存器
#include "intrins.h" //頭文件
void delay1s() //延時1s,誤差 0us
{
unsigned char a,b,c;
for(c=46;c>0;c--)
for(b=152;b>0;b--)
for(a=70;a>0;a--);
_nop_(); //if Keil,require use intrins.h
}
void main()//主程序
{
while(1)
{
P2=0xFE;//P2.0埠設置為低電平
delay1s();//調用延時函數
P2=0xFF;//P2.0埠設置為低電平
delay1s();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
上面是針對一個LED燈進行的設計,下面針對8個LED燈依次閃爍進行設計,具體程序如下:
#include "reg52.h" //此文件中定義了單片機的一些特殊功能寄存器
#include "intrins.h" //頭文件
void delay1s() //延時1s,誤差 0us
{
unsigned char a,b,c;
for(c=46;c>0;c--)
for(b=152;b>0;b--)
for(a=70;a>0;a--);
_nop_(); //if Keil,require use intrins.h
}
void main()//主程序
{
while(1)
{
P2=0xFE;//1111 1110
delay1s();//調用延時函數
P2=0xFD;//1111 1101
delay1s();
P2=0xFB;//1111 1011
delay1s();
P2=0xF7;//1111 0111
delay1s();
P2=0xEF;//1110 1111
delay1s();
P2=0xDF;//1101 1111
delay1s();
P2=0xBF;//1011 1111
delay1s();
P2=0x7F;//0111 1111
delay1s();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
4、LED左右移動
上面進行描述的是利用延時並對P2口引腳進行賦值設計LED燈的閃爍,這樣程序較為繁雜,下面將利用「左移」和「右移」進行設計,crol(a,b),左循環,a是左移的值,b是左移的位數;cror(a,b),右循環,a是右移的值,b是右移的位數。包含在instrins.h庫函數中。具體程序如下:
#include "reg52.h" //此文件中定義了單片機的一些特殊功能寄存器
#include "intrins.h" //頭文件,包含延時(_nop_ )和函數循環
typedef unsigned int u16;//聲明新類型名
typedef unsigned char u8;//聲明新類型名
#define led P2//宏定義
void delay1s() //延時1s,誤差 0us
{
u8 a,b,c;
for(c=46;c>0;c--)
for(b=152;b>0;b--)
for(a=70;a>0;a--);
_nop_(); //if Keil,require use intrins.h
}
void main()//主程序
{
u8 i;//定義i的類型
led=0xFE;
delay1s() ;
while(1)
{
for(i=0;i<7;i++)//左移
{
led=_crol_(led,1);
delay1s() ;
}
for(i=0;i<7;i++)//右移
{
led=_cror_(led,1);
delay1s() ;
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
5、總結
以上程序均進行了實驗驗證,完全正確。針對LED燈的控制,可以和按鍵進行聯合設計,實現更多的功能,後面會進行更新。對於沒有單片機開發板的小夥伴可以利用proteus模擬軟體進行設計。