专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

AVR单片机-流水灯2

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

  利用单片机可以做出各种花样的流水灯效果,曾经就见有人用一片STC89C52单片机接了32个LED,做成一个心的形状,然后送给了女朋友。呵呵~~

  利用c语言的数组功能就可以实现花样流水灯的设计,只要把每种流动方式的代码写进数组,依次从数组取出显示就可以了。想要多少花样都由你说了算!

 

源代码:

 

/*
 * 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();
  
  }
    }
}

效果图:

关闭窗口

相关文章