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

AVR单片机-流水灯1

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

 今天开始进入AVR单片机的学习,刚拿到学习板没多久,开始我的第一课----流水灯。

  原理图如下:

  





源代码:

 

/*
 * LED.c
 * 

 * Created: 2011-6-24 12:00:23
 *  Author: ZYIN
 */

 

#include <avr/io.h>

 

void delay(void)  //延时函数
{
unsigned int j;
 j=60000;
 while(j--);
}

 

int main(void)   //主函数
{
 char temp;   
 DDRF=0b11111111;   //PF口设置为输出
 PORTF=0b00001000;  //PF3位设置为1,使能74hc573锁存器
 DDRA=0xff;   //PA口设置为输出
 
 while(1)       //流水灯循环
    {
  int i;
  temp=0b00000001;  //初始化

    for(i=0;i<8;i++)
  {
   PORTA=~temp;    // 输出流水灯状态
   delay();
   delay();
   delay();
   temp<<=1;     //状态左移
   
  }  
    }
}

 

 

程序效果图:


 

 

写完这个程序才发现,AVR的确要比51的速度快啊。

void delay(void)  //延时函数
{
 int j;
 j=60000;
 while(j--);
}

这个延时函数在51需要大约1秒左右;而AVR大约在100ms多左右。

关闭窗口

相关文章