基于MCS-51单片机的流水灯功能设计与实现

控制/MCU

1823人已加入

描述

  电子发烧友网原创:今天,小编带大家一起来继续从基础做起,轻松玩转MCS-51单片机。这次主要实现的功能是:基于STC89C51单片机的流水灯功能设计与实现。如下图所示:下图为跑马灯电路(与单片机接口设置)。电路:1个LED光管点亮的电流值约为3~10mA,电阻值为1K。

流水灯

  电路通过编程后,可实现可以LED灯单个点亮或者实现流水灯功能、跑马灯功能等;(具体程序的话,可以自己是写一下)这里小编就写了一个实现流水灯的C源代码。大家也可以自己发散思维,让灯想怎么亮就怎么亮...有过自己动手的童鞋,肯定有过这样的感受:自己买的板板,用过一遍又一遍,但是每次都会变出点新花样出来,每次都是乐此不疲的写这代码,完全沉浸其中不可自拔....下图是具体功能实现时板板上显示的样儿,大家一起来瞅瞅!

流水灯

    ——电子发烧友原创文章,转载请注明出处!!!


 

  实现流水灯的代码:

  #include

  #include

  #define uchar unsigned char //这里用"uchar"代替"unsigned char","uchar"用来定义无符号字符型数。

  #define uint unsigned int //"uint"用来定义无符号整型数。

  void delay(uint);

  uchar tmp,i;

  void main()

  { tmp=0x7f; //点亮第8个灯(tmp=0x7f=0111 1111)

  P0=tmp;

  for(i=0;i<7;i++)

  {

  tmp=_cror_(tmp,1); //循环右移1位(tmp=1011 1111),点亮第7个灯

  delay(500);

  P0=tmp;

  }

  P0=0xfe;

  for(i=0;i<7;i++)

  {

  tmp=_crol_(tmp,1); //循环左移1位

  delay(500);

  P0=tmp;

  }

  }

  void delay(z)

  { uint x,y;

  for(x=z;x>0;x--)

  for(y=110;y>0;y--);

  }

  ——电子发烧友原创文章,转载请注明出处!!!

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分