2-2-2MCS-51单片机的存储器结构_第1页
2-2-2MCS-51单片机的存储器结构_第2页
2-2-2MCS-51单片机的存储器结构_第3页
2-2-2MCS-51单片机的存储器结构_第4页
2-2-2MCS-51单片机的存储器结构_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、2.2.2 MCS51单片机的存储器结构 8051单片机在系统结构上采用了哈佛型,其存储器在物理结构上分程序存储器(ROM) 和数据存储器(RAM)。物理上相互独立的存储空间 :其配置如图2-3所示。片内ROM片外ROM片内RAM 片外RAM/I/O口60KB4KB64KB128BRAM128B SFR1存储器程序存储器(ROM) 8051及8751的片内程序存储器容量为4KB,地址从0000H开始,存放程序和表格常数。数据存储器(RAM) 8051/8751/8031片内数据寄存器为128B,地址为00H7FH,用于存放运算的中间结果、数据暂存以及数据缓冲等。 8051内部还有SP、DPTR

2、、PCONIE,IP等特殊寄存器,地址为80HFFH。2存储器配置一般微机:通常只有一个地址空间,ROM和RAM可以随意安排在这一地址范围内不同的空间,CPU访问存储器时,一个地址对应唯一的存储器单元,此类结构称为普林斯顿结构。8051的存储器:与典型微机不同,它把程序存储器和数据存储器截然分开,各有自己的寻址系统、控制信号和功能,这种程序存储器和数据存储器分开的结构称为哈佛结构。3物理上分4个存储器空间 内部程序存储器 外部程序存储器 内部数据存储器 外部数据存储器逻辑上分3个存储器空间 片内外统一的64KB程序存储器 256B(含SFR块)片内数据存储器 64KB片外数据存储器8051存储

3、器地址空间分配 在8051单片机的内部集成了4K的程序存储器和256B的数据存储器,同时还可以使用片外的程序存储器和数据存储器,其扩展能力都是64K。464k程序存储器地址空间,片内外统一编址0000hFFFFh256B片内数据存储器地址空间指令用MOVC指令用MOV指令用MOVX 64kb片外数据存储器地址空间,0000hFFFFh564KB RAM(I/O)64KB ROMFFFF100000000FFFFFFF00004KB ROM0FFF0000SFRRAM00807FFF片内存储器片外扩展存储器图1 8051存储器空间分布图EA=1EA=0注意:1、访问片内RAM20H存储单元; M

4、OV A,20H2、访问片外RAM存储单元; MOV R0,#20h MOVX A,R03、尽管片内与片外的RAM单元的00H-FFH地址相重叠,但由于指令的不同不会发生地址混乱。62.3.1程序存储器地址空间程序存储器是存放编好的程序、常数和表格的,只能读不能写。该空间有几个特殊单元,应用过程中应加以注意。在MCS-51单片机中,当引脚EA=1时,系统使用片内的ROM;EA=0时,系统使用片外的ROM。无论是使用片内还是使用片外的ROM(既 EA=1或EA=0),其起始地址都是从0000H单元开始,0000H是系统的启动地址。0003H002BH是中断服务程序入口地址。7存储单元保留地址00

5、00H0002H复位后初始化引导程序0003H000AH外部中断0000BH0012H定时器0溢出中断0013H001AH外部中断1001BH0022H定时器1溢出中断0023H002AH串行端口中断002BH定时器2溢出中断(8052才有)8051、52系列保留的存储单元8中断源中断服务程序入口地址外部中断00003H定时器/计数器0溢出000BH外部中断10013H定时器/计数器1溢出001BH串行口0023H8051中断矢量地址表9数据存储器地址空间片外数据存储器片内数据存储器分为两个部分 : 1、低128B RAM(00H7FH) 00H1FH,4个通用工作寄存器区 20H2FH,位地

6、址空间堆栈的设定 2、高128B特殊功能存储器 (SFR) (80HFFH) 特殊功能寄存器SFR片内通用数据存储器80H7FH00HFFH片外数据存储器64KB0000HFFFFH10用户RAM区(堆栈、数据缓冲)位寻址区(位地址007F)第0组工作寄存器R7R0第3组工作寄存器第2组工作寄存器第1组工作寄存器R7R0R7R0R7R007H00H1FH18H17H10H0FH08H2FH20H7FH30H片内RAMSFR98H SCON82H DPL81H SP80H P08DH TH18CH TH08BH TL18AH TL089H TMOD88H TCON87H PCON83H DPH9

7、0H P1IP B8HPSW D0HB F0HFFHACC E0HP3 B0HIE A8HP2 A0HSBUF 99H低128Bytes RAM高128bytes RAM11RS1RS0R0R1R2R3R4R5R6R700000H01H02H03H04H05H06H07H10108H09H0AH0BH0CH0DH0EH0FH21010H11H12H13H14H15H16H17H31118H19H1AH1BH1CH1DH1EH1FH R0R7寄存器分配12片内 RAM(20H-2FH)中的位寻址区结构图7F7E7D7C7B7A797877767574737271706F6E6D6C6B6A696

8、867666564636261605F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A393837262524232221202F2E2D2C2B2A292827262524232221201F1E1D1C1B1A191817161514131211100F0E0D0C0B0A090807060504030201002FH20H字节地址位地址13位寻址区内的地址是位地址。共有00-7FH(共128个位);要区分字节地址和位地址这两个不同的地址概念:从物理的角度:每一个字节地址内包含了8个位,既:

9、 D7,D6,D5,D4,D3,D2,D1,D0 (我们提到的RAM地址一般都是指字节地址)。从逻辑的角度:字节地址和位地址是靠不同类型的指令来 区分的。如, MOV A, 20H ;将RAM的20单元内容送累加器A; MOV C ,20H ;将RAM位寻址区中20H位送CY中。 在这二个例子中,第一条指令为字节传送指令,既20H为字节地址;第二个例子中的指令为位操作指令,20H为位地址。有关详细内容将在后续章节中描述。14特殊功能寄存器: 共22个(3个只属52子系列),PC在物理上是独立的,其余21个分布在SFR区,共占26个字节(5个双字节寄存器)。 这21个中,有11个寄存器具有位寻址

10、功能,即寄存器中的每位都具有位地址,它们的特点是字节地址正好能被8整除。注意: 1、128B的SFR区中仅有26B是有定义的,若访问没有定义的单元,将得到一个不确定的随机数。2、访问SFR时只能采用直接寻址方式。15特殊功能寄存器简介 程序计数器PC 16位,寻址范围64KB,用于安放下一条要执行的指令地址,在物理上是独立的。 累加器A(ACC) 8位,是CPU中工作最频繁的,大部分操作数取自累加器,运算结果也存放在A中。 B寄存器 8位,用于乘除指令中,对其他指令可作RAM中的一个单元用。 16 程序状态字(或标志寄存器)PSW 8位,存放运算结果的一些状态信息,各位含义如下: 17CY(P

11、SW.7):进位标志位。在进行加法(或减法)运算时,若运算结果最高位有进位或借位,则CY自动置“1”,否则CY置“0”,在进行布尔操作运算时,CY(简称C)作为布尔处理器。AC:辅助进位标志位。当进行加法或减法时,若低4位向高4位有进位(或借位)时,AC被置“1”,否则AC被置“0”。在十进制调整指令中AC还作为十进制调整的判别位。F0:用户标志位。用户可用软件对F0位置“1”或清“0”以决定程序的流向。18OV:溢出标志位,当运算结果溢出时OV为“1”,否则为“0”,此标志位反映了带符号数运算结果是否溢出。OV的结果可以用一个算法来表示: OV=CPCS 其中:CP为A7的进位;CS为A6的

12、进位。PSW.1:未定义位。P(PSW.0):奇偶标志位。当累加器A中“1”的个数为奇数时,P置“1”,否则P置“0”。此位反映累加器A中内容“1”的奇偶性,它常常用于单片机间通信。RS1、RS0:工作寄存器区选择位。用来选择当前工作的寄存器区。用户通过改变RS1 、RS0的内容来选择当前工作寄存器区。RS1、RS0的内容与工作寄存器区的对应关系如表2-1所示。19数据指针DPTR 是一16位专用寄存器,其高字节寄存器用DPH表示,低字节寄存器用DPL表示。既可作为16位寄存器(DPTR)使用,又可作为两个独立的8位寄存器(DPH、DPL)来使用。DPTR主要用来保持16位地址,当对64KB外

13、部数据存储器RAM(或I/O口)空间寻址时,作间址寄存器用,指向外部数据存储器地址。 20堆栈指针SP 它是一个8位寄存器,用来存放栈顶地址。 MCS-51堆栈设在内部RAM中,是一个按“先进后出”顺序,受SP管理的存储区域。在程序中断,子程序调用等情况下,用于存放一些特殊信息(亦可作数据传送的中转站)。当数据压入堆栈时,SP就自动加“1”;当数据从堆栈中弹出时,SP就自动减“1”。因而SP指针始终指向栈顶。 MCS-51堆栈最大深度为128个字节,系统复位时硬件使SP=07H。 指令系统中的栈操作指令是:PUSH,POP。 21(a)系统复位后,未改变SP初值时的堆栈操作(设(A)=0ABH

14、)22(b)系统复位后,改变SP初值为60H时的堆栈操作堆栈操作示例23 用户使用的角度上看,8051存储空间分为三类: 片内、片外统一编址0000H0FFFFH的64K字节的程序存储器地址空间; 256字节数据存储器地址空间; 64K字节片外数据存储器/I/O口地址空间,地址也从0000H0FFFFH。 上述三个空间地址是重叠的,即 程序存储器中片内外低4K字节地址重叠; 数据存储器与程序存储器64K地址全部重叠; 数据存储器中片内外低256个字节地址重叠。 虽然地址重叠,但由于采用了不同的操作指令及控制信号EA、PSEN的选择,因此不会产生混乱。 说明24特殊单元: 0000H-0002H

15、(开机复位单元) 3个 0003H-000AH(INT0中断地址区) 8个 000BH-0012H(T/C0中断地址区) 8个 0013H-001AH(INT1中断地址区) 8个 001BH-0022H(T/C0中断地址区) 8个 0023H-002AH(串行口中断地址区) 8个2.2.2.1 程序存储器 程序存储器用来存放程序和常数,分为片内和片外两部分,其中8051内部有4kB的ROM,地址范围是0000H-0FFFH,片外用16位地址线扩充64kB的ROM,两者统一编址。(从片内还是从片外取指取决于EA引脚。)25 当CPU的引脚EA接高电平时, PC在0000H0FFFH范围内,CPU

16、从片内ROM取指令; 而当PC0FFFH后,则自动转向片外ROM去取指令。 当引脚EA接低电平时,8051片内ROM不起作用,CPU只能从片外ROM取指令,地址可以从0000H开始编址 对于片内无ROM的 8031、8032单片机,EA应接地。以便从外部扩展EPROM中取指令。 8051从片内ROM和片外ROM取指时执行速度相同。26 数据存储器用来存放运算的中间结果、标志位,及数据的暂存和缓冲等。分为片内RAM和片外RAM。8051系列单片机内数据存储器最大可寻址256个单元,片外可寻址16位(64kB)的地址空间。片内数据存储器和片外数据存储器是单独编址的。数据存储器272.2.2.2.片

17、内数据存储器(RAM)28用户RAM区(堆栈、数据缓冲)(30H-7FH)位寻址区(位地址00H-7FH)(20H-2FH)第3组通用寄存器(18H-1FH)第2组通用寄存器(10H-17H)第1组通用寄存器(08H-0FH)第0组通用寄存器(00H-07H) 用于存放操作数及中间结果。由于它们的功能预先不作规定,因此称为通用寄存器,也叫工作寄存器。 任一时刻,CPU只能使用一组工作寄存器。(由PSW的RS0和RS1决定) 可以直接对位进行寻址。(共16个单元,128个位) 用于存放用户数据和及做堆栈用。00H7FH1、低128字节RAM29 1、工作寄存器(00H1FH) RS1 RS0 寄

18、存器组 片内RAM地址 0 0 第0组 00H07H 0 1 第1组 08H0FH 1 0 第2组 10H17H 1 1 第3组 18H1FH 内部RAM 的三个区域:R0R74个30 这16个单元(共计128位)的每一位都有一个8位表示的位地址,位寻址范围为00H7FH,如表2-4所示P23。 位寻址区的每一个单元既可作为一般RAM单元使用,进行字节操作,也可以对单元中的每一位进行位操作。 MCS-51布尔处理器的存储空间就是指这个位寻址空间。47H46H45H44H43H42H41H40HD0D1D2D3D4D5D6D7 28H 字节地址位地址2、可位寻址区(20H2FH)3147H46H45H44H43H42H41H40HD0D1D2D3D4D5D6D7 28H 字节地址MOV 28H,#56H SETB 43HCLR 42H0010101110字节操作位操作32 30H7FH是供用户使用的一般RAM区,也是数据缓冲区,共80个单元。对用户RAM区的使用没有任何规定或限制,一般用于存放用户数据及作堆栈区使用。 3、用户RAM区(30H7FH

温馨提示

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

评论

0/150

提交评论