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

實現(xiàn)橫排流水燈和豎排流水燈效果的C51程序

作者:佚名   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2010年07月27日   【字體:
任務:
1、橫排流水
2、豎排流水
3、斜排流水
1、橫排流水  

源程序:
/*******************************************************************************
作者:劉海濤
版本:第一次
日期:2010年7月23日
描敘:流水燈 順序P0、P1、P2、P3先后從0到7bit
*******************************************************************************/


/**********************************頭文件**************************************/
#include"reg52.h"
/******************************************************************************/


/*******************************************************************************
函數(shù)名:delay(),延時函數(shù)。
宏定義:無
輸  入:無
輸  出:無
*******************************************************************************/
delay(unsigned int dat)   //函數(shù)定義
{
 unsigned int i,j;
 for(i=0;i<=dat;i++)
   { 
    for(j=0;j<=20000;j++);
   }
}

void main(void)     //主函數(shù)
{
 unsigned char i;
 while(1)     //循環(huán)
 {
  for(i=0;i<8;i++)
  {  
   P0=0x01<<i;
   delay(100);
  } 
      for(i=0;i<8;i++)
  {  
   P1=0x01<<i;
   delay(100);
  }       
  for(i=0;i<8;i++)
  {  
   P2=0x01<<i;
   delay(100);
  }       
  for(i=0;i<8;i++)
  {  
   P3=0x01<<i;
   delay(100);
  }       
 }
}



2、豎排流水  源程序:

/*******************************************************************************
作者:劉海濤
版本:第一次
日期:2010年7月23日
描敘:流水燈,豎著走,即P0到P3循環(huán)依次走1 bit
******************************************************************************/

/******************************************************************************/
#include"reg52.h"
/******************************************************************************/
/*******************************************************************************
函數(shù)名:delay(),延時函數(shù)
宏定義:無
輸入:無
輸出:無
******************************************************************************/
delay(unsigned int dat)   //延時函數(shù)定義
{
 unsigned int i,j;
 for(i=0;i<=dat;i++)
 {
  for(j=0;j<=20000;j++);
 }

}
void main(void)     //主函數(shù)
{
 unsigned char i;
 while(1)
 {
  for(i=0;i<=7;i++)
  {
  P0=0x01<<i;
  delay(100);
 
  P1=0x01<<i;
  delay(100);
 
  P2=0x01<<i;
  delay(100);
 
  P3=0x01<<i;
  delay(100);
  }
 }
}


 

3、斜流水 源程序:

/*******************************************************************************
作者:劉海濤
版本:第一次
日期:2010年7月23日
描敘:流水燈,斜著走
*******************************************************************************/

/**********************************頭文件**************************************/
#include"reg52.h"
/******************************************************************************/

/*******************************************************************************
函數(shù)名:delay(),延時函數(shù)。
輸入:無
輸出:無
宏定義:無
*******************************************************************************/
delay(unsigned int dat)
{
 unsigned int i,j;
 for(i=0;i<dat;i++)
 {
  for(j=0;j<20000;j++);
 }
}

void main(void)
{
 unsigned int i,a,b,c;

 while(1)
 {
 for(i=0;i<=7;i++)
  {
   
   P0=0x01<<i;
   delay(100);
   a=i+1;
   if(a>=8)
    { 
        a=i-8;
   }
    
   P1=0x01<<a;
   delay(100);
   b=i+2;
   if(b>=8)
    {
   b=b-8;
   }
      P2=0x01<<b;
   delay(100);
   c=i+3;
      if(c>=8)
    {
   c=c-8;
   }
   P3=0x01<<c;
   delay(100);
  }
     }
  
}
關閉窗口

相關文章