最具代表性的单片机就是51单片机,今天我们用单片机控制8颗发光二极管,实现流水灯效果。
下面是硬件电路,我们将LED灯正极接电源,负极依次接到单片机P1口上,LED上串连100欧的电阻限流,这样当芯片IO口送出低电平时,LED灯就亮了。
下面是要实现流水灯的C程序代码
-------------------------------------------------------
#include
#include /*解释,这里在头文件包含了一些常用的函数库,并不是都需要*/
#include
#include
#define unchar unsigned char
#define uint unsigned int
void main()
{uint i,j; (定义两个整型数)
while(1) /*while里面写1,目的是要程序无限循环永不停息的执行*/
{
P1=0xfe; /* 0Xfe是十六进制的写法,就是二进制的11111110,我们把P1口最低为写低电 平, 这样就点亮最低位的LED灯*/
for(i=400;i>0;i--) */ 两个for循环嵌套,目的是让程序空跑一段时间实现延时大概零点几秒钟*/
for(j=110;j>0;j--);
P1=0xfd; /*和上面同理,fd=11111101,点亮第二个LED*/
for(i=350;i>0;i--)
for(j=110;j>0;j--);
P1=0xfb;
for(i=300;i>0;i--)
for(j=110;j>0;j--);
P1=0xf7;
for(i=250;i>0;i--)
for(j=110;j>0;j--);
P1=0xef;
for(i=200;i>0;i--)
for(j=110;j>0;j--);
P1=0xdf;
for(i=150;i>0;i--)
for(j=110;j>0;j--);
P1=0xbf;
for(i=100;i>0;i--)
for(j=110;j>0;j--);
P1=0x7f;
for(i=50;i>0;i--)
for(j=110;j>0;j--);
}
}
--------------------------------------------------------
我们将上面的程序编译后放到单片机仿真软件中运行仿真,也可以下载到真的电路板上运行