51单片机实现七彩呼吸灯程序

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

51单片机用PWM的RGB呼吸灯程序

程序设计思路:灯在高速闪烁人眼是看不出来的,开的时候,以非常快的速度开-关,逐渐加大开的时间比率,减小关的时间比率。关的时候,以非常快的速度开-关,逐渐加大关的时间比率,减小开的时间比率。程序如下:

#include

typedef unsigned int WORD;

/*-----------定义单片机引脚-----*/

sbit LED1=P1^1;

sbit LED2=P1^2;

sbit LED3=P1^3;

void Delay(WORD t); //函数声明

WORD z,y;

void main (void)//主函数

{

WORD CYCLE=500,PWM_LOW=0;//定义周期并赋值

while (1) //主循环

{

/*--------第一颜色LED灯呼吸---------*/

LED1=1;

Delay(500);

for(PWM_LOW=1;PWM_LOW

LED1=0; //点亮LED灯

Delay(PWM_LOW);

LED1=1;

Delay(CYCLE-PWM_LOW);

}

LED1=0;

for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--) //实现亮缓慢到暗{

LED1=0;

Delay(PWM_LOW);

LED1=1;

Delay(CYCLE-PWM_LOW);

}

//同理可以实现剩下的六种颜色

/*--------第二颜色LED灯呼吸----------*/

LED2=1;

Delay(500);

for(PWM_LOW=1;PWM_LOW

{

LED2=0;

Delay(PWM_LOW);

LED2=1;

Delay(CYCLE-PWM_LOW);

}

LED2=0;

for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--) {

LED2=0;

Delay(PWM_LOW);

LED2=1;

Delay(CYCLE-PWM_LOW);

}

/*--------第三颜色LED灯呼吸----------*/

LED3=1;

Delay(500);

for(PWM_LOW=1;PWM_LOW

LED3=0;

Delay(PWM_LOW);

LED3=1;

Delay(CYCLE-PWM_LOW);

}

LED3=0;

for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--) {

LED3=0;

Delay(PWM_LOW);

LED3=1;

Delay(CYCLE-PWM_LOW);

}

/*--------第四颜色LED灯呼吸----------*/

LED1=1;

LED2=1;

Delay(500);

for(PWM_LOW=1;PWM_LOW

LED1=0;

LED2=0;

Delay(PWM_LOW);

LED1=1;

LED2=1;

Delay(CYCLE-PWM_LOW);

}

LED1=0;

LED2=0;

for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--) {

LED1=0;

LED2=0;

Delay(PWM_LOW);

LED1=1;

LED2=1;

Delay(CYCLE-PWM_LOW);

}

/*--------第五颜色LED灯呼吸----------*/

LED1=1;

LED3=1;

Delay(500);

for(PWM_LOW=1;PWM_LOW

LED1=0;

LED3=0;

Delay(PWM_LOW);

LED1=1;

LED3=1;

Delay(CYCLE-PWM_LOW);

}

LED1=0;

LED3=0;

for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--) {

LED1=0;

LED3=0;

Delay(PWM_LOW);

LED1=1;

LED3=1;

Delay(CYCLE-PWM_LOW);

}

/*--------第六颜色LED灯呼吸----------*/

LED2=1;

LED3=1;

Delay(500);

for(PWM_LOW=1;PWM_LOW

LED2=0;

LED3=0;

Delay(PWM_LOW);

LED2=1;

LED3=1;

Delay(CYCLE-PWM_LOW);

}

LED2=0;

LED3=0;

for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--) {

LED2=0;

LED3=0;

Delay(PWM_LOW);

LED2=1;

LED3=1;

Delay(CYCLE-PWM_LOW);

}

/*--------第七颜色LED灯呼吸----------*/

LED1=1;

LED2=1;

LED3=1;

Delay(500);

for(PWM_LOW=1;PWM_LOW

LED1=0;

LED2=0;

LED3=0;

Delay(PWM_LOW);

LED1=1;

LED2=1;

LED3=1;

Delay(CYCLE-PWM_LOW);

}

LED1=0;

LED2=0;

LED3=0;

for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--) {

LED1=0;

LED2=0;

LED3=0;

Delay(PWM_LOW);

LED1=1;

LED2=1;

相关文档
最新文档