- 1、本文档共126页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 C51程序设计 本章教学要求 (1) 熟悉C51语法基础和程序结构。 (2) 掌握C51结构化程序设计。 (3) 掌握C51对单片机硬件的访问方法。 (4) 掌握C51函数定义与调用。 (5) 了解汇编语言和C51的混合编程。 4.1 C51概述 4.2 C51语法基础 4.2.1 标识符和关键字 4.2.2 数据类型 4.2.3 运算符和表达式 4.2.4 程序结构 4.1 C51概述 C语言是一种通用的程序设计语言,其代码率高,数据类型及运算符丰富,位操作能力强,适用于各种应用的程序设计。使用C语言进行单片机应用系统开发,具有编程灵活、调试方便、目标代码编译效率高的特点。C语言也是目前使用最广的单片机应用系统编程语言。 由C语言编程的单片机应用程序,称为单片机C语言程序。MCS-51系列单片机开发系统的编译软件可以对51单片机C语言源程序进行编译,称为C51编译器。在C51编译软件中可进行51单片机C语言程序的调试。 4.1 C51概述 1) 扩展了专门访问MCS-51单片机硬件的数据类型; 2) 存储类型按MCS-51单片机存储空间分类; 3) 存储模式遵循存储空间选定编译器模式; 4) 指针分为通用指针和存储器指针; 5) 函数增加了中断函数和再入函数。 使用具有C51编译扩展功能的C语言进行MCS-51单片机应用系统的开发编程,简称C51编程。C51编程具有以下特点。 1) 可管理内部寄存器和存储器的分配,编程时,无需考虑不同存储器的寻址和数据类型等细节问题; 2) 程序由若干函数组成,具有良好的模块化结构、可移植性好、便于项目维护管理; 3) 有丰富的子程序库可直接引用,从而大大减少用户编程工作量,提高编程效率; 4) 与汇编语言交叉编程。用汇编语言编写与硬件有关的程序,用C51编写与硬件无关的运算程序,充分发挥两种语言的长处,提高开发效率。 4.1 C51概述 C51编程和汇编语言编程过程一样。单片机C语言源程序经过编辑、编译、连接后生成目标程序(.BIN和.HEX)文件,然后运行即可。调试51单片机C语言程序可用Keil C51编译器。 注意,使用C51编程可以取代繁琐的汇编语言编程,但仍需要了解MCS-51单片机的硬件结构。所以对于单片机系统的开发应采用汇编语言与C51混合编程的方法更为有效。 4.2 C51 语法基础 标识符用来标识源程序中某个对象的名字,这些对象可以是语句、数据类型、函数、变量、数组等。 标识符由字符串、数字和下划线等组成,应该注意的是第一个字符必须是字母或下划线,不能用数字开头,如“1_a”是错误的,编译时会有错误提示。在C51编译器中,只支持标识符的前32位为有效标识。 C51语言是区分大小写的一种高级语言,如“a_1”和“A_1”是两个完全不同的标识符。 C51中有些库函数的标识符是以下划线开头的,所以一般不要以下划线开头命名用户自定义标识符。标识符在命名时应当简单,含义清晰,这样有助于阅读理解程序。 关键字则是编程语言保留的特殊标识符,它们具有固定的名称和含义,在程序编写中不允许将关键字另做他用。C51中的关键字除了有ANSI C标准的32个关键字外,还根据MCS-51单片机的特点扩展了相关的关键字。C51关键字如表5-1所示。 在C51的文本编辑器中编写C程序,系统可以把保留关键字以不同颜色显示,如int关键字的默认颜色为天蓝色。 4.2.2 数据类型 C51具有ANSI C的所有标准数据类型。 其基本数据类型包括:char、int、short、long、float和double。 对C51编译器来说,short类型和int类型相同,double类型和float类型相同。 4.2.2 数据类型 4.2.2 数据类型 char类型的长度是1B,通常用于定义处理字符数据的变量或常量。 unsigned char类型用字节中所有的位表示数值,可以表达的数值范围是0~255。 signed char类型用字节中最高位表示数据的符号,0表示正数,1表示负数,负数用补码表示,能表示的数值范围是-128~+127。unsigned char常用于处理ASCII字符或用于处理小于或等于255的整型数。 2.int整型 int整型长度为2B,用于存放一个双字节数据。 signed int表示的数值范围是-32768~+32767,字节中最高位表示数据的符号,0表示正数,1表示负数。 unsigned int表示的数值范围是0~65535。 4.2.2 数据类型 long长整型长度为4B,用于存放一个四字节数据。 分有符号long长整型signed long和无符号long长整型unsigned long,默认值为signed long类型。 si
文档评论(0)