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

一个简单的流水灯c51程序

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

//代码出自51hei单片机网
#include<reg52.h> //头文件
#define uchar unsigned char   //宏定义
#define uint  unsigned int
void delay(uint x)    //延时函数(控制灯亮与灭的间隔)
{
  uint i,j;
   for(i=500;i>0;i--)
   for(j=x;j>0;j--);
}
void main()    //主函数
{
   uchar i;   //定义局部变量
   P2=0x00;  //关闭所有发光二极管
   while(1)   //死循环
   {
    P2=0xfe;   //第一个二极管亮
     delay(100); //延时
      for(i=0;i<7;i++) //左移7次
      {
         P2=~P2;   //把P2的值取反
         P2=P2<<1;  //左移一位
         P2=~P2;
         delay(100);
      }
      for(i=0;i<3;i++)
      {
         P2=0xff; //所有的二极管都灭
         delay(100);
         P2=0x00; //所有的二极管都亮
         delay(100);
      }
      P2=0x7f;   //最后一个二极管亮
      delay(100);
      for(i=0;i<7;i++)
      {
         P2=~P2;
         P2=P2>>1;
         P2=~P2;
         delay(100);
      }
      for(i=0;i<3;i++)
      {
         P2=0x00;
         delay(100);
         P2=0xff;
         delay(100);
      }  
   }
}
/*注:发光二极管接单片机的P2口,低电平有效,即可实现流水灯效果
*/
 
 

关闭窗口

相关文章