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 小时前
STM32U5F7VJT6Q (Cortex-M33, 160MHz) TouchGFX统计MCU占用率和FPS
stm32·单片机·嵌入式硬件
浩子智控8 小时前
zynq嵌入式开发(2)—基本开发测试实例
linux·嵌入式硬件·硬件架构
猫猫的小茶馆8 小时前
【Linux 驱动开发】Linux 内核启动过程详解
linux·c语言·arm开发·驱动开发·stm32·单片机·mcu
辰哥单片机设计8 小时前
STM32太阳能光伏板
stm32·单片机·嵌入式硬件
mftang8 小时前
MCU上应用的主流NVM技术: 嵌入式相变存储器(PCM) 和嵌入式磁阻随机存取存储器(MRAM)
单片机·嵌入式硬件·pcm
炸膛坦客8 小时前
Cortex-M3-STM32F1 开发:(五十四)CAN(车企会用),难但很重要
stm32·单片机·嵌入式硬件
willhuo9 小时前
RS485回响程序设计方案
单片机·lua
项目題供诗9 小时前
51单片机入门-LED点阵屏(九)
单片机·嵌入式硬件·51单片机
恶魔泡泡糖9 小时前
51单片机ADC模数转换
单片机·嵌入式硬件·51单片机
项目題供诗9 小时前
51单片机入门-DS1302时钟(十)
单片机·嵌入式硬件·51单片机