第6章C语言在单片机中的应用.pdfVIP

  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文档。上传文档
查看更多
第 6 章 C 语言在单片机中的应用 随着单片机开发技术的不断发展,目前已有越来越多的人从普遍使用汇编语言到逐渐 使用高级语言开发,其中主要是以 C 语言为主。习惯用汇编语言的人,会觉得高级语言可 控性不好,不如汇编语言那样能够随心所欲。但是使用汇编语言会遇到很多问题,首先它 的可读性和可维护性不强,特别是当程序没有很好标注的时候,其次就是代码的可重用性 也比较低。使用 C 语言就可以很好地解决这些问题。 C 语言具有良好的模块化,易阅读和维护等优点,用 C 语言编写的程序有很好的可移 植性,功能化的代码能够很方便地从一个工程移植到另一个工程,从而减少开发时间。 用 C 语言编写程序比用汇编语言更符合人们的思考习惯,开发者可以更专心地考虑算 法而不是考虑一些细节问题,不必十分熟悉处理器的运算过程。很多处理器支持 C 语言编 译器,这意味着对新的处理器也能很快上手,而不必知道处理器的具体内部结构,这使得 用 C 语言编写的程序比汇编程序有更好的可移植性。 所有这些并不说明汇编语言就没有了立足之地,很多系统特别是实时时钟系统都是用 C 语言和汇编语言联合编写的。对时钟要求严格时,使用汇编语言是唯一的方法。除此之 外,包括硬件接口的操作都应该用 C 语言来编写。C 语言的特点就是可以使程序员尽量少 地对硬件进行操作,它是一种功能性和结构性很强的语言。 对于大多数 51 系列单片机,使用 C 语言这样的高级语言与使用汇编语言相比具有如 下优点: (1) 不需要了解处理器的指令集,也不必了解存储器结构。 (2) 寄存器分配和寻址方式由编译器进行管理,编程时不需要考虑存储器的寻址和数 据类型等细节。 (3) 指定操作的变量选择组合提高了程序的可读性。 (4) 可使用与人的思维更接近的关键字和操作函数。 (5) 与使用汇编语言编程相比,程序的开发和调试时间大大缩短。 (6) C 语言中的库文件提供许多标准的例程,例如格式化输出、数据转换和浮点运算等。 (7) 通过 C 语言可实现模块化编程技术,从而可将已编制好的程序加入到新程序中。 (8) C 语言可移植性好且非常普及,C 语言编译器几乎适用于所有的目标系统,已完成 的软件项 目可以和容易地转换到其他的处理器或环境中。 C51 规定了运算符的优先级和结合性。当一个操作数的两侧都有运算符时,哪一个运 算符先执行,哪一个运算符后执行,是由两个运算符的优先级和结合性决定的。一般先由 优先级的高低来定运算顺序,当优先级相 同时,再看结合性。表 6-1 列出了所有运算符的 优先级别和结合性。 第 6 章 C 语言在单片机中的应用 ·187 · 6.1 C51 基本知识 C 语言是一 门应用非常普遍的高级程序设计语言,与 C 语言相比 C51 语言的特色主要 体现在以下几个方面: (1) C51 虽然继承了 C 语言的绝大部分特性,而且基本语法相 同,但其本身又在特定的 硬件结构上有所扩展,如关键字 sbit、data、idata、pdata 、xdata 、code 等。 (2) 应用 C51 更要注重对系统资源的理解,因为单片机的系统资源相对 PC 来说很贫乏, 对于 RAM 、ROM 中的每一个字节都要充分利用。可以通过多看编译生成的.m51 文件来了 解 自己程序中资源的利用情况。 (3) 程序上应用的各种算法要精简,不要对系统构成过重的负担。尽量少用浮点运算, 可以用 unsigned 无符号型数据的就不要用有符号型数据,尽量避免多字节的乘除运算,多 用移位运算等。 C51 相对于标准 C 语言的扩展直接针对 51 系列 CPU 硬件,大致有以下几个方面。 6.1.1 数据类型 C51 具有标准 C 语言的所有标准数据类型,除此之外,为了更加有效地利用 8051 的结 构,还加入了以下特殊的数据类型。 ① bit 位变量值为 0 或 1。 ② sbit 从字节中声明的位变量 0 或 1。 ③ sfr 特殊功能寄存器,sfr 字节地址为 0~255 。 ④ sfr16 同上,只是 sfr 字节地址为 0~65535 。 bit 、sbit、sfrs 和 sfr16 数据类型专 门用于 8

文档评论(0)

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

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

1亿VIP精品文档

相关文档