- 1、本文档共76页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2、数据存储器(片内RAM) 地址为00H~FFH。 用于存放运算的中间结果、数据暂存以及数据缓冲等。 返回 * 1. 存储器地址分配(片内ROM、片外RAM、片内RAM) 图2.3 MCS-51的存储器结构如 2.1.2 存储器结构 * 2.片内RAM 图2.4 MCS-51片内RAM的空间分配 * 存储器的结构图 * 低128单元是单片机的真正RAM存储器。 1、内部数据存储器低128单元 51子系列 * 分为三个区域: A、寄存器区: 4组寄存器(寄存器阵列)。即4个工作寄存器0区~3区。每组 8个寄存单元(每单元8位),以R0~R7作寄存器名,暂存运算数据和中间结果。字节地址为00H~1FH。 B、位寻址区 : 字节地址为20H~2FH,既可作RAM,也可位操作。共有16个RAM单元,共128位,位地址为00H~7FH。 C、用户RAM区: 32个单元,地址为30H~7FH,在一般应用中常作堆栈区。 用PSW中的两位PSW.4和PSW.3来切换工作寄存器区,选用一个工作寄存器区进行读写操作。 * 图2-8 低128字节RAM区 图2-9 高128字节RAM区(SFR区,特殊功能寄存器区) * * 在工作寄存器后的16个数据单元(20H~2FH),它们既可以作为一般的数据单元使用,也可以按位对每个单元进行操作,因此这16个数据单元又称作位寻址区。位寻址区共计128位,其位地址为00H~7FH。位地址的表示方法是采用字节地址和位数相结合的方法。 如位地址00H 可以表示为20H.0(见表2-4) 剩余的80个数据单元即30H~7FH为真正的用户RAM区,对于这些区域,用户只能以存储单元的形式来使用,通常在应用中也把堆栈开辟在这段区域。 * 图2-8 低128字节RAM区 图2-9 高128字节RAM区(SFR区,特殊功能寄存器区) * (2).?? 内部数据存储器高128单元SFR 内部数据存储器的高128个单元是为专用寄存器提供的,因此该区也称作特殊功能寄存器区(SFR)它们主要用于存放控制命令、状态或数据。除去程序计数器PC外,还有21个特殊功能寄存器,其地址空间为80H~FFH。这21个寄存器中有11个特殊功能寄存器具有位寻址能力,它们的字节地址刚好能被8整除。 8952的SFR见表2-3 * 图2-8 低128字节RAM区 图2-9 高128字节RAM区(SFR区,特殊功能寄存器区) * * 堆栈和数据缓冲 实际应用中,往往需要一个先进后出的RAM缓冲器用于保护CPU现场,这种后进先出的缓冲器称为堆栈。 51的堆栈原则上可设在内部RAM(0-7F或0-FF)的任意区域。但由于00-2FH区域的特殊功能,堆栈一般设在30H-7FH或30H-FFH范围内。 内部RAM中除了作为工作寄存器、位标志、堆栈区以外的单元都可以作为数据缓冲器使用。 * (1) 累加器ACC(E0H) 累加器ACC是89C51最常用、最忙碌的8位特殊功能寄存器,许多指令的操作数取自于ACC,许多运算中间结果也存放于ACC。在指令系统中用A作为累加器ACC的助记符。 * (2) 寄存器B(F0H) 在乘、除指令中,用到了8位寄存器B。乘法指令的两个操作数分别取自A和B,乘积存于B和A两个8位寄存器中。除法指令中,A中存放被除数,B中放除数,商存放于A,B中存放余数。 在其他指令中,B可作为一般通用寄存器或一个RAM单元使用。 * (3) 程序状态寄存器PSW(D0H) PSW是一个8位特殊功能寄存器,它的各位包含了程序执行后的状态信息,供程序查询或判别之用。各位的含义及其格式如表2-6所列。 PSW除有确定的字节地址(D0H)外,每一位均有位地址. * (4) 栈指针SP(81H) 堆栈指针SP为8位特殊功能寄存器,SP的内容可指向89C51片内00H~7FH RAM的任何单元。系统复位后,SP初始化为07H,即指向07H的RAM单元。 * SP的操作规则 堆栈指针SP (8位): MCS—51系列的堆栈是按“先进后出”原则存取数据的存储区。 MCS—51堆栈设在片内RAM区。 数据入栈时:先SP自动加1,后写入数据,SP始终指向栈顶地址。 —— “先加后压” 数据出栈时:先读出数据,后SP自动减 1,SP始终指向栈顶地址。 —— “先弹后减” * 在图2-10中,假若有8个RAM单元,每个单元都在其右面编有地址,栈顶由堆栈指针SP自动管理。每次进行压入或弹出操作以后,堆栈指针便自
文档评论(0)