单片机第五章:c语言程序设计分解.ppt

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《单片机应用系统设计》教学课件 第5章 MCS-51 C语言程序设计 5.1 C语言与MCS-51单片机 C语言是一种通用的计算机程序设计语言,代码效率高,数据类型和运算符丰富,有良好的程序结构,适用于各种应用系统的程序设计,是目前使用较广的单片机编程语言。 本章重点介绍在单片机上使用MCS-51 C语言的特殊数据类型、存储模式、程序的结构、混合编程。 5.1.1 C语言程序开发过程 一般的C语言开发套件中,包括编译器、连接器和符号转换程序。 编译器将源程序翻译为可重定位的目标代码文件(也可产生等价的汇编语言程序);连接器将目标代码文件连接为绝对目标文件;符号转换程序可将绝对目标文件转换为Intel HEX格式文件,编程到程序存储器中运行。 若使用提供了集成开发环境(Integrated Development Environment,IDE)的套件,则编辑、编译、连接、符号转换、甚至调试可在一个窗口中完成。如American Automation、Auocet、BSO/TASKING、DUNFIELD SHAREWARE、KEIL/Franklin等。 5.1.2 C语言的特点 C语言是一种模块化、结构化程序设计语言,符合ANSI C标准,可以产生紧凑的目标码,具体优点: (1) 不必详细了解单片机的指令系统 (2) 仅要求对MCS-51存储器结构有初步了解 (3) 寄存器分配、不同存储器区域的寻址及数据类型等细节由编译程序管理 (4) 程序具有规范的结构和固有的模块化思想 (5) 运算符和关键字用接近于自然语言的方式表示 (6) 提供包含大量标准子程序的函数库,具有较强的数据处理能力 (7) 在对执行效率要求较高的场合,可以嵌入汇编,也可以与汇编语言协同开发 5.1.3 单片机C语言的移植 C语言在单片机中的应用移植面临的具体问题: (1) MCS-51存储器的哈佛结构,加上内部有位寻址空间,对存储器变量的使用提出了挑战。 (2) 内部的数据存储器和程序存储器空间相对太小,而外部还可扩展存储容量,编译程序如何根据实际情况合理使用这些空间 (3) 内部各功能单元采用特殊功能寄存器集中管理,在C语言中如何实现寄存器访问 (4) MCS-51单片机派生种类繁多,硬件配置不统一,但是要求必须能够使用C语言操控所有硬件资源 (5) MCS-51内部只有一个堆栈,且存储空间有限,传统的利用堆栈传递参数的方法难以奏效 5.2 单片机C语言的扩充 MCS-51单片机有着与通用CPU截然不同的体系结构、硬件资源和运算特性 针对单片机独有的一些功能特点,绝大多数的MCS-51的C语言编译程序对标准C语言进行了一些扩充 5.2.1 C语言运算符 算术运算符: +, -, *, /, % 关系运算符: , , =, =, ==, != 逻辑运算符: !, , || 赋值运算符: *=、/=、%=、+=、-=、=、=、=、Λ=、|= 、++、-- (位移动、异或、位或) 强制运算符 强制转换 表达式中的类型转换 算术表达式中的运算转换 赋值转换 输出转换 函数调用转换 5.2.1 C语言运算符 int unsigned int long int double float char, short 存储长度较短 存储长度较长 总趋势: 算术表达式中的类型转换 转换规则 5.2.2 数据类型 数据类型 位数 字节数 范围 bit 1 ? 0~1 signed char 8 1 -128~+127 unsigned char 8 1 0~255 enum枚举变量 8/16 1/2 -128~+127 或 -32768~+32767 signed short 16 2 -32768~+32767 unsigned short 16 2 0~65535 signed int 16 2 -32768~+32767 unsigned int 16 2 0~65535 signed long 32 4 -2147483648~unsigned long 32 4 0~4294967295 float/double 32/64 4/8 ±1.175494E-38~±3.402823E+38 sbit 1 ? 0~1 sfr 8 1 0~255 sfr16 16 2 0~65535 5.2.2 数据类型 例: unsigned char in_data; 8位 unsigned long log_time;32位 bit ok_flag; 1位 5.2.3 存储器类型 存储器类型 与硬件存储器空间的对应关系 code 程序存储器;使用M

文档评论(0)

178****4446 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档