微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 单片机应用pwm原理实现流水灯

单片机应用pwm原理实现流水灯

时间:10-02 整理:3721RD 点击:

应用PWM原理实现的流水灯,不足的地方还请各位高手指教(另外请注意,如果你开发板上的ds1302启动了的话,用该程序调试的时候要将单片机与ds1302连接的那3个短路帽去掉,不然实现不了效果)程序代码如下

  1. #include<reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. sbit led0=P1^0;
  5. sbit led1=P1^1;
  6. sbit led2=P1^2;
  7. sbit led3=P1^3;
  8. sbit led4=P1^4;
  9. sbit led5=P1^5;
  10. sbit led6=P1^6;
  11. sbit led7=P1^7;
  12. void main()                                                                  
  13. {
  14.         uint i,j,k,a,b,c;
  15.         j=1400;a=1400;b=1400;c=1400;        
  16.         for(k=0;k<1000;k++)
  17.         {
  18.                 j--;                        
  19.                 if(j==0)j=1400;
  20.                  i=1500;
  21.                  while(i)
  22.                  {
  23.                          --i;
  24.                         if(i>j)led0=0,led7=0;
  25.                         else  led0=1,led7=1;
  26.                  }
  27.         }
  28.         for(k=0;k<1000;k++)
  29.         {
  30.                 a--;                        
  31.                 if(a==0)a=1400;
  32.                  i=1500;
  33.                  while(i)
  34.                  {
  35.                          --i;
  36.                         if(i>a)led1=0,led6=0;
  37.                         else  led1=1,led6=1;
  38.                  }
  39.         }
  40.         for(k=0;k<1000;k++)
  41.         {
  42.                 b--;                        
  43.                 if(b==0)b=1400;
  44.                  i=1500;
  45.                  while(i)
  46.                  {
  47.                          --i;                           
  48.                         if(i>b)led2=0,led5=0;
  49.                         else  led2=1,led5=1;
  50.                  }
  51.         }
  52.         for(k=0;k<1000;k++)
  53.         {
  54.                 c--;                        
  55.                 if(c==0)c=1400;
  56.                  i=1500;
  57.                  while(i)
  58.                  {
  59.                          --i;
  60.                         if(i>c)led3=0,led4=0;
  61.                         else  led3=1,led4=1;
  62.                  }
  63.         }

  64. }

复制代码

小编辛苦了

感谢小编分享

小编,上原理图

请问程序中PWM怎么定义的?

感谢小编分享

看看谢谢

HAO   

通过延时控制的

小编辛苦了

不错,看起来。

收了

我也想学习一下昂。多谢了。

我也想学习一下昂。多谢了。

谢谢小编分享!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top