控制/MCU
电子发烧友网原创:今天,小编带大家一起来继续从基础做起,轻松玩转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--);
}
——电子发烧友原创文章,转载请注明出处!!!
全部0条评论
快来发表一下你的评论吧 !