專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

AVR單片機(jī)-流水燈2

作者:佚名   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2012年10月23日   【字體:

  利用單片機(jī)可以做出各種花樣的流水燈效果,曾經(jīng)就見有人用一片STC89C52單片機(jī)接了32個LED,做成一個心的形狀,然后送給了女朋友。呵呵~~

  利用c語言的數(shù)組功能就可以實現(xiàn)花樣流水燈的設(shè)計,只要把每種流動方式的代碼寫進(jìn)數(shù)組,依次從數(shù)組取出顯示就可以了。想要多少花樣都由你說了算!

 

源代碼:

 

/*
 * LED1.c
 *
 * Created: 2011-6-24 15:29:32
 *  Author: ZYIN
 */

#include <avr/io.h>

unsigned char led0[]={0x81,0x42,0x24,0x18,0x00,0x18,0x24,0x42,0x81,0x00,0x55,0xaa,0x55,0xaa,0x55,0xaa,0xff,0x00,0xff,0x00,0xff,0x00};

void delay(void)
{
 unsigned int j;
 j=60000;
 while(j--);
}


int main(void)
{
 DDRF=0xff;
 PORTF=0b00001000;
 DDRA=0xff;
 while(1)
    {
        char temp;
  int i;
  temp=0b00000001;
  for(i=0;i<9;i++)//從左到右依次點亮
  {
   PORTA=~temp;
   delay();
   delay();
   delay();
   temp<<=1;
  }
  temp=0b10000000;
  for(i=0;i<9;i++)////從右到左依次點亮
  {
   PORTA=~temp;
   delay();
   delay();
   delay();
   temp>>=1;
  }
  for(i=0;i<22;i++)
  {
   PORTA=~led0[i];
   delay();
   delay();
   delay();
  
  }
    }
}

效果圖:

關(guān)閉窗口

相關(guān)文章