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

AVR單片機-流水燈1

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

 今天開始進入AVR單片機的學習,剛拿到學習板沒多久,開始我的第一課----流水燈。

  原理圖如下:

  





源代碼:

 

/*
 * LED.c
 * 

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

 

#include <avr/io.h>

 

void delay(void)  //延時函數(shù)
{
unsigned int j;
 j=60000;
 while(j--);
}

 

int main(void)   //主函數(shù)
{
 char temp;   
 DDRF=0b11111111;   //PF口設置為輸出
 PORTF=0b00001000;  //PF3位設置為1,使能74hc573鎖存器
 DDRA=0xff;   //PA口設置為輸出
 
 while(1)       //流水燈循環(huán)
    {
  int i;
  temp=0b00000001;  //初始化

    for(i=0;i<8;i++)
  {
   PORTA=~temp;    // 輸出流水燈狀態(tài)
   delay();
   delay();
   delay();
   temp<<=1;     //狀態(tài)左移
   
  }  
    }
}

 

 

程序效果圖:


 

 

寫完這個程序才發(fā)現(xiàn),AVR的確要比51的速度快啊。

void delay(void)  //延時函數(shù)
{
 int j;
 j=60000;
 while(j--);
}

這個延時函數(shù)在51需要大約1秒左右;而AVR大約在100ms多左右。

關閉窗口

相關文章