- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
C语言编程特点:编写简单、直观易读、便于维护、通用性好、可移植性强、更符合人们的思考习惯但同学们一定会有这样的疑问,我们学过了C语言,该如何用它操作单片机呢?不要着急,接下来,让我们一起学习单片机的C语言程序设计与调试。限于篇幅,本章不介绍标准C语言的语句及语法规则,只介绍C语言在IAP15W4K58S4单片机程序设计中的特殊性问题,包括C51编程语言(简称C51)与ANSIC的区别、单片机C语言程序的设计等内容。关系运算符关系运算符用于比较两个常数或者表达式的大小。关系运算的结果只能是0或1。关系运算符的值为真时,结果值为1;关系运算符的值为假时,结果值为0。====!=特别注意,判断两个常数或者表达式相等时,使用“==”,不要使用单个的“=”。否则,判断两个数是否相等就变成了赋值语句。逻辑运算符逻辑运算符包括与()、或(||)、非(!)三种,用于对包含关系运算符的表达式进行合并或取非。使用逻辑运算符的表达式,返回0表示“假”,返回1表示“真”。位运算符按位与()、按位或(|)、按位异或(^)、取反(~)、左移()和右移()应用:按位与运算通常用来对某些位清0按位或运算通常用来对某些位置1按位异或运算通常用来对某些位取反预处理-宏定义(define)在C语言源程序中允许用一个标识符来表示一个字符串,称为宏。无参宏定义的一般形式如下:#define标识符字符串带参宏定义的一般形式如下:#define宏名(形参表)字符串如要终止宏定义,可使用#undef命令。预处理-文件包含(include)文件包含的一般形式如下:#include文件名◎你知道吗?包含命令中的文件名可以用双引号括起来,也可以用尖括号括起来。两者有何不同呢?#includemath.h#includemath.h预处理-条件编译(1)条件编译就是按不同的条件去编译不同的程序部分,从而产生不同的目标代码文件。1)第一种形式 #ifdef标识符 程序段1 #else 程序段2 #endif预处理-条件编译(2)2)第二种形式 #ifndef标识符 程序段1 #else 程序段2 #endif预处理-条件编译(3)3)第二种形式 #if常量表达式 程序段1 #else 程序段2 #endifKeilC51扩展关键字C51有以下19个扩展关键字:_at_、sbit、sfr、bit、sfr16、idata、bdata、xdata、pdata、data、code、alien、small、compact、large、using、reentrant、interrupt、_task_常见的关键字-内存区域的指定1)程序存储器code:程序存储区。可以使用code定义表格常数2)内部RAMdata:直接寻址区,内部RAM的低128字节,地址范围为00H~7FHidata:间接寻址区,包括整个内部RAM区256字节,地址范围为00H~0FFHbdata:可位寻址区,地址范围为20H~2FH常见的关键字-内存区域的指定3)外部数据存储器xdata:可指定多达64KB的外部直接寻址区,地址范围0000H~0FFFFH4)特殊功能寄存器(SFR)sfr:字节寻址sfrsfr_name=int_constant;sfr16:字寻址sfr16DPTR=0x82;sbit:位寻址sbitbitname=sfr_name^bit_number;常见的关键字-变量或数据类型C51提供以下几种扩展数据类型:bit:位变量,值为0或1sbit:从字节中定义的位变量(0或1)sfr:sfr字节地址(0x80~0xff)sfr16:sfr字地址(0x80~0xff,其实是占用两个连续的地址)其余的数据类型如char、enum、short、int、long、float等与ANSIC相同常见的关键字-KeilC51指针KeilC51支持一般指针(GenericPointer)和存储器指针(MemorySpecificPointer)。一般指针的声明和使用均与标准C相同,同时还可以说明指针的存储类型。例如:
文档评论(0)