目录
一,硬件设计
大多数学习51单片机的同学都会先完成一个流水灯的入门小程序设计。
流水灯就是一组灯,然后在控制系统的控制下按照设定的顺序和时间来发亮和熄灭,这样就能形成一定的视觉效果,很多街上的店面和招牌上面就安了流水灯,使看上去更加的美观。
首先,先介绍一下流水灯的原理图,如下图所示:
通过对上图的观察可知,流水灯主要是由三部分模块组成:
其中, 51单片机芯片主要用于对电路中的控制,LED灯接在了单片机的P1口,发光二极管旁边接的电阻主要是用来保护电路的。由原理图可以知道,我们可以看到LED的左边接了电源(高电平),在P1口给一个低电平即可点亮LED灯。相反,如果要LED灯熄灭,就要把P1口的电平变为高电平即可。而要实现流水灯功能,我们只要将LED1~LED8依次点亮、熄灭,以此类推,这样就实现流水灯了。
二,软件设计
理解原理后我们就需要通过代码来实现51单片机对LED灯的控制。
#include<reg52.h>
void Delay(int xms);
void main()
{
char i;
while(1){
//LED灯自上而下亮
for(i=0;i<8;i++)
{
P1=~(0x01 << i);
Delay(100);
}
//LED灯自下而上亮
for(i=0;i<8;i++)
{
P1=~(0x80 >> i);
Delay(100);
}
}
}
void Delay(int xms) //xms控制函数循环次数,一次延时1ms
{
unsigned char i, j;
while(xms)
{
i = 2;
j = 239;
do
{
while (--j);
} while (--i);
xms--;
}
}
三,综合测试
代码写好之后,我们就需要测试效果了,首先我们必须知道一个概念,计算机是只识别二进制代码的,我们对电脑的所有操作和命令,最终都会变成很多0101010101001011010111,然后计算机就能看懂是什么意思,并作出反应,我们的单片机其实也相当于一台计算机,它也只认识0和1,但是我们刚刚软件设计写的代码是C语言写的,所以需要将它转换成计算机可以识别的代码。点击下图中的魔法棒,
在弹出来的窗中选择Ouput 那一栏,勾选 Create HEX File 那一栏,最后点击OK就好了。
最后将写好的代码进行运行,出现下面方框中的内容就说明HEX文件创建成功,最后将生成的HEX文件插入51单片机芯片中去,就可以实现咱们的流水灯了。
将HEX文件插入芯片中:在51芯片的属性里的 Program File 中选择我们刚才生成的HEX文件,最后点击确定就可以了。
最后,再附上运行结果:
流水灯