AVR学习笔记十四、模块化程序设计(二)14
1程序模块化设计(二)14
1、实例功能在前面一讲里,我们已经初步了解了模块化程序设计的简单知识,今天我们再深入探讨一下模块化程序设计
我们先回顾一下前面一讲的主要内容:模块化程序设计是指将实现同一功能的程序整合起来,封装到一个程序模块中,这样在使用该功能的时候,可以直接调用该模块中的相关函数进行操作
我们在单片机编程中经常用到的按键检测、液晶显示、数码管显示、串口通信、DS18B20温度检测、DS1302实时时钟等经常用到的程序都可以实现模块化
模块化编程的最大优点是:思路清晰、移植方便、程序简化
通常的做法是将某一模块中所有用到的端口定义,函数声明,函数定义等一起写到一个“
c”文件中,然后在主程序里面使用“#include”预编译指令将这些内容包含到主程序中,这样做调用虽然简单,但是对于模块化程序设计来说还是显得有些不太直观,因为我们调用模块中的函数的时候,需要在这一个模块文件中很费劲的找出需要的函数
同样对于移植到别的单片机系统中的时候,需要遍历该模块文件,然后一一更改
如果不小心,很容易造成错误
更为标准的做法是我们将某一个功能模块的端口定义,函数声明这些内容放在一个“
h”文件中,而把具体的函数实现(执行具体操作的函数)放在一个“
这样我们在编写主程序文件的时候,可以直接使用“#include”预编译指令将“
h”文件包含进主程序文件中,而在编译的时候将“
c”文件和主程序文件一起编译
这样做的优点是,我们可以直接在“
h”文件中查找到我们需要的函数名称,从而在主程序里面直接调用,而不用去关心“
c”文件中的具体内容
如果我们要将该程序移植到不同型号的单片机上,我们同样只需在“
h”文件中修改相应的端口定义即可
在这一讲中,我们继续学习一下模块化程序设计
本实例有两个功能模块:●继续了解模