自己总结的一些单片机代码管理技巧,希望对新手有一定的帮助 ,本来是写给同班同学看的,现在共享出来啦
今天看到某位同学的单片机代码,工程很大,包括 LCD、矩阵键盘+独立按键扫描、红外解码 等等全放在 main.c 文件里,上千行的代码,着实看着头晕。 不知道单片机实习的老师有没有教大家这种大工程的代码管理技巧,如果没讲或者讲了 但是没听明白,可以借此文档学习一番,简单而且实用。 代码管理示例如下:
基础管理:
1:工程目录,第一级只有一个文件夹 AT89C51,第二级可以有多个,这里我只有一个 (因为 51 的工程不需要太多的文件),第三级就是每个文件夹里面包含的源文件(.c),可 以看到第三级前面有加号,点开会有第四级,是各个源文件所包含的头文件(.h),看到这 里如果觉得头晕可以忽略此条。 2:此处后面详细解释。 3:选项卡,每个点开的源文件和头文件都可以在此处点击选择查看,右击可以选择 close。 4:在每个源文件里如果想调用其他源文件里的函数,包含其对应头文件即可。
如何实现: 将各个模块比如键盘扫描、LCD 液晶等等分别写在各个源文件里,分开管理方便得多, 比如 LCD 驱动的源代码,示例如下 Lcd.c 源函数都写在源文件里,这个很好理解,毋庸赘言.
Lcd.h 在头文件里将对应源文件里的函数都声明一遍
1、lcd.c 和 lcd.h 必须都要取一样的名字 lcd 吗? 可以不同,但是为了调用方便最好一样
2、头文件里的 #ifndef LCD_H #define LCD_H #endif 可以不要吗? 可以,但是为了不重复包含最好加上(LCD_H 可以多加些下划线,这样取名只是 为了防止重复)
3、还可以在源文件里声明一些变量,然后在对应的头文件里用 extern 声明这些变量(包 含但不限于各种类型变量、数组、结构体), 如果想用这些变量和函数只需要包含这个头文件就可以直接使用啦!
以上就是一些代码管理的一些基础要点,初次看起来可能会觉得比较麻烦,但是多做一 两次之后就会其实很简单,熟练之后管理代码会极为方便。 有不清楚的欢迎咨询

下面讲一些进阶的代码管理,有兴趣的可以继续看下去: 第一张图里的 2 处,点开后如下:
可以发现这就是这个工程的各级目录,前两级目录可以通过点击箭头所指的虚线框新 建,第三级可以点 Add Files 来添加 一般 1 所处的地方只有一个文件夹,但是,如果有两个工程绝大多数文件都是相同的, 只有个别文件不同,这样我们就可以将这两个工程合二为一,或者说合多为一,在 2 处新建 一个文件夹 AT89C52,建了之后会发现其包含的文件与最初的那个是完全一样的,这时我 们需要去掉那些这个工程里不需要的文件(注意不是直接remove,如果直接移除的话俩工 程里都移除了) Keil4 里的操作:比如我们不想要下面的 lcd.c,右击选择第一个 Options
出现如下画面 将 include in target build 勾选掉,也就是去掉前面的勾勾
点击 OK 即可,keil4 里会出现如下样式
Keil5 里的操作,与 keil4 一样,右击不需要的源文件选择 Options,将 include in target build 勾选掉,只是在工程目录里的显示样式不一样
最后讲一下,在建了一个包含两个工程的工程(好像有点矛盾?)之后会发现工程目录 里面只有一个工程的目录(好像有点难懂,见下图) 
可以看到只有一个 AT89C51

如果我们想切换到 AT89C52 该如何做呢
点击箭头所指之处就可以啦
Keil5 亦是一样
写在最后: 如有错误之处欢迎点出批评指正; 在使用过程中还是有有疑问的小伙伴欢迎一起讨论哟!
完整的pdf格式文档51黑下载地址:
|