主页 > 游戏开发  > 

51单片机最强模块化封装(1)

51单片机最强模块化封装(1)

文章目录 前言一、sys文件创建和路径添加1.创建文件夹添加文件夹路径 二、sys文件编写1.sys.h2.sys.c 三、模块化的测试总结


前言

今天将为大家讲解51单片机的模块化封装,为什么要讲这个模块化封装呢?模块化封装将提高我们代码的可移植性和可复用性,方便我们后续项目的进行。 后续我们将推出几个51单片机项目: 1.智能密码锁 2.温控风扇 3.环境监测系统 大家想做什么项目也可以联系我私信我。

一、sys文件创建和路径添加 1.创建文件夹添加文件夹路径

在工程目录下我们建立一个名为sys的文件夹。 在文件夹下我们添加sys.c和sys.h 将sys文件夹添加进工程代码,然后添加文件夹路径。 这里可以添加一个名为sys的文件夹。 然后进行编译测试添加是否成功。 编译之前我们需要先勾选此项,不然编译过后无法生成hex文件。

二、sys文件编写 1.sys.h

首先我们先编写一个sys头文件。 在头文件的开头和结尾处加上: #ifndef __SYS_H #define __SYS_H

#endif 这样的宏。 使用这样的宏可以防止头文件的重复包含。

sys头文件处我们包含了<reg52.h>的头文件,和重定义了unsigned char和unsigned int类型变量。 重定义这两个变量可以方便我们以后调用时的编写代码。 sys中还包含了delayms ms级延时函数,延时函数实现原理这里我就不多说。大家可以看我之前的文章都有讲到。 原理

/*此宏作用:防止头文件重复包含*/ #ifndef __SYS_H #define __SYS_H #include <reg52.h> /* 类型重定义 当以后使用到unsigned char 和 unsigned int时可以使用u8和u16代替 */ typedef unsigned char u8; typedef unsigned int u16; /* 延时函数 延时单位:ms */ void delayms(u16 ms); #endif 2.sys.c

我们开始编写sys.c文件,sys.c文件主要就是实现delayms这个函数,相信大家学习过C语言都明白这样写的作用,这里就不多展开说明。

#include "sys.h" void delayms(u16 ms) { u8 i; while(ms--) { for(i=0;i<113;i++); } } 三、模块化的测试

每当我们编写好一个模块的时候都需要进行测试调试,假如不进行测试的话那么以后出现了问题再来修改就比较麻烦了。所以我们要养成写一个模块测试一个模块的好习惯。

我们在main.c中包含"sys.h",调用里面定义的u8,u16,delayms进行测试,编译发现无错误说明测试成功。

#include "sys.h" void main(void) { u8 num; u16 data1; delayms(1000); /*主函数*/ while(1) { } } 总结

后期将持续更新模块化文章请大家多多点赞,多多留言评论。 后期将会出对应视频提供大家学习: B站地址:B站

标签:

51单片机最强模块化封装(1)由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“51单片机最强模块化封装(1)