实验3:左右循环LED灯

获取流水灯工程:

方式一:

keil+proteus 完成最小系统,点亮led 灯实验_吴小凹的博客-CSDN博客

方式二:

Flowing_led.zip - 蓝奏云直接下载。

原理图修改:

无须修改只需要使用流水灯的工程即可,解压到桌面后直接打开。


代码修改:

打开代码如下所示。

在主循环中加入以下代码,这句代码就是led向另外一个方向游动的代码:

cpp 复制代码
	for(i=0;i<8;i++)
		{
				/*拉低P1端口*/
			P0=~(0x80>>i);
			delay_ms(500);
		}

最终代码:

cpp 复制代码
/*51单片机的头文件*/
#include <reg51.h>
#define uint16_t unsigned short
#define uint8_t unsigned char
		
  
// 定义一个函数,名称为delay_ms,接受一个无符号16位整数(uint16_t)作为参数,表示延迟的毫秒数。  
void delay_ms(uint16_t nms)  
{  
 // 定义一个无符号8位整数(uint8_t),名称为i,用于循环控制。  
 uint8_t i;  
 // 进入一个while循环,条件是nms大于0。当nms为0时,跳出循环。  
 while(nms--)  
 {  
 // 进入一个for循环,循环次数是120次,i的值从0递增到119。  
 for(i=0;i<120;i++);  
 }  
}
/*主函数*/
int main()
{
	uint8_t i;
	/*单片机等待*/
	while(1)
	{
		for(i=0;i<8;i++)
		{
				/*拉低P1端口*/
			P0=~(0x01<<i);
			delay_ms(500);
		}
		for(i=0;i<8;i++)
		{
				/*拉低P1端口*/
			P0=~(0x80>>i);
			delay_ms(500);
		}
	}
}

最后我们编译下载程序。

再然后就是运行工程。

最后友友们新的实验我们又结束咯。

相关推荐
Brilliantwxx5 分钟前
【STM32】 DMA中断机制、NVIC 联动与配置实战前章
stm32·单片机·嵌入式硬件·mcu
我叫洋洋1 小时前
涂鸦 T5+ hashcat 自动化破解 WPA2:从单缺 M2 到全自动值守的踩坑实录 破解wifi 密码
运维·单片机·自动化
Jason_zhao_MR7 小时前
米尔电子参展预告_中国工博会2026-外发版
嵌入式硬件·机器人·工业控制
FPGA小徐11 小时前
STM32五路气敏传感器阵列电路详解:从HHC1000分压到AD8606跟随器和ADC采样
stm32·单片机·嵌入式硬件
Horn Still Sounds13 小时前
IMX6ULL裸机|I2C通信协议 + ADC模数转换学习笔记
arm开发·笔记·单片机·嵌入式硬件
智感子13 小时前
无人值守称重:地磅系统架构与流程
嵌入式硬件
新晨单片机设计15 小时前
S011C-基于STM32智能灯光控制系统(光强、声音、人体)【Proteus仿真+Keil程序+原理图】
stm32·嵌入式硬件·proteus·智能灯光控制系统
女神下凡17 小时前
芯参谋(26):DDR4_软件设计规范
arm开发·单片机·嵌入式硬件
zd84510150017 小时前
DSLogic逻辑分析仪连接失败
嵌入式硬件
国科安芯18 小时前
星载通信载荷信号处理中抗辐射微控制器的选型与适应性分析
人工智能·嵌入式硬件·mcu·信号处理·risc-v·抗辐射·空间信息