新编单片机原理及应用 教学课件 作者 汪贵平 1_第4章 C51语言程序设计.pptVIP

新编单片机原理及应用 教学课件 作者 汪贵平 1_第4章 C51语言程序设计.ppt

  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文档。上传文档
查看更多
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.编写代码 按照绘制的详细流程图就可以编写代码了,本例的代码比较简单,在此仅对编写代码时要注意的问题作以下几点说

您可能关注的文档

文档评论(0)

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

1亿VIP精品文档

相关文档