《【精品】单片机原理与接口技术第4章MCS-51C程序设计精品ppt课件.ppt》由会员分享,可在线阅读,更多相关《【精品】单片机原理与接口技术第4章MCS-51C程序设计精品ppt课件.ppt(127页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、单片机原理与接口技术第4章MCS-51C程序设计单片机原理与接口技术(第3版)返回目录2/2/20232单片机原理与接口技术(第3版)返回目录(1)熟悉熟悉C51语法基础和程序结构。语法基础和程序结构。(2)掌握掌握C51结构化程序设计。结构化程序设计。(3)掌握掌握C51对单片机硬件的访问方法。对单片机硬件的访问方法。(4)掌握掌握C51函数定义与调用。函数定义与调用。(5)了解汇编语言和了解汇编语言和C51的混合编程。的混合编程。本章教学要求本章教学要求 2/2/20233单片机原理与接口技术(第3版)返回目录4 4.1 C51.1 C51概述概述概述概述4 4.2 C51.2 C51语法
2、基础语法基础语法基础语法基础4 4.2.1 .2.1 标识符和关键字标识符和关键字标识符和关键字标识符和关键字4 4.2.2 .2.2 数据类型数据类型数据类型数据类型4 4.2.3 .2.3 运算符和表达式运算符和表达式运算符和表达式运算符和表达式4 4.2.4.2.4 程序结构程序结构程序结构程序结构本本 章章 目目 录录4 4.3 C51.3 C51对对对对MCS-51MCS-51单片机的访问单片机的访问单片机的访问单片机的访问4 4.3.1 .3.1 存储类型存储类型存储类型存储类型4 4.3.2 .3.2 存储模式存储模式存储模式存储模式4 4.3.3 .3.3 对特殊功能寄存器的访
3、问对特殊功能寄存器的访问对特殊功能寄存器的访问对特殊功能寄存器的访问4 4.3.4 .3.4 对存储器和并行口的访问对存储器和并行口的访问对存储器和并行口的访问对存储器和并行口的访问4 4.3.5.3.5 位地址访问位地址访问位地址访问位地址访问4.3.6 4.3.6 中断函数中断函数中断函数中断函数 2/2/20234单片机原理与接口技术(第3版)返回目录4 4.4 C51.4 C51结构化程序设计结构化程序设计结构化程序设计结构化程序设计4 4.4.1 .4.1 顺序结构程序顺序结构程序顺序结构程序顺序结构程序4 4.4.2 .4.2 选择结构程序选择结构程序选择结构程序选择结构程序4 4
4、.4.3 .4.3 循环结构程序循环结构程序循环结构程序循环结构程序4 4.5 C51.5 C51程序设计实例程序设计实例程序设计实例程序设计实例4 4.5.1 .5.1 查表程序查表程序查表程序查表程序4 4.5.5.2 .2 单片机内单片机内单片机内单片机内/外部资源应用外部资源应用外部资源应用外部资源应用程序设计程序设计程序设计程序设计4 4.5.5.3 C51.3 C51语言和语言和语言和语言和MCS-51MCS-51汇编汇编汇编汇编语言混合编程语言混合编程语言混合编程语言混合编程4 4.5.5.4 .4 编程优化的概念编程优化的概念编程优化的概念编程优化的概念习题与思考题习题与思考题
5、习题与思考题习题与思考题本本 章章 目目 录录2/2/20235单片机原理与接口技术(第3版)返回目录单片机原理与接口技术(第3版)返回目录单片机原理与接口技术(第3版)返回目录使使使使用用用用具具具具有有有有C51C51编编编编译译译译扩扩扩扩展展展展功功功功能能能能的的的的C C语语语语言言言言进进进进行行行行MCS-51MCS-51单单单单片片片片机机机机应应应应用用用用系统的开发编程,系统的开发编程,系统的开发编程,系统的开发编程,简称简称简称简称C51C51编程编程编程编程。C51C51编程具有编程具有编程具有编程具有以下特点以下特点以下特点以下特点。1)1)可可可可管管管管理理理理
6、内内内内部部部部寄寄寄寄存存存存器器器器和和和和存存存存储储储储器器器器的的的的分分分分配配配配,编编编编程程程程时时时时,无无无无需需需需考考考考虑虑虑虑不不不不同存储器的寻址和数据类型等细节问题;同存储器的寻址和数据类型等细节问题;同存储器的寻址和数据类型等细节问题;同存储器的寻址和数据类型等细节问题;2)2)程程程程序序序序由由由由若若若若干干干干函函函函数数数数组组组组成成成成,具具具具有有有有良良良良好好好好的的的的模模模模块块块块化化化化结结结结构构构构、可可可可移移移移植植植植性性性性好、便于项目维护管理;好、便于项目维护管理;好、便于项目维护管理;好、便于项目维护管理;3)3)
7、有有有有丰丰丰丰富富富富的的的的子子子子程程程程序序序序库库库库可可可可直直直直接接接接引引引引用用用用,从从从从而而而而大大大大大大大大减减减减少少少少用用用用户户户户编编编编程程程程工工工工作量,提高编程效率;作量,提高编程效率;作量,提高编程效率;作量,提高编程效率;4)4)与汇编语言交叉编程。用汇编语言编写与硬件有关的程序,与汇编语言交叉编程。用汇编语言编写与硬件有关的程序,与汇编语言交叉编程。用汇编语言编写与硬件有关的程序,与汇编语言交叉编程。用汇编语言编写与硬件有关的程序,用用用用C51C51编写与硬件无关的运算程序,充分发挥两种语言的长处,编写与硬件无关的运算程序,充分发挥两种语
8、言的长处,编写与硬件无关的运算程序,充分发挥两种语言的长处,编写与硬件无关的运算程序,充分发挥两种语言的长处,提高开发效率。提高开发效率。提高开发效率。提高开发效率。4.1 C51概述概述2/2/20238单片机原理与接口技术(第3版)返回目录C51C51编编编编程程程程和和和和汇汇汇汇编编编编语语语语言言言言编编编编程程程程过过过过程程程程一一一一样样样样。单单单单片片片片机机机机C C语语语语言言言言源源源源程程程程序序序序经经经经过过过过编编编编辑辑辑辑、编编编编译译译译、连连连连接接接接后后后后生生生生成成成成目目目目标标标标程程程程序序序序(.BIN.BIN和和和和.HEX.HEX)
9、文文文文件件件件,然然然然后后后后运运运运行行行行即即即即可可可可。调调调调试试试试5151单单单单片片片片机机机机C C语语语语言言言言程程程程序序序序可可可可用用用用Keil Keil C51C51编译器编译器编译器编译器。注注注注意意意意,使使使使用用用用C51C51编编编编程程程程可可可可以以以以取取取取代代代代繁繁繁繁琐琐琐琐的的的的汇汇汇汇编编编编语语语语言言言言编编编编程程程程,但但但但仍仍仍仍需需需需要要要要了了了了解解解解MCS-51MCS-51单单单单片片片片机机机机的的的的硬硬硬硬件件件件结结结结构构构构。所所所所以以以以对对对对于于于于单单单单片片片片机机机机系系系系统
10、统统统的的的的开开开开发发发发应应应应采采采采用用用用汇汇汇汇编编编编语语语语言言言言与与与与C51C51混混混混合合合合编编编编程程程程的的的的方方方方法法法法更更更更为为为为有有有有效效效效。4.1 C51概述概述2/2/20239单片机原理与接口技术(第3版)返回目录4.2 C51 语法基础语法基础标标标标识识识识符符符符用用用用来来来来标标标标识识识识源源源源程程程程序序序序中中中中某某某某个个个个对对对对象象象象的的的的名名名名字字字字,这这这这些些些些对对对对象可以是语句、数据类型、函数、变量、数组等。象可以是语句、数据类型、函数、变量、数组等。象可以是语句、数据类型、函数、变量、
11、数组等。象可以是语句、数据类型、函数、变量、数组等。标标标标识识识识符符符符由由由由字字字字符符符符串串串串、数数数数字字字字和和和和下下下下划划划划线线线线等等等等组组组组成成成成,应应应应该该该该注注注注意意意意的的的的是是是是第第第第一一一一个个个个字字字字符符符符必必必必须须须须是是是是字字字字母母母母或或或或下下下下划划划划线线线线,不不不不能能能能用用用用数数数数字字字字开开开开头头头头,如如如如“1_a”“1_a”是是是是错错错错误误误误的的的的,编编编编译译译译时时时时会会会会有有有有错错错错误误误误提提提提示示示示。在在在在C51C51编编编编译译译译器器器器中,只支持标识符
12、的中,只支持标识符的中,只支持标识符的中,只支持标识符的前前前前3232位为有效标识位为有效标识位为有效标识位为有效标识。C51C51语语语语言言言言是是是是区区区区分分分分大大大大小小小小写写写写的的的的一一一一种种种种高高高高级级级级语语语语言言言言,如如如如“a_1”“a_1”和和和和“A_1”“A_1”是两个完全不同的标识符。是两个完全不同的标识符。是两个完全不同的标识符。是两个完全不同的标识符。4.2.1 4.2.1 标识符和关键字标识符和关键字标识符和关键字标识符和关键字-标识符标识符2/2/202310单片机原理与接口技术(第3版)返回目录C51C51中中中中有有有有些些些些库库
13、库库函函函函数数数数的的的的标标标标识识识识符符符符是是是是以以以以下下下下划划划划线线线线开开开开头头头头的的的的,所所所所以以以以一一一一般般般般不不不不要要要要以以以以下下下下划划划划线线线线开开开开头头头头命命命命名名名名用用用用户户户户自自自自定定定定义义义义标标标标识识识识符符符符。标标标标识识识识符符符符在在在在命命命命名名名名时时时时应应应应当当当当简单,含义清晰,这样有助于阅读理解程序。简单,含义清晰,这样有助于阅读理解程序。简单,含义清晰,这样有助于阅读理解程序。简单,含义清晰,这样有助于阅读理解程序。关关关关键键键键字字字字则则则则是是是是编编编编程程程程语语语语言言言言
14、保保保保留留留留的的的的特特特特殊殊殊殊标标标标识识识识符符符符,它它它它们们们们具具具具有有有有固固固固定定定定的的的的名名名名称称称称和和和和含含含含义义义义,在在在在程程程程序序序序编编编编写写写写中中中中不不不不允允允允许许许许将将将将关关关关键键键键字字字字另另另另做做做做他他他他用用用用。C51C51中中中中的的的的关关关关键键键键字字字字除除除除了了了了有有有有ANSI ANSI C C标标标标准准准准的的的的3232个个个个关关关关键键键键字字字字外外外外,还还还还根根根根据据据据MCS-51MCS-51单单单单片片片片机的特点扩展了相关的关键字。机的特点扩展了相关的关键字。机
15、的特点扩展了相关的关键字。机的特点扩展了相关的关键字。C51C51关键字如表关键字如表关键字如表关键字如表5-15-1所示。所示。所示。所示。在在在在C51C51的的的的文文文文本本本本编编编编辑辑辑辑器器器器中中中中编编编编写写写写C C程程程程序序序序,系系系系统统统统可可可可以以以以把把把把保保保保留留留留关关关关键键键键字字字字以不同颜色显示,如以不同颜色显示,如以不同颜色显示,如以不同颜色显示,如intint关键字的默认颜色为天蓝色。关键字的默认颜色为天蓝色。关键字的默认颜色为天蓝色。关键字的默认颜色为天蓝色。4.2.1 标识符和关键字标识符和关键字-关键字关键字2/2/202311
16、单片机原理与接口技术(第3版)返回目录4.2.1 标识符和关键字标识符和关键字-关键字列表关键字列表2/2/202312单片机原理与接口技术(第3版)返回目录4.2.1 标识符和关键字标识符和关键字-关键字列表关键字列表2/2/202313单片机原理与接口技术(第3版)返回目录4.2.1 标识符和关键字标识符和关键字-关键字列表关键字列表2/2/202314单片机原理与接口技术(第3版)返回目录4.2.2 数据类型数据类型n nC51C51具有具有具有具有ANSI CANSI C的所有标准数据类型。的所有标准数据类型。的所有标准数据类型。的所有标准数据类型。n n其基本数据类型包括:其基本数据
17、类型包括:其基本数据类型包括:其基本数据类型包括:charchar、intint、shortshort、longlong、floatfloat和和和和doubledouble。n n对对对对C51C51编译器来说,编译器来说,编译器来说,编译器来说,shortshort类型和类型和类型和类型和intint类型相类型相类型相类型相同,同,同,同,doubledouble类型和类型和类型和类型和floatfloat类型相同。类型相同。类型相同。类型相同。-C51的数据类型的数据类型2/2/202315单片机原理与接口技术(第3版)返回目录除除除除此此此此之之之之外外外外,为为为为了了了了更更更更加
18、加加加有有有有利利利利地地地地利利利利用用用用MCS-51MCS-51的的的的结结结结构构构构,C51C51还还还还增增增增加加加加了了了了一一一一些些些些特特特特殊殊殊殊的的的的数数数数据据据据类类类类型型型型,包包包包括括括括bitbit、sbitsbit、sfrsfr、sfr16sfr16。数据类型如表数据类型如表数据类型如表数据类型如表4-24-2所示。所示。所示。所示。4.2.2 数据类型数据类型-C51的数据类型的数据类型2/2/202316单片机原理与接口技术(第3版)返回目录n ncharchar类类类类型型型型的的的的长长长长度度度度是是是是1B1B,通通通通常常常常用用用用
19、于于于于定定定定义义义义处处处处理理理理字字字字符符符符数数数数据据据据的的的的变变变变量或常量。量或常量。量或常量。量或常量。n nunsigned unsigned charchar类类类类型型型型用用用用字字字字节节节节中中中中所所所所有有有有的的的的位位位位表表表表示示示示数数数数值值值值,可可可可以以以以表表表表达的数值范围是达的数值范围是达的数值范围是达的数值范围是02550255。n nsigned signed charchar类类类类型型型型用用用用字字字字节节节节中中中中最最最最高高高高位位位位表表表表示示示示数数数数据据据据的的的的符符符符号号号号,0 0表表表表示示示示
20、正正正正数数数数,1 1表表表表示示示示负负负负数数数数,负负负负数数数数用用用用补补补补码码码码表表表表示示示示,能能能能表表表表示示示示的的的的数数数数值值值值范范范范围围围围是是是是-128+127-128+127。unsigned unsigned charchar常常常常用用用用于于于于处处处处理理理理ASCIIASCII字字字字符符符符或或或或用用用用于处理小于或等于于处理小于或等于于处理小于或等于于处理小于或等于255255的整型数。的整型数。的整型数。的整型数。1 1charchar字符类型字符类型字符类型字符类型4.2.2 数据类型数据类型-char字符类型字符类型2/2/2
21、02317单片机原理与接口技术(第3版)返回目录2 2intint整型整型整型整型n nintint整型长度为整型长度为整型长度为整型长度为2B2B,用于存放一个双字节数据。,用于存放一个双字节数据。,用于存放一个双字节数据。,用于存放一个双字节数据。n nsigned signed intint表表表表示示示示的的的的数数数数值值值值范范范范围围围围是是是是-32768-32768+32767+32767,字字字字节节节节中中中中最高位表示数据的符号,最高位表示数据的符号,最高位表示数据的符号,最高位表示数据的符号,0 0表示正数,表示正数,表示正数,表示正数,1 1表示负数。表示负数。表示
22、负数。表示负数。n nunsigned intunsigned int表示的数值范围是表示的数值范围是表示的数值范围是表示的数值范围是0 06553565535。4.2.2 数据类型数据类型-int整型整型2/2/202318单片机原理与接口技术(第3版)返回目录n nlonglong长整型长度为长整型长度为长整型长度为长整型长度为4B4B,用于存放一个四字节数据。,用于存放一个四字节数据。,用于存放一个四字节数据。,用于存放一个四字节数据。n n分分分分有有有有符符符符号号号号longlong长长长长整整整整型型型型signed signed longlong和和和和无无无无符符符符号号号号
23、longlong长长长长整整整整型型型型unsigned longunsigned long,默认值为,默认值为,默认值为,默认值为signed longsigned long类型。类型。类型。类型。n nsigned signed intint表表表表 示示示示 的的的的 数数数数 值值值值 范范范范 围围围围 是是是是-2147483648-2147483648+2147483647+2147483647,字字字字节节节节中中中中最最最最高高高高位位位位表表表表示示示示数数数数据据据据的的的的符符符符号号号号,0 0表表表表示示示示正数,正数,正数,正数,1 1表示负数。表示负数。表示负数
24、。表示负数。n nunsigned longunsigned long表示的数值范围是表示的数值范围是表示的数值范围是表示的数值范围是0 042949672954294967295。3 3longlong长整型长整型长整型长整型4.2.2 数据类型数据类型-long长整型长整型2/2/202319单片机原理与接口技术(第3版)返回目录4 4floatfloat浮点型浮点型浮点型浮点型floatfloat浮点型在十进制中具有浮点型在十进制中具有浮点型在十进制中具有浮点型在十进制中具有7 7位有效数字,是符合位有效数字,是符合位有效数字,是符合位有效数字,是符合IEEE-754IEEE-754标准
25、(标准(标准(标准(3232)的单精度浮点型数据,占用)的单精度浮点型数据,占用)的单精度浮点型数据,占用)的单精度浮点型数据,占用4B4B。具有具有具有具有2424位精度。位精度。位精度。位精度。4.2.2 数据类型数据类型-float浮点型浮点型2/2/202320单片机原理与接口技术(第3版)返回目录5 5*指针型指针型指针型指针型指指针针型型本本身身就就是是一一个个变变量量,在在这这个个变变量量中中存存放放着着指指向向另另一一个个数数据据的的地地址址。这这个个指指针针变变量量要要占占据据一一定定的的内内存存单单元元,对对不不同同的的处处理理器器长长度度也也不不尽尽相相同同,在在C51中
26、中它它的的长长度度一一般般为为13个个字节。字节。4.2.2 数据类型数据类型-*指针型指针型2/2/202321单片机原理与接口技术(第3版)返回目录bit位位标标量量是是C51编编译译器器的的一一种种扩扩充充数数据据类类型型,利利用用它它可可定定义义一一个个位位标标量量。它它的的值值是是一一个个二二进进制制位位,不不是是0,就就是是1,类类似似一一些些高高级语言中的级语言中的boolean型数据的型数据的True和和False。6 6bitbit位标量位标量位标量位标量4.2.2 数据类型数据类型-bit位标量位标量2/2/202322单片机原理与接口技术(第3版)返回目录7 7sfrsf
27、r特殊功能寄存器特殊功能寄存器特殊功能寄存器特殊功能寄存器n nsfrsfr是是是是一一一一种种种种C51C51扩扩扩扩充充充充数数数数据据据据类类类类型型型型,占占占占用用用用一一一一个个个个内内内内存存存存单单单单元元元元,值域为值域为值域为值域为0 0255255。n n利利利利用用用用它它它它可可可可以以以以访访访访问问问问MCS-51MCS-51单单单单片片片片机机机机内内内内部部部部的的的的所所所所有有有有特特特特殊殊殊殊功功功功能能能能寄存器。寄存器。寄存器。寄存器。n n如如如如用用用用sfr sfr P1 P1=0 x900 x90定定定定义义义义一一一一个个个个特特特特殊殊
28、殊殊功功功功能能能能寄寄寄寄存存存存器器器器变变变变量量量量“P1”“P1”,0 x900 x90是是是是指指指指5151单单单单片片片片机机机机的的的的P1P1端端端端口口口口地地地地址址址址90H90H,变变变变量量量量P1P1即即即即指指指指5151单片机的单片机的单片机的单片机的P1P1端口。端口。端口。端口。n n在在在在后后后后面面面面的的的的语语语语句句句句中中中中可可可可以以以以用用用用P1 P1=255255(对对对对P1P1端端端端口口口口的的的的所所所所有有有有引引引引脚置高电平)之类的语句操作特殊功能寄存器。脚置高电平)之类的语句操作特殊功能寄存器。脚置高电平)之类的语
29、句操作特殊功能寄存器。脚置高电平)之类的语句操作特殊功能寄存器。4.2.2 数据类型数据类型-sfr特殊功能寄存器特殊功能寄存器2/2/202323单片机原理与接口技术(第3版)返回目录8.sfr16 168.sfr16 16位特殊功能寄存器位特殊功能寄存器位特殊功能寄存器位特殊功能寄存器n nsfr16sfr16也也也也是是是是一一一一种种种种C51C51扩扩扩扩充充充充数数数数据据据据类类类类型型型型,用用用用于于于于定定定定义义义义存存存存在在在在于于于于MCS-51MCS-51单单单单片片片片机机机机内内内内部部部部RAMRAM的的的的1616位位位位特特特特殊殊殊殊功功功功能能能能寄
30、寄寄寄存存存存器器器器,如定时器如定时器如定时器如定时器T0T0和和和和T1T1。n nsfr16sfr16型数据占用型数据占用型数据占用型数据占用2 2个内存单元,取值范围为个内存单元,取值范围为个内存单元,取值范围为个内存单元,取值范围为0 06553565535。4.2.2 数据类型数据类型-16位特殊功能寄存器位特殊功能寄存器2/2/202324单片机原理与接口技术(第3版)返回目录sbitsbit也也也也是是是是一一一一种种种种C51C51扩扩扩扩充充充充数数数数据据据据类类类类型型型型,利利利利用用用用它它它它可可可可以以以以访访访访问问问问芯芯芯芯片片片片内内内内部部部部RAMR
31、AM中中中中的的的的可可可可寻寻寻寻址址址址位位位位或或或或特特特特殊殊殊殊功功功功能能能能寄寄寄寄存存存存器器器器中中中中的的的的可可可可寻寻寻寻址址址址位位位位。定定定定义义义义方方方方法法法法有有有有如下三种:如下三种:如下三种:如下三种:(1 1)sbit sbit 位变量名位变量名位变量名位变量名=位地址位地址位地址位地址将将将将位位位位的的的的绝绝绝绝对对对对地地地地址址址址赋赋赋赋给给给给位位位位变变变变量量量量,位位位位地地地地址址址址必必必必须须须须位位位位于于于于80HFFH80HFFH(特特特特殊功能寄存器的位地址)之间。殊功能寄存器的位地址)之间。殊功能寄存器的位地址)
32、之间。殊功能寄存器的位地址)之间。(2 2)sbit sbit 位变量名位变量名位变量名位变量名=特殊功能寄存器名特殊功能寄存器名特殊功能寄存器名特殊功能寄存器名 位位置位位置位位置位位置当当当当可可可可寻寻寻寻址址址址位位位位位位位位于于于于特特特特殊殊殊殊功功功功能能能能寄寄寄寄存存存存器器器器中中中中时时时时,可可可可采采采采用用用用这这这这种种种种方方方方法法法法。位位位位位位位位置是一个置是一个置是一个置是一个0 07 7之间的常数。之间的常数。之间的常数。之间的常数。(3 3)sbit sbit 位变量名位变量名位变量名位变量名=字节地址字节地址字节地址字节地址 位位置位位置位位置
33、位位置这这这这种种种种方方方方法法法法是是是是以以以以一一一一个个个个常常常常数数数数(字字字字节节节节地地地地址址址址)作作作作为为为为基基基基地地地地址址址址,该该该该常常常常数数数数必必必必须须须须在在在在80H80HFFHFFH(特特特特殊殊殊殊功功功功能能能能寄寄寄寄存存存存器器器器的的的的字字字字节节节节地地地地址址址址)之之之之间间间间。位位位位位位位位置置置置是是是是一一一一个个个个0 07 7之间的常数。之间的常数。之间的常数。之间的常数。9 9sbitsbit可寻址位可寻址位可寻址位可寻址位4.2.2 数据类型数据类型-sbit可寻址位可寻址位2/2/202325单片机原理
34、与接口技术(第3版)返回目录MCS-51MCS-51单单单单片片片片机机机机中中中中的的的的特特特特殊殊殊殊功功功功能能能能寄寄寄寄存存存存器器器器及及及及其其其其可可可可寻寻寻寻址址址址位位位位,已已已已被被被被预预预预先先先先定定定定义义义义放放放放在在在在文文文文件件件件reg51.hreg51.h中中中中,在在在在程程程程序序序序的的的的开开开开头头头头只需加上只需加上只需加上只需加上#include#include或或或或#include#include即可。即可。即可。即可。另另另另外外外外,bitbit还还还还可可可可访访访访问问问问MCS-51MCS-51单单单单片片片片机机机
35、机片片片片内内内内20H20H2FH2FH范范范范围围围围内内内内的的的的位位位位对对对对象象象象。C51C51编编编编译译译译器器器器提提提提供供供供了了了了一一一一个个个个bdatabdata存存存存储储储储器器器器类类类类型型型型,允允允允许许许许将将将将具具具具有有有有bdatabdata类类类类型型型型的的的的对对对对象象象象放放放放入入入入MCS-51MCS-51单片机片内可位寻址区。单片机片内可位寻址区。单片机片内可位寻址区。单片机片内可位寻址区。4.2.2 数据类型数据类型-reg51.h2/2/202326单片机原理与接口技术(第3版)返回目录sbitsbit和和和和bitb
36、it的区别:的区别:的区别:的区别:sbitsbit定定定定义义义义特特特特殊殊殊殊功功功功能能能能寄寄寄寄存存存存器器器器中中中中的的的的可可可可寻寻寻寻址址址址位位位位;而而而而bitbit则则则则定定定定义义义义了了了了一一一一个个个个普普普普通通通通的的的的位位位位变变变变量量量量,一一一一个个个个函函函函数数数数中中中中可可可可包包包包含含含含bitbit类型的参数,函数返回值也可为类型的参数,函数返回值也可为类型的参数,函数返回值也可为类型的参数,函数返回值也可为bitbit类型。类型。类型。类型。4.2.2 数据类型数据类型-sbit和和bit2/2/202327单片机原理与接口
37、技术(第3版)返回目录4.2.3 运算符和表达式运算符和表达式C51C51算术运算符有五种:算术运算符有五种:算术运算符有五种:算术运算符有五种:+加法运算符或正号加法运算符或正号加法运算符或正号加法运算符或正号-减法运算符或负号减法运算符或负号减法运算符或负号减法运算符或负号*乘法运算符乘法运算符乘法运算符乘法运算符/除法运算符除法运算符除法运算符除法运算符%模(求余)运算符模(求余)运算符模(求余)运算符模(求余)运算符优先级:先乘除,后加减,先括号内,再括号外。优先级:先乘除,后加减,先括号内,再括号外。优先级:先乘除,后加减,先括号内,再括号外。优先级:先乘除,后加减,先括号内,再括号
38、外。结合性:自左至右方向。结合性:自左至右方向。结合性:自左至右方向。结合性:自左至右方向。模运算即求余数,如,模运算即求余数,如,模运算即求余数,如,模运算即求余数,如,7%37%3,结果是,结果是,结果是,结果是7 7除以除以除以除以3 3所得余数所得余数所得余数所得余数1 1 1 1C51C51的算术运算符的算术运算符的算术运算符的算术运算符-算术运算符算术运算符2/2/202328单片机原理与接口技术(第3版)返回目录C51C51关系运算符有六种:关系运算符有六种:关系运算符有六种:关系运算符有六种:大于大于大于大于=大于等于大于等于大于等于大于等于=相等相等相等相等!=!=不相等不相
39、等不相等不相等优先级:前四个高,后两个优先级:前四个高,后两个优先级:前四个高,后两个优先级:前四个高,后两个“=”“=”和和和和“!=”“!=”级别低。级别低。级别低。级别低。结合性:自左至右方向。结合性:自左至右方向。结合性:自左至右方向。结合性:自左至右方向。关系表达式的结果是逻辑值关系表达式的结果是逻辑值关系表达式的结果是逻辑值关系表达式的结果是逻辑值“真真真真”或或或或“假假假假”,C51C51中以中以中以中以“1”“1”代表真,代表真,代表真,代表真,“0”“0”代表假。代表假。代表假。代表假。2 2C51C51关系运算符关系运算符关系运算符关系运算符4.2.3 运算符和表达式运算
40、符和表达式-关系运算符关系运算符2/2/202329单片机原理与接口技术(第3版)返回目录C51C51逻辑运算符有三种:逻辑运算符有三种:逻辑运算符有三种:逻辑运算符有三种:&逻辑与逻辑与逻辑与逻辑与|逻辑或逻辑或逻辑或逻辑或 !逻辑非逻辑非逻辑非逻辑非优先级:逻辑非优先级:逻辑非优先级:逻辑非优先级:逻辑非“!”“!”最高。最高。最高。最高。结结结结合合合合性性性性:“&”“&”和和和和“|”“|”自自自自左左左左至至至至右右右右方方方方向向向向。“!”“!”自自自自右右右右至至至至左左左左方向。方向。方向。方向。运运运运算算算算符符符符的的的的两两两两边边边边为为为为关关关关系系系系表表表
41、表达达达达式式式式。逻逻逻逻辑辑辑辑表表表表达达达达式式式式和和和和关关关关系系系系表表表表达式的值相同,以达式的值相同,以达式的值相同,以达式的值相同,以“0”“0”代表假,以代表假,以代表假,以代表假,以“1”“1”代表真。代表真。代表真。代表真。3 3C51C51逻辑运算符逻辑运算符逻辑运算符逻辑运算符4.2.3 运算符和表达式运算符和表达式-逻辑运算符逻辑运算符2/2/202330单片机原理与接口技术(第3版)返回目录C51C51按位操作运算符有六种:按位操作运算符有六种:按位操作运算符有六种:按位操作运算符有六种:&按位与按位与按位与按位与 位取反位取反位取反位取反|按位或按位或按位
42、或按位或位右移位右移位右移位右移注:移位操作为补零移位。位运算符只能对整形和字注:移位操作为补零移位。位运算符只能对整形和字注:移位操作为补零移位。位运算符只能对整形和字注:移位操作为补零移位。位运算符只能对整形和字符型运算,不能对实型数据运算。符型运算,不能对实型数据运算。符型运算,不能对实型数据运算。符型运算,不能对实型数据运算。如:如:如:如:char a=0 x0fchar a=0 x0f;表达式;表达式;表达式;表达式a=aa=a值为值为值为值为0 xf00 xf0。如:如:如:如:char a=0 x22char a=0 x22;表达式;表达式;表达式;表达式a2a2值为值为值为值
43、为0 x880 x88,即,即,即,即a a值左值左值左值左移两位,移位后空白位补移两位,移位后空白位补移两位,移位后空白位补移两位,移位后空白位补0 0。-位操作运算符位操作运算符4.2.3 运算符和表达式运算符和表达式4 4C51C51位操作运算符位操作运算符位操作运算符位操作运算符2/2/202331单片机原理与接口技术(第3版)返回目录+自增自增自增自增1 1-自减自减自减自减1 1自增、自减运算符可以在变量的前面或后面使用自增、自减运算符可以在变量的前面或后面使用自增、自减运算符可以在变量的前面或后面使用自增、自减运算符可以在变量的前面或后面使用如,如,如,如,+i+i或或或或-I-
44、I,意为在使用,意为在使用,意为在使用,意为在使用i i之前,先使之前,先使之前,先使之前,先使i i值加值加值加值加1 1或减或减或减或减1 1如,如,如,如,i+i+或或或或i-i-,意为在使用变量,意为在使用变量,意为在使用变量,意为在使用变量i i之后,再使之后,再使之后,再使之后,再使i i值加值加值加值加1 1或减或减或减或减1 1例如,定义整型变量:例如,定义整型变量:例如,定义整型变量:例如,定义整型变量:int i=6int i=6 若有若有若有若有j=+ij=+i,则,则,则,则j j值为值为值为值为7 7,i i值也为值也为值也为值也为7 7 若有若有若有若有j=i+j=
45、i+,则,则,则,则j j值为值为值为值为6 6,i i值为值为值为值为7 75 5自增、自减运算符自增、自减运算符自增、自减运算符自增、自减运算符4.2.3 运算符和表达式运算符和表达式-+-运算符运算符2/2/202332单片机原理与接口技术(第3版)返回目录6 6赋值运算符赋值运算符赋值运算符赋值运算符赋值赋值赋值赋值 将将将将“”右边的值赋给右边的值赋给右边的值赋给右边的值赋给“”左边的变量左边的变量左边的变量左边的变量(注:不是相等运算符)(注:不是相等运算符)(注:不是相等运算符)(注:不是相等运算符)4.2.3 运算符和表达式运算符和表达式-赋值运算符赋值运算符2/2/20233
46、3单片机原理与接口技术(第3版)返回目录C51C51提供了十种复合赋值运算符:提供了十种复合赋值运算符:提供了十种复合赋值运算符:提供了十种复合赋值运算符:+=+=-=-=*=*=/=/=%=%=&=&=|=|=采用符合赋值运算的目的是为了简化程序,提高采用符合赋值运算的目的是为了简化程序,提高采用符合赋值运算的目的是为了简化程序,提高采用符合赋值运算的目的是为了简化程序,提高C51C51程序的编译效率。程序的编译效率。程序的编译效率。程序的编译效率。例:例:例:例:a+=ba+=b相当于相当于相当于相当于a=a+ba=a+b。a=ba=b相当于相当于相当于相当于a=aba=ab。7 7复合赋
47、值运算符复合赋值运算符复合赋值运算符复合赋值运算符4.2.3 运算符和表达式运算符和表达式-复合赋值运算符复合赋值运算符2/2/202334单片机原理与接口技术(第3版)返回目录8 8对指针操作的运算符对指针操作的运算符对指针操作的运算符对指针操作的运算符&取地址运算符取地址运算符取地址运算符取地址运算符*指针运算符指针运算符指针运算符指针运算符注意注意注意注意&与与与与*的用法意义如下:的用法意义如下:的用法意义如下:的用法意义如下:n n“&”“&”与与与与按按按按位位位位与与与与运运运运算算算算符符符符的的的的差差差差别别别别。如如如如果果果果“&”“&”为为为为“与与与与”运运运运算算
48、算算,&运运运运算算算算符符符符的的的的两两两两边边边边必必必必须须须须为为为为变变变变量量量量或或或或常常常常量量量量,如如如如a=c&ba=c&b。“&”“&”是是是是取取取取地地地地址址址址运运运运算时,如算时,如算时,如算时,如a=&ba=&b。n n“*”“*”与与与与指指指指针针针针定定定定义义义义时时时时指指指指针针针针前前前前的的的的“*”“*”的的的的差差差差别别别别。如如如如char char*pt*pt,这这这这里里里里的的的的“*”“*”只只只只表表表表示示示示ptpt为为为为指指指指针针针针变变变变量量量量,不不不不代代代代表表表表间间间间址址址址取取取取内内内内容容
49、容容的的的的运运运运算算算算。而而而而c=*bc=*b,是将以,是将以,是将以,是将以b b的内容为地址的单元内容送的内容为地址的单元内容送的内容为地址的单元内容送的内容为地址的单元内容送c c变量。变量。变量。变量。n nC51C51运算的优先级:运算的优先级:运算的优先级:运算的优先级:!(非)!(非)!(非)!(非)算术运算算术运算算术运算算术运算关系运算关系运算关系运算关系运算&和和和和|赋值运算赋值运算赋值运算赋值运算4.2.3 运算符和表达式运算符和表达式-指针操作的运算符指针操作的运算符2/2/202335单片机原理与接口技术(第3版)返回目录4.2.4 程序结构程序结构与与与与
50、ANSI ANSI C C一一一一样样样样,C51C51的的的的程程程程序序序序是是是是一一一一个个个个函函函函数数数数定定定定义义义义的的的的集集集集合合合合,可可可可以以以以由由由由任任任任意意意意个个个个函函函函数数数数构构构构成成成成,其其其其中中中中必必必必须须须须有有有有一一一一个主函数个主函数个主函数个主函数main()main()。程程程程序序序序的的的的执执执执行行行行是是是是从从从从主主主主函函函函数数数数main(main()开开开开始始始始的的的的,调调调调用用用用其其其其他他他他函函函函数数数数后后后后返返返返回回回回主主主主函函函函数数数数main(main(),最