導航:首頁 > 操作系統 > 單片機單按鍵輸出兩路呼吸燈

單片機單按鍵輸出兩路呼吸燈

發布時間:2022-09-23 17:58:24

A. 求一個89c52單片機的光控呼吸燈程序 ,就是邊呼吸邊移動的,相當於呼吸與流水燈結合,兩個按鍵能加減速度

直接用按鈕觸發外部中斷的,一個加速,一個減速。

用的光敏電阻和繼電器做的光電開關。

電路我用proteus 8畫和模擬的。你參考吧。

#include <reg52.h>

#define uint unsigned int

void delay(uint time);

void flicker(uint led);//呼吸燈

void init();

uint t1=80;//閃爍頻率

uint light=0;

sbit k1=P3^2;

sbit k2=P3^3;

sbit led1=P1^6;

sbit led2=P1^7;

void main()

{

uint led1=0xFE,led2=0xFD,led3=0xFB;

init();

while(1)

{

flicker(led1);

flicker(led2);

flicker(led3);

}

}

void init()

{

IT0=0;

IT1=0;

EX0=1;

EX1=1;

EA=1;

}

void delay(uint t)//延時程序

{

uint i,j;

for(i=t;i>0;i--)

for(j=110;j>0;j--);

}

void flicker(uint led)//呼吸燈 flag==1逐漸變亮 flag==0逐漸變暗

{

uint flag=1;

while(1)

{

P1=led;

delay(light);

P1=0xFF;

delay(t1-light);

if(flag==1)

light++;

else

light--;

if(light==t1 && flag==1)

flag=0;

else if(light==0 && flag==0)

break;

}

}

void click1()interrupt 0 //加速

{

delay(10);

if(k1==0)

{

while(k1==0);

if(t1-1>light)

t1--;

else

{

t1--;

light=t1-1;

}

}

}

void click2()interrupt 2 //減速

{

delay(10);

if(k2==0)

{

while(k2==0);

if(t1<80)

t1++;

}

}

B. msp430單片機通過長短按鍵控制呼吸燈程序求解

我也在學msp430,也想編個長短按的程序,你能幫你的程序發給我參考參啊,謝了
[email protected]

C. 如何利用單片機設計出呼吸燈

#include<reg52.h> //包含頭文件,一般情況不需要改動,
sbit LED0=P1^0;// 用sbit 關鍵字 定義 LED到P1.0埠,LED是自己任意定義且容易記憶的符號
void Delay(unsigned int t); //函數聲明

void main (void)
{

unsigned int CYCLE=600,PWM_LOW=0;//定義周期並賦值

while (1) //主循環
{
LED0=1;
Delay(60000); //特意加延時,可以看到熄滅的過程
for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
{//PWM_LOW表示低
//電平時間,這個循環中低電平時長從1累加到CYCLE(周期)的值,即600次

LED0=0; //點亮LED
Delay(PWM_LOW);//延時長度,600次循環中從1加至599
LED0=1; //熄滅LED
Delay(CYCLE-PWM_LOW);//延時長度,600次循環中從599減至1

}
LED0=0;
for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--){//與逐漸變亮相反的過程

LED0=0;
Delay(PWM_LOW);
LED0=1;
Delay(CYCLE-PWM_LOW);

}
//主循環中添加其他需要一直工作的程序
}
}
/*------------------------------------------------
延時函數,含有輸入參數unsigned int t,無返回值
unsigned int 是定義無符號整形變數,其值的范圍是
0~65535
------------------------------------------------*/
void Delay(unsigned int t)
{
while(--t);
}

D. 單片機式的呼吸燈控制方法

我們通常會在各類器件上看到形形色色的指示燈,它們都分別代表著不盡相同各項功能的運行情況。而由燈發出的指示光要比其他方法傳遞信息更直接更明顯,也更加的經濟。而現在呼吸燈這項技術已經應用於各個方面,甚至包括智能機的應用,而其比較多樣的呼吸方法在傳遞相關信息上也是方便至極,那麼今天我們就來看看呼吸燈的控制問題。

燈光在微電腦的控制之下完成由亮到暗的逐漸變化,感覺好像是人在呼吸。


應用

廣泛應用於手機之上,並成為各大品牌新款手機的賣點之一。如果你的手機裡面有未處理的通知,比如說未接來電,未查收的簡訊等等,呼吸燈就會由暗到亮的變化,像呼吸一樣那麼有節奏,起到一個通知提醒的作用。

電子愛好者可通過簡單的電路來實現呼吸燈的效果。


為何很多手機都取消了呼吸燈

回答之前,小編想先糾正一個問題,並不是智能機都取消了呼吸燈,很多設備還是具備這一功能的,只不過能夠將這一功能發揮到極致的手機,確實是少之又少。安卓設備其實多數都是有LED燈的,不過原生安卓系統本身沒有提供一個可以統一控制的通知中心,而是要每個應用自己決定顯示通知的方式,這方式包括聲音、震動、LED燈及其顏色,再加上不同手機的燈或多或少都有些不同,這樣就造成了有的應用不支持LED燈有的應用卻錯誤地觸發了LED燈。

久而久之,在我的日常使用中,LED燈通常會給人一種十分不可靠的感覺,實際表現在我們該點亮屏幕的時候還是會點亮屏幕,不該點亮屏幕的時候,看到LED燈錯誤的亮起,也要去點亮屏幕去處理,就這樣,一個聽起來很好的功能反倒變得有些雞肋甚至是惹人討厭。到了安卓4.4以後,感覺系統在LED燈控制方面更為混亂,一些常駐通知欄的圖標甚至也會觸發LED燈,導致用戶體驗極差。

而有些如CM一類的第三方ROM會提供系統級的分應用LED燈設置,不過在實際使用中的表現也不夠完美。所以雖然LED呼吸燈本來是一個很好的設計,但是安卓系統卻沒有做好,於是有些廠商索性就取消了LED燈,或者取消了LED燈的呼吸功能。

另外,可能有些人會問,為何蘋果手機也沒有呼吸燈,這又是個老生常談的問題了,蘋果不具備的東西很多,很多時候我們都不知道為什麼,不採用呼吸燈,可能是因為技術,也可能是因為專利,蘋果同安卓不同,其並非開源系統,很多時候,蘋果都會來規范用戶的使用習慣,不設置呼吸燈,或許只是因為蘋果覺得用戶不需要它吧。至於這位網友在問題中提到的觸控反饋,這個其實不需要小編多說了,貌似目前大部分手機都有觸控反饋吧,只需要在設置中調出來就好。

呼吸燈的作用

呼吸燈是一個提氣的設計,它讓手機不再是一塊只會亮屏的板磚。因為不是所有的消息通知都需要處理,也不是所有的消息通知都會馬上處理。對於手機來講,亮屏鈴聲震動屬於強通知,這包括一些軟體提供的來電閃光功能,呼吸燈則屬於弱通知,不是所有人都會定期去查看手機的,多數情況下在辦公室我們都只是把手機放在桌上,偶爾去下洗手間也不會帶著,這中間如果有消息,我們回來瞟一眼就知道了,呼吸燈作為弱通知的作用,提醒的意義大於通知。



先說呼吸燈,這個本質上是LED的亮度控制。

一般是用PWM方式控制LED亮度,PWM的輸出按照一定的規律變化,就可以做出呼吸燈的效果。

再說30個LED的控制,如果要簡單點做,30個LED可以串起來串一個電阻,接高點的電源電壓,30個LED用同一個信號控制,當然,亮度也是同步變化的。如果要復雜,那就出30個信號分別控制30個LED串30個電阻,具體看你的追求的效果吧。


呼吸燈的程序,如果有硬體的PWM模塊,是很簡單的,按一定的規律讓PWM的輸出變化就可以。

像這樣輸出10%亮度,持續200ms,輸出20%亮度,持續200ms,輸出30%亮度,持續200ms。

如果沒有硬體PWM模塊,可以用軟體來模擬,比如,輸出10%亮度,持續200ms這兩件事合在一起作,變成輸出高電平10us,輸出低電平90us,循環2000次。


兩種方法

方法1:1000個左右的燈,需要10根地址線選通,51的IO管腳應該是沒有問題。剩下的就是要用大量的解碼器,把二進制信息轉換為管腳信息。

估計你僅僅是控制亮和滅,如果是這樣選通也就可以進行明暗的控制,否則輸出的信息也要加進去,就是說需要加驅動電路。

方法2:用移位電路,比如HC595,在51中地址做為串列信號發出,轉換為對應的地址線,然後在連接解碼器,這樣,51的管腳比較節省,但,編程的難度稍大。


那麼上述就是呼吸燈相關控制的方法和技巧,我們講,呼吸燈控制在硬體圈是一個很普通的項目,而所採用的單片機控制也是硬體里最基礎的,相信很多人在研習過後都能夠掌握,而即便不必要掌握這個情況,熟悉相關的原理情況也可以讓其在遇見故障的時候能夠迅速找到方法來排除,那麼今天呼吸燈控制的問題就給大家介紹到這里。

E. 51單片機控制的 呼吸燈

並聯的、全部同時亮、同時滅?

那不需要很特別的,電阻、三極體、LED,基本夠了。
單片機IO控制三極體、三極體再控制LED

F. 如何讓一個按鍵控制兩路電路

點觸開關是脈沖輸入,你按下線路接通,手鬆開線路又斷了,可是為什麼你手鬆了,小燈還亮?是因為你按鍵時,脈沖信號已被轉化電平信號存入單片機,使得單片機連接小燈的I/O口保持高/低電平。如果你不想用單片機也可以,但是你必須用到觸發器,用最簡單的D觸發器,讓反相輸出接到輸入端,時鍾端接開關,只要給時鍾一個跳變信號,兩輸出端的高低電平就會調換一次位置。如果兩輸出端分別接發光二極體和地就可以了

G. 怎麼用一個獨立按鍵控制流水燈和呼吸燈轉換

單片機的P1.0-P1.3接四個發光二極體L1-L4的陰極,P1.4-P1.7接四個開關K1-K4程序:ORG 00HSTART: MOV A,P1ANL A,#0F0HRR ARR ARR ARR AORl A,#0F0HMOV P1,ASJMP START可以檢測單個按鍵,也可以同時檢測多個按鍵過程:開始--讀P1口數據到A--A中的數據右移4次--A中的內容和F0H相或--A中的數據送到P1口--回到開始

H. 單片機一個介面怎麼控制兩個LED燈!

如果使用編碼方式,單片機的IO分成兩路,一路直接接LED,另一路先通過一個非門再接LED,這樣IO口輸出0或者1時只點亮其中一個LED,即實現了控制。
如果你還想要其他控制方式,那就是用串口的TXD發出數據了,這時要另一個單片機的RXD接收,然後可以控制多個LED。

I. 用51單片機編程,做一個呼吸燈,用按鍵來控制燈的開關

急的話提交到21ic項目平台,有專業人才承接項目
project.21ic.com/member

J. 怎麼實現讓51單片機一邊執行呼吸燈,一邊數碼管動態顯示,最好還要有按鍵控制周期,請問這些程序該如何

所謂的呼吸燈,是類似於流水燈吧,每點亮一次或流動一次是需要延時的,而數碼管的動態顯示也要調用一個顯示子程序嗎,調用一次顯示子程序也是需要時間,就對調用顯示子程序的次數計數,當計到n次後的時間,就是呼吸燈點亮一次的時間的話,就點亮一次好了。這個計數值n取多少合適,就得通過實際測試了。不妨先設個值,如40,然後實際運行程序,看這個時間合適不,不合適,再增加或減小這個數,這樣,總會找一個適合的數了。
這個數找到後,其實改變這個數就是改變呼吸燈變化的速度,因此,在程序中需要改變呼吸燈變化的速度時,就通過按鍵來改變這個數n就可以實現了。
你這不過才是兩個任務,如果單片機就只能完成一個任務,那還叫單片機嗎?其實,能完成多少任務,就取決於你寫的程序。寫什麼程序就完成什麼任務。

閱讀全文

與單片機單按鍵輸出兩路呼吸燈相關的資料

熱點內容
部隊抗洪搶險命令範文 瀏覽:886
歐姆龍plc編程軟體使用教程 瀏覽:592
ai文件pdf 瀏覽:911
騰訊雲伺服器掛載混合雲 瀏覽:758
智能小車用什麼單片機 瀏覽:463
java怎麼給窗口關閉 瀏覽:940
列舉51單片機的定址方式 瀏覽:706
剪輯app怎麼寫長篇文字 瀏覽:400
app專屬流量過月租怎麼不更新 瀏覽:654
王者程序員都有誰 瀏覽:76
給牛換腳掌解壓 瀏覽:387
圍棋有多少種演算法 瀏覽:602
unity資源包在哪個文件夾 瀏覽:704
阿里雲伺服器遠程鏈接不成功 瀏覽:482
文件系統pdf 瀏覽:766
原神安卓區服什麼意思 瀏覽:37
貝殼app怎麼線上發布 瀏覽:160
如何挑選安卓系統機頂盒 瀏覽:54
安卓快充使用有什麼注意事項 瀏覽:910
黑馬程序員的雲計算網課 瀏覽:948