第3章-C51语言编程基础ppt课件.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第3章-C51语言编程基础ppt课件.ppt》由会员分享,可在线阅读,更多相关《第3章-C51语言编程基础ppt课件.ppt(153页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物1 1 第3章 C51语言编程基础与语言编程基础与 Keil Vision3开发平台开发平台 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证
2、实我的猜测没有错:表里边有一个活的生物2 2单片机应用系统日趋复杂,对单片机应用系统日趋复杂,对程序的可读性、升级与维护以及模块化要求越程序的可读性、升级与维护以及模块化要求越来越高来越高,对软件编程要求也越来越高,要求编程人员在短时间内编写出执,对软件编程要求也越来越高,要求编程人员在短时间内编写出执行效率高、运行可靠的程序代码。同时,也要方便多个编程人员来进行协行效率高、运行可靠的程序代码。同时,也要方便多个编程人员来进行协同开发。同开发。C51C51语言是近年来在语言是近年来在80518051单片机开发中,普遍使用的程序设计语言,能单片机开发中,普遍使用的程序设计语言,能直接对直接对80
3、518051单片机硬件进行操作,既有高级语言特点,又有汇编语言特点单片机硬件进行操作,既有高级语言特点,又有汇编语言特点,因此,因此在在80518051单片机程序设计中,得到广泛使用。单片机程序设计中,得到广泛使用。本章介绍本章介绍80518051单片机的单片机的C51C51语言,以及如何使用语言,以及如何使用C51C51语言集成化开发平台语言集成化开发平台Keil Keil Vision3Vision3,进行,进行C51C51程序设计与开发。程序设计与开发。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物
4、我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物3.1 C513.1 C51编程语言简介编程语言简介用于用于80518051单片机编程的单片机编程的C C语言,在标准语言,在标准C C基础上针对基础上针对80518051硬件特点进行扩硬件特点进行扩展,并向展,并向80518051上移植,经多年努力,上移植,经多年努力,C51C51已成为公认的高效、简洁的已成为公认的高效、简洁的80518051单片机的实用高级编程语言。与单片机的实用高级编程语言。与80518051汇编语言相比,汇编语言相比,C51C51语言
5、在语言在功能上、结构性、可读性、可维护性上有明显优势,易学易用。功能上、结构性、可读性、可维护性上有明显优势,易学易用。3.1.1 C513.1.1 C51语言与语言与80518051汇编语言比较汇编语言比较与与80518051汇编语言相比,汇编语言相比, C51C51有如下优点。有如下优点。(1 1)可读性好)可读性好。C51C51语言程序比汇编语言程序的可读性好,编程效率高语言程序比汇编语言程序的可读性好,编程效率高,程序,程序便于修改、维护以及升级便于修改、维护以及升级。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表
6、里边有一个活的生物我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物4 4(2 2)模块化开发与资源共享模块化开发与资源共享。用。用C51C51开发的程序模块可不经修改,直接开发的程序模块可不经修改,直接被其他工程所用,使得开发者能够很好地被其他工程所用,使得开发者能够很好地利用已有的大量标准利用已有的大量标准C C程序资源程序资源与丰富的库函数,减少重复劳动,与丰富的库函数,减少重复劳动,同时也有利于多个工程师进行协同开同时也有利于多个工程师进行协同开发。发。(3 3)可移植性好。可移植性好。为某种型号单片
7、机开发的为某种型号单片机开发的C C语言程序,只需把与硬件语言程序,只需把与硬件相关的相关的头文件头文件和和编译链接的参数编译链接的参数进行适当修改,就可方便地移植到其他进行适当修改,就可方便地移植到其他型号的单片机上。型号的单片机上。例如例如,为,为80518051单片机编写的程序通过改写头文件以及单片机编写的程序通过改写头文件以及少量的程序行,就可方便地移植到少量的程序行,就可方便地移植到PICPIC单片机上。单片机上。(4 4)生成的代码效率高。生成的代码效率高。当前较好的当前较好的C51C51语言编译系统编译出来的代码语言编译系统编译出来的代码效率只比直接使用汇编语言效率只比直接使用汇
8、编语言低低20%20%左右,如果使用左右,如果使用优化编译选项优化编译选项,最高可,最高可达到达到90%90%左右。左右。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物5 53.1.2 C513.1.2 C51语言与标准语言与标准C C语言的比较语言的比较C51C51语言与标准语言与标准C C语言间有许多相同地方,但也有自身特点。不同的嵌入式语言间有许多相同地方,但也有自
9、身特点。不同的嵌入式C C语言编译系统之所以与标准语言编译系统之所以与标准C C语言有不同的地方,主要是由于它们所语言有不同的地方,主要是由于它们所针对的硬件系统不同。对于针对的硬件系统不同。对于80518051单片机,目前广泛使用的是单片机,目前广泛使用的是C51C51语言。语言。C51C51语言基本语法与标准语言基本语法与标准C C相同,是相同,是在标准在标准C C的基础上的基础上进行适合进行适合80518051内核单内核单片机硬件的扩展片机硬件的扩展。深入理解。深入理解C51C51语言语言对标准对标准C C语言的语言的扩展部分扩展部分以及它们以及它们的不同之处,是掌握的不同之处,是掌握C
10、51C51语言的关键之一。语言的关键之一。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物6 6C51C51语言与标准语言与标准C C语言语言一些差别一些差别如下。如下。 (1 1)库函数不同。)库函数不同。标准标准C C中不适合于嵌入式控制器系统的库函数,被排中不适合于嵌入式控制器系统的库函数,被排除在除在C51C51语言之外,如字符屏幕和图形函数。有些库函数必须针对语言
11、之外,如字符屏幕和图形函数。有些库函数必须针对80518051的硬的硬件特点来做出相应的开发。件特点来做出相应的开发。 例如,例如,在标准在标准C C中,库函数中,库函数printfprintf和和scanfscanf,常用于屏幕打印和接收字符,常用于屏幕打印和接收字符,而在,而在C51C51语言中,主要用于语言中,主要用于串行口数据的收发串行口数据的收发。 (2 2)数据类型有一定区别)数据类型有一定区别。在。在C51C51中增加几种中增加几种80518051单片机的数据类型,单片机的数据类型,在标准在标准C C的基础上又扩展了的基础上又扩展了4 4种类型。例如,种类型。例如,8051805
12、1单片机包含位操作空间和单片机包含位操作空间和丰富的位操作指令,因此,丰富的位操作指令,因此,C51C51语言与标准语言与标准C C语言相比语言相比增加了增加了位类型位类型。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物7 7 (3 3)C51C51语言变量存储模式与标准语言变量存储模式与标准C C语言中变量存储模式数据不一样语言中变量存储模式数据不一样。标。标准准C C
13、最初是为通用计算机设计的,在通用计算机中只有一个程序和数据统一最初是为通用计算机设计的,在通用计算机中只有一个程序和数据统一寻址的内存空间,而寻址的内存空间,而C51C51语言中语言中变量的存储模式变量的存储模式与与80518051单片机的单片机的各种存储器各种存储器区紧密相关区紧密相关。 (4 4)数据存储类型不同)数据存储类型不同。80518051存储区可分为存储区可分为内部数据存储区、外部数据内部数据存储区、外部数据存储区以及程序存储区存储区以及程序存储区。 内部数据存储区内部数据存储区可分为可分为3 3个不同的个不同的C51C51存储类型:存储类型:datadata、idataidat
14、a和和bdatabdata。 外部数据存储区分外部数据存储区分为为2 2个不同的个不同的C51C51存储类型:存储类型:xdataxdata和和p pdatadata。 程序存储区程序存储区只能读不能写,可能在只能读不能写,可能在80518051内部或者在外部,内部或者在外部,C51C51语言提供语言提供的的codecode存储类型用来访问程序存储区。存储类型用来访问程序存储区。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是
15、我也感到愉快,证实我的猜测没有错:表里边有一个活的生物8 8 (5 5)标准)标准C C语言没有处理单片机中断的定义语言没有处理单片机中断的定义,而,而C51C51语言中有专门的中语言中有专门的中断函数。断函数。(6 6)头文件不同)头文件不同。C51C51语言头文件必须把语言头文件必须把80518051单片机内部的外设硬件资单片机内部的外设硬件资源(如定时器、中断、源(如定时器、中断、I/OI/O等)相应的等)相应的特殊功能寄存器特殊功能寄存器写入写入到头文件到头文件内内,而标准,而标准C C不用。不用。 (7 7)程序结构的差异)程序结构的差异。由于。由于80518051单片机的硬件资源有
16、限,它的编译系单片机的硬件资源有限,它的编译系统统不允许太多的程序嵌套不允许太多的程序嵌套。其次,标准。其次,标准C C语言所具备的语言所具备的递归特性递归特性不被不被C51C51语言支持。语言支持。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物9 9但从数据运算操作、程序控制语句以及函数的使用上来说,但从数据运算操作、程序控制语句以及函数的使用上来说,C51C51与标准
17、与标准C C几几乎没有什么明显差别。如果程序设计者具备了有关标准乎没有什么明显差别。如果程序设计者具备了有关标准C C语言的编程基础语言的编程基础,只要注意,只要注意C51C51与标准与标准C C不同之处,并熟悉不同之处,并熟悉80518051单片机的硬件结构,就能单片机的硬件结构,就能较快掌握较快掌握C51C51编程。编程。3.2 C513.2 C51语言程序设计基础语言程序设计基础本节在标准本节在标准C C基础上,了解掌握基础上,了解掌握C51C51的数据类型和存储类型、的数据类型和存储类型、C51C51的基本运算的基本运算与流程控制语句、与流程控制语句、C51C51语言构造数据类型、语言
18、构造数据类型、C51C51函数以及函数以及C51C51程序设计的其程序设计的其他一些问题,为他一些问题,为C51C51的程序开发打下基础的程序开发打下基础。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物10103.2.1 C513.2.1 C51语言中的数据类型与存储类型语言中的数据类型与存储类型1 1数据类型数据类型 数据是单片机操作的对象,具有一定格式的数字或数值,
19、数据的不同格数据是单片机操作的对象,具有一定格式的数字或数值,数据的不同格式就称为式就称为数据类型数据类型。 Keil C51 Keil C51支持的基本数据类型见支持的基本数据类型见表表3-13-1。 针对针对80518051的硬件特点,的硬件特点,C51C51在标准在标准C C基础上,基础上,扩展了扩展了4 4种数据类型种数据类型(见表(见表3-13-1中最后中最后4 4行)。行)。 注意,扩展的注意,扩展的4 4种数据类型,不能使用指针来对它们存取。种数据类型,不能使用指针来对它们存取。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我
20、的猜测没有错:表里边有一个活的生物我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物12122 2C51C51的扩展数据类型的扩展数据类型 下面对扩展的下面对扩展的4 4种数据类型说明。种数据类型说明。 (1 1)位变量位变量bitbit的值
21、的值可以是可以是1 1(truetrue),也可是),也可是0 0(falsefalse)。)。 (2 2)特殊功能寄存器特殊功能寄存器sfrsfr。80518051单片机的特殊功能寄存器分布在片内数单片机的特殊功能寄存器分布在片内数据存储区的地址单元据存储区的地址单元80H80HFFHFFH之间之间,“sfrsfr”数据类型数据类型占用一个内存单元。占用一个内存单元。利用它可访问利用它可访问80518051单片机内部的所有特殊功能寄存器。单片机内部的所有特殊功能寄存器。 例如:例如:sfr P1=0 x90sfr P1=0 x90这一语句定义了这一语句定义了P1P1端口在片内的寄存器,在程序
22、后端口在片内的寄存器,在程序后续的语句中可以续的语句中可以用用“P1=0 xffP1=0 xff”,使,使P1P1的所有引脚输出为高电平的语句来操的所有引脚输出为高电平的语句来操作特殊功能寄存器。作特殊功能寄存器。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物(3 3)特殊功能寄存器)特殊功能寄存器sfr16sfr16。 “sfr16sfr16”数据类型数据类型占用两个内
23、存单元占用两个内存单元,用于操作占两个字节的特殊功能寄,用于操作占两个字节的特殊功能寄存器。存器。例如例如:“sfr16 DPTR=0 x82sfr16 DPTR=0 x82”语句定义了片内语句定义了片内1616位数据指针寄存器位数据指针寄存器DPTRDPTR,其低,其低8 8位字节地址为位字节地址为82H82H,高,高8 8位字节地址为位字节地址为83H83H。在程序的后续语句。在程序的后续语句中就可对中就可对DPTRDPTR进行操作。进行操作。(4 4)特殊功能位)特殊功能位sbitsbit。 sbitsbit是指是指AT89S51AT89S51片内特殊功能寄存器的可寻址位。例如:片内特殊
24、功能寄存器的可寻址位。例如: sfrsfrPSW=0 xd0PSW=0 xd0;/定义定义PSWPSW寄存器地址为寄存器地址为0 xd00 xd0sbitsbitOV=PSW2OV=PSW2;/定义定义OVOV位为位为PSW.2PSW.2 符号符号“ ”前是特殊功能寄存器名字,前是特殊功能寄存器名字,“ ”后的数字定义特殊功能寄存器后的数字定义特殊功能寄存器可寻址位在寄存器中的位置,取值必须是可寻址位在寄存器中的位置,取值必须是0 07 7。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物我吓了一跳,蝎子是
25、多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物1414 注意,注意,不要把不要把bitbit与与sbitsbit相混淆相混淆。bitbit定义定义普通的位变量普通的位变量,只能是二进制,只能是二进制的的0 0或或1 1。sbitsbit是定义特殊功能寄存器的是定义特殊功能寄存器的可寻址位可寻址位,值是可以进行位寻址的,值是可以进行位寻址的特殊功能寄存器的某位的绝对地址,特殊功能寄存器的某位的绝对地址,例如,例如,PSWPSW寄存器寄存器OVOV位的绝对地址位的绝对地址0 xd20 xd2。上面的例子还涉及到上面的例子还涉及
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C51 语言 编程 基础 ppt 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内