获取流水灯工程:
方式一:
keil+proteus 完成最小系统,点亮led 灯实验_吴小凹的博客-CSDN博客
方式二:
Flowing_led.zip - 蓝奏云直接下载。
原理图修改:
无须修改只需要使用流水灯的工程即可,解压到桌面后直接打开。
代码修改:
打开代码如下所示。
在主循环中加入以下代码,这句代码就是led向另外一个方向游动的代码:
for(i=0;i<8;i++)
{
/*拉低P1端口*/
P0=~(0x80>>i);
delay_ms(500);
}
最终代码:
/*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);
}
}
}
最后我们编译下载程序。
再然后就是运行工程。
最后友友们新的实验我们又结束咯。