- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
任务布置及单片机C语言模块化编程方法1.ppt
设计任务要求 在统一提供的根据国信长天公司开发的 “CT107D”综合实训平台的Proteus仿真电路图上实现一个能显示23小时59分钟59秒的数字电子钟。具体要求如下: 1、时钟在8位数码管上的显示内容依次为“小时十位、小时个位、—(横杠)、分钟十位、分钟个位、—(横杠)、秒十位、秒个位。 2、利用矩阵键盘设置启动键、停止键、功能设置键、小时校正(数字增加)键、 设计任务要求 小时校正(数字减少)键、分钟校正(数字增加)键、分钟校正(数字减少)键;要求按下启动按键,数码管显示全“0”,流水灯全亮,若按下停止按键,数码管和流水灯全灭,只有在按下启动键时,按下功能设置键才启动电子钟计时,可以利用四个校正按键对电子钟校时,在电子钟计时和校时期间,一个流水灯按秒闪烁。 3、要求只要按下一次按键,蜂鸣器响一声; 设计任务要求 4、要求电子钟具有整点报时功能:计时到59分钟55秒时,每秒钟蜂鸣器响一次停一次,同时由继电器控制的L1闪烁一次,计时到59分钟59秒时,蜂鸣器长鸣一声,L1亮一秒后再熄灭。 5、要求采用规范的C语言模块化编程方法进行程序编写。 为什么要引入模块化编程? 对于初学者来说,编写单片机C语言程序并不一定需要模块化编程的方法,但随着编程经验的增加,便可以观察并体会到,代码量逐渐增加,将所有代码都放在同一个.c文件中的做法越发使得程序结构混乱、可读性与可移植性变差,而模块化编程是解决这个问题的常用而有效的方法。 模块化设计原则:“高内聚,低耦合” 高内聚:一个c文件里面的函数,只有相互之间的调用,而没有调用其他文件里面的函数,这样可可以视为高内聚。尽量减少不同文件里函数的交叉引用。 低耦合:一个完整的系统,模块与模块之间,尽可能的使其独立存在。也就是说,让每个模块,尽可能的独立完成某个特定的子功能。模块与模块之间的接口,尽量的少而简单。 模块化编程的三种手段: 实现模块化编程的三个主要手段是函数、宏定义与头文件,对于函数与宏定义比较容易理解。只是如何理解头文件在模块化编程中的作用?请看建立头文件操作的详细步骤。 第一步 创建头文件 建立一个.c文件(源文件)和一个.h文件(头文件)。原则上文件名可以任意命名,但强烈推荐如下原则:.c文件与.h文件同名;文件名要有意义,最好能够体现该文件代码的功能。例如延时函数相关的源文件与头文件命名为d。 第二步防重复包含处理 第二步防重复包含处理 在.h文件中加入如下代码: #ifndef XXX #define XXX ... //此处添加代码 #endif 其中的XXX原则上可以是任意字符,但同一个工程中各个.h文件的XXX不能相同,因此强烈推荐如下的规则:将.h文件的文件名全部大写,“.”替换成下划线“_”,首尾各添加2个下划线“__”作为XXX。例如对于delay.h文件,其内容如下: #ifndef __DELAY_H__ #define __DELAY_H__ ... //此处添加代码 #endif 第三步 代码封装 将需要模块化的代码封装成函数与宏定义。函数体放在.c文件中,需要被外部调用的函数还要在.h文件中声明一下;需要被外部调用的宏定义放在.h文件中,仅会被本.c文件调用的宏定义放在.c文件中。 第四步 尽量少用或不用全局变量 必须要用的全局变量的声明要放在.c文件中,需要被外部调用的全局变量还要在.h文件中重新用extern修饰声明一下,用来告诉编译器有这个变量的存在(因为编译器的编译过程是按文件来的,链接过程才是各个文件的合并,如果没有这一步extern修饰声明就在另一个文件调用了这个变量,编译器会提示没有此变量)。 第五步 添加源文件 将.c文件添加到工程之中,同时在需要调用.h文件中的宏或者函数(这里的函数是对应的.c文件中函数的声明)含进去(例如#include delay.h)。 第六步 使用 头文件中的函数、宏定义、全局变量可以在包自由调用使用了 下面将前几讲中涉及的位操作、延时函数、流水灯、蜂鸣器、数码管、矩阵键盘相关代码都封装成头文件,大家对模块化编程有一个比较深刻的理解。 示例:按下面电路图及提供的非模块化程序,请改写为模块化程序。 * 函数接口简单通用,附详细注释、说明和范例 含校时功能的数字电子钟完整C语言源程序代码 #include #define sec_mode 0x04 #define min_mode 0x08 dis_code[10] 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f ; unsigned char data dis[4]; unsigned char sec 0,min 0,hou 0 unsigned char cou1 0,cou2 0,cou
您可能关注的文档
最近下载
- (高清版)-B-T 34590.2-2022 道路车辆 功能安全 第2部分:功能安全管理.pdf VIP
- 水果超市水果产期及收货标准.xls VIP
- 环境中抗生素抗性基因传播途径.docx VIP
- 2025年监理员考试题库及答案.docx VIP
- Hopewind禾望HV510系列高性能变频器用户手册.pdf
- 2025年度中秋国庆节前安全教育培训.pptx
- 多肉拼盘.pptx VIP
- 养生保健品商业计划书.pptx
- 第六章 智能网联汽车_3 课件(共33张PPT)- 《汽车文化》同步教学(上海交大版).pptx VIP
- 2025-2026学年小学劳动苏科版2023二年级上册-苏科版(2023)教学设计合集.docx
文档评论(0)