标题:
c51单片机呼吸流水灯,结果只有流水没有呼吸 求帮助
[打印本页]
作者:
许生
时间:
2019-7-9 16:54
标题:
c51单片机呼吸流水灯,结果只有流水没有呼吸 求帮助
为啥用PWM。调光的呼吸灯的程序变成流水灯程序的一个函数调用的形式。结果只有流水没有呼吸。
求救大佬:'(
#include"reg52.h"
#include<intrins.h>
typedef unsigned int u16;
typedef unsigned char u8;
sbit led1=P2;
int PWM_Low,Clock=500;
#define led P2
void delay(u16 a)
{while(a--);
}
void main1(int t)
{
for(PWM_Low=Clock;PWM_Low>0;PWM_Low--)
{t=1;
delay(PWM_Low);
{int b;
for (b=0;b<PWM_Low;b++);}
t=0;
delay(Clock-PWM_Low);
{int b;
for (b=0;b<Clock-PWM_Low;b++);}
} }
void main()
{u8 i,t,t1,t2;
t1=0xfe;
t2=0x7f;
for(i=0;i<4;i++)
{t=t1&t2;
led=t;
main1(t);
delay(50000);
t1=_crol_(t1,1);
t2=_cror_(t2,1);} }
作者:
wc86110
时间:
2019-7-9 19:58
两者没协调好
作者:
xianfajushi
时间:
2019-7-9 20:00
既然流水灯是对的了,把流水灯注释掉,调试你的呼吸灯功能。
作者:
N次根号二
时间:
2019-7-10 11:16
没有呼吸是不是你的消隐有问题
作者:
素还真.____
时间:
2019-7-11 00:31
看你这个问题太多了
....
void main1(int t)
{
for(PWM_Low=Clock;PWM_Low>0;PWM_Low--)
//你这个for循环会
delay(PWM_Low-1) + delay(PWM_Low-2)+.......+delay(0);
这么多次 ,下面这个for也是一样的
{t=1;
// 这个t=1没有意义,
//让LED亮PWM_Low的时间该改成,led=t;
delay(PWM_Low);
//可以改成delay(100)
{int b;
for (b=0;b<PWM_Low;b++);}
t=0;
//同上面问题一样,
改成,led=0xff; 都不亮
delay(Clock-PWM_Low);
//同上
{int b;
for (b=0;b<Clock-PWM_Low;b++);}
} }
//还有就是你 main1 这个函数的写法达不到PWM的效果,你再去查一查PWM怎样的。而且你
PWM_Low
的值也没有变,亮度也不会变,要么明,要么暗
void main()
{u8 i,t,t1,t2;
t1=0xfe;
t2=0x7f;
for(i=0;i<4;i++)
{t=t1&t2;
led=t; //要改成呼吸灯,这个要删除
main1(t);
//这个函数整体都要改。
delay(50000);
t1=_crol_(t1,1);
t2=_cror_(t2,1);} }
作者:
岁城璃心
时间:
2019-7-11 09:42
int ledPin=9;
void setup(){
}
void loop(){
for(int fadeValue=0; fadeValue<=255;fadeValue+=5){
analogWrite(ledPin,fadeValue);
delay(30);
}
for(int fadeValue=255;fadeValue>=0;fadeValue-=5){
analogWrite(ledPin,fadeValue);
delay(30);
}
}
给你个参考,这是基于Arduino的呼吸灯。自己改改。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1