一、学习内容:
1.什么是模块化编程
放了4张PPT,已经很清晰了
总结下就是,模块化编程可使主体代码更简洁。通常把变动不大的子函数/变量整理成一个个模块文件(.c和.h)主体需要时直接调用即可




.h文件中的3个预编译可以避免重复定义,#ifndef表示如果没有定义某某,则继续下面的编译,接着的#define正好定义了没定义的某某,直到#endif结束这段编译。如果在#ifndef之前已经定义过某某,那么根本不会进入#ifndef,也就不会再次define。
———————————————————————————————————————————
2.怎么模块化
先找出可以模块化的子函数/变量,像上节课的Delay和Nixie函数
再根据框图创造出.c和.h两个文件,分别把定义和声明(要加分号)填进去
最后在main.c(主体)中调用(#include "XXX.h")
———————————————————————————————————————————
3.认识LCD1602调试工具
根据原理图,LCD影响了P0组和P2组,所以LCD会导致数码管和部分LED乱码,不能同时使用



———————————————————————————————————————————
二、实操注意点
1.液晶屏不要倒着插,可能会响,显示不正常


2.模块里用到模块也要加相应的头文件
NiXie.c中用了Delay函数也要调用

3.软件中打开老师源码,出现中文乱码(文字不匹配),可从记事本上复制代码粘贴解决
4.与老师代码的头文件不匹配报错,改成自己的<STC89C5xRC.H>

5.LCD_ShowNum超过范围0~65535,会重新从00000开始计数


6.函数后面不要误加等号

———————————————————————————————————————————
三、代码展示







——————————————————-这是分界线——————————————————————


LCD1602.c和LCD1602.h都是老师写的代码原件(只改了一个头STC),其中.c文件太长就截了一点点


Delay.c和Delay.h跟前面的一模一样,没放

留个疑问:LCD_ShowBinNum的显示逻辑不太懂
2026.9.2完课
2026.9.2整理完毕





