1、80C51单片机考试复习重点总结1.电子计算机的开展概述电子计算机的开展概述2.单片机的开展过程及产品近况单片机的开展过程及产品近况 3.单片机的特点单片机的特点4.单片机应用系统开发简介单片机应用系统开发简介第第1 1、3 3章章 单片机应用概述与开发步骤单片机应用概述与开发步骤单片机简介单片机简介2单片机及其展过程单片机及其展过程 单片机是什么?单片机是单片微型计算机的简称,它是在一块半导体芯片上,集成了CPU、半导体存储器、I/O(Input/Output)接口、中断系统和定时器等计算机必备部件,所构成的一个完整的数字电子计算机。第第1 1、3 3章章 单片机应用概述与开发步骤单片机应用
2、概述与开发步骤3 单片机现状 单片机经过约30年的开展,已经形成有几千种型号上百种品牌的半导体产业,对电子信息技术、工业控制技术、军事技术的开展起到巨大的推动作用。目前主流的单片机:51内核的系列单片机 Microchip公司的PIC系列单片机 Motorola公司的68系列 Texas Instrument公司的MSP16bit系列单片机 ARM内核的32bit系列单片机第第1 1、3 3章章 单片机应用概述与开发步骤单片机应用概述与开发步骤4单片机应用系统开发简介 单片机应用系统单片机应用系统是以是以单片机为核心单片机为核心构成的智能化产品。构成的智能化产品。为了实现产品的智能化处理与智能
3、化控制,还要嵌入为了实现产品的智能化处理与智能化控制,还要嵌入相应的控制程序,称之为单片机应用软件。相应的控制程序,称之为单片机应用软件。嵌入了应用软件的单片机系统称为单片机应用系统。嵌入了应用软件的单片机系统称为单片机应用系统。单片机是单片机系统中的一个器件,单片机系统是构单片机是单片机系统中的一个器件,单片机系统是构成某一单片机应用系统的全部硬件电路,成某一单片机应用系统的全部硬件电路,单片机应用单片机应用系统是单片机系统和应用软件相结合的产物。系统是单片机系统和应用软件相结合的产物。第第1 1、3 3章章 单片机应用概述与开发步骤单片机应用概述与开发步骤5单片机应用系统的研制步骤和方法单
4、片机应用系统开发的软硬件环境Keil C51高级语言集成开发环境基于Proteus的单片机系统仿真4.4.单片机应用系统开发简介Proteus开发环境第第1 1、3 3章章 单片机应用概述与开发步骤单片机应用概述与开发步骤6单片机应用系统单片机应用系统的研制流程如图的研制流程如图所示所示:第第1 1、3 3章章 单片机应用概述与开发步骤单片机应用概述与开发步骤7硬件系统硬件系统 根据总体设计中确立的功能特性要求,确定单片机的型号、所需外围扩展芯片、存储器、I/O电路、驱动电路,可能还有A/D和D/A转换电路以及其它模拟电路,设计出应用系统的电路原理图设计出应用系统的电路原理图。第第1 1、3
5、3章章 单片机应用概述与开发步骤单片机应用概述与开发步骤8硬件设计硬件设计 硬件电路做成目标板运用PROTEUS、PROTEL等软件第第1 1、3 3章章 单片机应用概述与开发步骤单片机应用概述与开发步骤9软件系统软件系统 系统资源分配系统资源分配 程序构造程序构造 数学模型数学模型 程序流程程序流程 编制程序编制程序第第1 1、3 3章章 单片机应用概述与开发步骤单片机应用概述与开发步骤10 程序设计 通常是C语言或者汇编语言,在特定的集成开发环境IDE中编程调试,比方应用最广泛的KEIL uVision3第第1 1、3 3章章 单片机应用概述与开发步骤单片机应用概述与开发步骤11单片机应用
6、系统的研制步骤和方法简介。第第1 1、3 3章章 单片机应用概述与开发步骤单片机应用概述与开发步骤12一个典型的单片机系统开发环境组成如以下图。一个典型的单片机系统开发环境组成如以下图。单片机系统开发环境组成第第1 1、3 3章章 单片机应用概述与开发步骤单片机应用概述与开发步骤134.1 MCS-514.1 MCS-51系列及系列及80C5180C51系列单片机简介系列单片机简介4.2 80C514.2 80C51系列单片机外引脚功能系列单片机外引脚功能4.3 80C514.3 80C51单片机内部构造单片机内部构造4.4 4.4 低功耗运行方式低功耗运行方式4.5 80C514.5 80C
7、51单片机最小系统单片机最小系统重点重点重点144.1MCS-51系列及系列及80C51系列单片机简介系列单片机简介MCS-51系列和系列和80C51系列单片机系列单片机Intel公司推出的系列单片机有:MCS-48、MCS-51、MCS-96系列。Intel公司单片机系列的符号包括51和52两个子系列。第第4 4章章 80C51 80C51单片机硬件根底知识单片机硬件根底知识15基于基于HMOSHMOS工艺,工艺,它们的指令系统它们的指令系统与芯片引脚完全与芯片引脚完全兼容,只是片内兼容,只是片内程序存储器程序存储器ROMROM有所不同。有所不同。51系列单片机系列单片机8031805187
8、5l80C3180C5187C5l第第4 4章章 80C51 80C51单片机硬件根底知识单片机硬件根底知识16MCS-51系列单片机内部组成系列单片机内部组成8位位CPU。片内带振荡器及时钟电路。片内带振荡器及时钟电路。128B片内数据片内数据存储器存储器。4KB片内程序片内程序存储器存储器(8031/80C31无)。无)。程序程序存储器存储器的寻址范围为的寻址范围为64KB。片外数据片外数据存储器存储器的寻址范围为的寻址范围为64KB。21B特殊功能寄存器。特殊功能寄存器。48根根I/O线。线。1个全双工串行个全双工串行I/O接口,可多机通信。接口,可多机通信。2个个16位定时器位定时器/
9、计数器。计数器。中断系统有中断系统有5个中断源,可编程为两个优先级。个中断源,可编程为两个优先级。111条指令,含乘法指令和除法指令。条指令,含乘法指令和除法指令。布尔处理器。布尔处理器。使用单使用单5V电源。电源。51子系列子系列的主要功的主要功能为:能为:第第4 4章章 80C51 80C51单片机硬件根底知识单片机硬件根底知识17与与5151子系列的不同之处在于:片内数据存储器增至子系列的不同之处在于:片内数据存储器增至256B256B,片内,片内程序存储器增至程序存储器增至8KB8KB8032/80C328032/80C32无,有无,有26B26B的特殊功能存放的特殊功能存放器,有器,
10、有3 3个个1616位定时器位定时器/计数器,有计数器,有6 6个中断源。其他性能均与个中断源。其他性能均与5l5l子系列一样。子系列一样。52系列单片机系列单片机80328052875280C3280C5287C52第第4 4章章 80C51 80C51单片机硬件根底知识单片机硬件根底知识18Intel 80C51系列单片机产品命名规那么 第第4 4章章 80C51 80C51单片机硬件根底知识单片机硬件根底知识194.280C51系列单片机外引脚功能系列单片机外引脚功能常用两种封装为双列直插式常用两种封装为双列直插式DIP40和方形封装式和方形封装式LCC44P1P1口口P3P3口口P0P
11、0口口P2P2口口 时钟端时钟端 复位端复位端控制信号控制信号 接接VCCVCC(+5V+5V)接地端接地端204.280C51系列单片机外引脚功能系列单片机外引脚功能第第4 4章章 80C51 80C51单片机硬件根底知识单片机硬件根底知识21地址、数据和控制:三总线构造地址、数据和控制:三总线构造80C51三总线具有以下特点:三总线具有以下特点:1P0口的地址口的地址/数据复用。数据复用。2两个独立的并行扩展空间。两个独立的并行扩展空间。3外围数据存储器扩展的统一编址。外围数据存储器扩展的统一编址。锁存器锁存器第第4 4章章 80C51 80C51单片机硬件根底知识单片机硬件根底知识228
12、0C51单片机内部构造框图23中央处理器中央处理器CPU 单片机最核心的局部是CPU,可以说CPU是单片机的大脑和心脏。第第4 4章章 80C51 80C51单片机硬件根底知识单片机硬件根底知识24存储器组织存储器组织(哈佛构造哈佛构造)25在程序存储器中,在程序存储器中,以下单元具有特殊功能以下单元具有特殊功能0000H:80C51复位后,复位后,PC=0000H,即程序,即程序从从0000H开场执行指令。开场执行指令。0003H:外部中断:外部中断0入口。入口。000BH:定时器:定时器0溢出中断入口。溢出中断入口。0013H:外部中断:外部中断1入口。入口。001BH:定时器:定时器1溢
13、出中断入口。溢出中断入口。0023H:串行口中断入口。:串行口中断入口。002BH:定时器:定时器2入口仅入口仅52子系列有。子系列有。程序存储器程序存储器51子序列子序列程序存储器用于存放编好的程序或表格常数程序存储器用于存放编好的程序或表格常数26数据存储器数据存储器 数据存储器用于存放数据存储器用于存放中间运算结果、数据暂存和中间运算结果、数据暂存和缓冲、标志位等缓冲、标志位等。80C51系列单片机数据存储器有片内和片外之分。片内又有RAM和SFR之分,这几个局部的访问指令不同的,从这一点看,数据存储器的使用比程序存储器略微复杂点。采用C51语言编程那么要简单许多。第第4 4章章 80C
14、51 80C51单片机硬件根底知识单片机硬件根底知识27 这样可把数据存储器分为片外数据存储器、片内片外数据存储器、片内数据存储器、特殊功能存储器数据存储器、特殊功能存储器,以下分别加以介绍。1片内数据存储器片内数据存储器片内数据存储器分为工作存放器区、位寻址区、数据片内数据存储器分为工作存放器区、位寻址区、数据缓冲器区等三个区域。缓冲器区等三个区域。第第4 4章章 80C51 80C51单片机硬件根底知识单片机硬件根底知识28工作存放器区工作存放器区00H1FH单元为工作存放器区。工作存放器也称通用存放器,供用户编程时使单元为工作存放器区。工作存放器也称通用存放器,供用户编程时使用,临时存放
15、用,临时存放8位信息。位信息。80c51单片机片内单片机片内RAM配置配置1片内数据存储器片内数据存储器29位寻址区 20H2FH单元是位寻址区,该区的每一位都赋予了一个位地址。数据缓冲区 30H7FH是数据缓冲区,即用户RAM区,共80个单元。堆栈与堆栈指针堆栈与堆栈指针片内片内RAM的局部的局部单元还可以用作堆单元还可以用作堆栈。栈。1片内数据存储器片内数据存储器302特殊功能存放器特殊功能存放器 所有单片机片内外设是依靠对内部特殊功能存放器的操作实现其功能的,80C51也不例外,特殊功能存放器SFR,Special Function Register也称专用存放器,专用于控制、管理单片机
16、内部算术逻辑部件、并行I/O口、串行I/O口、定时器/计数器、中断系统等功能模块的工作,用户在编程时可以置数设定,不能移作他用。通过特殊功能存放器可实现对单片机内部资源的通过特殊功能存放器可实现对单片机内部资源的操作和管理。操作和管理。第第4 4章章 80C51 80C51单片机硬件根底知识单片机硬件根底知识31常用特殊功能存放器常用特殊功能存放器32常用特殊功能存放器常用特殊功能存放器第第4 4章章 80C51 80C51单片机硬件根底知识单片机硬件根底知识33端口端口P0P3特殊功能存放器特殊功能存放器P0P3分别是分别是I/O端口端口P0P3的锁存的锁存器。器。80C51单片机是把单片机
17、是把I/O当作一般的特殊功能存放器当作一般的特殊功能存放器使用,不专设端口操作指令,使用方便。使用,不专设端口操作指令,使用方便。常用特殊功能存放器常用特殊功能存放器第第4 4章章 80C51 80C51单片机硬件根底知识单片机硬件根底知识344.5 80C51单片机最小系统单片机最小系统就是能使单片机工作的最少的器单片机最小系统就是能使单片机工作的最少的器件构成的系统,是大多数控制系统所必不可少的件构成的系统,是大多数控制系统所必不可少的关键局部。关键局部。35图为80C32单片机的外部扩展总线。扩展外部接口电路扩展外部接口电路第第4 4章章 80C51 80C51单片机硬件根底知识单片机硬
18、件根底知识36将80C32单片机的外部扩展总线接到外部程序存储器的地址总线、数据总线和控制总线,即构成80C32单片机最小系统。扩展外部接口电路扩展外部接口电路第第4 4章章 80C51 80C51单片机硬件根底知识单片机硬件根底知识375.1计算机语言概述计算机语言概述5.280C51单片机寻址方式单片机寻址方式5.380C51单片机指令系统单片机指令系统5.480C51汇编语言程序设计汇编语言程序设计5.580C51单片机单片机C51程序设计语言程序设计语言5.6C51的运算符和表达式的运算符和表达式5.7C51的库函数的库函数5.8C51的应用技巧的应用技巧暂时不讲38单片机应用系统单片
19、机应用系统硬件软件程序设计程序设计的最终结果是软件。第第5 5章章 80C51 80C51单片机软件根底知识单片机软件根底知识39机器语言是计算机唯一能识别的语言,用汇编语言和高级语言机器语言是计算机唯一能识别的语言,用汇编语言和高级语言编写的程序称为源程序最终都必须翻译成机器语言的程序编写的程序称为源程序最终都必须翻译成机器语言的程序称为目标程序,计算机才能识别。称为目标程序,计算机才能识别。计算机语言计算机语言e100 33 f6 bf 0 20 b5 10 f3 a5 8c c8 5 0 2 50 68 13 1 cb e 1f be a1 1 bf 0 1e11b 6 57 b8 11
20、 1 bb 21 13 89 7 4b 4b 48 79 f9 ad 86 e0 8b c8 bd ff ff e8 20e134 0 3d 0 1 74 1a 7f 3 aa eb f3 2d ff 0 50 e8 f 0 5a f7 d8 8b d8 26 8a 1 aae14f 4a 75 f9 eb de cb 57 bb 21 13 8b c1 40 f7 27 f7 f5 8b fb ba 11 1 4f 4f 4ae168 39 5 7f f9 52 8b c5 f7 25 f7 37 2b c8 95 f7 65 2 f7 37 95 2b e8 fe e fee181 10
21、79 6 c6 6 fe 10 7 46 d0 14 d1 d1 d1 e5 79 ec 5a b8 11 1 ff 7 4b 4b 48e19b 3b d0 75 f7 5f c3 83 f7 83 a6 5d 59 82 cd b2 8 42 46 9 57 a9 c5 ca aa 1be1b4 4f 52 b4 92 3f ab 6e 9e a8 1d c6 3 fc e 6a e7 ae bb 5f 7b 10 b8 b4 f7 8e1cd e2 bf 36 4e 39 9d 79 29 3f a f9 36 52 16 fb 5 e8 e5 a6 c2 e9 b0 43 d3 a3e
22、1e6 cf d3 fd fd cb d1 4c 5e e0 63 58 86 bb 3e 9 c1 20 bc cc 91 a3 47 81 70 b3e1ff d6 1a 9e c2 c9 12 e7 4e ad f4 5f e3 30 e9 9 39 d7 e8 f9 f4 d2 44 e8 d7 22e218 be e2 ce 88 25 cf 30 4a a8 29 ae 3f 47 c6 2d 85 e9 73 54 13 b e6 e0 34 65第第5 5章章 80C51 80C51单片机软件根底知识单片机软件根底知识40汇编语言汇编语言是能够利用单片机所有特性直接控制硬件的唯
23、一语言,对于一些需要直接控制硬件的场合,汇编语言是必不可少的。但汇编语言不是一种构造化的程序设计语言,对于较复杂的单但汇编语言不是一种构造化的程序设计语言,对于较复杂的单片机应用系统,它的编写效率很低。片机应用系统,它的编写效率很低。第第5 5章章 80C51 80C51单片机软件根底知识单片机软件根底知识41许多型号的单片机内部许多型号的单片机内部ROM已经到达已经到达64KB甚至更大,甚至更大,且具备在系统编程且具备在系统编程ISP,InSystemProgrammable功能,进一步推动了功能,进一步推动了C语言在单片机应用系统开发中的语言在单片机应用系统开发中的应用。应用。开发人员首先
24、必须对首先必须对C语言有较透彻的掌握语言有较透彻的掌握,其次还应该对实际单片机硬件系统有深入的理解。高级语言高级语言第第5 5章章 80C51 80C51单片机软件根底知识单片机软件根底知识42C51的特点和功能主要是80C51单片机自身特点引起的。头文件:为了实现这些功能,只需将相应的功能存放头文件:为了实现这些功能,只需将相应的功能存放器的头文件加载在程序中,就可实现指定的功能。因器的头文件加载在程序中,就可实现指定的功能。因此,此,C51C51系列头文件集中表达了各系列芯片的不同功能。系列头文件集中表达了各系列芯片的不同功能。数据类型:由于80C51系列器件包含了位操作空间和丰富的位操作
25、指令,因此 C51比ANSI C多一种位类型。C51特点:第第5 5章章 80C51 80C51单片机软件根底知识单片机软件根底知识43数据存储类型:80C51系列单片机有程序存储器和数据存储器。数据存储器又分片内和片外数据存储器。片内数据存储器还分直接寻址区和间接寻址区,分别对应code、data、idata、xdata以及根据80C51系列特点而设定的pdata类型。第第5 5章章 80C51 80C51单片机软件根底知识单片机软件根底知识C51特点:44数据运算操作和程序控制数据运算操作和程序控制:从数据运算操作和程序控制语句以及函数的使用上来讲,它们几乎没有什么明显的区别。只是在函数的
26、使用上,由于单片机系统的资源有限,它的编译系统不允许太多的程序嵌套。C51与标准ANSI C库函数:局部库函数不适合单片机处理系统,因此被排除在外,如字符屏幕和图形函数。第第5 5章章 80C51 80C51单片机软件根底知识单片机软件根底知识45C51的标识符和关键字的标识符和关键字标识符用来标识源程序中某个对象的名字,这些对象标识符用来标识源程序中某个对象的名字,这些对象可以是语句、数据类型、函数、变量、数组等。可以是语句、数据类型、函数、变量、数组等。标识符区分大小写,第一个字符必须是字母或下划线。标识符区分大小写,第一个字符必须是字母或下划线。C51中有些库函数的标识符是以下划线开头的
27、,所以中有些库函数的标识符是以下划线开头的,所以一般不要以下划线开头命名标识符。一般不要以下划线开头命名标识符。第第5 5章章 80C51 80C51单片机软件根底知识单片机软件根底知识46表表5.2C51编译器的扩展关键字编译器的扩展关键字bdatacharIB0_at_0X2C;bitb2;unsignedintcodeunid2=0 x1234,0 x752b;intfunc(inti,intj)compact;第第5 5章章 80C51 80C51单片机软件根底知识单片机软件根底知识47表表5.2C51编译器的扩展关键字续编译器的扩展关键字续voidtimer0(void)interr
28、upt1;sbitp1_1=p11;sfrp1=0 x90;第第5 5章章 80C51 80C51单片机软件根底知识单片机软件根底知识485.5.2C51编译器能识别的数据类型编译器能识别的数据类型数数 据据 类类 型型长长 度度大大 小小unsigned char1B0255char1B-128+127unsigned int2B065535int2B-32768+32767unsigned long4B04294967295long4B-2147483648+2147483647float4B 1.175494E-38 3.402823E+38*1B3B对象的地址对象的地址bit位位0或或
29、1sfr1B0255sfr162B065535sbit位位0或或1第第5 5章章 80C51 80C51单片机软件根底知识单片机软件根底知识49sfr特殊功能存放器特殊功能存放器作用:利用它可以访问作用:利用它可以访问51单片机内部所有特殊功单片机内部所有特殊功能存放器。能存放器。说明:说明:定义的变量占用一个内存单元,值域为定义的变量占用一个内存单元,值域为0-255。例如:例如:sfrp1=0 x90;定义定义P1为为P1端口在片内的存放器。端口在片内的存放器。P1=255;对对P1端口的所有引脚置高电平。从而端口的所有引脚置高电平。从而来操作特殊功能存放器。来操作特殊功能存放器。第第5
30、5章章 80C51 80C51单片机软件根底知识单片机软件根底知识50第第5 5章章 80C51 80C51单片机软件根底知识单片机软件根底知识51sfr特殊功能存放器特殊功能存放器80C52特殊功能存放器表特殊功能存放器表第第5 5章章 80C51 80C51单片机软件根底知识单片机软件根底知识52注:注:带带*号的号的特殊功特殊功能存放能存放器都是器都是可位寻可位寻址的存址的存放器。放器。80C52特殊功能存放器表续特殊功能存放器表续第第5 5章章 80C51 80C51单片机软件根底知识单片机软件根底知识53sbit定义可位寻址位的特殊功能存放器的位寻定义可位寻址位的特殊功能存放器的位寻
31、址对象有三种方法:址对象有三种方法:1sbit位变量名位变量名=位地址位地址将位的绝对地址赋给位变量,位地址必须位于将位的绝对地址赋给位变量,位地址必须位于0 x80H-0 xFF之间。之间。如:如:sbitCY=0 xD7;第第5 5章章 80C51 80C51单片机软件根底知识单片机软件根底知识54Sbit定义可位寻址位的特殊功能存放器的位寻址对象有三种方法:定义可位寻址位的特殊功能存放器的位寻址对象有三种方法:(2)sbit位变量名位变量名=特殊功能存放器名特殊功能存放器名位位置位位置当可寻址位位于特殊功能存放器中时,可采用当可寻址位位于特殊功能存放器中时,可采用这种方法。这种方法。0-
32、7之间的常数。之间的常数。例如:例如:sfrSCON=0X98;sbitRI=SCON0;sbitTI=SCON1;sbitRB8=SCON2;sbitTB8=SCON3;sbitREN=SCON4;sbitSM2=SCON5;sbitSM1=SCON6;sbitSM0=SCON7;/*定义SCON*/*定义SCON的各位*/第第5 5章章 80C51 80C51单片机软件根底知识单片机软件根底知识55(3)sbit位变量名位变量名=字节地址字节地址位位置位位置字节地址必须在字节地址必须在0 x80H-0 xFF之间。之间。Sbit定义可位寻址位的特殊功能存放器的位寻址对象有三种方法:定义可位
33、寻址位的特殊功能存放器的位寻址对象有三种方法:例如:例如:sbitCY=0XD07;第第5 5章章 80C51 80C51单片机软件根底知识单片机软件根底知识565.5.3变量的存储种类和存储器类型变量的存储种类和存储器类型变量是一种在程序执行过程中,其数值不断变化的变量是一种在程序执行过程中,其数值不断变化的量。同量。同ANSIC一样,一样,C51规定变量必须先定义后使规定变量必须先定义后使用。用。C51对变量的进展定义的格式如下:对变量的进展定义的格式如下:存储种类存储种类数据类型数据类型存储器类型存储器类型变量名表变量名表可选项。第第5 5章章 80C51 80C51单片机软件根底知识单
34、片机软件根底知识57存储器类型存储器类型 定义变量时,除了说明存储种类外,还允许说明变量的存储器类型。存储器类型和存储种类是完全不同的概念,存储器类型指明该变量所处的单片机的内存空存储器类型指明该变量所处的单片机的内存空间。间。C51编译器可识别以下存储器类型,如下表所示。第第5 5章章 80C51 80C51单片机软件根底知识单片机软件根底知识58存储器类型存储器类型描描 述述data直接寻址的片内数据存储器低直接寻址的片内数据存储器低128B,访问速度最快,访问速度最快bdata可位寻址的片内数据存储器(地址可位寻址的片内数据存储器(地址20H2FH共共16B)允许位和)允许位和字节混合访
35、问字节混合访问idata间接寻址片内数据存储器间接寻址片内数据存储器256B。允许访问片内全部地址。允许访问片内全部地址pdata分页寻址片外数据存储器分页寻址片外数据存储器256B,使用指令,使用指令MOVX Rn访问,需访问,需要要2个指令周期个指令周期xdata寻址片外数据存储器寻址片外数据存储器64KB,使用指令,使用指令MOVX DPTR访问访问code寻址程序存储器区寻址程序存储器区64KB,使用指令,使用指令MOVC A+DPTR访问访问第第5 5章章 80C51 80C51单片机软件根底知识单片机软件根底知识59存储模式存储模式C51编译器允许采用三种存储模式:编译器允许采用三
36、种存储模式:小编译模式小编译模式SMALL、紧凑编译模式、紧凑编译模式COMPACT、大编译模式、大编译模式LARGE。第第5 5章章 80C51 80C51单片机软件根底知识单片机软件根底知识605.5.4绝对地址的访问绝对地址的访问1.使用指针使用指针采用指针的方法,可实现在C51程序中对任意指定的存储器地址进展操作。ucharidataivar1;ucharxdata*xdp;/*定义一个指向定义一个指向xdata存储器空间的指针存储器空间的指针*/chardata*dp;/*定义一个指向定义一个指向DATA存储器空间的指针存储器空间的指针*/ucharidata*idp;/*定义一个指
37、向定义一个指向idata存储器空间的指针存储器空间的指针*/xdp=0 x1000;/*xdata指针赋值,指向指针赋值,指向xdata存储器地址存储器地址1000H处处*/*xdp=0 x5A;/*将数据将数据5AH送到送到xdata的的1000H单元单元*/dp=0 x61;/*DATA指针赋值,指向指针赋值,指向DATA存储器地址存储器地址61H处处*/*dp=0 x23;/*将数据将数据23H送到送到DATA的的61H单元单元*/idp=&ivar1;/*idp指向指向idata区变量区变量ivar1*/*idp=0 x16;/*等价于等价于ivar1=0 x16*/第第5 5章章 8
38、0C51 80C51单片机软件根底知识单片机软件根底知识612.使用使用C51运行库中预定义宏运行库中预定义宏#define CBYTE(unsigned char volatile*)0 x50000L)#define DBYTE(unsigned char volatile*)0 x40000L)#define PBYTE(unsigned char volatile*)0 x30000L)#define XBYTE(unsigned char volatile*)0 x20000L)#define CWORD(unsigned int volatile*)0 x50000L)#defin
39、e DWORD(unsigned int volatile*)0 x40000L)#define PWORD(unsigned int volatile*)0 x30000L)#define XWORD(unsigned int volatile*)0 x20000L)第第5 5章章 80C51 80C51单片机软件根底知识单片机软件根底知识623.使用使用C51扩展关键字扩展关键字_at_使用使用_at_对指定的存储器空间的绝对地址进展定对指定的存储器空间的绝对地址进展定位,一般格式如下:位,一般格式如下:存储器类型存储器类型数据类型数据类型标识符标识符_at_常数常数uchar xdata
40、 xram0 x8000 _at_ 0 x0000;/*在外部RAM空间0000H处定义了一个一维数组 例如 使用使用_at_定义的变量只能为全局变量。定义的变量只能为全局变量。第第5 5章章 80C51 80C51单片机软件根底知识单片机软件根底知识635.5.5中断效劳程序中断效劳程序80C51的中断系统十分重要,的中断系统十分重要,C51编译器允许在编译器允许在C语言语言源程序中声明中断和编写中断效劳程序,从而减轻了源程序中声明中断和编写中断效劳程序,从而减轻了采用汇编程序编写中断效劳程序的繁琐程度。采用汇编程序编写中断效劳程序的繁琐程度。第第5 5章章 80C51 80C51单片机软件
41、根底知识单片机软件根底知识64通过使用interrupt关键字来实现。定义中断效劳程序的一般格式如下:void 函数名()interrupt n using musingm指明该中断效劳程序所对应的工作存放器组,指明该中断效劳程序所对应的工作存放器组,取值范围:取值范围:03。指定工作存放器组的缺点是所有被。指定工作存放器组的缺点是所有被中断调用的过程都必须使用同一个存放器组,否那么中断调用的过程都必须使用同一个存放器组,否那么参数传递会发生错误。通常不设定参数传递会发生错误。通常不设定usingm。第第5 5章章 80C51 80C51单片机软件根底知识单片机软件根底知识65关键字关键字in
42、terrupt后面的后面的n是中断号,是中断号,n的取值范围:的取值范围:031。编译程序从。编译程序从8n+3处产生中断向量,即在程序处产生中断向量,即在程序存储器存储器8n+3地址处形成一条长跳转指令,转向中断号地址处形成一条长跳转指令,转向中断号n的中断效劳程序。的中断效劳程序。中中 断断 号号 n中中 断断 源源中中 断断 向向 量量0外部中断外部中断00003H1定时器定时器0000BH2外部中断外部中断10013H3定时器定时器1001BH4串行口串行口0023H第第5 5章章 80C51 80C51单片机软件根底知识单片机软件根底知识665.6C51的运算符和表达式的运算符和表达
43、式运算符就是完成某种特定运算的符号。运算符按其运算符就是完成某种特定运算的符号。运算符按其表达式中与运算符的关系可分为表达式中与运算符的关系可分为单目运算符、双目单目运算符、双目运算符和三目运算符。运算符和三目运算符。第第5 5章章 80C51 80C51单片机软件根底知识单片机软件根底知识675.6.1赋值运算符赋值运算符使用“=的赋值语句格式如下:变量=表达式;需要注意需要注意“=与与“=两个符号的区别,有时编译报两个符号的区别,有时编译报错,往往就是错在错,往往就是错在ifb=0 xff之类的语句中,错将之类的语句中,错将“=用为用为“=。“=符号是用来进展相等关系的运符号是用来进展相等
44、关系的运算。算。第第5 5章章 80C51 80C51单片机软件根底知识单片机软件根底知识685.6.2算术运算符算术运算符+加或取正值运算符加或取正值运算符-减或取负值运算符减或取负值运算符*乘运算符乘运算符除运算符除运算符%模取余运算符,如模取余运算符,如8%5=3,即,即8除以除以5的的余数是余数是3第第5 5章章 80C51 80C51单片机软件根底知识单片机软件根底知识695.6.3关系运算符关系运算符C51中有6种关系运算符:大于=大于等于=小于等于=测试等于!=测试不等于第第5 5章章 80C51 80C51单片机软件根底知识单片机软件根底知识705.6.4逻辑运算符逻辑运算符逻
45、辑逻辑与与:条件式:条件式1&条件式条件式2。逻辑逻辑或或:条件式:条件式1|条件式条件式2。逻辑逻辑非非:!条件式。:!条件式。第第5 5章章 80C51 80C51单片机软件根底知识单片机软件根底知识715.6.5位运算符位运算符C51中共有中共有6种位运算符:种位运算符:&按位与按位与|按位或按位或按位异或按位异或按位取反按位取反右移右移第第5 5章章 80C51 80C51单片机软件根底知识单片机软件根底知识725.6.6复合运算符复合运算符复合运算符就是在赋值运算符复合运算符就是在赋值运算符“=的前面加上其的前面加上其他运算符。以下是他运算符。以下是C51语言中的复合赋值运算符:语言
46、中的复合赋值运算符:+=加法赋值加法赋值=右移位赋值右移位赋值-=减法赋值减法赋值&=逻辑与赋值逻辑与赋值*=乘法赋值乘法赋值|=逻辑或赋值逻辑或赋值/=除法赋值除法赋值=逻辑异或赋值逻辑异或赋值%=取模赋值取模赋值=逻辑非赋值逻辑非赋值=左移位赋值左移位赋值第第5 5章章 80C51 80C51单片机软件根底知识单片机软件根底知识735.6.7指针和地址运算符指针和地址运算符指针是指针是C语言中十分重要的概念,也是学习语言中十分重要的概念,也是学习C51语言中语言中的一个难点。的一个难点。C51语言中提供的两个专门用于指针和语言中提供的两个专门用于指针和地址的运算符:地址的运算符:*取内容取
47、内容&取地址取地址取内容和取地址运算的一般形式分别为:取内容和取地址运算的一般形式分别为:变量变量=*指针变量指针变量指针变量指针变量=&目标变量目标变量第第5 5章章 80C51 80C51单片机软件根底知识单片机软件根底知识745.7C51的库函数的库函数C51的强大功能及其高效率的重要表达之一在于,其提的强大功能及其高效率的重要表达之一在于,其提供了丰富的可直接调用的库函数。使用库函数使程序供了丰富的可直接调用的库函数。使用库函数使程序代码简单、构造清晰、易于调试和维护,下面介绍代码简单、构造清晰、易于调试和维护,下面介绍C51的库函数系统。的库函数系统。第第5 5章章 80C51 80
48、C51单片机软件根底知识单片机软件根底知识755.7.2几类重要的库函数几类重要的库函数C51提供了丰富的库函数资源,包括大量的关于提供了丰富的库函数资源,包括大量的关于I/O操操作、内存分配、字符串操作、数据类型转换、数学计算作、内存分配、字符串操作、数据类型转换、数学计算等函数库。它们是以执行代码的形式出现,供用户在连等函数库。它们是以执行代码的形式出现,供用户在连接定位时用。接定位时用。在用预处理器命令在用预处理器命令include包含相应的包含相应的头文件后,就可以在程序中使用这些函数。头文件后,就可以在程序中使用这些函数。第第5 5章章 80C51 80C51单片机软件根底知识单片机
49、软件根底知识76这个库中提供的是一些用汇编语言编写的函数。用汇这个库中提供的是一些用汇编语言编写的函数。用汇编语言编写非常直接简单且目代码很短,而用编语言编写非常直接简单且目代码很短,而用C51编写编写那么代码很长。这些函数主要有:那么代码很长。这些函数主要有:_crol_/_cror_无符号字符型变量左无符号字符型变量左/右移位函数右移位函数_irol_/_iror_无符号整型变量左无符号整型变量左/右移位函数右移位函数_lrol_/_lror_无符号长整型变量左无符号长整型变量左/右移位函数右移位函数_nop_空操作函数空操作函数_testbit_位测试函数位测试函数第第5 5章章 80C
50、51 80C51单片机软件根底知识单片机软件根底知识77用预处理器伪指令用预处理器伪指令define为各空间的绝对地址定义宏数组名如下:为各空间的绝对地址定义宏数组名如下:defineCBYTEunsignedchar*0 x500000L/*code空间空间*/defineDBYTEunsignedchar*0 x400000L/*data空间空间*/definePBYTEunsignedchar*0 x300000L/*pdata空间空间*/defineXBYTEunsignedchar*0 x200000L/*xdata空间空间*/以上存取对象是以上存取对象是char类型字节。类型字节。
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。