- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 mcs-51存储器配置
第二章 MCS-51存储器配置 存储器的两种结构: 普林斯顿结构:ROM和RAM统一编址,即在同一个空间队列内寻址 哈佛结构:ROM和RAM分别编址,在物理空间上相互独立。51单片机的存储器是哈佛结构。 物理上,MCS-51有4个存储器空间: 片内程序存储器和片外程序存储器; 片内数据存储器和片外数据存储器; 从用户使用的角度,即逻辑上,MCS-51有3个存储器空间: 片内外统一的64kb的程序存储器地址空间; 256b或384b的内部数据存储器地址空间; 64kb的外部数据存储器地址空间; 访问这3个不同逻辑空间时应采用不同形式的指令 2.1 程序存储器 程序存储器用于存放编好的程序和表格常数。 在MCS-51中,64kb程序存储器的地址空间是统一的。对于有内部ROM的单片机,在正常运行时,应把~EA引脚接高电平,使程序从内部ROM开始执行,当PC值超出内部ROM的容量时,会自动转向外部程序存储器空间;对这类芯片,若把~EA引脚接低电平,可用于调试状态,把调试程序放置在与内部ROM空间重叠的外部存储器内。对于无内部ROM的芯片,~EA引脚应始终接低电平,迫使系统从外部程序存储器取指。 对程序存储器可以采用立即寻址和基址+变址寻址方式 64kb程序存储器中有7个单元具有特殊功能 0000H单元 MCS-51复位后程序计数器PC的内容为0000H,所以系统必须从0000H单元开始取指,执行程序。该单元是系统的启动地址,一般在该单元中存放一条绝对跳转指令,而用户设计的主程序从跳转地址开始安放。 除0000H单元外,其它6个特殊单元分别对应于6种中断源的中断服务子程序的入口地址。通常在这些入口地址处都安放一条绝对跳转指令,而真正的中断服务子程序从转移地址开始安放。 2.2 内部数据存储器 数据存储器在物理上和逻辑上都分为两个地址空间,一个内部和一个外部数据存储器空间。访问内部数据存储器用MOV指令;访问外部数据存储器用MOVX指令。 内部数据存储器在物理上又可以区分为3个不同的块:00H~7FH(0~127)单元组成的低128字节的RAM块;80H~FFH(128~255)单元组成的高128字节的RAM块(8052单片机有这一块); 128b的专用寄存器(SFR)块; 在51子系列中,只有低128b的RAM块和128b的专用寄存器块,后者占有80H~FFH(128~255)地址空间,两块地址空间是相连的; 而在52子系列中,高128字节RAM块与SFR块的地址是重合的,究竟访问哪一块是通过不同的寻址方式加以区分的。访问高地址字节RAM时采用寄存器间接寻址方式,访问SFR块则采用直接寻址方式。而访问低128字节RAM时,两种寻址方式都可以采用。 注意:128b的SFR块中只有26个字节是有定义的,若访问这一块中没有定义的单元,将得到一个不确定的随机数 内部数据存储器的00H~1FH(0~31)单元共32b是4个通用寄存器区,每个区有8个8位寄存器,编号为R0~R7。在专用寄存器PSW(程序状态字)中有2位(RS0、RS1)可以用来确定采用哪一个工作寄存器区。可以通过两种方法改变这两位的值:1)对PSW寻址,通过改变PSW的值来间接改变这2位的值;2)直接对RS0、RS1寻址,改变它们的值。例如, RS0=0、RS1=1选择的是区1,而RS0=0、RS1=0选择区0 MCS-51内部数据存储器中可以设置堆栈,但是其位置不固定。可以通过一个专用寄存器SP(栈指针)来确定栈顶的地址。堆栈深度可达128b,但是以不超出内部RAM空间为限。 内部RAM块中的20H~2FH(32~47)单元和SFR块中的12个单元构成了布尔处理机的存储器空间,这28单元的221位(28×8减去3个未定义位)各自都有专门的位地址,可以被直接寻址。 2.3 专用寄存器 8051/8052中共有22个专用寄存器(3个只属于8052),其中5个是双字节寄存器。PC寄存器在物理上是独立的,其余21个寄存器都属于内部数据存储器的SFR块,共占了26个字节 1.程序计数器PC 程序计数器PC用于存放下一条要执行指令的地址(PC总是指向程序存储器地址),是一个16位专用寄存器,寻址范围64K字节,PC在物理结构上是独立的,不属于特殊功能寄存器SFR块。 2.累加器A 累加器A是一个最常用的专用寄存器,系统运转时工作最频繁,大部分单操作数指令的操作数取自累加器A,很多双操作数指令的一个操作数取自A;加、减、乘、除算术运算以及逻辑操作指令的结果都存放在累加器A或AB寄存器中;输入/输出大多数指令都以累加器A为核心操作。指令系统中采用A作累加器的助记符。 3.寄存器B 它是一
文档评论(0)