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

相关推荐
李永奉4 小时前
51单片机-实现定时器模块教程
单片机·嵌入式硬件·51单片机
IT永勇5 小时前
STM32高级定时器-输出比较模式
stm32·单片机·嵌入式开发·pwm输出·高级定时器
正在努力的小河6 小时前
GPIO子系统自主实现(简单版)
linux·单片机·嵌入式硬件
什么半岛铁盒6 小时前
处理端口和 IP 地址
网络·单片机·tcp/ip
国科安芯17 小时前
高速CANFD收发器ASM1042在割草机器人轮毂电机通信系统中的适配性研究
网络·单片机·嵌入式硬件·性能优化·机器人·硬件工程
CC呢18 小时前
基于单片机智能路灯控制
单片机·嵌入式硬件·智能路灯
DDUU__18 小时前
STM32低功耗模式
stm32·单片机·嵌入式硬件
小莞尔19 小时前
【51单片机】【protues仿真】基于51单片机宠物投食器系统
c语言·stm32·单片机·嵌入式硬件·51单片机·proteus
逼子格19 小时前
【Protues仿真】基于AT89C52单片机的数码管驱动事例
单片机·嵌入式硬件·硬件工程·硬件工程师·protues·数码管·电路仿真
風清掦20 小时前
零基础玩转STM32:深入理解ARM Cortex-M内核与寄存器编程
stm32·单片机·嵌入式硬件·mcu·物联网