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函数中添加上头文件直接调用就好了

相关推荐
btzhy3 小时前
STM32单片机:基本定时器应用:单脉冲模式(STM32L4xx)
stm32·单片机·嵌入式硬件·基本定时器应用:单脉冲模式
文sir.5 小时前
温湿度采集系统(stm32+mqtt+Onenet云平台+esp8266)
stm32·单片机·嵌入式硬件·mqtt·onenet·云平台·esp8266
DIY机器人工房5 小时前
嵌入式面试题:你有没有用过直接基于TCP协议,不借助HTTP、MQTT这类上层协议的项目经历?
stm32·单片机·嵌入式硬件·面试题·diy机器人工房
zhmc7 小时前
Cortex M0单片机指令执行周期
单片机·嵌入式硬件
编程小白菜1237 小时前
STM32L051单片机485Ymode升级后程序不能正常运行问题
stm32·嵌入式硬件
NEU-UUN9 小时前
5.1.STM32-EXTI外部中断——全程手敲板书
stm32·单片机·嵌入式硬件
TangDuoduo000510 小时前
【常见传感器原理及应用】
单片机·嵌入式硬件
q***064720 小时前
SocketTool、串口调试助手、MQTT中间件基础
单片机·嵌入式硬件·中间件
洋九八21 小时前
电路基础和 PCB 制作
单片机·嵌入式硬件·pcb工艺
qq_401700411 天前
RS485基本原理,电路、防雷、layout及设计要点
stm32·单片机