




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一一. C. C语言的语法基础语言的语法基础二二. C. C语言的基本数据类型语言的基本数据类型三三. . 常量和变量常量和变量第二章第二章 常量、变量及数据类型常量、变量及数据类型 第二章第二章 目录目录一、语言的语法基础一、语言的语法基础 1 1、C C语言字符集语言字符集C C语言的基本符号可分语言的基本符号可分4 4个类,归纳如下:个类,归纳如下:(1)(1)英文字母:大小写各英文字母:大小写各2626个,共计个,共计5252个;个; (2)(2)阿拉伯数:阿拉伯数:0 0、1 1、2 2、3 3、4 4、5 5、6 6、7 7、8 8、9 9共共1010个数字;个数字;(3)(3)下
2、划线:下划线:_ _;(4)(4)特殊符号:通常由特殊符号:通常由1 12 2个符号组成,主要用来个符号组成,主要用来表示运算符。表示运算符。第二章第二章 C C语言语法基础语言语法基础 例如:例如:算术运算符:算术运算符:+ - + - * * / % + - / % + -关系运算符:关系运算符: = 条件运算符:条件运算符: ? : ? : 赋值运算符:赋值运算符:= = 其他分隔符其他分隔符: ( ) . , ;第二章第二章 C C语言语法基础语言语法基础2 2、标识符、标识符( (* *) )概念:就是用来标识变量名、符号常量名、函概念:就是用来标识变量名、符号常量名、函数名、类型名
3、、文件名等的有效字符序列。数名、类型名、文件名等的有效字符序列。定义规则:定义规则: (1)(1)标识符只能由字母、数字和下划线三种字符标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线组成,且第一个字符必须为字母或下划线。如:如: _1 year month student_name sum0 _1 year month student_name sum0 M.D.Jones $123 #a 3b ?c a=b M.D.Jones $123 #a 3b ?c a=b第二章第二章 C C语言语法基础语言语法基础(2)(2)在在C C语言中,大小写字母不等效。因此,语言中
4、,大小写字母不等效。因此,a a和和A A,I I和和i i,SumSum和和sumsum,分别是两个不同的标识符。,分别是两个不同的标识符。 (3)(3)用户自定义的标识符不能与保留字用户自定义的标识符不能与保留字( (关键字关键字) )同名。同名。保留保留字字第二章第二章 C C语言语法基础语言语法基础3 3、关键字、关键字概念:就是概念:就是具有特定含义具有特定含义的标识符,用户不的标识符,用户不能用来作自定义标识符。能用来作自定义标识符。C C语言中的关键字较少,由语言中的关键字较少,由ANSIANSI标准推荐的关键标准推荐的关键字有字有3232个。个。常用的有:常用的有:(1)(1)
5、与数据类型有关的(与数据类型有关的(1414):):char int float double signed unsigned char int float double signed unsigned short long void struct union typedef short long void struct union typedef enum sizeofenum sizeof第二章第二章 C C语言语法基础语言语法基础(3)(3) 与程序控制结构有关的(与程序控制结构有关的(1212):): do while for if else switch case do while
6、for if else switch case default goto default goto continue continue break return break return(2)(2)与存储类别有关的:与存储类别有关的: auto extern register staticauto extern register static第二章第二章 C C语言语法基础语言语法基础 1.1.以下标识符是否正确以下标识符是否正确Year New_year 5abc thYear New_year 5abc th# # 2.2.以下标识符是否等价以下标识符是否等价 Abc abcAbc abc
7、练习练习1 1:第二章第二章 C C语言语法基础语言语法基础 标标准准C数数据据类类型型基本类型基本类型(简单类型(简单类型)数数值值类类型型整型整型短整型短整型(short)基本型基本型(int)长整型长整型(long)实型实型浮点型浮点型单精度型(单精度型(float)双精度型(双精度型(double)字符类型(字符类型(char)枚举类型(枚举类型(enum)构造类型构造类型(组合类型)(组合类型)数组类型数组类型结构体类型(结构体类型(struct)共用体类型(共用体类型(union)文件类型(文件类型(FILE)指针类型指针类型 空类型(空类型(void) 二、数据类型概述二、数据类
8、型概述无符号型(正无符号型(正数、数、0)数据类型数据类型字节个数字节个数(位数位数)取值范围取值范围short2(16)-32768+32767unsigned short2 (16)0+65535int2 (16)-32768+32767unsigned2 (16)0+65535long4 (32)-21474836482147483647unsigned long4 (32)042949672951 1、实型、实型 数据类型数据类型(关键字)(关键字)字节字节个数个数取值范围取值范围位数位数float4约约-3.4-3.41010-38+3.41010383832double8约约-1.
9、71010-308+1.7101030864第二章第二章 数据类型数据类型实型二种表现形式:实型二种表现形式:十进制形式十进制形式: :由数字和小数点组成;由数字和小数点组成;指数形式:由指数形式:由“十进制小数十进制小数” ” + “ e(+ “ e(或或E)” + “E)” + “十进制数整数十进制数整数” ” 三部分组成。三部分组成。 例如例如: 12.5e-6 : 12.5e-6 表示表示12.512.51010-6-6十进制小数十进制小数e(e(或或E)E)十进制整数十进制整数第二章第二章 数据类型数据类型注意:注意: 小数点不能单独出现;小数点不能单独出现; e e或或E E的两边
10、必须有数,且其后面必须为整数;的两边必须有数,且其后面必须为整数; 如:如:0.0.、 .0 .0 应为:应为: . . 如:如: 6E0.2 6E0.2 e5 e5 6E 6E 二种表现形式:二种表现形式:用单引号括起来的由反斜杠用单引号括起来的由反斜杠()()引导的转引导的转义字符。义字符。如:如: n n 101 101 x41 x41在统计字符个数在统计字符个数时,只能记为一时,只能记为一个字符个字符第二章第二章 数据类型数据类型用单引号括起来的一个字符;用单引号括起来的一个字符;如:如:AA、 11、? ? 等。等。只能是英文只能是英文的单引号的单引号2 2、字符型、字符型( (每个
11、字符型数据在内存中占一个每个字符型数据在内存中占一个字节字节) )转义字符表转义字符表字符形式字符形式功能功能 nn换行换行t t 、VV横向跳格、横向跳格、b b 、rr竖向跳格竖向跳格退格退格、ff回车回车、8 8进制数表示的进制数表示的ASCIIASCII码对应的字符码对应的字符反斜杠、单引号、双引号反斜杠、单引号、双引号第二章第二章 数据类型数据类型dddddd换页换页 xhh xhh 16 16进制数表示的进制数表示的ASCIIASCII码对应的字符码对应的字符第二章第二章 数据类型数据类型一个字符的多种表示方法:一个字符的多种表示方法:65D(十进制)(十进制)=41H(十六进制)
12、(十六进制)=101O(八进制)(八进制)字符字符A可以表示为可以表示为A、65、0 x41、0101。用进制数来如何表示整型数:用进制数来如何表示整型数:以数字以数字0 0开头的为八进制数;开头的为八进制数;以以0 x0 x或或0X0X开头的为十六进制数;开头的为十六进制数;否则都是十进制数。否则都是十进制数。第二章第二章 数据类型数据类型嵌入式嵌入式C的常用数据类型的常用数据类型 数据类数据类型型 大小大小无符号无符号(unsigned)(unsigned)数数据范围据范围 有符号有符号(signed)(signed)数据范围数据范围Char (byte)8 bits0 255128 12
13、7S h o r t int(word)16 bits0 6553532768 32767Int (word)16 bits 0 6553532768 32767long int (dword)32 bits 0 4294967295 2 1 4 7 4 8 3 6 4 8 2147483647三、常量与变量三、常量与变量1 1、常量、常量概念:概念:在程序运行中在程序运行中, ,其数值不能被改变的其数值不能被改变的量。量。分类:分类:直接常量和符号常量直接常量和符号常量1 1)直接常量:是在程序中)直接常量:是在程序中直接引用直接引用的数据。的数据。分为:整型、字符型分为:整型、字符型以数据
14、的原以数据的原形出现!形出现!X=2第二章第二章 常量和变量常量和变量第二章第二章 常量和变量常量和变量2 2)符号常量符号常量特点:在程序中不能给它赋值。特点:在程序中不能给它赋值。概念:是用标识符来表示一个数据。概念:是用标识符来表示一个数据。 定义形式定义形式: :(1 1)#define #define 标识符标识符 常量数据常量数据例如例如: #define PI 3: #define PI 3在程序预处理时,凡是出现标识符在程序预处理时,凡是出现标识符PIPI的地方都将用的地方都将用数据数据3 3来替换。来替换。如如:2:2* *2 2* *PI PI 就等价于就等价于 2 2*
15、*2 2* *3 3(2 2) byte const a = 10;a=7;byte const a = 10;a=7;第二章第二章 常量和变量常量和变量2 2、变量的概念、变量的概念变量是指在程序运行中变量是指在程序运行中, , 其值可以被改变的量。其值可以被改变的量。变量代表内存中的某一存储空间变量代表内存中的某一存储空间, ,该存储空间中该存储空间中存放的数据就是变量的值。存放的数据就是变量的值。在同一程序块中,每个变量都有唯一的名字,不在同一程序块中,每个变量都有唯一的名字,不能被重复定义。能被重复定义。使用变量时必须使用变量时必须“先定义,后使用先定义,后使用”。byte a,b,c
16、 ; word x,y; 自己设定,满足自己设定,满足标识符的规定。标识符的规定。如:如:bytebytewordword;不可省;不可省1 1)定义形式:)定义形式:类型标识符类型标识符 变量名变量名1 ,1 ,变量名变量名2,2,变量名变量名3 3,.;例如:例如:说明:说明:(1 1)类型标识符有时会添加)类型标识符有时会添加 说明关键字说明关键字(2 2)用)用volatile volatile 声明,在嵌入式系统中允许其它操作是:声明,在嵌入式系统中允许其它操作是:中断服务程序的操作、硬件动作的操作。用中断服务程序的操作、硬件动作的操作。用volatilevolatile声明声明的变
17、量是不会被编译器优化掉的,例如:的变量是不会被编译器优化掉的,例如:volatile unsigned char PortA volatile unsigned char PortA 0 x0000;0 x0000;a = PORTA; a = PORTA; a = PORTA;a = PORTA;由于由于PORTAPORTA是用是用volatilevolatile声明的变量,编译器不会把它优化声明的变量,编译器不会把它优化成一句,而如果不是成一句,而如果不是volatilevolatile声明的编译器就会将第二句声明的编译器就会将第二句优化掉,从而程序将会忽略输入端口的变化。通常把嵌入优化掉
18、,从而程序将会忽略输入端口的变化。通常把嵌入式设备的所有外围器件寄存器都声明为式设备的所有外围器件寄存器都声明为volatile volatile 的。的。 第二章第二章 常量和变量常量和变量2 2)变量初始化)变量初始化 在说明变量的同时赋给变量一个初始值。在说明变量的同时赋给变量一个初始值。1 1)变量定义)变量定义分配存储空间分配存储空间 2 2)变量初始化)变量初始化分配存储空间的同时存入数据分配存储空间的同时存入数据byte a,b;byte a,b; a ab b? ? ?byte a=1,b=2;byte a=1,b=2; a ab b1 12 2不确定不确定第二章第二章 常量和
19、变量常量和变量说明:说明:(1 1)变量名为标识符,应按照标识符要求定义)变量名为标识符,应按照标识符要求定义(2 2)一个变量不能重复定义)一个变量不能重复定义(3 3)变量的初始化不能使用连等)变量的初始化不能使用连等 byte a=b=c=3;byte a=b=c=3; (4 4)变量的定义必须放在程序之前)变量的定义必须放在程序之前例例1 1:看一看,下列的定义哪些是正确的?:看一看,下列的定义哪些是正确的?byte a=5, b=3;byte a=5, b=3;byte a,b,c; a=b=c=3; byte a,b,c; a=b=c=3; byte a=b=c=3;byte a=
20、b=c=3;第二章第二章 常量和变量常量和变量第二章第二章 常量和变量常量和变量3 3)变量的作用范围)变量的作用范围 变量根据其定义方式的不同,作用的范围也变量根据其定义方式的不同,作用的范围也不同不同. .第二章第二章 小结小结小小 结结1 1、数据类型的引入及意义、数据类型的引入及意义2 2、符号常量的定义形式和引入符号常量的意义、符号常量的定义形式和引入符号常量的意义3 3、变量的定义、赋值、初始化、变量的定义、赋值、初始化第二章第二章 小结小结练练 习习1(1(填写实训报告填写实训报告) )1 1、练习、练习2.12.1中修改错误的变量的定义方式中修改错误的变量的定义方式(写你修改的
21、正确答案,不写源程序)(写你修改的正确答案,不写源程序)2 2、在仿真窗口中单步调试,记录变量的类型及大、在仿真窗口中单步调试,记录变量的类型及大小特别注意小特别注意comcom的值。(写你观察到的的值。(写你观察到的comcom值,并值,并写明原因)写明原因)3 3、练习定义一个名为、练习定义一个名为ex1ex1的单字节变量的单字节变量 名为名为ex2ex2的双字节变量的双字节变量 名为名为ex3ex3,初始值为,初始值为2020的单字节变量的单字节变量 第二章第二章 小结小结练练 习习2(2(填写实训报告填写实训报告) )1 1、新建一个工程,按照通用板电路原理图进行端口初始、新建一个工程
22、,按照通用板电路原理图进行端口初始化(参照工程化(参照工程 2.22.2初始化寄存器参考初始化寄存器参考)第二章第二章 小结小结练练 习习2(2(填写实训报告填写实训报告) )附加题:附加题: 点亮点亮led1led1第二章第二章 小结小结练练 习习2(2(填写实训报告填写实训报告) )1 1、什么是单片机端口?、什么是单片机端口?2 2、什么是单片机端口的方向?、什么是单片机端口的方向?3 3、单片机端口有几种状态?、单片机端口有几种状态?4 4、端口的初始化时先方向、后数据?还、端口的初始化时先方向、后数据?还是先数据后方向?是先数据后方向?2.3 2.3 知识链接知识链接1 1:单片机:
23、单片机MC9S08AC16MC9S08AC16引脚引脚2.3.1 AC162.3.1 AC16引脚一览表引脚一览表引脚序号引脚序号 普通普通I/O 特殊功能特殊功能1 特殊功能特殊功能2 引脚序号引脚序号 普通普通I/O 特殊功能特殊功能1 特殊功能特殊功能2 1PTC4 12PTE4/SS12 IRQTMPCLK13PTE5MISO13 /RESET14PTE6MOSI14PTF0TPM1CH2 15PTE7SPSCK15PTF1TPM1CH3 16 VSS6PTF4TPM2CH0 17 VDD7PTF5TPM2CH1 18PTG0KBIKP08PTE0 TxD119PTG1KBIKP19P
24、TE1 RxD120PTG2KBIKP210PTE2TPM1CH0 21PTA0 11PTE3TPM1CH1 22PTA1 2.3.22.3.2 部分特殊引脚介绍部分特殊引脚介绍VDD和和VSS是单片机主电源的供电引脚,是单片机主电源的供电引脚,VDD接接5V或者或者3V,VSS接地。实际应用时,在接地。实际应用时,在VDD和和VSS之之间应该跨接一个间应该跨接一个10F的电解电容和一个的电解电容和一个0.1F的的瓷片电容瓷片电容。VDDAD和和VSSAD是单片机是单片机AD(模数)变换模块的工(模数)变换模块的工作电源,作电源,AD变换模块采用自己的工作电源是为了变换模块采用自己的工作电源是
25、为了提高提高AD变换的稳定性和精度。实际应用时,在变换的稳定性和精度。实际应用时,在VDDAD和和VSSAD之间还应该跨接一个之间还应该跨接一个0.1F的瓷片电的瓷片电容作为旁路电容容作为旁路电容。VREFH和和VREFL分别是分别是AD变换模块的高、低参考电变换模块的高、低参考电压。压。2.3.3 2.3.3 单片机的单片机的I/OI/O口口(1)I/O的作用的作用人体的五官、四肢、皮肤:人体的五官、四肢、皮肤:这些是人体的感官,这些是人体的感官,人体与外界的交互就是靠它们完成的。人体与外界的交互就是靠它们完成的。单片机的单片机的I/O:单片机的单片机的I/O有如人体的感官,单有如人体的感官
26、,单片机获取外部的信息、控制外界的部件,就是依片机获取外部的信息、控制外界的部件,就是依赖它们完成的。赖它们完成的。人体感官与单片机人体感官与单片机I/O的区别:的区别:人体感官的功能比人体感官的功能比较复杂,不仅负责了信号的输入输出,而且还有较复杂,不仅负责了信号的输入输出,而且还有知觉、动作,可以说是一种顶级的传感器,而单知觉、动作,可以说是一种顶级的传感器,而单片机片机I/O只负责芯片电信号的输入输出。只负责芯片电信号的输入输出。2.3.3 2.3.3 单片机的单片机的I/OI/O口口(2)I/O口状态的表示口状态的表示方向寄存器方向寄存器。单片机的。单片机的I/O口既能作为输入又能口既
27、能作为输入又能作为输出,为了确定作为输出,为了确定I/O口的方向,引入了方向口的方向,引入了方向寄存器的概念。寄存器的概念。数据寄存器数据寄存器。单片机的某个。单片机的某个I/O口的状态既可以口的状态既可以为为1(高电平)又可以为(高电平)又可以为0(低电平),为了存储(低电平),为了存储I/O口的状态,引入了数据寄存器的概念。口的状态,引入了数据寄存器的概念。以以B口为例,方向寄存器为口为例,方向寄存器为PTBDD,数据寄存器,数据寄存器为为PTBD。2.3.3 2.3.3 单片机的单片机的I/OI/O口口 (3)I/O的工作原理的工作原理 当当PTBDD01时,三态缓冲器时,三态缓冲器#1
28、、#2选通,选通,#3截止截止,单,单片机内部数据总线写到数据寄存器中的信号片机内部数据总线写到数据寄存器中的信号PTBD0经过经过三态缓冲器三态缓冲器#1缓冲后从引脚缓冲后从引脚PTB0输出,这时,输出,这时,引脚引脚PTB0就是作为输出引脚就是作为输出引脚;同时,数据寄存器中的信号;同时,数据寄存器中的信号PTBD0经过三态缓冲器经过三态缓冲器#2缓冲后又送回单片机的内部数据总线,缓冲后又送回单片机的内部数据总线,使单片机内部能够了解使单片机内部能够了解PTB0当前的信号是什么状态。当前的信号是什么状态。PTBDD0PTBD02.3.3 2.3.3 单片机的单片机的I/OI/O口口(3)I
29、/O的工作原理的工作原理当当PTBDD00时,三态缓冲器时,三态缓冲器#3选通,选通,#1、#2截止截止,引脚,引脚PTB0的信号经过三态缓冲器的信号经过三态缓冲器#3缓冲缓冲后输入到单片机的内部数据总线中并保存在数据后输入到单片机的内部数据总线中并保存在数据寄存器中,这时,寄存器中,这时,引脚引脚PTB0就是作为输入引脚就是作为输入引脚。PTBDD0PTBD02.3.3 2.3.3 单片机的单片机的I/OI/O口口(4)上拉电阻与下拉电阻的概念)上拉电阻与下拉电阻的概念上拉电阻或者下拉电阻电路的目的是使采样点平上拉电阻或者下拉电阻电路的目的是使采样点平常的电位为一个确定的电平。常的电位为一个确定的电平。上拉电阻电路上拉电阻电路下拉电阻电路下拉电阻电路无上下拉电阻电路无上下拉电阻电路2.5.3 2.5.3 实验步骤实验步骤v首先,把原来的首先,把原来的LE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论