实验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);
		}
	}
}

最后我们编译下载程序。

再然后就是运行工程。

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

相关推荐
xyx-3v6 小时前
VS CodeC51 单片机开发环境搭建
单片机·嵌入式硬件
iCxhust7 小时前
c# U盘映像生成工具
开发语言·单片机·c#
小宋同学在不断学习8 小时前
stm32--SPI原理应用W25Q64(二)
stm32·单片机·spi
lingzhilab9 小时前
零知开源——STM32F4结合BMP581气压传感器实现ST7789中文显示教程
stm32·单片机·嵌入式硬件
夜月yeyue9 小时前
设计模式分析
linux·c++·stm32·单片机·嵌入式硬件
猫猫的小茶馆10 小时前
【STM32】外部中断
stm32·单片机·嵌入式硬件·mcu·51单片机
森焱森11 小时前
垂起固定翼无人机介绍
c语言·单片机·算法·架构·无人机
brave and determined13 小时前
国产MCU学习Day11——CW32F030C8T6 低电压检测器(LVD)详解与应用
单片机·嵌入式硬件·嵌入式·国产mcu·cw32f030c8t6·cw32f030c8t6lvd·低电压检测器
金色光环17 小时前
stm32与tp-linkv2接线、解决识别不到芯片问题
stm32·单片机·嵌入式硬件