流水灯是一个很经典的入门项目,学单片机大部分都是从流水灯开始!

一、编程

先贴上代码:

#include <reg51.h>
#include <intrins.h>

void delay_ms(int a)
{
	int i,j;
	for(i=0;i<a;i++)
	{
		for(j=0;j<1000;j++) _nop_();

	}
}

void main(void)
{
	while(1)
	{
		P0=0xfe;
		delay_ms(50);
		P0=0xfd;
		delay_ms(50);
		P0=0xfb;
		delay_ms(50);
		P0=0xf7;
		delay_ms(50);
		P0=0xef;
		delay_ms(50);
		P0=0xdf;
		delay_ms(50);
		P0=0xbf;
		delay_ms(50);
		P0=0x7f;
		delay_ms(50);
	}
}
1.关于头文件

(1)51单片机编程的常用头文件有以下几个:

reg51.h,math.h,stdio.h,stdlib.h,absacc.h,intrins.h

(2)头文件里头是什么内容呢?

我们可以单击头文件的那一行,然后右键,选择“open document <xxx.h>”,然后我们就可以看看头文件里是什么内容了。

对于头文件<reg51.h>,我们打开后可以发现是这样的:

深度学习模型如何在单片机上跑_深度学习模型如何在单片机上跑


sfr 声明一位8位寄存器

sfr16 16位特殊功能寄存器

sbit 声明特殊功能位

bit 位变量的声明

2.关于延迟函数

首先我们得先来讲一下时钟周期,如果单片机的晶振是a MHz,那么时钟周期就是1/a微秒。而单片机执行一条语句的时间,也就是机器周期,为12个时钟周期,也就是12/a微秒。如果单片机的晶振是12MHz,那么一个机器周期就是1微秒,那么延时1微秒就只需要执行一个空语句。依次类推,延时1ms就要执行1000个空语句。

3.生成hex文件

不论是proteus仿真还是真正的单片机执行,要加载或下载的都是这个hex文件。那么如何生成hex文件呢?见以下的两步操作:

深度学习模型如何在单片机上跑_c++_02


深度学习模型如何在单片机上跑_引脚_03


然后再编译一次就可以了。

深度学习模型如何在单片机上跑_c++_04

二、仿真

先贴上仿真效果:

深度学习模型如何在单片机上跑_头文件_05

1.关于proteus的放置元器件

(1)放置元件和单片机

深度学习模型如何在单片机上跑_引脚_06


然后在框里打入关键字即可。

(2)放置电源和地

深度学习模型如何在单片机上跑_c++_07


(3)放置总线

深度学习模型如何在单片机上跑_单片机_08


然后在图中想要的地方画上,结尾处要双击

2.关于总线

画上总线后,将单片机的各个引脚街道总线上,并把各个LED的引脚接到总线上,这个时候,系统是不知道单片机的哪个引脚和LED的引脚接在一起的,因此要使用网络标签,具有相同网络标签的引脚就是接在一起的。

深度学习模型如何在单片机上跑_单片机_09

3.画好原理图后怎么仿真呢?

深度学习模型如何在单片机上跑_头文件_10


深度学习模型如何在单片机上跑_单片机_11


然后找到刚刚保存的hex文件加载进去,就可以进行仿真了!

深度学习模型如何在单片机上跑_头文件_12

对流水灯的编程和仿真就讲到这里了,如有什么疑问或文章有什么纰漏,都欢迎留言交流呀!大家互相学习,共同进步!