51单片机-让一个LED灯闪烁、流水灯(涉及:设置单片机的延迟函数)

目录

设置单片机的延迟(睡眠)函数

查看单片机的时钟频率

复制代码
检测前单片机必须连接电脑并打开,点击检测之后关掉单片机再打开。 这被称为冷启动。

设置系统频率、定时长度、指令集

系统频率填上面查到的

复制代码
将生成的代码复制到编辑器中

完整代码

复制代码
#include <REGX52.H>
//#include <INSTRINS.H>

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

	i = 4;
	j = 127;
	k = 25;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}


void main()
{
	
	while(1)
	{
		P2 = 0xFE; // 1111 1110 第一个灯亮
		Delay500ms();
		P2 = 0xFF; // 1111 1111 灯灭
		Delay500ms();
	}
	
}

生成HEX文件

然后点击编译。

下载HEX文件到单片机

复制代码
点击下载,然后冷启动。显示操作成功。

流水灯代码

复制代码
#include <REGX52.H>
//#include <INSTRINS.H>

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

	i = 4;
	j = 127;
	k = 25;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}

void First_led_light()
{
	while(1)
	{
		P2 = 0xFE; // 1111 1110 第一个灯亮
		Delay500ms();
		P2 = 0xFF; // 1111 1111 灯灭
		Delay500ms();
	}
}



void main()
{
	
	while(1)
	{
		P2 = 0xFE; // 1111 1110 第一个灯亮
		Delay500ms();
		P2 = 0xFD; // 1111 1101 第二个灯亮
		Delay500ms();
		P2 = 0xFB; // 1111 1011 第三个灯亮
		Delay500ms();
		P2 = 0xF7; // 1111 0111 第四个灯亮
		Delay500ms();
		P2 = 0xEF; // 1110 1111 第五个灯亮
		Delay500ms();
		P2 = 0xDF; // 1101 1111 第六个灯亮
		Delay500ms();
		P2 = 0xBF; // 1011 1111 第七个灯亮
		Delay500ms();
		P2 = 0x7F; // 0111 1111 第八个灯亮
		Delay500ms();
	}
	
}
相关推荐
平凡灵感码头8 分钟前
基于智能家居项目 实现DHT11驱动源代码
stm32·单片机·智能家居
搬砖的小码农_Sky19 分钟前
FPGA:XILINX FPGA产品线以及器件选型建议
嵌入式硬件·fpga开发·硬件架构·硬件工程
道亦无名33 分钟前
STM32H743输出50%的占空比波形
stm32·单片机·嵌入式硬件
一支闲人36 分钟前
串口模块详细讲解
51单片机·入门教程·适用于新手小白
小智学长 | 嵌入式1 小时前
单片机-STM32部分:10、串口UART
stm32·单片机·嵌入式硬件
猎板阿权2 小时前
出于PCB设计层面考虑,连排半孔需要注意哪些事项?
单片机·物联网·平面
#金毛2 小时前
如何使用C51的Timer0实现定时功能
单片机·嵌入式硬件
Flocx2 小时前
在 STM32 上使用 register 关键字
stm32·单片机·嵌入式硬件
GodKK老神灭2 小时前
STM32 __main
stm32·单片机
梁下轻语的秋缘2 小时前
STM32 ADC 模数转换器详解:原理、配置与应用
stm32·单片机·嵌入式硬件