第2章 存储器的认识_第1页
第2章 存储器的认识_第2页
第2章 存储器的认识_第3页
第2章 存储器的认识_第4页
第2章 存储器的认识_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、1第1节 存储器的认识n一、任务目标n 学习51单片机的存储器结构。通过本任务的学习,使读者掌握51单片机存储器的结构及使用方法。n二、任务分析n 在单片机中,用户设计好的程序及程序运行时的数据要放到一个载体里,这个载体就叫存储器(集成电路)。2第1节 存储器的认识n 程序设计完成后写到存储器中,在单片机运行时程序只需从存储器中读取出来运行。用来存放程序的存储器,我们称之为程序存储器(只读存储器),简称ROM。而在单片机运行时,数据将随着程序的运行发生变化,我们将存放数据的存储器称为数据存储器(随机存储器),简称RAM。3第1节 存储器的认识n 单片机的存储器又可分为片内和片外存储器。片内存储

2、器是在单片机内部的存储器,通常容量有限。当单片机程序很大,同时单片机运行时的数据较大,片内存储器容量不够,就需要对单片机扩展外部存储器,这就是片外存储器。 n 综上所述,51单片机有两种存储器:程序存储器和数据存储器。51单片机同时拥有4个存储空间(物理结构上):片内ROM、片外ROM、片内RAM和片外RAM。图2-1所示为51单片机存储器地址空间,其中使用最频繁的是片内数据存储器,应重点掌握。4第1节 存储器的认识n 图2-1 51单片机存储器地址空间5第1节 存储器的认识n三、相关知识n1程序存储器n 程序存储器用于存放用户程序、数据和表格等信息,其存储单元只能读不能写。51单片机程序存储

3、器有16位地址,可寻址的范围为64KB,因此片外程序存储器最大容量为64KB,而片内程序存储器容量为4KB。程序存储器在物理结构上分为片内程序存储器和片外程序存储器两个部分,在逻辑结构上(即用户使用角度)为一个部分,采用同一指令(MOVC指令)进行数据读取,用外部引脚进行区分低4KB空间使用的是片内程序存储器还是片外程序存储器。6第1节 存储器的认识n 对于8031单片机来说,它的内部没有ROM,因此,在实际使用时,必须对它扩展外部程序存储器,最大可扩展空间地址为64KB,此时8031单片机的端必须接地,强制CPU从外部程序存储器读取程序。对于内部有ROM的8051,8751,89C51,89

4、S51等单片机,正常运行时,则需接高电平,使CPU先读内部程序存储器中的程序,当PC值超过内部ROM的容量时,才会转而读外部程序存储器中的程序。7第1节 存储器的认识n2数据存储器n 数据存储器也称为随机存取存储器,用于存取程序运行时的中间结果、标志位及控制功能数据等。51单片机的数据存储器在物理上和逻辑上都分为两个地址空间:片内数据存储器和片外数据存储器。8第1节 存储器的认识n(1)片内数据存储器n 51单片机内部数据存储器地址为8位,可寻址的范围为256B,但实际的片内数据存储器因单片机型号不同有所不同:其中8031,8051,8751,89C51,89S51等51子系列为256B,而8

5、032,8052,8752,89C52,89S52等52子系列为384B。实际提供给用户使用的片内数据存储器容量对51子系列为128B,对52子系列为256B,它们是用于存放程序执行的中间结果和过程数据的。9第1节 存储器的认识n 片内256个字节数据存储器分为两部分:低128字节为用户数据RAM单元,地址为00H7FH,该部分为用户数据存取使用;高128字节为特殊功能寄存器(SFR)单元,地址为80HFFH,该部分为单片机功能控制用。n片内数据存储器低128B根据其用途的不同,又可分为3个区:工作寄存器区,地址为00H1FH,共32个字节,该区为工作寄存器使用;位寻址区,地址为20H2FH,

6、共16个字节128位,位地址为00H7FH,该区单元既可按字节操作,又可按位操作;用户RAM区,地址为30H7FH,共80个字节,该区为用户数据存取使用,只能按字节操作。 10第1节 存储器的认识n 工作寄存器区32个字节被均匀地分为4个组,每组有8个工作寄存器,均以R0R7来命名。第0组工作寄存器,地址为00H07H;第1组工作寄存器,地址为08H0FH;第2组工作寄存器,地址为10H17H;第3组工作寄存器,地址为18H1FHH。在程序运行时,究竟使用的是哪组工作寄存器,就要通过一个特殊功能寄存器程序状态字寄存器(PSW)的第4和第3位(RS1和RS0)的值来区分它们。RS1和RS0为00

7、则用第0组工作寄存器;RS1和RS0为01则用第1组工作寄存器;RS1和RS0为10则用第2组工作寄存器;RS1和RS0为11则用第3组工作寄存器。若程序中并不需要4组,那么其余的可作为一般的数据存储器。CPU复位后,选中第0组工作寄存器。11第1节 存储器的认识n 特殊功能寄存器区离散地分布了21个特殊功能寄存器(又称为专用寄存器),这些寄存器反映了51单片机的运行状态,很多功能均是通过特殊功能寄存器来定义和控制执行的,这些寄存的功能已做了专门的规定,用户不能修改其结构。例如累加器A、寄存器B、程序状态字寄存器(PSW)、数据指针(DPTR)、I/O口寄存器P0P3等均为特殊功能寄存器。 1

8、2第1节 存储器的认识n 对52子系列的高128B(地址为80HFFH)对应两个物理空间,一个空间作为用户RAM区,为用户使用;另一空间作为特殊功能寄存器区,为单片机功能部件控制使用,两部分地址重叠,但通过不同的寻址方式可将它们区分开:对80HFFH的用户RAM区只能采用寄存器间接寻址方式访问,而对SFR区只能采用直接寻址方式访问。片内数据存储器是程序设计中使用频率最高的存储器部分,用户的许多参数、变量及单片机功能控制寄存器均取自于该部分存储器。13第1节 存储器的认识n(2)片外数据存储器结构n 51单片机片外数据存储器为16位地址空间,因此最多可扩展64KB的片外RAM。由图2-1可知,片

9、内RAM和片外RAM的低256B的地址相同,但它们却是两个不同的地址空间。区分这两个地址空间的方法是采用不同的指令,访问片内RAM用MOV指令,访问片外RAM用MOVX指令。14第1节 存储器的认识n四、任务实施n1单片机存储器总体分配n 单片机存储总体分配图如图2-2所示。n2单片机存储器各部分的功能及使用注意n 单片机存储器各部分的功能及使用注意如图2-3所示。n3单片机片内数据存储器的结构n 单片机片内数据存储器的结构如图2-4所示。15第1节 汇编语言程序设计基础任务一 存储器的认识n 图2-2 单片机存储器总体分配图16n 图2-3 单片机存储器各部分的功能及使用注意17第1节 汇编

10、语言程序设计基础任务一 存储器的认识n 图2-4 单片机片内数据存储器结构18第1节 存储器的认识n4软件仿真时存储器的观察窗口n 在编写好程序后,必须用伟福或Keil软件对编译通过的程序进行调试,在调试过程中打开工作寄存器窗口、特殊功能寄存器窗口和内部RAM窗口,进行程序运行时各输入端口状态的设置,观察程序运行过程中各相关单元的值。在程序调试时,先用单步或跟踪运行,在程序调试通过后再用全速运行,如图2-5图2-8所示。 19第1节 汇编语言程序设计基础任务一 存储器的认识n 图2-5 伟福软件特殊功能寄存器观察窗口 图2-6 伟福软件存储器观察窗口 20第1节 汇编语言程序设计基础任务一 存

11、储器的认识n 图2-7 Keil软件CPU寄存器观察窗口 图2-8 Keil软件存储器观察窗口 21n三、相关知识n1特殊功能寄存器n(1)累加器(ACC)n ACC是8位寄存器,它是一个最常用的特殊功能寄存器(专用寄存器),其在SFR中的地址为E0H,在指令中常将ACC简写为A。大部分单操作数指令的操作数取自累加器,很多双操作数指令中的一个操作数也取自累加器。加、减、乘、除法运算指令,运算结果都存放于A或寄存器B中。大部分的数据操作都会通过累加器A进行,在程序比较复杂的运算中,累加器成了制约软件效率的“瓶颈”,它的功能较多,地位也十分重要。 22n(2)程序状态字寄存器(PSW)n PSW是

12、一个8位寄存器,它也是一个特殊功能寄存器,其在SFR中的地址为D0H,用于存放程序运行中的各种状态信息,这个寄存器的一些位可由软件设置,有些位则由硬件自动设置。寄存器的各位定义及功能如表2-1所示。 23第1节 汇编语言程序设计基础任务二 寻址方式的认识n 位 序位 标 志位 名 称功 能PSW.0P奇偶校验位表明A内容的奇偶性,凡是改变A中内容的指令均影响奇偶校验位,若A中值为1的位数为奇数,则P置1,否则清0PSW.1F1用户标志位供用户设置的标志位,由用户置1或清0PSW.2OV溢出标志在有符号加减法运算中,如运算结果超出8位有符号数的有效范围(128+127)时,即产生溢出,OV=1,

13、表明运算结果错误;如运算结果没有超出有效范围,则OV=0,表明运算结果正确。执行加法指令时,当位6向位7有进位,而位7向CY没有进位时,OV=1。或者位6向位7没有进位,而位7向CY有进位时,同样OV=1。所以OV为位6进位与位7进位的异或,即OV=CY6 CY7。执行乘法指令时,乘积超过255时,OV=1,乘积在AB寄存器中;若OV=0,则说明乘积没有超过255,乘积只在累加器A中。执行除法指令时,OV=1,表示除数为0,运算不被执行;否则OV=0。表2-1程序状态字寄存器位定义及位功能表24第1节 汇编语言程序设计基础任务二 寻址方式的认识n 位 序位 标 志位 名 称功 能PSW.4PS

14、W.3RS1RS0工作寄存器组选择位RS1RS0工作寄存器组00第0组(00H07H)01第1组(08H0FH)00第2组(10H17H)11第3组(18H1FH)PSW.5F0用户标志位供用户设置的标志位,由用户置1或清0PSW.6AC辅助进位标志位当进行加、减运算时当低4位向高4位有进位或借位时,AC置1,否则清0。AC辅助进位位常用于十进制调整PSW.7CY进位标志位此位有两个功能:一是执行加法或减法运算时,存放运算结果的进位或借位标志,当运算结果的最高位有进位或借位时置1,否则清0;二是在位操作中作为累加位使用,在指令中常简写为C表2-1程序状态字寄存器位定义及位功能表25n(3)数据

15、指针(DPTR)n DPTR为16位寄存器,其在SFR中的地址为83H和82H。它通常在访问外部数据存储器时作为地址指针使用。编程时既可以按16位寄存器来使用,也可以按两个8位寄存器来使用,即高字节寄存器(DPH,地址为83H)和低字节寄存器(DPL,地址为82H)。当访问程序存储器时,DPTR可用来作为基址寄存器,采用基址+变址寻址方式访问程序存储器。 26n2程序计数器(PC)n PC在物理上是独立的,它不属于特殊功能寄存器区的一个寄存器。PC是一个16位的计数器,它的作用是控制程序的执行顺序,用于存放一条将要执行的指令地址,寻址范围为64KB。PC有自动加1功能,即完成了一条指令的执行后

16、,其内容自动加1。PC本身并没有地址,因而不可寻址,用户无法对它进行读写,但是可以通过转移、调用、返回等指令改变其内容,以控制程序按用户要求去执行。 27n3片内RAM位寻址区位地址n 内部RAM中的位寻址区20H2FH单元,共有16个字节,128个位,位地址为00H7FH,位地址分配如表2-2所示。CPU能直接寻址这些位,执行例如置1、清0、取反、位传送和位逻辑运算等操作。我们常称51单片机具有布尔处理功能,布尔处理的存储空间指的就是这个位寻址区。 28第1节 汇编语言程序设计基础任务二 寻址方式的认识单 元 地 址 MSB 位地址 LSB2FH7FH7EH7DH7CH7BH7AH79H78H2EH77H76H75H74H73H72H71H70H2DH6FH6EH6DH6CH6BH6AH69H68H2CH67H66H65H64H63H62H61H60H2BH5FH5EH5DH5CH5BH5AH59H58H2AH57H56H55H54H53H52H51H50H表2-2片内RAM位寻址区位地址表29第1节 汇编语言程序设计基础任务二 寻址方式的认识n 单 元 地 址 MSB 位地址 LSB29H4FH4EH4DH4CH4BH4AH49

温馨提示

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

评论

0/150

提交评论