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();
	}
	
}
相关推荐
硅基手札2 小时前
【串口技术系列文档 10】低功耗与唤醒机制
驱动开发·stm32·单片机·嵌入式硬件·mcu·计算机外设
yuehuaxin013 小时前
上海贝岭 BL6523GX(D78) 单相计量芯片开发笔记:引脚定义、寄存器配置与校表流程
嵌入式硬件·智能家居·适配器模式·智能硬件
Kuakewei8883 小时前
可调OVP/OCP USB限流保护芯片IC的50μs过流响应测试
嵌入式硬件
HRTOS4 小时前
HRTOS 官网内容调整记录:首页、系统架构与文档页面优化
单片机·系统架构·51单片机
雨田言炎4 小时前
STM32之SysTick--系统定时器(内容简单但重要,附件有程序源码)
stm32·单片机·嵌入式硬件
ccbw165 小时前
CH32M007K8U7:集成48V三相预驱的RISC-V电机MCU
单片机·嵌入式硬件
编程圈子6 小时前
I.MX6U 裸机开发 24. 电容触摸屏与 I2C 驱动
单片机·嵌入式硬件
Zwawa6 小时前
传感器模块都在交出什么:从模拟电压到数字协议
c语言·单片机·嵌入式
FakeOccupational7 小时前
【电路笔记 STM32】Cortex-M7 UART 中断模式(串口接收中断+串口空闲中断)
笔记·stm32·单片机
小李不想当小白8 小时前
USART串口协议(STM32标准库学习笔记)
经验分享·笔记·stm32·单片机·嵌入式硬件·学习