【学习笔记】51单片机 模块化编程

传统方式编程:所有的函数均放在main.c中,若使用的模块比较多,则一个文件内会有很多的代码,不利于代码组织和管理,而且很影响编程者的思路

模块化编程:把各个模块的代码放在不同的c文件里,在.h文件里提供外部可调用函数的声明,在其他.c文件想使用其中的代码时,只需要#include"xxx.h"文件即可。使用模块化编程可极大的提供代码的可阅读性,可维护性,可移植性等。

LCD1602调试工具

使用LCD602液晶屏作为调试窗口,提供类似printf函数的功能,可实时观察单片机内部数据的变换情况,便于调试和演示。

模块化编程框图

(Delay.h)是放它需要的部分就可以,下一次机就可以直接应用Delay.h

模块化编程注意事项

.c文件:函数,变量的定义

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

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

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

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

C语言预编译

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

此外还有#ifdef,#if,#else,#elif,#undef等(出现就是为了给某些程序是否参与做一个选择)

define,endif出来就是为了防止重复定义

我们开始实际操作,首先先建立新文件

然后直接写代码,看没有问题,编译正确

接着我们需要添加新的文件但这次是Delay

此时我们需要在上一次的部分中将Delay部分复制进去刚刚新建得到Delay当中去,像这样

我们还需要再加一个文件这个是要加Header,如图

而给这个新建的里面写的就是预编译,如下所示

现在我们就可以看到按右键就直接去预编译部分

我们来写一部分来测试如下:

经过测试,下载烧录发现是没有问题的,而且比原来的更加精简了。

相关推荐
海绵宝宝转agent1 小时前
计网基础知识
网络·笔记·学习·智能路由器
糖糖单片机设计1 小时前
基于 STM32 + LU-ASR01 的智能台灯
stm32·单片机·嵌入式硬件·51单片机·语音识别
ACP广源盛139246256731 小时前
Type‑C 扩展坞选型笔记:USB3.0 双通道信号切换方案 LH3412@ACP 评估
笔记·硬件架构·硬件工程·国产芯片·开关
峯5801 小时前
一文学习FastAPI
学习·fastapi
外收内放2 小时前
ENSP学习记录(6)
开发语言·学习·php
乐橙开放平台2 小时前
离岗检测怎么实现?通过客流相机或 AI 摄像头识别岗位区域无人状态,再推送告警消息
人工智能·笔记·后端·数码相机·物联网·自动化·音视频
蒸蒸yyyyzwd12 小时前
AI应用相关可能的面试问题
笔记
叼烟扛炮13 小时前
[Git 实战] 学习笔记:从生成 SSH 密钥到解决 TortoiseGit 推送报错全指南
linux·运维·笔记·git·学习
蒸蒸yyyyzwd13 小时前
学习笔记 八股手撕
笔记·学习