51单片机之模块化编程

一、模块化编程与传统方式编程的区别

传统方式编程 :在这种编程方式中,所有的函数通常都被放置在同一个文件main.c中。当项目中使用的模块较多时,这个文件中会包含大量的代码,导致代码难以组织和管理,也影响了编程者的思路。这种方式缺乏清晰的结构划分,使得代码的可读性和可维护性降低。

模块化编程 :模块化编程则通过将程序分解成多个独立且可互换的模块来提高代码的灵活性、可维护性和复用性。每个模块都包含执行特定功能的所有必要代码,并且可以被独立地开发、测试和维护。模块之间的代码被放在不同的.c文件中,而在.h(头文件)中提供外部可调用函数的声明。其他模块或文件需要使用某个模块的功能时,只需通过#include指令包含相应的头文件即可。这种方式使得代码结构更加清晰,易于管理和维护。

模块化编程在代码结构与组织、代码复用性、代码可读性与可维护性以及团队协作等方面都显著优于传统方式编程。因此,在现代软件开发中,模块化编程已经成为一种广泛采用的编程范式。

二、 模块化编程

2.1 模块化编程框图

2.2 模块化编程注意事项

.c文件:存放的是函数、变量的定义(可运行的代码)

.h文件:可被外部调用的函数、变量的声明

任何自定义的变量、函数在调用前必须有定义或声明(同一个.c)

使用到的自定义函数的.c文件必须添加到工程参与编译

使用到的.h文件必须要存放在编译器可找到的地方(工程文件夹根目录、安装目录、自定义)

三、C预编译

C语言的预编译以#开头,作用是在真正的编译开始之前对代码做一些处理(预编译)。

四、模块化延时函数和数码管

4.1 < >与" "的区别

使用< >包含头文件时,预处理器会在标准库路径中查找该头文件。这些路径通常是由编译器或环境变量指定的,用于存放标准库的头文件。如果你使用的是标准库中的头文件(如stdio.hstdlib.h等),就应该使用尖括号。

使用" "包含头文件时,预处理器会首先在包含当前源文件的目录中查找该头文件,如果未找到,则继续在标准库路径中查找。这允许开发者编写自己的头文件,并且在使用时,可以通过在相同目录下放置头文件来避免指定复杂的路径。如果头文件的名称与标准库中的头文件冲突,使用双引号可以避免潜在的混淆。

总结:

使用尖括号< >主要是为了包含标准库中的头文件。

使用双引号" "可以包含用户自定义的头文件,或者当你想覆盖标准库中的头文件时使用(尽管这种做法不推荐)。

4.2 步骤

1、新建好工程后添加main.c文件,写出基本框架

2.像添加main.c文件一样新建一个Delay.c文件

3.在Delay.c文件中加入Delay函数

4.创建Delay.h文件

5.添加好后左侧任务栏没有出现Delay.h(已经存放在了main.c文件的文件夹内,编译时可以找到),可以将其添加进当前工程目录中 方便管理,此步骤也可以跳过

6.编写Delay.h文件

7.重复上述步骤添加数码管的.c和.h文件

8.这样只需要在main函数中添加上头文件直接调用就好了

相关推荐
xuxie995 小时前
start9 霍尔双相编码器
单片机
兆龙电子单片机设计6 小时前
【STM32项目开源】STM32单片机语音分类垃圾桶-蓝牙APP
stm32·单片机·嵌入式硬件·物联网·开源·自动化·毕业设计
零涂毕业设计7 小时前
毕业设计模块开发-OLED显示屏(IIC协议0.96寸)STM32 ESP32 FPGA Linux驱动免费分享
linux·stm32·单片机·嵌入式·esp32·fpga·oled
阿龙的工作记录8 小时前
深入理解Linux设备驱动模型
linux·嵌入式硬件·工作记录
ye150127774558 小时前
220V转5V1A隔离芯片WT5602
单片机·嵌入式硬件·其他·硬件工程
武汉万象奥科9 小时前
AGV导航控制器方案 | 基于HD-RK3576系列核心板的算控融合一体化平台
arm开发·嵌入式硬件·arm核心板·单板机
ye1501277745510 小时前
DC24V-100V转3.3V500mA隔离芯片WT5602
单片机·嵌入式硬件·其他·硬件工程
Lumos6fly10 小时前
51单片机从零到实战(15)——数字时钟温度计
单片机·嵌入式硬件·51单片机
gwf21610 小时前
磨损均衡算法(Wear Leveling)——SSD如何让每块闪存“公平退休“?
运维·数据库·人工智能·python·嵌入式硬件·算法·智能硬件
zlinear数据采集卡11 小时前
从“脏信号”到“纳伏级纯净”:硬核拆解DABL7606的多级抗混叠滤波与24位过采样算法
arm开发·科技·嵌入式硬件·fpga开发·开源