A. 單片機控制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模擬軟體進行設計。
B. 單片機流水燈的目的及意義
在如今這個科學技術發展迅猛的時代,傳統的分立元件或邏輯電路構成的控制系統正以前所未有的速度被單片機智能控制系統所代替。在電子領域尤其是自動化智能控制領域,晶元技術取得了飛速發展,使單片機技術在各種民用和工業測控等領域得到了更為廣泛的應用。
單片機憑其體積小、功能強、低成本、應用方面廣等優點,已經成為微電腦控制的主力軍。可以說,控制系統與自動控制的核心就是單片機。最能體現單片村應用價值之一的就是如今花樣百出的流水燈了。
目前,國內外對於單片機流水燈的研究,大多數是利用AT89C51單片機,軟硬體村結合,構造出最簡單的流水燈,此舉旨在拋磚引玉,廣大用戶又在此基礎上擴展出更復雜的流水燈控制,比如鍵盤控制流水花樣、控制流水燈顯示數字或圖案等等。
另外有關單片機音樂的研究,主要是針對單片機演奏音樂時音調和節拍的確定方法,以期產生更加純正的音色來。由於這兩個方面的研究比較成熟,因而就衍生出了單片機音樂流水燈的研究,詳細了解並掌握音樂流水燈的理論基礎和實踐,對於單片機的學習將會產生可估量的作用。
簡介
單片機也被稱為單片微控器,屬於一種集成式電路晶元。在單片機中主要包含CPU、只讀存儲器ROM和隨機存儲器RAM等,多樣化數據採集與控制系統能夠讓單片機完成各項復雜的運算,無論是對運算符號進行控制,還是對系統下達運算指令都能通過單片機完成。
由此可見,單片機憑借著強大的數據處理技術和計算功能可以在智能電子設備中充分應用。簡單地說,單片機就是一塊晶元,這塊晶元組成了一個系統,通過集成電路技術的應用,將數據運算與處理能力集成到晶元中,實現對數據的高速化處理。
C. 基於單片機設計智能台燈,需要哪些元器件,詳細一點的。
1、測人體的話可以選擇人體紅外感測器,當光束被擋時輸出高電平,這種感測器有一種半成品,輸出也是脈沖的,當有人時輸出3。5V高電平維持3秒,如人沒有離開就繼續輸出,人離開後就變成低電平。
2、測光源基本上用光敏電阻就可以了,將光敏電阻附加三極體等元件做成一個光敏感測器,一旦光強低於某個值就向單片機返回一個高/低電平信號,由單片機處理。
3、單片機用51即可,輸出引腳上連一個7407,然後連到繼電器上即可。
4、其實也可以不用單片機的,只要一個邏輯晶元就可以了,比如如果高電平時有人,高電平時光弱,那麼只要將這兩個信號送到一個與門就可以了,與門輸出一個高電平,然後驅動繼電器即可!
希望能幫到你,對於這個東西你可以分成幾個模塊,一個模塊一個模塊搞定再綜合,多在網上搜索一下,網上有大量的資料可以借鑒,加油!
D. 基於單片機的智能台燈難做嗎
這個簡單,使用單片機的PWM功能控制MOS管就可以控制的燈的亮暗,如果想用外紅開關,就買個紅外模塊,想用手機控制開關就買個wifi模塊,或者買個藍牙模塊,即可