參考了51hei論壇 hongru的作品,做出了一點修改 呼吸燈就是讓LED燈的閃爍像呼吸一樣,時呼時吸,時亮時暗,利用LED的余輝和人眼的暫留效應,看上去和人的呼吸一樣。 用C語言編程實現PWM(脈寬調制)輸出驅動LED,逐漸增加PWM的占空比從而實現LED模擬呼吸的過程,即漸亮再漸暗再漸亮再漸暗……如此往復,再利用LED的余輝和人眼的暫留效應,看上去就和人的呼吸一樣。 我認為這個程序不需要先拉低P1口,如果拉低了,燈會有卡頓的感覺。
單片機源程序如下:
- #include<reg51.h>
- void Delay1(int del)
- {
- int i,j;
- for(i=0; i<del; i++)
- for(j=0; j<1827; j++)
- ;
- }
- void Delay(unsigned int t)
- {
- while(--t);
- }
- //函數聲明
- unsigned int z,y;
- void main (void)//主函數
- {
- unsigned int CYCLE=400,PWM_LOW=0;//定義周期并賦值
- while (1) //主循環
- {
- /*--------整排LED燈呼吸---------*/
-
- Delay1(100); //加延時,可以看到熄滅的過程(下面程序同理)
- for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++) //PWM_LOW表示低
- {
- P1=0x00;
- Delay(PWM_LOW);
- P1=0xff;
- Delay(CYCLE-PWM_LOW);
- }
- P1=0xff;
- for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--) //與逐漸變亮相反的過程
- {
- P1=0x00; //點亮LED
- Delay(PWM_LOW);
- P1=0xff; //熄滅LED
- Delay(CYCLE-PWM_LOW); //主循環中添加其他需要一直工作的程序,延時長度,600次循環中從599減至1
- }
- }
- }
復制代碼
所有資料51hei提供下載:
呼吸燈.zip
(13.83 KB, 下載次數: 156)
2017-12-8 18:10 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|