版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 C51语言是针对8051系列及其扩展系列单片机的语言,支持符合ANSI标准的c语言程序设计,同时针对8051系列单片机的一些特点进行了扩展。2.2.1 C512.2.1 C51的标识符和关键字的标识符和关键字 1 1、标识符、标识符 程序设计者为自定义的变量、函数、类型所起的名字只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线不能与关键字同名,尽量“见名知义”2.2.1 C512.2.1 C51的标识符和关键字的标识符和关键字【例2.1 】指出下面哪些是非法的标识符? a f-2 f6 m+n x4b 4af as_d a.ss total main month int 关键字:
2、mainint 非法字符:f-2m+n a.ss 开头非法:4af2.2.1 C512.2.1 C51的标识符和关键字的标识符和关键字2 2、关键字、关键字 又称保留字,是程序设计语言中规定的、有固定含义的单词符号。(32个)autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhileC51C51扩展的关键字扩展的关键字 _a
3、t_alienbdatabitcodecompatdataidataintertuptlargepdata_priorityreentrantsbitsfrsfr16small_task_usingxdata数据类型C数据类型基本类型构造类型指针类型空类型void定义类型typedef字符类型 char枚举类型 enum整 型实 型单精度型 float双精度型 double数组结构体 struct共用体 union长整型 long整型 int数据类型决定:1. 数据占内存字节数2. 数据取值范围3. 其上可进行的操作2.2.2 C512.2.2 C51的数据类型的数据类型位 型 bit短整型
4、short2.2.3 C512.2.3 C51的数据类型的数据类型1.1.字符型(字符型(charchar)(1)字符型常量字符常量是用单引号括起来的一个字符,如a,1,A等都是字符常量。注意,字符型常量区分大小写,因此a和A是不同的字符常量。不可以显示的控制字符,可以在该字符前面加一个“”组成转义字符,也就是把“”后面的字符转变成另外的意义。转义字符转义字符(2)(2)字符型变量字符型变量字符型变量的长度为一个字节(即8位),而8051单片机每次可以处理8位数据,因此字符型变量非常适合于8051单片机。字符型变量分为无符号和有符号两种。如果没有显式地指明是无符号还是有符号,则默认为有符号字符
5、型变量。(2)(2)字符型变量字符型变量对字符型变量赋值有两种方法:既可以将用单引号括起来的一个字符赋给字符型变量,也可以将一个在其取值范围内的正整数赋给字符型变量。对于有符号的变量,最具有重要意义的是其最高位((8位中最左一位)。在此位上,1代表“负”,0代表“正”,剩余的低7位代表变量的绝对值,因此有符号字符型变量所能表示的数值范围是从-128十127。而无符号的变量的最高位不作为符号位,这与人们的习惯比较一致,不易出错。(3)(3)字符串常量字符串常量字符串常量是用一对双引号括起来的字符序列不要把字符常量与字符串常量混淆。这是因为在C51中,系统在每一个字符串的结尾加一个被称为“字符串结
6、束标志”字符0以判断字符串是否结束。因此“A”表示一个字符串,它包含了A和0两个字节,因此,无法存储到只有一个字节的存储空间的字符型变量中。同样地,China占用了6个字节而不是5个字节。注意:0是系统自动加上的,在写字符串时不必加0。2.2.整型(整型(intint)(1)整型常量整型常量按进制有以下3种表示形式:1)十进制整数:如134、5、-5、0等。2)八进制整数:以0开头的数,例如034表示八进制数(34)8,等于十进数28。3)十六进制数:以0 x或0X开头的数是十六进制数,例如0 x3a代表十六进制数(3a)16,等于十进制数58;-0 x56代表十六进制数(56)16,等于十进
7、制-88。(2)(2)整型变量整型变量1 1)基本型:以)基本型:以intint表示,长度为两个字节。表示,长度为两个字节。2 2)短整型:以)短整型:以short intshort int表示,长度为两个字节。表示,长度为两个字节。3 3)长整型:以)长整型:以long intlong int表示,长度为四个字节。表示,长度为四个字节。 以以unsignedunsigned表示,这种类型与前表示,这种类型与前3 3种类型匹配而构种类型匹配而构成无符号整型、无符号短整型和无符号长整型。成无符号整型、无符号短整型和无符号长整型。注意:注意:int, short int, long intint,
8、 short int, long int的缺省类型为有的缺省类型为有符号型。符号型。(2)(2)整型变量整型变量说明整型变量的一般形式为:类型说明符 变量名,变量名,;同类型的整型变量之间和不同类型的整型变量之间都可以进行算术运算。整型变量和字符型变量之间也可以进行算术运算。3.3.浮点型(浮点型(floatfloat)(1)浮点型常量浮点常量只有十进制这一种进制,并且都被默认为double型。对于绝对值小于1的浮点数可省略小数点前面的零,如.654就是0.654的缩略形式。科学计数法:-3.3E9由尾数和阶两部分构成的,-3.3E9表示:-3.3109。3.3.浮点型(浮点型(floatfl
9、oat)(2)浮点型变量浮点型变量分为单精度型(float)和双精度型(double),长度都是4个字节浮点型变量定义方法: float a; double b;4. 4. 指针型指针型指针型是一种特殊的数据类型,其本身就是一个变量,但在其中存放的是另一个数据的地址。在C51中,指针的长度一般是3个字节。根据所指向的变量类型的不同指针变量也有不同的类型,指针变量的类型也就表示了该指针指向的地址中的数据的类型。4. 4. 指针型指针型指针类型的表示方法是在指针符号“*”前面冠以数据类型符号例如:char *pa; /定义pa为字符型指针unsigned int *pb; /定义pb为无符号整形指
10、针float *pf; /定义pf为浮点型指针5. 5. 位变量(位变量(bitbit)位变量的长度是1位(bit),位变量和前面介绍的字符型变量是可以直接被8051单片机处理的。位变量的值可以取0 (false)或1 (true)。对位变量进行定义的语法如下: bit flag1; bit send_en=1;注意:不能定义一个位变量指针,如不能定义bit *flagl;也不能定义一个位变量数组,如不能定义bit flags3。5. 5. 位变量(位变量(bitbit)与8051单片机硬件特性操作有关的位变量必须定位在8051单片机片内RAM的可位寻址空间中,也就是字节地址为20H-2FH的
11、16个节单元。6 6、特殊功能寄存器(、特殊功能寄存器(sfrsfr)sfr类型的长度为一个字节,其定义方式如下:sfr 特殊功能寄存器名=地址常量;说明“地址常量”就是所定义的特殊功能寄存器的地址,例如:sfr P1=0 x90; sfr SCON=0 x98;sfr P1=0 x90; sfr SCON=0 x98;注意:在关键字sfr后面必须是一个名字,名字可以任意选取,但应符合一般的习惯。等号后面必须是常数,不允许有带运算符的表达式,而且该常数必须在特殊功能寄存器的地址范围之内(80H0FFH)在头文件reg51.h中对所有的特殊功能寄存器都进行了定义。 7. 167. 16位特殊功能
12、寄存器(位特殊功能寄存器(sfr16sfr16)在新一代的8051单片机中,特殊功能寄存器在功能上经常组合成16位来使用。为了有效地访问这种16位的特殊功能寄存器,可采用关键字sfrl6。sfrl6类型的长度为两个字节,其定义语法与8位SFR相同,但16位SFR的低端地址必须作为sfr16的定义地址。例如 sfr16 T2=0CCH; /定义TIMER2,其地址为T2L=0CCH、T2H=0CDH注意:这种定义方法适用于所有新一代的8051单片机中新增加的特殊功能寄存器,但不能用于定时器/计数器TIMER0和TIMER1的定义。8.8.可寻址位(可寻址位(sbitsbit)(1)sbit (1
13、)sbit 位变量名位变量名= =位地址位地址这种方法将位的绝对地址赋给位变量,位地址必须位于80H0FFH之间。(2)sbit (2)sbit 位变量名位变量名= =特殊功能寄存器名特殊功能寄存器名 位位置位位置当可寻址位位于特殊功能寄存器种时可采用这种方法,“位位置”是一个07之间的常数。(3)sbit (3)sbit 位变量名位变量名= =字节地址位位置字节地址位位置这种方法以一个常数(字节地址)作为基础,该常数必须在80H0FH之间。“位位置”是一个0-7之间的常数。sbit是一个独立的关键字,不要与关键字bit相混淆。2.1.3 C512.1.3 C51的运算量的运算量1、常量程序运
14、行期间其值不能被改变的量,即常数。数值型常量:3、3.5、-9字符常量:a、n字符串常量:”Input Information-1”2.2.3 C512.2.3 C51的运算量的运算量2、变量程序运行过程中其值可以改变的量。变量名:标识符 x变量值:变量存储单元中的数据 8变量类型:值的大小由其类型来决定变量要“先定义、后使用”8x 2.2.3 C512.2.3 C51的运算量的运算量变量的定义变量的名字变量的数据类型系统根据数据类型为变量分配内存空间变量的取值范围变量可以进行的操作 存储种类存储种类 数据类型数据类型 存储器类型存储器类型 变量名表;变量名表;完整的变量定义格式:完整的变量定
15、义格式:(1 1)存储种类)存储种类 1)自动变量函数体内部或者复合语句中定义的变量,如果省略存储种类说明或者在变量名前面加上存储种类说明符“auto”,即可将该变量定义为自动变量。通常采用缺省形式,即省略存储种类说明。 自动变量的作用域在定义其的函数体或复合语句内部。 自动变量始终是相对于函数或复合语句的局部变量。(1 1)存储种类)存储种类2)外部变量在所有函数外部定义的变量或者使用存储种类说明符 “extern”定义的变量称为外部变量,一个外部变量被定义后,就被分配了固定的内存空间,并且可以被一个程序中的所有函数使用外部变量属于全局变量,其作用域是整个程序,在程序的任何地方均可以对这种变
16、量进行访问如果外部变量与自动变量有同名变量,则只有自动变量起作用。(1 1)存储种类)存储种类3)静态变量静态变量的定义方法是在类型定义语句之前加关键字static。 内部静态变量是在函数内部定义的,与自动变量相比,其作用域同样限于定义内部静态变量的函数内部,但内部静态变量始终都是存在的,其初值只是在进入时赋值一次,退出函数之后变量的值仍然保存但不能访问。 外部静态变量是在函数外部被定义的,与外部变量相比,其作用域同样是从定义点开始,一直到程序结束,但外部静态变量只能在被定义的模块文件中访问,其数据值可以为该文件内所有的函数所共享,退出该文件后,虽然变量的值仍然保存着,但不能被其他模块文件访问
17、。 内部静态变量的用法示例内部静态变量的用法示例#include#includevoid main() char i; SCON=0 x52; TMOD=0 x20; TH1=0XE8; TR1=1; for(i=1;i”右移运算符用来将一个数的各二进制位全部右移若干位,移到右端的低位被舍弃。对无符号数或者有符号数中的正数,左边高位移入0;对有符号数中的负数,左边高端移入1。 右移1位相当于除以2,右移n位相当于除以2n,因此a2相当于a/4。(6)(6)左移运算符左移运算符“”右移运算符用来将一个数的各二进制位全部左移若干位,移到左端的高位被舍弃,右边的低位补0。左移1位相当于乘以2,左移n
18、位相当于乘以除以2n。 7.7.复合赋值运算符复合赋值运算符凡是二目运算符都可以和赋值运算符结合组成复合赋值运算符。 C语言规定可以使用以下10种复合赋值表达式:+=、-=、*=、/=、%=、=、&=、|=、=复合赋值表达式的一般形式为:变量 复合赋值运算符 表达式8.8.逗号运算符与逗号表达式逗号运算符与逗号表达式C51提供了一种特殊运算符逗号运算符,用逗号运算符可以把两个或多个表达式连接起来,形成逗号表达式。逗号表达式的一般形式为:表达式表达式1,表达式式,表达式式2,、表达式、表达式n逗号表达式的求解过程是从左到右依次计算出每个表达式的值,整个逗号表达式的值等于最右边的表达式(表达式n)的值。并非程序中任何地方出现的逗号都是逗号运算符,例
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗器械清洗消毒规范及流程
- 银行及其金融服务
- 别墅改造私人施工合同
- 文化夜市志愿者招募合同
- 私有林场防火安全员招聘合同
- 建筑工程施工图设计单位劳动合同
- 低耐化学品性涂料施工协议
- 保险业务灰土工程协议
- 美容师招聘合同商场美容专柜
- 煤炭资源矿山施工开采合同
- 2024年新人教版五年级数学上册《教材练习25练习二十五》教学课件
- 轻型井点降水计算
- 安全人机工程设计餐厅
- 超声波测距系统(论文)正文、结论、参考文献等(1)
- 现金流量表(带公式)
- 小区业主委员会选举办法
- SJG 09-2020 深圳市建筑基桩检测规程
- 仓库物资储存保管管理
- 读《静悄悄的革命》有感(课堂PPT)
- 患者自带药品管理规定1
- 压力管道安装机械设备操作规程讲解
评论
0/150
提交评论