(15.12)--第4章 C语言单片机原理与应用.ppt
《(15.12)--第4章 C语言单片机原理与应用.ppt》由会员分享,可在线阅读,更多相关《(15.12)--第4章 C语言单片机原理与应用.ppt(126页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、返回目录*1单片机原理与接口技术单片机原理与接口技术第第4章章 MCS-51C程序设计程序设计 返回目录本章教学要求(1)熟悉熟悉C51语法基础和程序结构。语法基础和程序结构。(2)掌握掌握C51结构化程序设计。结构化程序设计。(3)掌握掌握C51对单片机硬件的访问方法。对单片机硬件的访问方法。(4)掌握掌握C51函数定义与调用。函数定义与调用。(5)了解汇编语言和了解汇编语言和C51的混合编程。的混合编程。*2返回目录4.1 C51概述概述4.2 C51语法基础语法基础4.2.1 标识符和关键字标识符和关键字4.2.2 数据类型数据类型4.2.3 运算符和表达式运算符和表达式4.2.4 程序
2、结构程序结构*3本本 章章 目目 录录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 对特殊功能寄存器的访问对特殊功能寄存器的访问对特殊功能寄存器的访问对特殊功能寄存器的访问4 4.3.4 .3.4 对存储器和并行口的访问对存储器和并行口的访问对存储器和并行口的访问对存储器和并行口的访问4 4.3.5.3.5 位地址访问位地址访问位地址访问位地址访问4.3.6 4.3.6 中断函数中断函数中断
3、函数中断函数 返回目录*44 4.4 C51.4 C51结构化程序设计结构化程序设计结构化程序设计结构化程序设计4 4.4.1 .4.1 顺序结构程序顺序结构程序顺序结构程序顺序结构程序4 4.4.2 .4.2 选择结构程序选择结构程序选择结构程序选择结构程序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 4.5.5.3 C51.3 C51语言和语言和语言和语言和MCS-51MCS-51汇编汇编汇编汇编语言混合编程语言混合编程语言混合编程语言混合编程4 4.5.5.4 .4 编程优化的概念编程优化的概念编程优化的概念编程优化的概念习题与思考题习题与思考题习题与思考题习题与思考题本本 章章 目目 录录返回目录4.1 C51概述C语语言言是是一一种种通通用用的的程程序序设设计计语语言言,其其代代码码率率高高,数数据据类类型型及及运运算算符符丰丰富富,位位操操作作能能力力强强,适适用用于于各各种种应应用用的的程程序序设设计计。使使用用C语语言言进进行行单单片片机机应应用用系系统统开开发发
5、,具具有有编编程程灵灵活活、调调试试方方便便、目目标标代代码码编编译译效效率率高高的的特特点点。C语言也是目前语言也是目前使用最广的单片机应用系统编程语言使用最广的单片机应用系统编程语言。由由C语语言言编编程程的的单单片片机机应应用用程程序序,称称为为单单片片机机C语语言言程程序序。MCS-51系系列列单单片片机机开开发发系系统统的的编编译译软软件件可可以以对对51单单片片机机C语语言言源源程程序序进进行行编编译译,称称为为C51编编译译器器。在在C51编译软件中可进行编译软件中可进行51单片机单片机C语言程序的调试。语言程序的调试。*5返回目录4.1 C51概述1)扩展了专门访问扩展了专门访
6、问MCS-51单片机硬件的数据类型;单片机硬件的数据类型;2)存储类型按存储类型按MCS-51单片机存储空间分类;单片机存储空间分类;3)存储模式遵循存储空间选定编译器模式;存储模式遵循存储空间选定编译器模式;4)指针分为通用指针和存储器指针;指针分为通用指针和存储器指针;5)函数增加了中断函数和再入函数。函数增加了中断函数和再入函数。*6C51C51编译器针对编译器针对编译器针对编译器针对MCS-51MCS-51单片机硬件在下列几方面单片机硬件在下列几方面单片机硬件在下列几方面单片机硬件在下列几方面对对对对ANSI CANSI C进行了扩展。进行了扩展。进行了扩展。进行了扩展。返回目录使使用
7、用具具有有C51编编译译扩扩展展功功能能的的C语语言言进进行行MCS-51单单片片机机应应用用系统的开发编程,系统的开发编程,简称简称C51编程编程。C51编程具有编程具有以下特点以下特点。1)可可管管理理内内部部寄寄存存器器和和存存储储器器的的分分配配,编编程程时时,无无需需考考虑虑不不同存储器的寻址和数据类型等细节问题;同存储器的寻址和数据类型等细节问题;2)程程序序由由若若干干函函数数组组成成,具具有有良良好好的的模模块块化化结结构构、可可移移植植性性好、便于项目维护管理;好、便于项目维护管理;3)有有丰丰富富的的子子程程序序库库可可直直接接引引用用,从从而而大大大大减减少少用用户户编编
8、程程工工作量,提高编程效率;作量,提高编程效率;4)与汇编语言交叉编程。用汇编语言编写与硬件有关的程序,与汇编语言交叉编程。用汇编语言编写与硬件有关的程序,用用C51编写与硬件无关的运算程序,充分发挥两种语言的长处,编写与硬件无关的运算程序,充分发挥两种语言的长处,提高开发效率。提高开发效率。*74.1 C51概述概述返回目录4.1 C51概述C51编编程程和和汇汇编编语语言言编编程程过过程程一一样样。单单片片机机C语语言言源源程程序序经经过过编编辑辑、编编译译、连连接接后后生生成成目目标标程程序序(.BIN和和.HEX)文文件件,然然后后运运行行即即可可。调调试试51单单片片机机C语语言言程
9、程序序可可用用Keil C51编译器。编译器。注注意意,使使用用C51编编程程可可以以取取代代繁繁琐琐的的汇汇编编语语言言编编程程,但但仍仍需需要要了了解解MCS-51单单片片机机的的硬硬件件结结构构。所所以以对对于于单单片片机机系系统统的的开开发发应应采采用用汇汇编编语语言言与与C51混混合合编编程程的的方方法法更更为为有有效。效。*8返回目录4.2 C51 语法基础标标识识符符用用来来标标识识源源程程序序中中某某个个对对象象的的名名字字,这这些些对对象可以是语句、数据类型、函数、变量、数组等。象可以是语句、数据类型、函数、变量、数组等。标标识识符符由由字字符符串串、数数字字和和下下划划线线
10、等等组组成成,应应该该注注意意的的是是第第一一个个字字符符必必须须是是字字母母或或下下划划线线,不不能能用用数数字字开开头头,如如“1_a”是是错错误误的的,编编译译时时会会有有错错误误提提示示。在在C51编编译译器中,只支持标识符的前器中,只支持标识符的前32位为有效标识。位为有效标识。C51语语言言是是区区分分大大小小写写的的一一种种高高级级语语言言,如如“a_1”和和“A_1”是两个完全不同的标识符。是两个完全不同的标识符。*94.2.1 4.2.1 标识符和关键字标识符和关键字标识符和关键字标识符和关键字-标识符标识符返回目录C51中中有有些些库库函函数数的的标标识识符符是是以以下下划
11、划线线开开头头的的,所所以以一一般般不不要要以以下下划划线线开开头头命命名名用用户户自自定定义义标标识识符符。标标识识符符在在命命名名时时应应当当简单,含义清晰,这样有助于阅读理解程序。简单,含义清晰,这样有助于阅读理解程序。关关键键字字则则是是编编程程语语言言保保留留的的特特殊殊标标识识符符,它它们们具具有有固固定定的的名名称称和和含含义义,在在程程序序编编写写中中不不允允许许将将关关键键字字另另做做他他用用。C51中中的的关关键键字字除除了了有有ANSI C标标准准的的32个个关关键键字字外外,还还根根据据MCS-51单单片片机的特点扩展了相关的关键字机的特点扩展了相关的关键字。C51关键
12、字如表关键字如表5-1所示。所示。在在C51的的文文本本编编辑辑器器中中编编写写C程程序序,系系统统可可以以把把保保留留关关键键字字以不同颜色显示,如以不同颜色显示,如int关键字的默认颜色为天蓝色。关键字的默认颜色为天蓝色。*104.2.1 标识符和关键字标识符和关键字-关键字关键字返回目录*114.2.1 标识符和关键字标识符和关键字-关键字列表关键字列表返回目录*124.2.1 标识符和关键字标识符和关键字-关键字列表关键字列表返回目录*134.2.1 标识符和关键字标识符和关键字-关键字列表关键字列表返回目录4.2.2 数据类型C51具有具有ANSI C的所有标准数据类型。的所有标准数
13、据类型。其基本数据类型包括:其基本数据类型包括:char、int、short、long、float和和double。对对C51编译器来说,编译器来说,short类型和类型和int类型相类型相同,同,double类型和类型和float类型相同。类型相同。*14-C51的数据类型的数据类型返回目录4.2.2 数据类型*15除除除除此此此此之之之之外外外外,为为为为了了了了更更更更加加加加有有有有利利利利地地地地利利利利用用用用MCS-51MCS-51的的的的结结结结构构构构,C51C51还还还还增增增增加加加加了了了了一一一一些些些些特特特特殊殊殊殊的的的的数数数数据据据据类类类类型型型型,包包包
14、包括括括括bitbit、sbitsbit、sfrsfr、sfr16sfr16。数据类型如表数据类型如表数据类型如表数据类型如表4-24-2所示。所示。所示。所示。-C51的数据类型的数据类型返回目录4.2.2 数据类型char类类型型的的长长度度是是1B,通通常常用用于于定定义义处处理理字字符符数数据据的的变变量或常量量或常量。unsigned char类类型型用用字字节节中中所所有有的的位位表表示示数数值值,可可以以表表达的数值范围是达的数值范围是0255。signed char类类型型用用字字节节中中最最高高位位表表示示数数据据的的符符号号,0表表示示正正数数,1表表示示负负数数,负负数数
15、用用补补码码表表示示,能能表表示示的的数数值值范范围围是是-128+127。unsigned char常常用用于于处处理理ASCII字字符符或或用用于处理小于或等于于处理小于或等于255的整型数。的整型数。*161 1charchar字符类型字符类型字符类型字符类型-char字符类型字符类型返回目录2int整型int整型长度为整型长度为2B,用于存放一个,用于存放一个双字节数据双字节数据。signed int表表示示的的数数值值范范围围是是-32768+32767,字字节节中中最高位表示数据的符号,最高位表示数据的符号,0表示正数,表示正数,1表示负数。表示负数。unsigned int表示的
16、数值范围是表示的数值范围是065535。*174.2.2 数据类型数据类型-int整型整型返回目录4.2.2 数据类型long长整型长度为长整型长度为4B,用于存放一个,用于存放一个四字节数据四字节数据。分分有有符符号号long长长整整型型signed long和和无无符符号号long长长整整型型unsigned long,默认值为,默认值为signed long类型。类型。signed int表表 示示 的的 数数 值值 范范 围围 是是-2147483648+2147483647,字字节节中中最最高高位位表表示示数数据据的的符符号号,0表表示示正数,正数,1表示负数。表示负数。unsign
17、ed long表示的数值范围是表示的数值范围是04294967295。*183 3longlong长整型长整型长整型长整型-long长整型长整型返回目录4float浮点型float浮点型在十进制中具有浮点型在十进制中具有7位有效数字,是符合位有效数字,是符合IEEE-754标准(标准(32)的)的单精度浮点型数据,占用单精度浮点型数据,占用4B。具有具有24位精度。位精度。*194.2.2 数据类型数据类型-float浮点型浮点型返回目录5*指针型指指针针型型本本身身就就是是一一个个变变量量,在在这这个个变变量量中中存存放放着着指指向向另另一一个个数数据据的的地地址址。这这个个指指针针变变量量
18、要要占占据据一一定定的的内内存存单单元元,对对不不同同的的处处理理器器长长度度也也不不尽尽相相同同,在在C51中中它它的的长长度度一一般般为为13个个字节。字节。*204.2.2 数据类型数据类型-*指针型指针型返回目录4.2.2 数据类型bit位位标标量量是是C51编编译译器器的的一一种种扩扩充充数数据据类类型型,利利用用它它可可定定义义一一个个位位标标量量。它它的的值值是是一一个个二二进进制制位位,不不是是0,就就是是1,类类似似一一些些高高级语言中的级语言中的boolean型数据的型数据的True和和False。*216 6bitbit位标量位标量位标量位标量-bit位标量位标量返回目录
19、7sfr特殊功能寄存器sfr是是一一种种C51扩扩充充数数据据类类型型,占占用用一一个个内内存存单单元元,值域为值域为0255。利利用用它它可可以以访访问问MCS-51单单片片机机内内部部的的所所有有特特殊殊功功能能寄存器。寄存器。如如用用sfr P1=0 x90定定义义一一个个特特殊殊功功能能寄寄存存器器变变量量“P1”,0 x90是是指指51单单片片机机的的P1端端口口地地址址90H,变变量量P1即指即指51单片机的单片机的P1端口端口。在在后后面面的的语语句句中中可可以以用用P1=255(对对P1端端口口的的所所有有引脚置高电平)之类的语句操作特殊功能寄存器。引脚置高电平)之类的语句操作
20、特殊功能寄存器。*224.2.2 数据类型数据类型-sfr特殊功能寄存器特殊功能寄存器返回目录8.sfr16 16位特殊功能寄存器sfr16也也是是一一种种C51扩扩充充数数据据类类型型,用用于于定定义义存存在在于于MCS-51单单片片机机内内部部RAM的的16位位特特殊殊功功能能寄寄存存器器,如定时器如定时器T0和和T1。sfr16型数据占用型数据占用2个内存单元,取值范围为个内存单元,取值范围为065535。*234.2.2 数据类型数据类型-16位特殊功能寄存器位特殊功能寄存器返回目录4.2.2 数据类型sbit也也是是一一种种C51扩扩充充数数据据类类型型,利利用用它它可可以以访访问问
21、芯芯片片内内部部RAM中中的的可可寻寻址址位位或或特特殊殊功功能能寄寄存存器器中中的的可可寻寻址址位位。定定义义方方法法有有如下三种:如下三种:(1)sbit 位变量名位变量名=位地址位地址将将位位的的绝绝对对地地址址赋赋给给位位变变量量,位位地地址址必必须须位位于于80HFFH(特特殊功能寄存器的位地址)之间。殊功能寄存器的位地址)之间。(2)sbit 位变量名位变量名=特殊功能寄存器名特殊功能寄存器名位位置位位置当当可可寻寻址址位位位位于于特特殊殊功功能能寄寄存存器器中中时时,可可采采用用这这种种方方法法。位位位位置是一个置是一个07之间的常数。之间的常数。(3)sbit 位变量名位变量名
22、=字节地址字节地址位位置位位置这这种种方方法法是是以以一一个个常常数数(字字节节地地址址)作作为为基基地地址址,该该常常数数必必须须在在80HFFH(特特殊殊功功能能寄寄存存器器的的字字节节地地址址)之之间间。位位位位置置是是一一个个07之间的常数之间的常数。*249 9sbitsbit可寻址位可寻址位可寻址位可寻址位-sbit可寻址位可寻址位返回目录4.2.2 数据类型MCS-51单单片片机机中中的的特特殊殊功功能能寄寄存存器器及及其其可可寻寻址址位位,已已被被预预先先定定义义放放在在文文件件reg51.h中中,在在程程序序的的开开头头只需加上只需加上#include或或#include即可
23、。即可。另另外外,bit还还可可访访问问MCS-51单单片片机机片片内内20H2FH范范围围内内的的位位对对象象。C51编编译译器器提提供供了了一一个个bdata存存储储器器类类型型,允允许许将将具具有有bdata类类型型的的对对象象放放入入MCS-51单片机片内可位寻址区。单片机片内可位寻址区。*25-reg51.h返回目录sbit和和bit的区别:的区别:sbit定定义义特特殊殊功功能能寄寄存存器器中中的的可可寻寻址址位位;而而bit则则定定义义了了一一个个普普通通的的位位变变量量,一一个个函函数数中中可可包包含含bit类型的参数,函数返回值也可为类型的参数,函数返回值也可为bit类型。类
24、型。*264.2.2 数据类型数据类型-sbit和和bit返回目录4.2.3 运算符和表达式C51算术运算符有五种:算术运算符有五种:+加法运算符或正号加法运算符或正号-减法运算符或负号减法运算符或负号*乘法运算符乘法运算符/除法运算符除法运算符%模(求余)运算符模(求余)运算符优先级:先乘除,后加减,先括号内,再括号外优先级:先乘除,后加减,先括号内,再括号外。结合性:自左至右方向。结合性:自左至右方向。模运算即求余数,如,模运算即求余数,如,7%3,结果是,结果是7除以除以3所得余数所得余数1*27 1 1C51C51的算术运算符的算术运算符的算术运算符的算术运算符-算术运算符算术运算符返
25、回目录4.2.3 运算符和表达式C51关系运算符有六种:关系运算符有六种:大于大于=大于等于大于等于=相等相等!=不相等不相等优先级:前四个高,后两个优先级:前四个高,后两个“=”和和“!=”级别低。级别低。结合性:自左至右方向。结合性:自左至右方向。关系表达式的结果是逻辑值关系表达式的结果是逻辑值“真真”或或“假假”,C51中以中以“1”代表真,代表真,“0”代表假。代表假。*282 2C51C51关系运算符关系运算符关系运算符关系运算符-关系运算符关系运算符返回目录4.2.3 运算符和表达式C51逻辑运算符有三种:逻辑运算符有三种:&逻辑与逻辑与|逻辑或逻辑或 !逻辑非逻辑非优先级:逻辑非
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 15.12-第4章 C语言单片机原理与应用 15.12 语言 单片机 原理 应用
限制150内