51单片机典型项目实战全能一本通(C语言版)(视频版)
上QQ阅读APP看书,第一时间看更新

例3-3 生日蜡烛的实现

利用单片机和发光二极管,模拟生日蜡烛,原理电路如图3-4所示。所谓“生日蜡烛”,就是最初点亮所有的发光二极管,然后逐个熄灭。

图3-4 单片机控制的模拟生日蜡烛原理电路

参考程序如下。

  #include<reg51.h>
  #include<intrins.h>
  unsigned int i; 
   
  void delay()            //延时程序 
  { 
      unsigned char k,j; 
      for(k=0;k<255;k++) 
      for(j=0;j<255;j++); 
  } 
  void main() 
  {   
      while(1) 
      { 
          P2=0x00;        //给P2口初值使灯全亮 
          delay();        //延迟 
          P2=0x01;        //使D1灯灭 
          delay();        //延迟 
          P2=0x03;        //使D1灯、D2灯灭 
          delay(); 
          P2=0x07;        //使D1灯、D2灯、D3灯灭 
          delay(); 
          P2=0x0f; 
          delay(); 
          P2=0x1f; 
          delay(); 
          P2=0x3f; 
          delay(); 
          P2=0x7f;        //使D1灯~D7灯灭,D8灯亮 
          delay(); 
          P2=0xff; 
          delay(); 
          P2=0xff;        //使D1灯~D8灯灭 
      } 
  }