单片机基础知识资料_第1页
单片机基础知识资料_第2页
单片机基础知识资料_第3页
单片机基础知识资料_第4页
单片机基础知识资料_第5页
已阅读5页,还剩152页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1会计学单片机基础知识资料单片机基础知识资料22. 单片机的发展过程及产品近况单片机的发展过程及产品近况 3. 单片机的特点单片机的特点4. 单片机应用系统开发简介单片机应用系统开发简介第第1 1、3 3章章 单片机应用概述与开发步骤单片机应用概述与开发步骤单片机简介单片机简介3第第1 1、3 3章章 单片机应用概述与开发步骤单片机应用概述与开发步骤4第第1 1、3 3章章 单片机应用概述与开发步骤单片机应用概述与开发步骤5第第1 1、3 3章章 单片机应用概述与开发步骤单片机应用概述与开发步骤6单片机应用系统的研制步骤和方法单片机应用系统开发的软硬件环境Keil C51高级语言集成开发环境基

2、于Proteus的单片机系统仿真Proteus开发环境第第1 1、3 3章章 单片机应用概述与开发步骤单片机应用概述与开发步骤7单片机应用系统单片机应用系统的研制流程如图的研制流程如图所示所示:第第1 1、3 3章章 单片机应用概述与开发步骤单片机应用概述与开发步骤8硬件系统硬件系统 根据总体设计中确立的功能特性要求,确定单片机的型号、所需外围扩展芯片、存储器、I/O电路、驱动电路,可能还有A/D和D/A转换电路以及其它模拟电路,设计出应用系统的电路原理图设计出应用系统的电路原理图。第第1 1、3 3章章 单片机应用概述与开发步骤单片机应用概述与开发步骤9第第1 1、3 3章章 单片机应用概述

3、与开发步骤单片机应用概述与开发步骤10软件系统软件系统 系统资源分配系统资源分配 程序结构程序结构 数学模型数学模型 程序流程程序流程 编制程序编制程序第第1 1、3 3章章 单片机应用概述与开发步骤单片机应用概述与开发步骤11第第1 1、3 3章章 单片机应用概述与开发步骤单片机应用概述与开发步骤12单片机应用系统的研制步骤和方法简介。第第1 1、3 3章章 单片机应用概述与开发步骤单片机应用概述与开发步骤13一个典型的单片机系统开发环境组成如图所示。一个典型的单片机系统开发环境组成如图所示。单片机系统开发环境组成第第1 1、3 3章章 单片机应用概述与开发步骤单片机应用概述与开发步骤144

4、.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 80C51单片机最小系统单片机最小系统重点重点重点154.1MCS-51系列及系列及80C51系列单片机简介系列单片机简介MCS-51系列和系列和80C51系列单片机系列单片机Intel公司推出的系列单片机有:MCS-48、MCS-51、MCS-96系列。Intel公司单片机系列的符号包括5

5、1和52两个子系列。第第4 4章章 80C5180C51单片机硬件基础知识单片机硬件基础知识16基于基于HMOSHMOS工艺,工艺,它们的指令系统它们的指令系统与芯片引脚完全与芯片引脚完全兼容,只是片内兼容,只是片内程序存储器程序存储器(ROMROM)有所不同。有所不同。51系列单片机系列单片机80318051875l80C3180C5187C5l第第4 4章章 80C5180C51单片机硬件基础知识单片机硬件基础知识17MCS-51系列单片机内部组成系列单片机内部组成8位位CPU。片内带振荡器及时钟电路。片内带振荡器及时钟电路。128B片内数据片内数据存储器存储器。4KB片内程序片内程序存储

6、器存储器(8031/80C31无)。无)。程序程序存储器存储器的寻址范围为的寻址范围为64KB。片外数据片外数据存储器存储器的寻址范围为的寻址范围为64KB。21B特殊功能寄存器。特殊功能寄存器。48根根I/O线。线。1个全双工串行个全双工串行I/O接口,可多机通信。接口,可多机通信。2个个16位定时器位定时器/计数器。计数器。中断系统有中断系统有5个中断源,可编程为两个优先级。个中断源,可编程为两个优先级。111条指令,含乘法指令和除法指令。条指令,含乘法指令和除法指令。布尔处理器。布尔处理器。使用单使用单5V电源。电源。51子系列子系列的主要功的主要功能为:能为:第第4 4章章 80C51

7、80C51单片机硬件基础知识单片机硬件基础知识18与与5151子系列的不同之处在于:片内数据存储器增至子系列的不同之处在于:片内数据存储器增至256B256B,片内,片内程序存储器增至程序存储器增至8KB8KB(8032/80C328032/80C32无),有无),有26B26B的特殊功能寄存的特殊功能寄存器,有器,有3 3个个1616位定时器位定时器/ /计数器,有计数器,有6 6个中断源。其他性能均与个中断源。其他性能均与5l5l子系列相同。子系列相同。52系列单片机系列单片机80328052875280C3280C5287C52第第4 4章章 80C5180C51单片机硬件基础知识单片机

8、硬件基础知识19Intel 80C51系列单片机产品命名规则 第第4 4章章 80C5180C51单片机硬件基础知识单片机硬件基础知识204.280C51系列单片机外引脚功能系列单片机外引脚功能常用两种封装为双列直插式常用两种封装为双列直插式DIP40和方形封装式和方形封装式LCC44P1P1口口P3P3口口P0P0口口P2P2口口 时钟端时钟端 复位端复位端控制信号控制信号 接接VCCVCC(+5V+5V) 接地端接地端214.280C51系列单片机外引脚功能系列单片机外引脚功能第第4 4章章 80C5180C51单片机硬件基础知识单片机硬件基础知识22地址、数据和控制:三总线结构地址、数据

9、和控制:三总线结构80C51三总线具有以下特点:三总线具有以下特点:(1)P0口的地址口的地址/数据复用。数据复用。(2)两个独立的并行扩展空间。)两个独立的并行扩展空间。(3)外围数据存储器扩展的统一编址。)外围数据存储器扩展的统一编址。 锁存器锁存器第第4 4章章 80C5180C51单片机硬件基础知识单片机硬件基础知识2380C51单片机内部结构框图24中央处理器中央处理器CPU 单片机最核心的部分是单片机最核心的部分是CPU,可以说,可以说CPU是单片是单片机的大脑和心脏。机的大脑和心脏。第第4 4章章 80C5180C51单片机硬件基础知识单片机硬件基础知识25存储器组织存储器组织(

10、哈佛结构哈佛结构)26在程序存储器中,在程序存储器中,以下单元具有特殊功能以下单元具有特殊功能0000H:80C51复位后,复位后,PC=0000H,即程序从,即程序从0000H开始执行指令。开始执行指令。0003H:外部中断:外部中断0入口。入口。000BH:定时器:定时器0溢出中断入口。溢出中断入口。0013H:外部中断:外部中断1入口。入口。001BH:定时器:定时器1溢出中断入口。溢出中断入口。0023H:串行口中断入口。:串行口中断入口。002BH:定时器:定时器2入口(仅入口(仅52子系列有)。子系列有)。 程序存储器(程序存储器(51子序列)子序列)程序存储器用于存放编好的程序或

11、表格常数程序存储器用于存放编好的程序或表格常数27数据存储器数据存储器 数据存储器用于存放数据存储器用于存放中间运算结果、数据暂存和中间运算结果、数据暂存和缓冲、标志位等缓冲、标志位等。 80C51系列单片机数据存储器有系列单片机数据存储器有片内和片外片内和片外之分之分。片内又有。片内又有RAM和和SFR之分,之分,这几个部分的访问指令这几个部分的访问指令不同的不同的,从这一点看,数据存储器的使用比程序存储,从这一点看,数据存储器的使用比程序存储器略微复杂点。采用器略微复杂点。采用C51语言编程则要简单许多。语言编程则要简单许多。第第4 4章章 80C5180C51单片机硬件基础知识单片机硬件

12、基础知识28 这样可把数据存储器分为片外数据存储器、片内片外数据存储器、片内数据存储器、特殊功能存储器数据存储器、特殊功能存储器,以下分别加以介绍。1)片内数据存储器)片内数据存储器 片内数据存储器分为片内数据存储器分为工作寄存器区、位寻址区、数据工作寄存器区、位寻址区、数据缓冲器区缓冲器区等三个区域。等三个区域。第第4 4章章 80C5180C51单片机硬件基础知识单片机硬件基础知识29工作寄存器区工作寄存器区00H1FH单元为工作寄存器区。工作寄存器也称通用寄存器,供用户编程时使用,临时寄存8位信息。 80c51单片机片内单片机片内RAM配置配置1)片内数据存储器)片内数据存储器 30位寻

13、址区 20H2FH单元是位寻址区,该区的每一位都赋予了一个位地址。 数据缓冲区 30H7FH是数据缓冲区,即用户RAM区,共80个单元。堆栈与堆栈指针堆栈与堆栈指针片内片内RAM的部分的部分单元还可以用作堆单元还可以用作堆栈。栈。1)片内数据存储器)片内数据存储器 312)特殊功能寄存器)特殊功能寄存器 所有单片机片内外设是依靠对内部特殊功能寄存所有单片机片内外设是依靠对内部特殊功能寄存器的操作实现其功能的,器的操作实现其功能的,80C51也不例外,特殊功能寄存器(SFR, Special Function Register)也称专用寄存器,专用于控制、管理单片机内部算术逻辑部件、并行I/O口

14、、串行I/O口、定时器/计数器、中断系统等功能模块的工作,用户在编程时可以置数设定,不用户在编程时可以置数设定,不能移作他用。能移作他用。 通过特殊功能寄存器可实现对单片机内部资源的通过特殊功能寄存器可实现对单片机内部资源的操作和管理。操作和管理。第第4 4章章 80C5180C51单片机硬件基础知识单片机硬件基础知识32常用特殊功能寄存器常用特殊功能寄存器33常用特殊功能寄存器常用特殊功能寄存器第第4 4章章 80C5180C51单片机硬件基础知识单片机硬件基础知识34端口端口P0P3特殊功能寄存器P0P3分别是I/O端口P0P3的锁存器。80C51单片机是把I/O当作一般的特殊功能寄存器使

15、用,不专设端口操作指令,使用方便。 常用特殊功能寄存器常用特殊功能寄存器第第4 4章章 80C5180C51单片机硬件基础知识单片机硬件基础知识354.5 80C51单片机最小系统单片机最小系统单片机最小系统就是能使单片机工作的最少的器件构成的系统,是大多数控制系统所必不可少的关键部分。 36图为80C32单片机的外部扩展总线。扩展外部接口电路扩展外部接口电路第第4 4章章 80C5180C51单片机硬件基础知识单片机硬件基础知识37将80C32单片机的外部扩展总线接到外部程序存储器的地址总线、数据总线和控制总线,即构成80C32单片机最小系统。 扩展外部接口电路扩展外部接口电路第第4 4章章

16、 80C5180C51单片机硬件基础知识单片机硬件基础知识385.1计算机语言概述计算机语言概述5.280C51单片机寻址方式单片机寻址方式5.380C51单片机指令系统单片机指令系统5.480C51汇编语言程序设计汇编语言程序设计5.580C51单片机单片机C51程序设计语言程序设计语言5.6C51的运算符和表达式的运算符和表达式5.7C51的库函数的库函数5.8C51的应用技巧的应用技巧暂时不讲39单片机应用系统单片机应用系统硬件软件程序设计程序设计的最终结果是软件。 第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识40机器语言机器语言是计算机唯一能识别的语言,用汇

17、编语言和高级语言编写的程序(称为源程序)最终都必须翻译成机器语言的程序(称为目标程序),计算机才能识别。 计算机语言计算机语言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 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

18、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 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 1b

19、e1b4 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 a3e1e6 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

20、 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章章 80C5180C51单片机软件基础知识单片机软件基础知识41汇编语言汇编语言是能够利用单片机所有特性直接控制硬件的唯一语言,对于一些需要直接控制硬件的场合,汇编语言是必不可少的。 但但汇编语言不是一种结构化的程序设计语言,对于较复杂的单片机应用系统,它的编写效率很低。 第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识42许多型号的单片机内部许多型号的单片机内部ROM已经达到已经达到6

21、4KB甚至更大,甚至更大,且具备在系统编程(且具备在系统编程(ISP,InSystemProgrammable)功能,进一步推动了功能,进一步推动了C语言语言在单片机应用系统开发中的在单片机应用系统开发中的应用。应用。 开发人员首先必须对首先必须对C语言有较透彻的掌握语言有较透彻的掌握,其次还应该对实际单片机硬件系统有深入的理解。高级语言高级语言第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识43C51的特点和功能主要是80C51单片机自身特点引起的。 头文件头文件:为了实现这些功能,只需将相应的功能寄存:为了实现这些功能,只需将相应的功能寄存器的头文件加载在程序中,就

22、可实现指定的功能。因器的头文件加载在程序中,就可实现指定的功能。因此,此,C51C51系列头文件集中体现了各系列芯片的不同功能系列头文件集中体现了各系列芯片的不同功能。 数据类型:由于80C51系列器件包含了位操作空间和丰富的位操作指令,因此 C51比ANSI C多一种位类型。 C51特点:第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识44数据存储类型:80C51系列单片机有程序存储器和数据存储器。数据存储器又分片内和片外数据存储器。片内数据存储器还分直接寻址区和间接寻址区,分别对应code、data、idata、xdata以及根据80C51系列特点而设定的pdata

23、类型。 第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识C51特点:45数据运算操作和程序控制数据运算操作和程序控制:从数据运算操作和程序控制语句以及函数的使用上来讲,它们几乎没有什么明显的区别。只是在函数的使用上,由于单片机系统的资源有限,它的编译系统不允许太多的程序嵌套。 C51与标准ANSI C库函数:部分库函数不适合单片机处理系统,因此被排除在外,如字符屏幕和图形函数。 第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识46C51的标识符和关键字的标识符和关键字标识符用来标识源程序中某个对象的名字,这些对象标识符用来标识源程序中某个对象的名

24、字,这些对象可以是语句、数据类型、函数、变量、数组等。可以是语句、数据类型、函数、变量、数组等。标识符区分大小写,第一个字符必须是字母或下划线标识符区分大小写,第一个字符必须是字母或下划线。C51中有些库函数的标识符是以下划线开头的,所以中有些库函数的标识符是以下划线开头的,所以一般不要以下划线开头命名标识符。一般不要以下划线开头命名标识符。第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识47表表5.2C51编译器的扩展关键字编译器的扩展关键字bdatacharIB0_at_0X2C; bitb2; unsignedintcodeunid2=0 x1234,0 x752

25、b; intfunc(inti,intj)compact; 第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识48表表5.2C51编译器的扩展关键字编译器的扩展关键字(续)(续)voidtimer0(void)interrupt1; sbitp1_1=p11; sfrp1=0 x90; 第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识495.5.2C51编译器能识别的数据类型编译器能识别的数据类型数数 据据 类类 型型长长 度度大大 小小unsigned char1B0255char1B- -128+127unsigned int2B065535i

26、nt2B- -32768+32767unsigned long4B04294967295long4B- -2147483648+2147483647float4B 1.175494E-38 3.402823E+38*1B3B对象的地址对象的地址bit位位0或或1sfr1B0255sfr162B065535sbit位位0或或1第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识50sfr特殊功能寄存器特殊功能寄存器作用作用:利用它可以访问:利用它可以访问51单片机内部所有特殊功单片机内部所有特殊功能寄存器。能寄存器。说明:说明:定义的变量占用一个内存单元,值域为定义的变量占用

27、一个内存单元,值域为0-255。例如:例如:sfrp1=0 x90;定义定义P1为为P1端口在片内的寄存器。端口在片内的寄存器。P1=255;对对P1端口的所有引脚置高电平。从而端口的所有引脚置高电平。从而来操作特殊功能寄存器。来操作特殊功能寄存器。第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识51第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识52sfr特殊功能寄存器特殊功能寄存器80C52特殊功能寄存器表特殊功能寄存器表第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识53注:注:带带*号的号的特殊功特殊功能寄存能寄存

28、器都是器都是可位寻可位寻址的寄址的寄存器。存器。80C52特殊功能寄存器表特殊功能寄存器表(续)(续)第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识54sbit定义可位寻址位的特殊功能寄存器的位寻定义可位寻址位的特殊功能寄存器的位寻址对象有三种方法:址对象有三种方法:(1)sbit位变量名位变量名=位地址位地址将位的绝对地址赋给位变量,位地址必须位于将位的绝对地址赋给位变量,位地址必须位于0 x80H-0 xFF之间。之间。如:如:sbitCY=0 xD7;第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识55Sbit定义可位寻址位的特殊功能寄存

29、器的位寻址对象有三种方法:定义可位寻址位的特殊功能寄存器的位寻址对象有三种方法:(2)sbit位变量名位变量名=特殊功能寄存器名特殊功能寄存器名位位置位位置当可寻址位位于特殊功能寄存器中时,可采用这种方法。当可寻址位位于特殊功能寄存器中时,可采用这种方法。0-7之间的常数。之间的常数。例如:例如:sfrSCON=0X98;sbitRI=SCON0;sbitTI=SCON1;sbitRB8=SCON2;sbitTB8=SCON3;sbitREN=SCON4;sbitSM2=SCON5;sbitSM1=SCON6;sbitSM0=SCON7;/*定义SCON*/*定义SCON的各位*/第第5 5章

30、章 80C5180C51单片机软件基础知识单片机软件基础知识56(3)sbit位变量名位变量名=字节地址字节地址位位置位位置字节地址必须在字节地址必须在0 x80H-0 xFF之间。之间。Sbit定义可位寻址位的特殊功能寄存器的位寻址对象有三种方法:定义可位寻址位的特殊功能寄存器的位寻址对象有三种方法:例如:例如:sbitCY=0XD07;第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识575.5.3变量的存储种类和存储器类型变量的存储种类和存储器类型变量是一种在程序执行过程中,其数值不断变化的变量是一种在程序执行过程中,其数值不断变化的量。同量。同ANSIC一样,一样

31、,C51规定变量必须先定义后使规定变量必须先定义后使用。用。C51对变量的进行定义的格式如下:对变量的进行定义的格式如下:存储种类存储种类数据类型数据类型存储器类型存储器类型变量名表变量名表可选项。第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识58存储器类型存储器类型 定义变量时,除了说明存储种类外,还允许说明变量的存储器类型。存储器类型和存储种类是完全不同的概念,存储器类型指明该变量所处的单片机的内存空存储器类型指明该变量所处的单片机的内存空间。间。C51编译器可识别以下存储器类型,如下表所示。 第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知

32、识59存储器类型存储器类型描描 述述data直接寻址的片内数据存储器低直接寻址的片内数据存储器低128B,访问速度最快,访问速度最快bdata可位寻址的片内数据存储器(地址可位寻址的片内数据存储器(地址20H2FH共共16B)允许位和)允许位和字节混合访问字节混合访问idata间接寻址片内数据存储器间接寻址片内数据存储器256B。允许访问片内全部地址。允许访问片内全部地址pdata分页寻址片外数据存储器分页寻址片外数据存储器256B,使用指令,使用指令MOVX Rn访问,需访问,需要要2个指令周期个指令周期xdata寻址片外数据存储器寻址片外数据存储器64KB,使用指令,使用指令MOVX DP

33、TR访问访问code寻址程序存储器区寻址程序存储器区64KB,使用指令,使用指令MOVC A+DPTR访问访问第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识60存储模式存储模式C51编译器允许采用三种存储模式:编译器允许采用三种存储模式:小编译模式小编译模式SMALL、紧凑编译模式、紧凑编译模式COMPACT、大编译模式、大编译模式LARGE。第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识615.5.4绝对地址的访问绝对地址的访问1.使用指针使用指针采用指针的方法,可实现在C51程序中对任意指定的存储器地址进行操作。 ucharidataiv

34、ar1;ucharxdata*xdp;/*定义一个指向定义一个指向xdata存储器空间的指针存储器空间的指针*/chardata*dp;/*定义一个指向定义一个指向DATA存储器空间的指针存储器空间的指针*/ucharidata*idp;/*定义一个指向定义一个指向idata存储器空间的指针存储器空间的指针*/xdp=0 x1000;/*xdata指针赋值,指向指针赋值,指向xdata存储器地址存储器地址1000H处处*/*xdp=0 x5A;/*将数据将数据5AH送到送到xdata的的1000H单元单元*/dp=0 x61;/*DATA指针赋值,指向指针赋值,指向DATA存储器地址存储器地址

35、61H处处*/*dp=0 x23;/*将数据将数据23H送到送到DATA的的61H单元单元*/idp=&ivar1;/*idp指向指向idata区变量区变量ivar1*/*idp=0 x16; /*等价于等价于ivar1=0 x16*/第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识622.使用使用C51运行库中预定义宏运行库中预定义宏#define CBYTE(unsigned char volatile *)0 x50000L)#define DBYTE(unsigned char volatile *)0 x40000L)#define PBYTE(uns

36、igned char volatile *)0 x30000L)#define XBYTE(unsigned char volatile *)0 x20000L)#define CWORD(unsigned int volatile *)0 x50000L)#define DWORD(unsigned int volatile *)0 x40000L)#define PWORD(unsigned int volatile *)0 x30000L)#define XWORD(unsigned int volatile *)0 x20000L)第第5 5章章 80C5180C51单片机软件基础知识

37、单片机软件基础知识633.使用使用C51扩展关键字扩展关键字_at_使用使用_at_对指定的存储器空间的绝对地址进行定对指定的存储器空间的绝对地址进行定位,一般格式如下:位,一般格式如下:存储器类型存储器类型数据类型数据类型标识符标识符_at_常数常数uchar xdata xram0 x8000 _at_ 0 x0000;/*在外部RAM空间0000H处定义了一个一维数组 例如 使用使用_at_定义的变量只能为全局变量。定义的变量只能为全局变量。第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识645.5.5中断服务程序中断服务程序80C51的中断系统十分重要,的中断系

38、统十分重要,C51编译器允许在编译器允许在C语言语言源程序中声明中断和编写中断服务程序,从而减轻了源程序中声明中断和编写中断服务程序,从而减轻了采用汇编程序编写中断服务程序的繁琐程度。采用汇编程序编写中断服务程序的繁琐程度。第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识65通过使用interrupt关键字来实现。定义中断服务程序的一般格式如下:void 函数名( ) interrupt n using musingm指明该中断服务程序所对应的工作寄存器组指明该中断服务程序所对应的工作寄存器组,取值范围:,取值范围:03。指定工作寄存器组的缺点是所有指定工作寄存器组的缺

39、点是所有被中断调用的过程都必须使用同一个寄存器组,否则被中断调用的过程都必须使用同一个寄存器组,否则参数传递会发生错误。通常不设定参数传递会发生错误。通常不设定usingm。 第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识66关键字关键字interrupt后面的后面的n是中断号,是中断号,n的取值范围:的取值范围:031。编译程序从编译程序从8n+3处产生中断向量,即在程序存处产生中断向量,即在程序存储器储器8n+3地址处形成一条长跳转指令,转向中断号地址处形成一条长跳转指令,转向中断号n的中断服务程序。的中断服务程序。中中 断断 号号 n中中 断断 源源中中 断断

40、向向 量量0外部中断外部中断00003H1定时器定时器0000BH2外部中断外部中断10013H3定时器定时器1001BH4串行口串行口0023H第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识675.6C51的运算符和表达式的运算符和表达式运算符就是完成某种特定运算的符号。运算符按其运算符就是完成某种特定运算的符号。运算符按其表达式中与运算符的关系可分为表达式中与运算符的关系可分为单目运算符、双目单目运算符、双目运算符和三目运算符。运算符和三目运算符。第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识685.6.1赋值运算符赋值运算符使用“=”的

41、赋值语句格式如下:变量 = 表达式; 需要注意需要注意“=”与与“=”两个符号的区别,有时编译报两个符号的区别,有时编译报错,往往就是错在错,往往就是错在if(b=0 xff)之类的语句中,错将)之类的语句中,错将“=”用为用为“=”。“=”符号是用来进行相等关系的符号是用来进行相等关系的运算。运算。第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识695.6.2算术运算符算术运算符+加或取正值运算符加或取正值运算符-减或取负值运算符减或取负值运算符*乘运算符乘运算符/除运算符除运算符%模(取余)运算符,如模(取余)运算符,如8%5=3,即,即8除以除以5的的余数是余数是

42、3第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识705.6.3关系运算符关系运算符C51中有6种关系运算符: 大于= 大于等于= 小于等于= 测试等于!= 测试不等于第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识715.6.4逻辑运算符逻辑运算符逻辑逻辑与与:条件式:条件式1&条件式条件式2。逻辑逻辑或或:条件式:条件式1|条件式条件式2。逻辑逻辑非非:!条件式。:!条件式。第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识725.6.5位运算符位运算符C51中共有中共有6种位运算符:种位运算符:&按位与

43、按位与|按位或按位或按位异或按位异或按位取反按位取反右移右移第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识735.6.6复合运算符复合运算符复合运算符就是在赋值运算符复合运算符就是在赋值运算符“=”的前面加上其的前面加上其他运算符。以下是他运算符。以下是C51语言中的复合赋值运算符:语言中的复合赋值运算符:+=加法赋值加法赋值=右移位赋值右移位赋值-=减法赋值减法赋值&=逻辑与赋值逻辑与赋值*=乘法赋值乘法赋值|=逻辑或赋值逻辑或赋值/=除法赋值除法赋值=逻辑异或赋值逻辑异或赋值%=取模赋值取模赋值=逻辑非赋值逻辑非赋值=左移位赋值左移位赋值第第5 5章章 8

44、0C5180C51单片机软件基础知识单片机软件基础知识745.6.7指针和地址运算符指针和地址运算符指针是指针是C语言中十分重要的概念,也是学习语言中十分重要的概念,也是学习C51语言中语言中的一个难点。的一个难点。C51语言中提供的两个专门用于指针和语言中提供的两个专门用于指针和地址的运算符:地址的运算符:*取内容取内容&取地址取地址取内容和取地址运算的一般形式分别为:取内容和取地址运算的一般形式分别为:变量变量=*指针变量指针变量指针变量指针变量=&目标变量目标变量第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识755.7C51的库函数的库函数C51

45、的强大功能及其高效率的重要体现之一在于,其的强大功能及其高效率的重要体现之一在于,其提供了丰富的可直接调用的库函数。提供了丰富的可直接调用的库函数。使用库函数使程使用库函数使程序代码简单、结构清晰、易于调试和维护,下面介绍序代码简单、结构清晰、易于调试和维护,下面介绍C51的库函数系统。的库函数系统。第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识765.7.2几类重要的库函数几类重要的库函数C51提供了丰富的库函数资源,包括大量的关于提供了丰富的库函数资源,包括大量的关于I/O操操作、内存分配、字符串操作、数据类型转换、数学计算作、内存分配、字符串操作、数据类型转换、

46、数学计算等函数库。它们是以执行代码的形式出现,供用户在连等函数库。它们是以执行代码的形式出现,供用户在连接定位时用。接定位时用。在用预处理器命令在用预处理器命令include包含相应的包含相应的头文件后,就可以在程序中使用这些函数。头文件后,就可以在程序中使用这些函数。第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识771.内部函数内部函数intrins.h这个库中提供的是一些用汇编语言编写的函数。用汇这个库中提供的是一些用汇编语言编写的函数。用汇编语言编写非常直接简单且目代码很短,而用编语言编写非常直接简单且目代码很短,而用C51编写编写则代码很长。这些函数主要有:则

47、代码很长。这些函数主要有:_crol_/_cror_无符号字符型变量左无符号字符型变量左/右移位函数右移位函数_irol_/_iror_无符号整型变量左无符号整型变量左/右移位函数右移位函数_lrol_/_lror_无符号长整型变量左无符号长整型变量左/右移位函数右移位函数_nop_空操作函数空操作函数_testbit_位测试函数位测试函数第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识782.绝对地址访问函数绝对地址访问函数absacc.h用预处理器伪指令用预处理器伪指令define为各空间的绝对地址定义宏数组名如下:为各空间的绝对地址定义宏数组名如下:defineC

48、BYTE(unsignedchar*)0 x500000L)/*code空间空间*/defineDBYTE(unsignedchar*)0 x400000L)/*data空间空间*/definePBYTE(unsignedchar*)0 x300000L)/*pdata空间空间*/defineXBYTE(unsignedchar*)0 x200000L)/*xdata空间空间*/以上存取对象是以上存取对象是char类型字节。类型字节。第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识793.缓冲区处理函数缓冲区处理函数string.h如:计算字符串如:计算字符串s的长度的

49、长度strlen 原型:extern int strlen(char *s);说明:返回s的长度,不包括结束符NULL。举例:#include main() char *s=Golden Global View; printf(%s has %d chars,s,strlen(s); getchar(); return 0; 第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识806.1中断系统和外中断中断系统和外中断6.2定时器定时器/计数器计数器6.3串行通信串行通信81单片机内部又集成了许多功能单元,如单片机内部又集成了许多功能单元,如中断、中断、定时器定时器/计数器

50、、串行通信、模拟计数器、串行通信、模拟/数字转换(数字转换(ADC)、脉冲宽度调制()、脉冲宽度调制(PWM)等单元)等单元。我们把这些单片机内部的功能单元统称为我们把这些单片机内部的功能单元统称为单片单片机内部资源。机内部资源。80C51单片机片内单片机片内RAM的的80HFFH空间有空间有21个特殊功能个特殊功能寄存器寄存器SFR,通过这些特殊功能寄存器可实现对全部内部资,通过这些特殊功能寄存器可实现对全部内部资源的运行操作。源的运行操作。第第6 6章章 80C5180C51单片机内部资源及应用单片机内部资源及应用82第第5 5章章 80C5180C51单片机软件基础知识单片机软件基础知识

51、注:注:带带*号的号的特殊功特殊功能寄存能寄存器都是器都是可位寻可位寻址的寄址的寄存器。存器。83TCON中的中断标志位中的中断标志位位位 地地 址址8F8E8D8C8B8A8988位位 符符 号号TF1TR1TF0TR0IE1IT1IE0IT0这个寄存器既有定时器这个寄存器既有定时器/计数器的控制功能又有中断控计数器的控制功能又有中断控制功能,制功能,其中与中断有关的控制位共其中与中断有关的控制位共6位:位:IE0和和IE1、IT0和和IT1以及以及TF0和和TF1。84定时控制寄存器TCON各位的功能位位 地地 址址位位 符符 号号功功 能能8FHTF1定时器定时器/计数器计数器T1溢出标

52、志位溢出标志位8EHTR1定时器定时器/计数器计数器T1运行控制位运行控制位8DHTF0定时器定时器/计数器计数器T0溢出标志位溢出标志位8CHTR0定时器定时器/计数器计数器T0运行控制位运行控制位8BHIE1外部中断外部中断1请求标志位请求标志位8AHIT1外部中断外部中断1触发类型选择位触发类型选择位89HIE0外部中断外部中断0请求标志位请求标志位88HIT0外部中断外部中断0触发类型选择位触发类型选择位85SCON中的串行中断标志位中的串行中断标志位SCON寄存器地址寄存器地址98H,位地址,位地址9FH98H,其中的低,其中的低2位位RI和和TI锁存串行口的接收中断和发送中断的申请

53、锁存串行口的接收中断和发送中断的申请标志位标志位,如表所示。,如表所示。位地址位地址9FH9EH9DH9CH9BH9AH99H98H位符号位符号TIRI86位地址位地址9FH9EH9DH9CH9BH9AH99H98H位符号位符号TIRITI:串行口串行口发送发送中断请求标志位。串行口每发送完一中断请求标志位。串行口每发送完一帧串行数据后,由内部硬件置帧串行数据后,由内部硬件置1,表示串行口发送器,表示串行口发送器向向CPU申请中断。申请中断。注意注意:CPU响应该中断,转入串行口中断入口时,对响应该中断,转入串行口中断入口时,对TI位不位不清清0,TI必须由用户在程序中清必须由用户在程序中清0

54、。80C51单片机复单片机复位后,位后,TCON和和SCON各位均被清各位均被清0。RI:串行口串行口接收接收中断请求标志位。串中断请求标志位。串行口每接收完一帧串行数据后,行口每接收完一帧串行数据后,RI由由硬件置硬件置1。871 1:允许:允许0 0:禁止:禁止中断控制中断控制位地址位地址AFHAEHADHACHABHAAHA9HA8H位符号位符号EAESET1EX1ET0EX0中断控制主要通过中断允许寄存器中断控制主要通过中断允许寄存器IE和中断优先级寄存器和中断优先级寄存器IP实现。实现。中断允许控制寄存器88中断优先级控制中断优先级控制80C51有两个中断优先级,每个中断源均可通过软

55、件设置为高优先级或低优先级中断,实现2级中断嵌套。 中断优先级控制寄存器位地址位地址BFHBEHBDHBCHBBHBAHB9HB8H位符号位符号PSPT1PX1PT0PX01 1:优先:优先0 0:滞后:滞后8990M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7定时器定时器T1定时器定时器T0工作方式寄存器(工作方式寄存器(TMOD)91M1 M0工工 作作 方方 式式功功 能能 说说 明明0 0方式方式013位计数器位计数器0 1方式方式116位计数器位计数器1 0方式方式2自动重装自动重装8位计数器位计数器1 1方式方式3定时器定时器0:分成两个:分成两个8位

56、位定时器定时器1:停止计数:停止计数M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7定时器定时器T1定时器定时器T092T2CON的格式如表所示。控制寄存器控制寄存器T2CON控制控制溢溢出出中中断断标标识识位位外外部部中中断断标标识识位位串串行行口口接接收收时时钟钟标标识识位位串串行行口口发发送送时时钟钟标标识识位位外外部部允允许许标标识识位位运运行行控控制制位位功功能能选选择择位位捕捕捉捉/重重装装载载标标识识位位93串行控制寄存器SCON位地址位地址9FH9EH9DH9CH9BH9AH99H98H位符号位符号SM0SM1SM2RENTB8RB8TIRI串串行行

57、口口工工作作方方式式选选择择位位多多机机通通信信控控制制位位允允许许接接收收位位发发送送数数据据位位8接接收收数数据据位位8发发送送中中断断标标志志接接收收中中断断标标志志94(2)电源控制寄存器)电源控制寄存器PCON PCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器。单元地址为87H。其内容如表所示。位位 序序D7D6D5D4D3D2D1D0位符号位符号SMODGF1GF0PDIDL串行口波特率的倍增位,当串行口波特率的倍增位,当SMOD=1时串行口波特率加倍。系时串行口波特率加倍。系统复位时,统复位时,SMOD=0。95中断允许控制寄存器中断允许控制寄存器IE中断允许控制寄

58、存器IE在前面的中断系统中已详细介绍过,IE的地址是A8H,其内容如表所示。其中与串行口允许中断的控制位为ES,当ES = 1,允许串行口中断;当ES = 0,禁止串行中断。位位 地地 址址AFHAEHADHACHABHAAHA9HA8H位符号位符号EAESET1EX1ET0EX0961.中断中断由于中断源的请求,CPU暂停当前程序而执行中断处理程序,完毕后返回原程序继续执行的过程称为中断。中断过程分为中断请求、响应、处理、返回中断请求、响应、处理、返回四个阶段。第第6 6章章 80C5180C51单片机内部资源及应用单片机内部资源及应用97中断允许控制寄存器中断允许控制寄存器IE中断允许控制

59、寄存器IE在前面的中断系统中已详细介绍过,IE的地址是A8H,其内容如表所示。其中与串行口允许中断的控制位为ES,当ES = 1,允许串行口中断;当ES = 0,禁止串行中断。位位 地地 址址AFHAEHADHACHABHAAHA9HA8H位符号位符号EAESET1EX1ET0EX098TCON中的中断标志位中的中断标志位位位 地地 址址8F8E8D8C8B8A8988位位 符符 号号TF1TR1TF0TR0IE1IT1IE0IT0这个寄存器既有定时器这个寄存器既有定时器/计数器的控制功能又有中断控计数器的控制功能又有中断控制功能,制功能,其中与中断有关的控制位共其中与中断有关的控制位共6位:

60、位:IE0和和IE1、IT0和和IT1以及以及TF0和和TF1。第第6 6章章 80C5180C51单片机内部资源及应用单片机内部资源及应用99SCON中的串行中断标志位中的串行中断标志位SCON寄存器地址寄存器地址98H,位地址,位地址9FH98H,其中的低,其中的低2位位RI和和TI锁存串行口的接收中断和发送中断的申请锁存串行口的接收中断和发送中断的申请标志位标志位,如表所示。,如表所示。位地址位地址9FH9EH9DH9CH9BH9AH99H98H位符号位符号TIRI第第6 6章章 80C5180C51单片机内部资源及应用单片机内部资源及应用1001 1:允许:允许0 0:禁止:禁止中断控制中断控制位地址位地址AFHAEHADHAC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论