单片机学习工具癖

C语言模块化编程

2017-06-25  本文已影响190人  咸鱼爱学习

目标:

方式:

主函数调用模块函数。

具体实施:

根据功能将工程划分为不同模块。主函数只调用函数,而不定义函数。在各模块文件中定义功能函数,并将要用到的函数利用同名头文件申明外部函数供其他文件调用。

例子

流水灯设计
原程序代码:

#include<reg52.h>
sbit LED=P1^0;
unsigned int i,j;

void main()
{

while(1)

{

P1=~(1<<j++);

if(j==8)

j=0;

for(i=0;i<50000;i++);

}

}

我们将其模块划分并重新编译。首先分析功能可分为LED模块,主函数。
对应为:

main.c
Led.c Led.h

Led.c

#include <reg52.h>
#include "Led.h"
sbit LED=P1^0;
unsigned int i,j;

void ledFlash(void)
{
P1=~(1<<j); //灯亮

}

void ledStateChange(void)
{

if(j==8)
j=0;
for(i=0;i<50000;i++);   //延时
j++;

}

Led.h

#ifndef _LED_H_
#define _LED_H_
extern void ledFlash(void);
extern void ledStateChange(void);
#endif

main.c

#include <reg52.h>
#include "Led.h"

void main()
{
while(1)
{
ledFlash();
ledStateChange();
}
}

结果截图:

2017-06-25_233847.png

总结:

主函数中将具体功能隐藏至其他模块文件中,通过引用头文件、外部函数调用函数。平时多积累相关模块提高代码复用率。

上一篇 下一篇

猜你喜欢

热点阅读