導航:首頁 > 操作系統 > 單片機8個led

單片機8個led

發布時間:2022-10-22 19:03:54

① 使用單片機I/O口控制8隻LED燈。 1)點亮8個中的的第任意個LED燈。 使任意一個或多個LED燈閃爍

舉個簡單的例子,8個LED燈的正級分別接在P1.0到P.7上面,負極分別接在P2.0到P2.7上面,

P1 = 0xff; (P1口全部高電平) P2 = 0x00; (P2口全部低電平),此時電流通過P1口經LED流向P2口,8個燈全部點亮,如果P1不變,P2 = 0XFF; 此時由於P1與P2的介面全部是高電平,沒有電壓差也就沒有電流,LED全部熄滅,如果想讓某一個燈點亮,可以根據8421法則,P2.7 P2.6 P2.5 P2.4是高8位,P2.4 P2.3 P2.2 P2.1 P2.0是低8位
P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0
8 4 2 1 8 4 2 1
當p1 = 0xff; p2 = 0xfe的時候,就是P2.0那個小燈點亮,其他7個滅,p2 = 0xfe的這個F就是8+4+2+1 =15,對應16進制里的f, 同理E=8+4+2+0 =14,對應16進制里的e。
閃爍的話需要用到定時器,時間到了把當前P2對應的引腳取反一下就行了,比如當前P2.0 = 1; 定時器時間到了以後 ~P2.0 當然實際寫程序的時候不能直接這么寫,自己多復習下吧

② 怎麼用單片機做出8個LED同時亮,但亮度不同的流水燈

假如說,第一個燈肯定比第二個燈亮的話,可以直接把8個LED燈的限流電阻弄成不同阻值的。就像樓上說的那樣。
但如果想隨便變換不同的燈都能有不同的亮度話,硬體電路可以不變,限流電阻都一樣。可以在程序里這樣寫:
首先,例如你要最亮的燈先點亮,隔幾十微秒後點亮第二個燈,再相隔同樣時間點亮第三個燈……依次類推間隔一定時間點亮八個燈。但間隔時間不要太大,超過十幾毫秒就不行了。
然後再間隔相同的時間一次性把燈全關了,再間隔幾十微秒回到上面的狀態依次點亮燈。……一直這樣循環。
這樣的話因為人的視力有一定的滯回效果,只要間隔時間不大,你就能看到八個燈不是閃的,而是同時亮,但亮度又不一樣。
這是單片機設計中,PWM控制的思路。

③ 單片機控制8個led燈交替點亮的程序

#include "reg51.h"
main()
{
unsigned int i,j;
while(1)
{
P1=0xfe; //點亮第一個LED
for(i=200;i>0;i--)
for(j=500;j>0;j--);
P1=0xfd; //點亮第二個LED
for(i=200;i>0;i--)
for(j=500;j>0;j--);
P1=0xfb; //點亮第三個LED
for(i=200;i>0;i--)
for(j=500;j>0;j--);
P1=0xf7; //點亮第四個LED
for(i=200;i>0;i--)
for(j=500;j>0;j--);
P1=0xef; //點亮第五個LED
for(i=200;i>0;i--)
for(j=500;j>0;j--);
P1=0xdf; //點亮第六個LED
for(i=200;i>0;i--)
for(j=500;j>0;j--);
P1=0xbf; //點亮第七個LED
for(i=200;i>0;i--)
for(j=500;j>0;j--);
P1=0x7f; //點亮第八個LED
for(i=200;i>0;i--)
for(j=500;j>0;j--);
}
}
或:
#include "reg51.h"
void delay(unsigned int t)
{
unsigned inti,j;
for(i=t;i>0;i--)
for(j=110;j>0;j--);
}
main()
{
unsigned char w,i;
while(1)
{
w=0xfe;
for (i=0;i<8;i++)
{
P1=w; //循環點亮LED
w<<=1; //點亮燈的位置移動,最低位補0
w=w|0x01; //將最低位置1
delay(500); //延時
}
}
}
或:
#include "reg51.h"
//程序中使用_crol_函數,所以要包含頭文件"intrins.h"
#include "intrins.h"
void delay(unsigned int t)
{
unsigned int i,j;
for(i=t;i>0;i--)
for(j=110;j>0;j--);
}
main()
{
unsigned char temp;
temp=0xfe;
while(1)
{
P1=temp;
delay(500); //延時
temp=_crol_(temp,1); //點亮LED的位置循環左移一位
}
}

④ 怎麼利用單片機控制八個led燈

1:首先設定一個變數i,可以是從0到3循環的變化,

2:再檢測一個經過消抖處理的按鍵,按一下,即i+1

3:當i值為各個值時,執行相應的變換花樣。

流水燈參考程序

#include

#include

#define uchar unsigned char

uchar j,tmp;

void deay(unsigned int ms)

{

uchar t;

while(ms--)

for(t=0;t<12;t++);

}

void main()

{

P1=0xff;

delay(50);

temp=0xfe; //(led接在P2.3~P2.6)

for(j=0;j<4;j++)

{

P1=temp;

delay(50);

temp=_crol_(tmp,1);

}

P1=0xff;

while(1);

}

⑤ 單片機 8個LED燈隨機閃爍怎麼做

1、首先在電腦中新建項目:Keil uVision4 51單片機LED閃爍編程,如下圖所示。

⑥ 用單片機控制八個LED燈實現二進制加法(程序沒搞懂,請大神幫忙)

去掉void delay(unsigned int c) 這句話是不能編譯的,因為 delay() 在主函數 main() 裡面調用,但是 delay() 的函數實體是在 main() 函數之後的,編譯器在編譯 main() 函數的時候找不到 delay() 的函數實體,

所以就無法通過編譯,解決方法是在文件頭「聲明」 一下,讓編譯器知道在本文件中搜索 delay() 這個函數,從而成功調用。

八段LED數碼管顯示器由8個發光二極體組成。基中7個長條形的發光管排列成「日」字形,另一個賀點形的發光管在數碼管顯示器的右下角作為顯示小數點用,它能顯示各種數字及部份英文字母。

LED數碼管顯示器有兩種不一樣的形式:一種是8個發光二極體的陽極都連在一起的,稱之為共陽極LED數碼管顯示器;另一種是8個發光二極體的陰極都連在一起的,稱之為共陰極LED數碼管顯示器。

(6)單片機8個led擴展閱讀:

當數碼管特定的段加上電壓後,這些特定的段就會發亮,以形成我們眼睛看到的字樣了。如:顯示一個「2」字,那麼應當是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。LED數碼管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。

小尺寸數碼管的顯示筆畫常用一個發光二極體組成,而大尺寸的數碼管由二個或多個發光二極體組成,一般情況下,單個發光二極體的管壓降為1.8V左右,電流不超過30mA。

發光二極體的陽極連接到一起連接到電源正極的稱為共陽數碼管,發光二極體的陰極連接到一起連接到電源負極的稱為共陰數碼管。常用LED數碼管顯示的數字和字元是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。

⑦ 單片機編程8個led燈,讓最低燈亮,循環左移s

思路:

控制8個LED燈,使用上拉方式控制,引腳高電平燈滅,引腳低電平燈亮。

這8個LED使用同一P口上的所有引腳,假設為P1口中的P1.0-P1.7共8個腳。

軟體中,只需要將這些燈使用一個for循環即可。

代碼

#include<reg51.h>

unsignedcharPData;//記錄當前是哪個狀態,值為1表示亮,輸出到P口時取反

//延時,本函數是非精確延時,若需要精確延遲則需要根據本函數的匯編語句進行精確計算後調整循環體次數
voiddelay(unsignedintms){
unsignedchari;
while(ms--){
for(i=0;i<120;t++){
;
}
}
}

voidmain(){
unsignedchari=0;
PData=0x00;//全滅狀態
while(1){//無限循環亮滅狀態
for(i=0;i<8;i++){//從最低位循環到不是常亮的最高位
P1=~(PData+(1<<i));//第i位亮
delay(500);
P1=~PData;//第i位滅
delay(500);
}
}
}

⑧ 單片機C語言如何實現8個LED流水燈來迴流動

1、可以通過左移函數_crol_()和右移函數_cror_()來實現LED等的來迴流動。

2、具體實現方法可以參考如下程序:

2、單片機又稱單片微控制器,它不是完成某一個邏輯功能的晶元,而是把一個計算機系統集成到一個晶元上。相當於一個微型的計算機,和計算機相比,單片機只缺少了I/O設備。概括的講:一塊晶元就成了一台計算機。它的體積小、質量輕、價格便宜、為學習、應用和開發提供了便利條件。同時,學習使用單片機是了解計算機原理與結構的最佳選擇。

3、單片機的使用領域已十分廣泛,如智能儀表、實時工控、通訊設備、導航系統、家用電器等。各種產品一旦用上了單片機,就能起到使產品升級換代的功效,常在產品名稱前冠以形容詞——「智能型」,如智能型洗衣機等。

⑨ 8段led數碼管怎麼找單片機

拿8段1位數碼管做例子。
8段指有8個LED,如果是共陰極的,那這8個LED的負極連在一起,正極不連。
8個LED的8個正極分別連一個限流電阻,再接到單片機一個IO引腳上。
負極接一個NPN三極體的集電極,三極體的發射極接地,基極接一個電阻(可用10K)再接到一個IO引腳上。

閱讀全文

與單片機8個led相關的資料

熱點內容
程序員演算法有多強 瀏覽:713
pythonworkbook模塊 瀏覽:242
什麼app能查醫生 瀏覽:175
輕量級的編程語言 瀏覽:338
程序員那麼可愛生孩子 瀏覽:432
後綴him3加密文件是什麼軟體 瀏覽:984
堅果隱藏app為什麼要140版本才能用 瀏覽:313
淘寶dns伺服器地址 瀏覽:259
領英轉型app哪個好用 瀏覽:943
壓縮軟體的圖標 瀏覽:97
賣鞋哪個app是真的 瀏覽:469
python迭代是累計嗎 瀏覽:419
程序員哪些平台接私活 瀏覽:175
單片機充電電路原理圖 瀏覽:1000
android軟體雲伺服器地址 瀏覽:213
如何用伺服器做內網穿透服務 瀏覽:401
oracle加密表空間重置密碼 瀏覽:302
mdk編譯後目標文件 瀏覽:616
老人動手解壓 瀏覽:720
小米sd卡解壓 瀏覽:996