keil5中模块化编程

介绍

在keil5这个软件中可以进行模块化编程,就像拼积木一样,需要用到什么模块,就将该模块添加到要用到的地方去就好了。

意义

节省大量时间,一些重复使用的函数,比如延时函数,数码管,矩阵键盘的扫描等重复使用的函数可以对其进行模块化,这样就不必要每次创建一个新项目还要再重新编写一个类似的函数了。

方法

创建模块

这里以delay函数为例

第一步

先创建一个要模块化的函数的c文件,在下图中的第二个选项就是。

第二步

然后选择创建文件类型,选择第一个类型.c文件,然后对其取名字。

第三步

然后在创建好的.c文件中进行函数的编写

#include <REGX52.H>
#define uchar unsigned char

void delay(uchar sj)
{
	uchar x,y;
	for(x=sj;x>0;x--)
	{
		for(y=255;y>0;y--)
		{
		}
	}
}

第四步

然后创建一个同名的.h文件,方法和第一步一样

### Keil5模块化编程方法 #### 文件分类及其放置 为了实现良好的模块化设计,在Keil5中创建项目时应合理规划文件结构。通常的做法是按照功能将源代码分为多个独立的模块,每个模块负责特定的功能。常见的做法是在工程目录下建立不同的子文件夹来存储不同类型的文件[^3]。 对于C语言而言,可以遵循如下建议: - **头文件(.h)**:定义全局变量声明、宏定义以及函数原型等; - **源文件(.c)**:包含具体的函数实现; - **资源文件**:如配置文件或其他静态数据; 这种布局有助于提高项目的清晰度和维护效率。 #### 创建模块化的C语言程序实例 下面展示一个简单的例子说明如何构建一个多文件组成的工程项目。 ##### 主控单元 (main.c) ```c #include "common.h" int main(void){ init_system(); // 初始化系统设置 while(1){ check_input(); // 检测输入状态 process_data(); // 数据处理逻辑 update_output(); // 更新输出显示 delay_ms(10); // 循环延时等待 } } ``` ##### 系统初始化 (init.c 和 init.h) `init.h`: ```c #ifndef INIT_H_ #define INIT_H_ void init_system(); #endif /*INIT_H_*/ ``` `init.c`: ```c #include "init.h" #include <8052.h> void init_system(){ SCON = 0x50; // 设置串口通信模式 TMOD |= 0x20; // 定时器T1工作于方式2 TH1 = 0xFD; // 波特率9600bps@12MHz晶振 TR1 = 1; // 启动定时器T1 } ``` ##### 输入检测 (input.c 和 input.h) 同样地为其他部分编写对应的`.h`与`.c`文件... 通过这种方式分离各个组件之间的职责边界,不仅使得整个应用程序更易于理解和调试,同时也增强了各部件间的解耦合程度,便于后期扩展或修改现有特性而不必担心牵一发而动全身的情况发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值