第七课 模块化编程思想ppt课件.ppt

第七课 模块化编程思想ppt课件.ppt

ID:59216970

大小:2.15 MB

页数:51页

时间:2020-09-26

第七课 模块化编程思想ppt课件.ppt_第1页
第七课 模块化编程思想ppt课件.ppt_第2页
第七课 模块化编程思想ppt课件.ppt_第3页
第七课 模块化编程思想ppt课件.ppt_第4页
第七课 模块化编程思想ppt课件.ppt_第5页
资源描述:

《第七课 模块化编程思想ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、模块化编程思想原码工作室模块化编程概述为什么要引入模块化编程?通过以上几讲内容,我们初步掌握了单片机C语言编程的基本原理与基本方法。同时我们可以观察并体会到,随着代码量的增加,将所有代码都放在同一个.c文件中的做法越发使得程序结构混乱、可读性与可移植性变差,而模块化编程是解决这个问题的常用而有效的方法。模块化设计原则高内聚:一个c文件里面的函数,只有相互之间的调用,而没有调用其他文件里面的函数,这样可可以视为高内聚。尽量减少不同文件里函数的交叉引用。低耦合:一个完整的系统,模块与模块之间,尽可能的使其独立存在。也就是说,让每个模块,尽可能的独立完成某个特定的

2、子功能。模块与模块之间的接口,尽量的少而简单。模块化编程的三种手段实现模块化编程的三个主要手段是函数、宏定义与头文件。下面讲解一下头文件操作的详细步骤。第一步创建头文件建立一个.c文件(源文件)和一个.h文件(头文件)。原则上文件名可以任意命名,但强烈推荐如下原则:.c文件与.h文件同名;文件名要有意义,最好能够体现该文件代码的功能。例如延时函数相关的源文件与头文件命名为delay.c与delay.h。第二步防重复包含处理在.h文件中加入如下代码:#ifndefXXX#defineXXX...//此处添加代码#endif其中的XXX原则上可以是任意字符,但同

3、一个工程中各个.h文件的XXX不能相同,因此强烈推荐如下的规则:将.h文件的文件名全部大写,“.”替换成下划线“_”,首尾各添加2个下划线“__”作为XXX。例如对于delay.h文件,其内容如下:#ifndef__DELAY_H__#define__DELAY_H__...//此处添加代码#endif因为在同一个工程内,文件名都是唯一的,因此这种命名规则可以保证XXX不会重复。之后要添加到.h文件的代码都放在第3行的位置。这样处理之后,当.h文件第一次被包含时,符号XXX是未被定义过的,因此符合#ifndef的条件,编译器会继续编译第1行以后的代码。然后编

4、译到第2行,先定义一下符号XXX,然后开始编译第3行直到最后一行#endif的代码。而此后此.h文件再次被包含时,符号XXX在第一次包含该.h文件时已被定义过了,不符合第一行#ifndef的条件,则该.h文件的内容就不会被编译器编译。总之,这样处理之后既能保证.h文件的有效内容被编译,又能保证.h文件的有效内容不被重复编译。第三步代码封装将需要模块化的代码封装成函数与宏定义。函数体放在.c文件中,需要被外部调用的函数还要在.h文件中声明一下;需要被外部调用的宏定义放在.h文件中,仅会被本.c文件调用的宏定义放在.c文件中。第四步尽量少用或不用全局变量必须要用

5、的全局变量的声明要放在.c文件中,需要被外部调用的全局变量还要在.h文件中重新用extern修饰声明一下,用来告诉编译器有这个变量的存在(因为编译器的编译过程是按文件来的,链接过程才是各个文件的合并,如果没有这一步extern修饰声明就在另一个文件调用了这个变量,编译器会提示没有此变量)。第五步添加源文件将.c文件添加到工程之中,同时在需要调用.h文件中的宏或者函数(这里的函数是对应的.c文件中函数的声明)的其他.c文件中添加代码将该.h文件包含进去(例如#include"delay.h")。第六步使用头文件中的函数、宏定义、全局变量可以在包含了对应.h文件

6、的.c文件中自由调用使用了时钟芯片DS1302及其应用DS1302简介★时钟计数功能,可以对秒、分钟、小时、月、星期、年的计数。年计数可达到2100年。★有31*8位的额外数据暂存寄存器★最少I/O引脚传输,通过三引脚控制★工作电压:2.0-5.5V★工作电流小于320纳安(2.0V)★读写时钟寄存器或内部RAM(31*8位的额外数据暂存寄存)可以采用单字节模式和突发模式★8-pinDIP封装或8-pinSOICs★兼容TTL(5.0V)★可选的工业级别,工作温度-40–85摄氏度DS1302简介★兼容DS1202,较DS1202增加的功能:1.可通过Vcc

7、1进行涓流充电2.双重电源补给3.备用电源可采用电池或者超级电容(0.1F以上),可以用老式电脑主板上的3.6V充电电池。如果断电时间较短(几小时或几天)时,就可以用漏电较小的普通电解电容器代替。100μF就可以保证1小时的正常走时。DS1302在第一次加电后,必须进行初始化操作。初始化后就可以按正常方法调整时间。DS1302引脚DS1302引脚晶体振荡器的选择:一个32.768KHz的晶振可以直接接在DS1302的2、3管脚之间,可以设定规定载荷电容位6pf。电源控制:Vcc1可提供单电源控制也可以用来作为备用电源,Vcc2为主电源。在主电源关闭的情况下,

8、也可以保持时钟的连续运行。DS1302由Vcc1或V

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。