模块化程序设计
模块化程序设计是指在进行程序设计时将一个大程序按照功能划分为若干小程序模块,每个小程序模块完成一个确定的功能,并在这些模块之间建立必要的联系,通过模块的互相协作完成整个功能的程序设计方法。
在单片机的简单解释:把各个模块的代码放在不同的.c文件里,在.h文件里提供外部可调用函数的声明,其它.c文件想使用其中的代码时,只需要#include "XXX.h"文件即可。使用模块化编程可极大的提高代码的可阅读性、可维护性、可移植性等
模块化编程注意
•.c文件:函数、变量的定义
•.h文件:可被外部调用的函数、变量的声明
•
任何自定义的变量、函数在调用前必须有定义或声明(同一个
.c
)
•
使用到的自定义函数的
.c
文件必须添加到工程参与编译
•
使用到的
.h
文件必须要放在编译器可寻找到的地方(工程文件夹根目录、安装目录、自定义)
*.h文件中声明函数时一定要在声明后加分号!
.h文件的基本格式
#ifndef aaaaa
#define aaaaa
//这里声明函数 加分号!;;;;;;;;;;;;;;
#endif
在main函数中可以在预编译时包含子程序
#include<regx52.h>
#include"Delay.h"
#include"nixie.h"
void main()
{
while(1)
{
nixie(1,1);
Delay(100);
nixie(2,2);
Delay(100);
nixie(3,3);
Delay(100);
}
}
如上是使数码管显示的程序 相比于传统方式编程简洁了许多
其中nixie.c代码如下
#include<regx52.h>
#include"Delay.h"
unsigned char nixietable[]={0x3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0X77,0X7C,0X39,0X5E,0X79,0X71,0X00};
void nixie(unsigned char Location,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;
}