• <i id="jb6ye"><bdo id="jb6ye"></bdo></i>
    1. <b id="jb6ye"><bdo id="jb6ye"><tr id="jb6ye"></tr></bdo></b><tt id="jb6ye"><tr id="jb6ye"><dfn id="jb6ye"></dfn></tr></tt><track id="jb6ye"><big id="jb6ye"></big></track>
    2. 专注电子技术学习与研究
      当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

      51单片机LED流星雨拖尾灯程序+视频

      作者:佚名   来源:本站原创   点击数:  更新时间:2013年10月14日   【字体:

      流星雨就是几个亮度不同的灯一起滚动,亮度依次更暗,像流星雨拖着尾巴。
      控制全彩(三色)led也可以用同样的概念编程。
      用的是51的单片机pwm实现的拖尾效果


      程序的解说以及视频演示请打开http://www.shijip2p.com/bbs/dpj-22524-1.html 里面有详细的说明.
      程序源码:
      #include<reg52.h>
      #define uint unsigned int
      #define uchar unsigned char

      uchar abit=16; //流到哪位
      uchar atimer0_n;
      uchar code abit8[9]={1,2,4,8,16,32,64,128,0};
      uchar nn;
      char a,b,c,d;

      main()
      { TMOD = 0x11; 
       TL0 = 0x00;  //2.5ms
       TH0 = 0xF7; 
       TF0 = 0;  
       TR0 = 1; 
       EA=1;ET0=1;
       while(1)
       {
        a=abit;
        if(a>7||a<0)
        a=8;
        b=abit-1;
        if(b>7||b<0)
         b=8;
        c=abit-2;
        if(c>7||c<0)
         c=8;
         d=abit-3;
        if(d>7||d<0)
         d=8;
       
        
       atimer0_n++;
       if(atimer0_n==255)
       atimer0_n=0;
       if(atimer0_n<5)
        P1=0xff-abit8[a];
       if(atimer0_n<40)
        P1=0xff-abit8[b];
       if(atimer0_n<150)
        P1=0xff-abit8[c]; 
       if(atimer0_n<255)
        P1=0xff-abit8[d]; 
       }
      }

      atimer0 () interrupt 1

       TL0 = 0x00;  //50ms
       TH0 = 0x4C;
       nn++;
       if(nn==2)
       {
        nn=0;abit--;
         if(abit==0)
         abit=16;
       }

        
      }

      关闭窗口

      相关文章

      68日本xxxxxxxxx,水萝拉日语中字在线,德国videos高清,欧美色图片 网站地图