第三章_C51程序设计.ppt

  1. 1、本文档共111页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 C51单片机编程语言 3.0 单片机编程语言概述 3.1 C51程序结构 3.2 C51的数据类型 3.3 函数、数组、指针的应用 3.4 C51程序设计 3.0 单片机编程语言概述 51单片机的编程语言可以是汇编语言,也可以是高级语言,如由C语言演变而成的C51语言等。 汇编语言产生的目标代码短,占用的存储空间小,执行速度快,能充分发挥单片机的硬件功能。但对于复杂的应用来讲使用汇编语言编程复杂,程序的可读性和可移植性不强。 高级语言产生的目标代码长,占用的存储空间大,执行速度慢。但这是相对于汇编语言来讲的,其实C语言在大多数情况下的机器代码生成效率和汇编语言相当,但可读性和可移植性却远远超过汇编语言,编程效率也大大高于汇编语言。 如果应用系统的存储空间比较小,且对实时性的要求很高,则应选用汇编语言。如果系统的存储空间比较大,且对实时性的要求不是很高,则应选用C51语言。如果系统中有部分模块对实时性的要求很高,而其它模块对实时性的要求不是很高,则可以将两种语言结合,程序的主体部分使用C51编程,对实时性的要求高的模块用汇编语言编程,然后将汇编语言程序模块嵌入到C51语言程序当中。 无论是高级语言还是汇编语言写的源程序都必须转换成目标程序,单片机才能执行。目前很多公司都将编辑器、汇编器、编译器、连接/定位器、符号转换程序做成了软件包,称为集成开发环境,如Keil uVision、MedWin等。 3.1 C51程序结构 一个C51的源程序必须包含一个main()函数 C51的程序结构一般如下: #include//预处理命令 Char fun1();//函数声明 Char fun1() { } C51与标准C的区别 使用C语言有以下的优点: C 语言具有结构化和模块化特点,便于阅读和维护。 C 语言可移植性好,很多微控制器都支持C 编译器。功能化的代码能够很方便的从一个工程移植到另一个工程,从而减少了开发时间。 C 语言编写的程序比汇编语言编写的程序更符合人们的思考习惯,开发者可以更专心的考虑算法,而不是考虑一些细节问题。这样可以减少编程出错的机率,从而提高开发效率,减少调试的时间。 C 语言和微控制器是相对独立的,开发者不必知道处理器的具体内部结构和处理过程。当基于新型的微控制器开发程序时,可以很快上手,减少学习时间和程序开发时间。 3.2 C51的数据类型 3.2 C51数据类型 3.3 C51的运算量 3.3.1常量 在C51中支持的有整型常量、浮点型常量、字符型和字符串常量。 3.3.2变量 一个变量有两部分组成:变量名和变量值。 在C51中变量定义的格式如下: [存储种类] 数据类型 [存储器类型] 变量名表; 数据类型说明符 在定义变量时,必须通过数据类型说明符指明数据的类型,也可以用typedef定义的类型别名。 Unsigned int i; Typedef unsigned int word; Word i ; 存储种类 变量定义中可使用的存储种类(Storage Classes)有四种: 自动(auto) 外部(extern) 静态(static) 寄存器(register) 变量定义时,如果省略存储种类选项,则该变量将为自动(auto)变量(默认)。 存储种类 auto 类型: 在定义它的函数体内部有效; 进入定义它的函数体时动态分配内存,退出函数体时所占用的内存区域被释放(局部变量); 变量的默认存储种类。 register类型: 作用域与寿命和auto型相同; 编译器尽可能将该类变量放在CPU的寄存器中,以提高存储速度。通常选择访问频率较高的变量定义为该类型,以提高效率。 存储种类 extern类型 可以在一个应用的多个程序文件中均有效; 存放在内存的静态存储区。直到该程序结束,分配的内存才被释放(全局变量)。可在函数间传递信息,在函数内被修改时,修改值会传递给其它函数。 static类型 局部变量 作用域与auto类相同; 寿命与extern类相同。数据值在两次调用之间一直保持,占用的内存空间在程序结束才释放。 全局变量 仅在定义它的程序文件内有效; 寿命与extern类相同。作用范围受限的全局变量,仅在定义它的文件中有效。 存储区域 8051系列微处理器采用了哈佛结构,即程序存储器和数据存储器是分离的。8051系列微处理器提供了三种不同类型的存储区域(memory areas): 程序存储区(program memory) 内部数据存储区(internal data memory) 外部数据存储区(external data memory) 这三种存储区域均从地址0开始编址,通过采用不同的寻址指令来解决地

文档评论(0)

wxc6688 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档