(玩電子) 電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

51單片機LED流星雨拖尾燈程序+視頻

作者:佚名   來源:本站原創   點擊數:x  更新時間:2013年10月14日   【字體:

流星雨就是幾個亮度不同的燈一起滾動,亮度依次更暗,像流星雨拖著尾巴。
控制全彩(三色)led也可以用同樣的概念編程。
用的是51的單片機pwm實現的拖尾效果


程序的解說以及視頻演示請打開http://www.ngacvp.tw/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;
 }

  
}

發表評論】【告訴好友】【收藏此文】【關閉窗口

文章評論

相關文章

沙滩排球小游戏