社区导航

 

搜索
查看: 2691|回复: 3
打印 上一主题 下一主题

[讨论] 关于PWM渐变,再求教

[复制链接]

48

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

跳转到指定楼层
楼主
发表于 2010-8-26 18:58 | 只看该作者 |倒序浏览 |阅读模式

首先,非常感谢版主和各位高手在上一次问题上的指点。

 

现在,又有一个问题:我想实现红灯渐暗的同时蓝灯渐亮,而不是红灯完全熄灭了蓝灯再渐亮。要怎样改动呢?

 

#include <reg51。h>


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


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


void main(void)
{
 while(1)
 {
  pwmkeyr();
  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 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--) ;}

此帖出自单片机论坛
0

3057

TA的帖子

0

TA的资源

裸片初长成(初级)

Rank: 10Rank: 10Rank: 10

沙发
发表于 2010-8-26 21:23 | 只看该作者

排他控制,那就更简单了

 只要做一个PWM就行了,红蓝输出是相反的,给红打出1的时候给蓝出0,给红打出0的时候给蓝出1。

 BTW,这种控制应该用中断,否则CPU就整天靠delay管着两个灯,别的事啥也干不了了。

评分

1

查看全部评分


4

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

板凳
发表于 2010-8-26 21:27 | 只看该作者

单片机是串行的

关于这个问题,你可以尝试把你的红灯和蓝灯的两个程序合成一个,这样就行了。

 void pwmkey(void) 

{ long i ,j ,m;
 for (j=0;j<100;j++)
   {
    for(i=0;i<j;i++)
       {delay();
      ledr=0;

      ledb=1;
     }
    m=100-j;
 for(i=0;i<m;i++)
     {delay();
    ledr=1;

    ledb=0;
   }

}
 for (j=100;j>0;j--)
   {
    for(i=0;i<j;i++)
     {delay() ;
    ledr=0;

    ledb=1;
   }
    m=100-j;
 for(i=0;i<m;i++)
     {delay() ;
    ledr=1;

    ledb=0;
   }
   }
}

评分

1

查看全部评分


48

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

4
 楼主| 发表于 2010-8-26 22:10 | 只看该作者
OK~可以了,谢谢bury和仙猫

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

关闭

站长推荐上一条 1/4 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( )

GMT+8, 2020-4-5 20:56 , Processed in 0.163103 second(s), 19 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表
北京赛车Pk10全自动下注q群微信群机器人 彩票大赢家 最新棋牌注册送彩金 彩票大赢家官网 博彩送彩金38元 银行卡送彩金 彩票大赢家 送彩金棋牌网站 棋牌游戏送彩金38 广西快三机器人