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