第7讲 模块化编程.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7讲 模块化编程

主讲人:侯长波 时间:2011年7月 第7讲 模块化编程 本讲内容: 基础知识 模块化编程 实验环节 现场答疑 第一部分: 基础知识 数字电路 功能表 时序图 数字电路 数字电路根据逻辑功能的不同特点,可以分成两大类,一类叫组合逻辑电路(简称组合电路),另一类叫做时序逻辑电路(简称时序电路)。 组合逻辑电路在任一时刻的稳态输出,仅仅与该时刻的输入变量的取值有关,而与该时刻以前的输入变量取值无关。 时序逻辑电路在任意时刻的输出不仅取决于当时的输入信号,而且还取决于电路原来的状态,或者说,还与以前的输入有关。 知识回顾 在使用数字芯片时,要考虑接口特性,包含接口的电平特性、I/O驱动能力。 功能表 功能表:FUNCTION TABLE 举例:74HC573 举例 时序图 时序图(Timing Diagram):可理解为按照时间次序举行的图解,在时序图上能够反响出某一时刻各信号的取值情形。时序图这么看:按照从上到下,从左到右的次序,每到一个突变点(从0变为1,或从1变为0)时,登记各信号的值,就可获得一张真值表,进而分析可知其相应的功能。 建立时间(setup time)。 保持时间(hold time )。 脉冲持续时间(Pulse duration)。 转换时间(Transition time)。 举例 时序图 注意时间轴,如果没有特殊说明,从左往右的方向为时间正向轴,即时间在增长。 时序图最左边一般是某一根引脚的标识,表示此行图线体现该引脚的变化,上图分别标明了RS、R/W、E、DB0~DB7四类引脚的时序变化。 有线交叉状的部分,表示电平在变化。 第二部分: 模块化编程 C语言回顾 C语言回顾 C语言回顾 模块化编程概述 模块化编程的三种手段 建立头文件的步骤 建立头文件的步骤 建立头文件的步骤 建立头文件的步骤 建立头文件的步骤 第三部分: 实验环节 现场答疑 预祝大家学有所成! 主讲人:侯长波 第7讲 模块化编程 注意:相同网络标号,标示相互连接。 C语言回顾 模块化编程概述 模块化编程的三种手段 建立头文件的步骤 模块化编程举例 变量和函数都有其有效区域,称为作用域。程序如果使用范围之外的变量和函数,则编译器会报错。 变量 局部变量:在函数体内部定义的变量,它只在函数内有效,退出函数时所分配的内存被释放; 全局变量:在函数之外定义的变量,在程序开始执行的时候就被分配了内存,一直保持到程序结束,可以被任何模块调用。 外部变量:在其它文件中定义但在本文件中使用的变量,用extern声明。 静态变量:寿命相当于全局变量,但只允许在定义的函数内使用的变量,用static声明。静态变量在退出定义的函数时,其值仍然保留。 变量的声明形式:作用域类型 数据类型 变量名; 函数的存储类型有static和extern两种,函数第一字母大写。声明 形式为: 作用域类型 返回数据类型 函数名(参数表); 说明: 声明为static的函数称为内部函数或者静态函数。静态函数只能在定义此函数的文件中被调用,而不能被其他文件中的函数调用。 extern称为外部函数。除非被声明为静态函数,函数都可以在其他文件中被调用,编译默认为外部函数,因此extern通常可忽略。 文件包含是指一个C语言源程序中将另一个C语言源程序包含进来,通过include预处理指令实现。 一般形式:  #include″被包含文件名″ 或 #include 被包含文件名 说明: 被包含的文件一般指定为头文件(*.h), 也可为C程序等文件。 当文件名用双引号括起来时,系统先在当前目录中寻找包含的文件,若找不到,再在系统指定的标准方式检索其它目录。 而用尖括号时,系统直接按指定的标准方式检索。  一般系统提供的头文件,用尖括号。自定义的文件, 用双引号。 为什么要引入模块化编程? 随着系统复杂度的提升,代码量越来越大,如果将所有代码都放在同一个.c文件中,会使得程序结构混乱、可读性与可移植性变差,而模块化编程是解决这个问题的常用而有效的方法。 模块化设计原则:“高内聚,低耦合” 高内聚:一个c文件里面的函数,只有相互之间的调用,而没有调用其他文件里面的函数,这样可可以视为高内聚。尽量减少不同文件里函数的交叉引用。 低耦合:一个完整的系统,模块与模块之间,尽可能的使其独立存在。也就是说,让每个模块,尽可能的独立完成某个特定的子功能。模块与模块之间的接口,尽量的少而简单。 函数、宏定义与头文件 实现模块化编程的三个主要手段是函数、宏定义与头文件,对于函数与宏定义之前我们有所讲解,下面讲解一下头文件操作的详细步骤。 第一步 创建头文件 建

文档评论(0)

cgtk187 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档