单片机模块化编程方法单片机模块化编程方法.pdf

单片机模块化编程方法单片机模块化编程方法.pdf

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机模块化编程方法单片机模块化编程方法

单片机模块化编程方法 目前我们在学习和开发单片机时广泛采用c 语言进行编程,当我们开发的单片机项目较 小时,或者我们所写的练习程序很小时,我们总是习惯于将所有代码编写在同一个c 文件下, 由于程序代码量较少,通常为几十行或者上百行,此时这种操作是可行方便的,也没有什么 问题。但如果要开发的项目较大,代码量上千行或者上万行甚至更大,如果你还继续将所有 代码全部编写在仅有的一个c 文件下,这种方式的弊病会凸显出来,它会给代码调试、更改 及后期维护都会带来极大的不便。试想一下,当你尝试着从几千几万行代码中定位到某一位 置或者去寻找某一错误点,上下拉动巨长的滚动条慢慢地、一点点地浏览整个c 文件,是件 多么令人眼花缭乱,头昏脑胀的事。模块化编程可解决这个问题,我们只要根据实际需要使 用模块化编程的思维将具有不同功能的程序封装在不同模块中,将各个不同模块存放在不同 的c 文件中。模块化编程后的程序不但使整体的程序功能结构清晰明了,同时也提高程序代 码的利用率,有些模块代码我们可以直接进行移植或者经简单修改就可另作他用,好比封装 好的函数。 那么什么是模块化呢?首先我们来简单来聊聊模块概念,我们可能听说过电源模块,通 信模块,这些是硬件模块,它们都提供一些接口,譬如电源模块会有输出额定电压电流的接 口,通信模块可能提供了RS232 、USB 等接口。那么对软件来说模块是怎样的呢?软件里 的模块跟硬件模块类似,抽象地说就像一个黑盒子,盒子内部细节我们可以不予理会,我们 只关心盒子给我们提供什么东西,即提供了什么接口,利用这些接口我们能实现什么功能。 我们把相对独立,具有独立功能用代码编写在一个c 文件下,把需要对外的函数或变量进行 声明供外部使用,把不需要的细节尽可能对外部屏蔽起来,这就是软件模块化编程的思维。 这样不同的模块占用不同c 文件,一个个c 文件将整个项目串接起来实现所有的功能。 1. 模块化编程的原则: 模块化编程通常要遵循以下几个原则:  每一个c 文件对应一个同名的h 头文件 一个h 文件伴随相应c 文件存在,头文件是为了声明对外公开的接口。如果一个c 文件 不需要对外公布任何接口,则其就不应当存在,除非它是程序的入口,如main 函数所在 的文件,同时main 函数所在文件可以没有对应的头文件。如有一个 led.c,那应该同时 制作一个led.h 头文件。  头文件中适合放置接口的声明,不适合放置实现 头文件是模块的对外的接口,供外部程序调用。头文件中应放置对外部的声明,如对外 提供的函数声明、宏定义、变量类型声明等。 函数的实现、变量的赋值、语句的操作 等决不能放在头文件中。因为头文件的功能是向外提供接口,譬如函数,变量,具体如 何实现是在c 文件中进行,头文件仅是进行了描述声明。  任意一个c 文件只要使用了其他c 文件提供的接口,都要同时包含其对应的头文件,每 个c 文件应该头文件自包含 任意一个c 文件只要使用了其他c 文件提供的接口,都要将其对应的头文件包含到该c 文件中,没有使用到其他c 文件的接口就不应该将其匹配的头文件包含,并且每个c 文 件都应该包含自己的头文件。  防止头文件被重复包含 避免一个头文件被重复包含,通常使用条件编译命令#ifndef--#endif,如下示例: 示例1: #ifndef TIME_H #define TIME_H …… #endif 示例2 : #ifndef LED_H #define LED_H …… #endif 其中#define FILENAME_H 为基本格式,FILENAME_H 为头文件名称,但要全部使用 大写形式,使用单下划线后紧跟一个H 表明是头文件。不要在宏名最前面加上“_或“__ ”, 即使用FILENAME_H 代替_FILENAME_H_ ,因为一般以_和”__开头的标识符为系统保 留或者标准库使用。 2. 模块化编程实例 我们使用AT89C52 单片机,在编程软件keil 环境下实施一个工程,来说明模块化编程 具体操作的方法和步骤。例子要实现的功能:和P1 相连的8 个LED 灯每500ms 亮灭交替 闪烁,通过串口将数字0-9 发送给单片机并显示在一个数码管上。LED 闪烁的时间使用定时 器0 中断方式来控制,T0 每50ms 溢出产生中断,定义一个计数

您可能关注的文档

文档评论(0)

vshoulrengb3 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档