keil与visual studio一样可以分文件编写,不同的是vs可以很方便的添加类,头文件和源程序,今天在小破站发现一个机构讲的挺好的,思路值得借鉴!
传送门在此,海创电子!
https://www.bilibili.com/video/BV1vJ411X7iZ?p=27&spm_id_from=pageDriver
先简单讲下思路,keil需要手动分别的添加头文件和源程序,然后再手动写定义
如图所示:
一定要手动添加 include path 文件夹,不然编译器会懵逼,
ps:有点像vs的内味了,vs引用库函数也是要手动添加include文件夹。
新建个头文件 pbdata.h 然后需要手动写定义
#ifndef __PBDATA_H__ //头尾的下划线是两个,中间下划线是一个
#define __PBDATA_H__
//中间这里写头文件需要的东西
#endif
好戏来了,我们模块化编程的时候总是很多个头文件引用来引用去,内容即多又累又不美观,何不找个大管家 pbdata.h 一次性管理所有的头文件呢?这样无论什么 .c 文件只需要引用一个pbdata.h 头文件即可!
以下贴下我的完整工程:
led.h
#ifndef __LED_H__
#define __LED_H__
void LedShow();
#endif
led.c
#include"pbdata.h"
void LedShow()
{
LED=0;
delay();
LED=1;
delay();
}
delay.h
#ifndef __DELAY_H__
#define __DELAY_H__
void delay();
#endif
delay.c
#include"pbdata.h"
void delay()
{
unsigned int i,j;
for(i=0;i<183;i++)
for(j=0;j<1000;j++);
}
pbdata.h
#ifndef __PBDATA_H_
#define __PBDATA_H_
/***************
这个pbdata.h头文件要包含各种各样乱七八糟的头文件,然后main.c只需要包含pbdata.h即可
因为pbdata.h是公共的头文件
****************/
#include<reg52.h>
#include"delay.h"
#include"led.h"
/* 引脚定义也写在头文件pbdata.h这里 */
sbit LED= P2^7;
#endif
pbdata.c
#include"pbdata.h"
//我只是一个头文件管家,所以我的 .c 文件啥也没有
main.c
#include"pbdata.h" //看到没,我的main函数只需要一个头文件管家 pbdata.h 完事
void main()
{
while(1)
{
LedShow();
}
}
完整截图