- 7
- 0
- 约1.08万字
- 约 8页
- 2019-06-14 发布于江苏
- 举报
AVR 学习笔记十三、模块化程序设计
基于 LT_Mini_M16
13.1 程序模块化设计
13.1.1、实例功能
经过一段时间学习,我们应该已经对 AVR 单片机的功能特点有了初步的了解。现在是
时候进行一些总结了。
首先我们来回顾一下我们所编写的那些程序。我们发现随着学习的深入,我们编写的
程序是越来越复杂了,程序的长度是疯狂地增加。
现在我们看看 DS18B20 学习实验的第三个程序,这个程序里面有很多函数,这些函数
的声明和定义在整个程序里面占了很大的比例。我们在编写和使用这些函数的时候,需要不
停的翻找相关的程序部分。显得很麻烦。而且整个程序显得有些乱。那么能不能把程序精简
一下,能不能把具有相关功能的函数放在一起,能不能向我们使用头文件的时候,直接使用
一个包含命令就把一些相关功能包含到程序里,而我们在程序里只要调用我们用到的函数就
能够实现我们想要达到的目的呢?
答案是肯定的!今天我们就学习一下模块化程序设计。
本实例有两个功能模块:
● 了解模块化程序设计的思路和方法。
● 编写程序,LCD1602液晶的模块化程序设计步骤。
通过本实例的学习,掌握以下知识点:
● 初步掌握模块化程序设计的方法。
13.1.2 模块化程序设计的简单介绍
1、模块化程序设计简介
用模块化方法进行程序设计的技术在 20 世纪 50 年代就出现雏形。在进行程序设计时把一个大
的程序按照功能划分为若干小的程序,每个小的程序完成一个确定的功能,在这些小的程序之间建立
必要的联系,互相协作完成整个程序要完成的功能。我们称这些小的程序为程序的模块。
通常规定模块只有一个入口和出口,使用模块的约束条件是入口参数和出口参数。
用模块化的方法设计程序,其过程犹如搭积木的过程,选择不同的积木块或采用积木块不同的组
合就可以搭出不同的造型来。同样,选择不同的程序块或程序模块的不同组合就可以完成不同的系统
架构和功能来。
将一个大的程序划分为若干不同的相对独立的小程序模块,正是体现了抽象的原则,这种方法已
经被人们接受。把程序设计中的抽象结果转化成模块,不仅可以保证设计的逻辑正确性,而且更适合
项目的集体开发。各个模块分别由不同的程序员编制,只要明确模块之间的接口关系,模块内部细节
的具体实现可以由程序员自己随意设计,而模块之间不受影响。
具体到程序来说,模块通常是指可以用一个名字调用的一个程序段。对于不同的程序设计语言,
模块的实现和名称也不相同,在 BASIC ,FORTRAN 语言中的模块称作子程序;PASCAL 语言中的模
块称为过程;C 语言中的模块叫函数
2、模块化程序设计思路
模块化程序设计的思路是这样的:将一个大的程序按功能分割成一些小模块;即:把
具有相同功能的函数放在一个文件中,然后再主程序里面把这个文件作为像编译器里面的那
些函数文件一样用#include 指令把这个文件包含到主程序文件中,那么在主程序中就可以直
接调用这个文件中定义好的函数来实现特定的功能,而在主程序中不用声明和定义这些函
数。这样就使主程序显得更加精炼,可读性也会增强。同时,我们把具有相同功能的函数放
在同一个文件中,这样有一个很大的优点是便于移植,我们可以将这个模块化的函数文件很
轻松的移植到别的程序中。如果电路的管脚排列情况一样的话,我们甚至可以不用进行任何
更改就能移植到别的程序中。移植的时候只需要一条简单的#include 指令就可以了。
综合上述,模块化程序设计的优点是:
●各模块相对独立,功能单一,结构清晰,接口简单.
●控制了程序设计的复杂性.
●缩短了开发周期.
●避免程序开发的重复劳动.
●易于维护和功能扩充.
3 、模块化程序设计的实现
模块化程序的实现是:
将具有相同功能的函数编译成一个此语言文件,然后再主程序中包含该文件,这样在主
程序中就可以调用这个文件中的函数了。
一般的做法是:将不同模块(如 LCD1602,DS1302 等)都封装成一个文件,然后再主程
序中包含这些文件。
通常我们将一个模块的端口定义,初始化设置以及函数声明放在一个扩展名为“.h”的
头文件中,而将具体的函数定义(函数体)放在一个扩展名为“.c”的c 语言文件中。在编
写主程序的时候,用预编译指令“#include
原创力文档

文档评论(0)