在Keil中分离子程序通常涉及以下几个步骤:
创建子程序文件
将程序分成一个主程序和多个子程序。例如,主程序可以命名为`Main.c`,子程序可以命名为`Sub1.c`,`Sub2.c`等。
编写子程序代码
在子程序文件中实现特定功能。例如,在`Sub1.c`中实现一个函数`max`,用于返回两个数中较大的一个:
```c
unsigned char max(unsigned char x1, unsigned char x2) {
unsigned char i;
if (x1 > x2)
i = x1;
else
i = x2;
return(i);
}
```
编写子程序声明文件
创建一个声明文件(`.h`文件),用于声明子程序。例如,`Sub1.h`文件内容如下:
```c
unsigned char max(unsigned char x1, unsigned char x2);
```
在主程序中包含子程序
在主程序文件(如`Main.c`)中包含子程序的头文件,并调用子程序。例如:
```c
include "Sub1.h"
void main(void) {
unsigned char i;
i = max(1, 2);
}
```
编译和链接
使用Keil的编译器将主程序和子程序分别编译成目标文件(`.obj`文件),然后链接成一个可执行文件。在Keil中,可以通过项目设置来自动完成这些步骤。
示例
假设我们有一个简单的程序,包含一个主程序`Main.c`和一个子程序`Sub1.c`,以及相应的头文件`Sub1.h`。
Main.c:
```c
include "reg52.h"
include "Sub1.h"
void main(void) {
unsigned char i;
i = max(1, 2);
while(1);
}
```
Sub1.c:
```c
include "Sub1.h"
unsigned char max(unsigned char x1, unsigned char x2) {
unsigned char i;
if (x1 > x2)
i = x1;
else
i = x2;
return(i);
}
```
Sub1.h:
```c
unsigned char max(unsigned char x1, unsigned char x2);
```
编译和链接
1. 打开Keil,创建一个新项目。
2. 将`Main.c`和`Sub1.c`添加到项目中。
3. 确保`Sub1.h`也在项目中可见。
4. 选择“Project” -> “Build Project”来编译和链接项目。
通过以上步骤,你就可以在Keil中成功分离并编译子程序。