用C51单片机制作LED流水的灯

目录

设备准备及分析:

 LED流水灯程序代码:

 代码分析:

引入头文件:

生成延时函数:

主函数代码及分析:

视频演示如下:


设备准备及分析:

将JP10中的P0引脚与74HC245中的引脚用排线连接,结构如下图所示:

用C51单片机制作LED流水的灯_第1张图片


 LED流水灯程序代码:

#include 
#include
void Delay500ms()		//@11.0592MHz
{
	unsigned char i, j, k;

	_nop_();
	i = 4;
	j = 129;
	k = 119;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}

void main()
{
	while(1)
	{
		P0=0x01;
		Delay500ms();
		P0=0x02;
		Delay500ms();
		P0=0x04;
		Delay500ms();
		P0=0x08;
		Delay500ms();
		P0=0x10;
		Delay500ms();
		P0=0x20;
		Delay500ms();
		P0=0x40;
		Delay500ms();
		P0=0x80;
		Delay500ms();
	}
}

 代码分析:

引入头文件:

#include 
#include

右键点击头文件,选择打开查看头文件中的各种声明:

用C51单片机制作LED流水的灯_第2张图片

生成延时函数:

void Delay500ms()		//@11.0592MHz
{
	unsigned char i, j, k;

	_nop_();
	i = 4;
	j = 129;
	k = 119;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}

以上图片是由stc-isp软件自动生成的延迟五百毫秒的函数,不会的同学可以参考一下:用stc-isp自动生成​​​​​​延时函数

主函数代码及分析:

void main()
{
	while(1)
	{
		P0=0x01;
		Delay500ms();
		P0=0x02;
		Delay500ms();
		P0=0x04;
		Delay500ms();
		P0=0x08;
		Delay500ms();
		P0=0x10;
		Delay500ms();
		P0=0x20;
		Delay500ms();
		P0=0x40;
		Delay500ms();
		P0=0x80;
		Delay500ms();
	}
}

提醒:C51系列单片机编程中的数据格式为十六进制

在while循环中分别将对应引脚赋为1,是其对应的LED灯循环点亮。

视频演示如下:

用C51单片机制作LED流水灯视频演示

你可能感兴趣的:(嵌入式硬件)