流水灯

/* Main.c file generated by New Project wizard
 *
 * Created:   周五 五月 5 2017
 * Processor: 80C31
 * Compiler:  Keil for 8051
 */

#include <reg51.h>
#include <stdio.h>

/*
             知识点:函数的调用、指针、数组    
-----------------------------------传统的方法-----------------------------------
              
*/
void delay()                             //延时函数
 {
     int i;
     i=10000;
     while(i--);                       
 }
     
 
void main(void)                         //主函数
 { 
   // Write your code here
     
   while (1)                             //while死循环
       
   {
       P2=0xfe;            //给P2端口全部赋低电平
       delay();            //延时,,制作闪烁效果
       P2=0xfd;            
       delay();          
       P2=0xfb;            
       delay();
       P2=0xf7;           
       delay();
       P2=0xef;            
       delay();
       P2=0xdf;            
       delay();
       P2=0xbf;            
       delay();
       P2=0x7f;            
       delay();
       
       P2=0x7f;            
       delay();
       P2=0xbf;            
       delay();
       P2=0xdf;            
       delay();
       P2=0xef;            
       delay();
       P2=0xf7;            
       delay();
       P2=0xfb;            
       delay();
       P2=0xfd;            
       delay();            
       P2=0xfe;            
       delay(); 
   }
   }


   
   
   
/*
-------------------------------------数组的方法-------------------------------------------------
*/
unsigned char led[17]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x00,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//先定义一组数组
void main()        //主函数                                 
   {
       while(1)    //while()函数作死循环,使流水灯重复闪烁
       {
            int j;          //定义j变量,for循环要用到的变量
          for(j=0;j<=17;j++)   //for循环
          {
              //P2 = led[j];    //1、数组的方法
              P2 = *(led+j);   //2、指针的方法
              delay();          //延时函数调用
          } 
       }  
      
       
    }
原文地址:https://www.cnblogs.com/kinson/p/6824972.html