51单片机C语言模块化多文件编程方法探讨_华玉明.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:2 大小:264KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

51单片机C语言模块化多文件编程方法探讨_华玉明.pdf

51单片机C语言模块化多文件编程方法探讨_华玉明.pdf

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

JournalofJilinRadioandTVUniversityNO.10,2014(TotalNo.154)《吉林广播电视大学学报》2014年第10期(总第154期)科研项目研究51单片机C语言模块化多文件编程方法探讨华玉明(江苏省惠山中等专业学校,江苏无锡214153)摘要:51单片机C语言模块化多文件编程方法能使程序结构脉络更加清楚,具有很好的可读性和可移植性,有效解决调试和维护方面的困难和问题。本文以简单的单片机流水灯实例,完整体验模块化多文件的编程方法、步骤及优点。关键词:单片机;模块化;编程方法中图分类号:TP314文献标识码:A文章编号:1008-7508(2014)10-0011-0251单片机C语言程序的基本结构为:预处理命令、文件中自由调用了。经编译,生成目标代码.hex文件。功能函数的定义、主函数main()、若干个功能函数。一般三、单片机模块化多文件编程简单实例的编程方法把所有的代码全部都放在同一个.c源文件设计要求:在AT89C52单片机的P1口接8个LED中,解决的问题越多、越复杂则程序越长。我们在进行单发光二极管,当P1口输出低电平时,LED灯亮,要求从最片机毕业设计和实际工作的C语言编程过程中体会到,高位开始从左到右,从右到左循环点亮一只LED灯,产随着代码量的增加会使得程序的结构混乱、可读性和可生流水灯效果。移植性变差,调试排错和维护都比较困难,软件的成本实例模块化多文件编程的具体步骤如下:随之增大,根据软件工程的模块化编程的原理,采用模1.设计流水灯Proteus硬件仿真电路块化多文件编程方法,是解决这个问题的常用而有效的方法。一、建立模块化多文件的编程思想在软件工程中,有模块化的概念,把一个复杂的问题分解为若干独立的问题,不仅降低复杂性C(P),使问题变得简单,而且还降低工作量E(P),从而降低软件开发成本。因此,在软件设计中采用“分而治之,各个击破”的原理。这个结论就是模块化的基本依据,其作用就是能够使大的复杂的问题被“各个击破”。在软件工程中,2.根据模块化编程原理划分模块模块化设计的原则:“高内聚、低耦合”。当模块的数量和模块化编程方法,把大程序中的若干个子函数、宏接口的数量比较融洽的时候,软件的总成本是最低的。定义等代码进行分类模块化,单独分离出来形成独立的二、模块化多文件编程方法的步骤模块。在实际编程过程中,启动KEIL软件,新建工程取1.创建头文件名为模块化.uvproj,具体地将上述问题分解成流水灯模块化编程的关键是一个独立功能模块创建一个.led.c功能模块和延时delay.c功能模块。c文件(源文件)和一个对应的.h文件(头文件)。3.工程Project视图和功能Functions视图2.头文件的防重复包含处理(1)KEIL软件中的工程Project视图在功能模块的.h文件中设置防重复包含处理。在头文件.h中加入如下代码:1.#ifndef__文件名_H__2.#define__文件名_H__3.//此处开始添加代码4.#endif防重复包含处理由条件预编译语句组成。将.h文件的文件名全部大写,把点“.”替换成一个下划线“_”,然后在首尾各添加2个下划线“__”。在工程Project视图中,流水灯led.c功能模块由3.代码封装led.c和led.h二个文件组成。延时delay.c功能模块将需要模块化的代码封装成函数与宏定义。本功能由delay.c和delay.h二个文件组成。主控模块是模块的.c文件(源文件)中放函数体。对应功能模块的.hmain.c文件。文件(模块的接口描述文件)中放被外部模块调用的函因为流水灯led.c功能模块要调用延时delay.c数声明和宏定义。尽量少用或不用全局变量。功能模块中的延时delay()函数,所以,流水灯led.c功一个模块要调用另一个模块,应将被调模块的.h文能模块文件要对延时模块的头文件delay.h进行包含。件包含到调用模块的.c文件中。因为主模块文件main.c要调用流水灯led.c功能4.使用模块的.c文件模块中的fun1()函数、fun2()函数和延时delay.c功能将所有模块的.c文件添加到工程中来,这样,被包含模块中的延时delay()函数,所以,在主模块文件main.了.h中的函数、宏定义、全局变量就可以在调用模块的.cc中,对流水灯led.h头文件和延时delay.h头文件同收稿日期:2014-03-28作者简介:华玉明(1958—),江苏省惠山中等专业学校督导,高级讲师。研究方向:单片机原理与应用课程教学研究,嵌入式系统。··11科研项目研究51单片机C语言模块化多文件编程方法探讨