4575|4

39

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

求助:LED渐变,程序中的延时问题 [复制链接]

以下这个控制LED渐明渐暗的程序,现在的现象是:第一个灯渐明渐暗后,紧接着第二个灯开始渐明渐暗了,而我想要的效果是:当第一个灯亮完熄灭后,停留数秒一段时间,才渐渐点亮第二个灯,我尝试在几个位置加上delay延时,但没效果,有时还会出现闪烁,请高手支招啊,谢谢!!!

 

 

#include <reg51.h>

void pwmkeyr(void);
void pwmkeyg(void);
void pwmkeyb(void);

void delay (void);
sbit ledr=P2^0;  //红灯
sbit ledg=P2^1;  //绿灯
sbit ledb=P2^2;  //蓝灯

void main(void)
{
 while(1)
 {
  pwmkeyr();
  pwmkeyg();
  pwmkeyb();
 }
}

 void pwmkeyr(void)  //红灯渐亮渐灭
{ long i ,j ,m;
 for (j=0;j<100;j++)
   {
    for(i=0;i<j;i++)
       {delay();
      ledr=0;
     }
    m=100-j;
 for(i=0;i<m;i++)
     {delay();
    ledr=1;
   }
   }
 for (j=100;j>0;j--)
   {
    for(i=0;i<j;i++)
     {delay() ;
    ledr=0;
   }
    m=100-j;
 for(i=0;i<m;i++)
     {delay() ;
    ledr=1;
   }
   }
}

 void pwmkeyg(void)  //绿灯渐亮渐灭
{ long i ,j ,m;
 for (j=0;j<100;j++)
   {
    for(i=0;i<j;i++)
       {delay();
      ledg=0;
     }
    m=100-j;
 for(i=0;i<m;i++)
     {delay();
    ledg=1;
   }
   }
 for (j=100;j>0;j--)
   {
    for(i=0;i<j;i++)
     {delay() ;
    ledg=0;
   }
    m=100-j;
 for(i=0;i<m;i++)
     {delay() ;
    ledg=1;
   }
   }
}

 void pwmkeyb(void)  //蓝灯渐亮渐灭
{ long i ,j ,m;
 for (j=0;j<100;j++)
   {
    for(i=0;i<j;i++)
       {delay();
      ledb=0;
     }
    m=100-j;
 for(i=0;i<m;i++)
     {delay();
    ledb=1;
   }
   }
 for (j=100;j>0;j--)
   {
    for(i=0;i<j;i++)
     {delay() ;
    ledb=0;
   }
    m=100-j;
 for(i=0;i<m;i++)
     {delay() ;
    ledb=1;
   }
   }
}

void delay()  //延时函数
{    long e;
 for( e=50;e>0 ;e--) ;}

 

此帖出自单片机论坛

最新回复

我想这样你用的单片机有PWM就用PWM,没有,用定明器输出方波,实在不行用你上边的沿时也可,但你必须调出不同的方波软出,也就是不同的电压;P  详情 回复 发表于 2010-8-17 08:39
点赞 关注
 

回复
举报

6

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

在那个灯熄灭之后,另外加一句把灯熄灭的语句,然后在延时一段看看行不行

此帖出自单片机论坛
 
 

回复

16

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

void main(void)
{
 while(1)
 {
  pwmkeyr();

 


  pwmkeyg();
  pwmkeyb();
 }
}

 

 在这个空当中加延时吧

此帖出自单片机论坛
 
 
 

回复

1万

帖子

16

TA的资源

版主

4
 

你想做出渐变自然是电压渐变

我想这样你用的单片机有PWM就用PWM,没有,用定明器输出方波,实在不行用你上边的沿时也可,但你必须调出不同的方波软出,也就是不同的电压;P
此帖出自单片机论坛
 
个人签名http://shop34182318.taobao.com/
https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
 
 

回复

39

帖子

0

TA的资源

一粒金砂(初级)

5
 

哦,好的,我再试试。

此帖出自单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表