目录
✅ 传统编程:所有代码(主函数、功能函数、变量定义)全部堆砌在 main.c 一个文件中,代码量一多就杂乱无章,可读性、维护性极差;
✅ 模块化编程:功能拆分、分文件存放 ------ 把 LED、按键、延时、串口等不同功能的代码,分别放到独立的 .c 文件中,通过 .h 头文件做声明,在 main.c 中只需 #include "xxx.h" 引入即可调用,完美解决了传统编程的痛点,
动态数码管模块化编程如下:

✅main.c
cpp
#include <REGX52.H>
#include "NiXie.h"
void main()
{
while(1)
{
NiXie(1,1);
NiXie(2,2);
NiXie(3,3);
NiXie(4,4);
NiXie(5,5);
NiXie(6,6);
}
}
✅NiXie.c
cpp
#include <REGX52.H>
#include "Delay.h"
unsigned char NiXieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
void NiXie(unsigned char Location,unsigned char Number)
{
switch(Location)
{
case 1:P2_4=1;P2_3=1;P2_2=1;break;
case 2:P2_4=1;P2_3=1;P2_2=0;break;
case 3:P2_4=1;P2_3=0;P2_2=1;break;
case 4:P2_4=1;P2_3=0;P2_2=0;break;
case 5:P2_4=0;P2_3=1;P2_2=1;break;
case 6:P2_4=0;P2_3=1;P2_2=0;break;
case 7:P2_4=0;P2_3=0;P2_2=1;break;
case 8:P2_4=0;P2_3=0;P2_2=0;break;
}
P0=NiXieTable[Number];
Delay(1);
P0= 0x00;
}
✅NiXie.h
cpp
#ifndef _NIXIE_H_
#define _NIXIE_H_
void NiXie(unsigned char Location,unsigned char Number);
#endif
✅Delay.c
cpp
void Delay(unsigned int xms) //@12MHz
{
unsigned char i, j;
while(xms)
{
i = 2;
j = 239;
do
{
while (--j);
} while (--i);
xms--;
}
}
✅Delay.h
cpp
#ifndef _DELAY_H_
#define _DELAY_H_
void Delay(unsigned int xms);
#endif