- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4.2.7 库函数 表4-8 C51库函数中包括在ANSI标准库 4.2.8 关键字 表4-9 C51的扩展关键字及其作用 4.3 C51使用技巧 4.3.1 C51与汇编程序接口4.3.2 C51程序的优化 4.3.1 C51与汇编程序接口 1.模块内接口2.模块间接口 1.模块内接口 这种方法的实质是通过asm与endasm告诉C51编译器中间行不用编译为汇编,并将这些汇编语句行直接存入编译后的汇编文件中。例如在“星星闪烁”程序中,为了得到精确的延时,可以用汇编程序来实现 2.模块间接口 表4-10 C51中函数名的转换规则 表4-11 各种存储模式下函数相关段名的命名规则 表4-12 利用寄存器传递参数的规则 2.模块间接口 表4-13 函数的返回值传递规则 4.3.2 C51程序的优化 1.尽量减小变量长度2.使用无符号类型3.减少浮点变量的使用4.使用位变量5.尽量使用局部变量6.为变量合理分配内部存储区7.使用特定指针8.使用宏代替函数 4.4 C51程序设计方法 4.4.1 C51程序设计的基本过程4.4.2 问题分析4.4.3 方案设计4.4.4 编写代码4.4.5 代码的调试和测试4.4.6 C51程序设计范例 4.4.1 C51程序设计的基本过程 1)硬件平台提供的条件和基础是什么,哪些硬件资源是可以利用的?2)哪些条件、数据或信息是已知的,获取这些数据的方法和途径是什么?限制条件是什么?3)程序需要完成的具体任务是什么?4)根据任务的要求,解决这个问题的方法和步骤是什么?5)如何把这些方法和步骤用C51语言来描述,转换为程序代码?6)如何来检验代码的正确性?7)如何保证所设计的程序确实很好地完成了规定的任务? 4.4.2 问题分析 1.明确硬件平台提供的条件和基础以及可利用的硬件资源2.输入信息的来源、内容、范围及其格式等3.信息输出的方式、表达方式、去向、限制条件等4.人机交互要求5.与其他设备的关系和交互方式6.确定程序的功能要求7.确定程序的性能要求8.对扩展功能的要求 4.4.3 方案设计 1.确定系统典型的状态2.确定程序的总体结构和模块规划3.确定各模块的功能和软件接口4.确定算法和数据结构 1.确定系统典型的状态 系统运行的过程实际上是一个状态转换的过程,系统典型的状态包括初始状态、正常运行状态、异常状态、停机状态、异常停机状态等。 2.确定程序的总体结构和模块规划 稍复杂的单片机应用程序一般采用模块化编程方法,即单片机应用程序由一个主程序和若干模块组成。根据问题分析可以把整个任务分解成若干个子任务,子任务与具体的功能模块相对应。合理规划模块、明确各模块之间的关系以及选择合理的程序结构是程序设计的关键内容。 3.确定各模块的功能和软件接口 必须明确地指明各功能模块实现的具体功能。各模块的功能往往通过子程序的调用来实现,子程序的调用涉及输入输出参数的传递,即模块的软件接口,因此必须确定入口和出口参数的数量、类型和传递方法。 4.确定算法和数据结构 算法和数据结构的确定不仅取决于任务的内容和性质,而且取决于任务的规模。同一个问题,如果所要处理的数据规模较小,则可以采用比较简单的算法和数据结构。但是当所要处理的数据规模较大时,则需要采用比较复杂的算法和数据结构,以便降低程序的复杂度,提高计算效率。 4.4.4 编写代码 1.资源分配2.代码的结构3.代码的质量4.代码的可维护性5.代码中的注释6.代码的检查 4.4.5 代码的调试和测试 通过了语法检查的程序代码,可生成目标代码,接着就要对程序整体或其中的某些部分进行调试。调试可以分为两个阶段:第一个阶段是对模块或子程序进行调试,目的是保证各个模块或子程序的代码可以正常运行并输出正确结果;第二阶段是整体调试,目的是保证各模块或子程序正确调用,保证程序控制逻辑的正确性,保证实现的功能可以满足题目中提出的各项要求。 4.4.6 C51程序设计范例 例4-4 设计算机通过串口每次向单片机发送5个整数,试用C51设计单片机采用“冒泡法”按照从小到大的顺序排序程序,并把排序的结果发送给计算机。1.分析2.方案设计3.编写代码 1.分析 图4-1 例4-4的程序总体结构示意图 2.方案设计 程序总体结构和模块规划:根据问题分析可把问题分解为数据输入、数据排序和数据输出3个小问题,因此程序由主程序、数据输入模块、数据排序模块和数据输出模块组成。由于程序比较简单可以不拆分为子程序,而是把数据输入模块、数据排序模块和数据输出模块均放在主程序中,所以程序总体结构如图4-1所示。 3.编写代码 按照绘制的详细流程图就可以编写代码了,本例的代码比较简单,在此仅对编写代码时要注意的问题作以下几点说
您可能关注的文档
- 小企业会计综合实训 工业和信息化高职高专“十二五”规划教材立项项目 教学课件 作者 苗美华 于涵 28870小企业会计综合实训指导课件.pdf
- 小区绿化维护与管理 教学课件 作者佘远国 江建国25119小区绿化维护与管理电子教案1 第1章 绪论.ppt
- 小区绿化维护与管理 教学课件 作者佘远国 江建国25119小区绿化维护与管理电子教案2 第4章 小区绿地规划设计与施工.ppt
- 小区绿化维护与管理 教学课件 作者佘远国 江建国25119小区绿化维护与管理电子教案2 第5章 小区绿化的维护.ppt
- 小区绿化维护与管理 教学课件 作者佘远国 江建国25119小区绿化维护与管理电子教案3 第6章 园林植物病虫害防治.ppt
- 小区绿化维护与管理 教学课件 作者佘远国 江建国25119小区绿化维护与管理电子教案3 第7章 小区绿化管理.ppt
- 小区绿化维护与管理 教学课件 作者佘远国 江建国25119小区绿化维护与管理电子教案3 第8章 常用园林机具介绍.ppt
- 小区绿化维护与管理 教学课件 作者佘远国 江建国25119小区绿化维护与管理电子教案3 高级园林绿化工模拟测试卷.doc
- 小区绿化维护与管理 教学课件 作者佘远国 江建国25119小区绿化维护与管理电子教案3 教学方法说明.doc
- 小型可编程控制器实用技术第2版含1CD 教学课件 作者 王兆义 上海大学自动化学院 编著 第1章.ppt
- 新编单片机原理及应用 教学课件 作者 汪贵平 1_第5章 单片机的中断与定时系统.ppt
- 新编单片机原理及应用 教学课件 作者 汪贵平 1_第6章 单片机的串行接口及串行通信.ppt
- 新编单片机原理及应用 教学课件 作者 汪贵平 1_第7章 单片机的系统扩展.ppt
- 新编单片机原理及应用 教学课件 作者 汪贵平 1_第8章 单片机的典型外围接口技术.ppt
- 新编单片机原理及应用 教学课件 作者 汪贵平 1_第9章 单片机应用系统设计与调试.ppt
- 新编单片机原理及应用 教学课件 作者 汪贵平 1_第10章 智能侧滑仪设计实例.ppt
- 新编单片机原理及应用 教学课件 作者 汪贵平 1_第11章 μVision3集成开发环境的使用.ppt
- 新编单片机原理及应用 教学课件 作者 汪贵平 2_第12章 单片机实验指导.ppt
- 新编单片机原理及应用 教学课件 作者 汪贵平 第3章 指令系统与汇编程序设计.ppt
- 新编公共关系实务 教学课件 作者 李文柱 第三单元 开展公关调查.ppt
文档评论(0)