文章目录
- 前言
- 一、sys文件创建和路径添加
- 1.创建文件夹添加文件夹路径
- 二、sys文件编写
- 1.sys.h
- 2.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站