存储组织

来源:互联网 发布:linux mount 参数 编辑:程序博客网 时间:2024/04/30 13:28

2016年11月5日 00:10:54

 
大部分单片机在存储器结构上采用哈佛型结构:程序存储器与数据存储器分开。
S51的存储器配置在
物理结构上有4个存储空间:
①.片内程序存储器
②.片外程序存储器
③.片内数据存储器
④.片外数据存储器。
逻辑结构上有3个存储器地址空间:
①.片内、外统一编址的64KB程序存储器地址空间
②.片内256B的数据存储器地址空间(包含特殊功能寄存器SFR)
③.片外64KB的数据存储器地址空间



1.    程序存储器
只读存储器(ROM),专门用于存放程序指令字节代码及表格的常数。
S51有4KB的电可擦写的闪速Flash存储器(永久记忆,停电不丢失存储数据),地址为0000H~0FFFH
S51对外功能扩展时有16位的地址总线(P0提供低八位,P2提供高八位),寻址空间为64KB,范围:0000H~FFFFH。
程序存储器地址空间片内、外统一编址,都可用MOVC访问。PSEN非,根据实际需要来扩展。EA非接5V时,CPU从片内0000H单元开始取指令,当PC超过0FFFH时,自动到片外程序存储器地址空间执行程序。
S51有以下6中特殊的地址单元
(1). 0000H: 单片机复位后,PC=0000H,程序从此处开始执行
(2). 0003H(INT0非):外部中断0入口地址
(3). 000BH(T0):定时器T0溢出中断入口地址
(4). 0013H(INT1非):外部中断1入口地址
(5). 001BH(T1):定时器T1溢出中断入口地址
(6). 0023H:串行口中断入口地址     -----2~6为五个中断源
通常使用时,在这些中断入口地址处安放一条绝对跳转指令


2.    数据存储器

 

用于存放运算结果。数据暂存和缓冲、标志位等
可分为两个地址空间:①.片内256B的RAM(含SFR),地址范围:00H~FFH,用MOV访问(又能分为两部分)
②.片外最大可扩充64KB的RAM区,地址范围:0000H~FFFFH,用MOVX访问,WR非和RD非是该区域的写读控制信号
S51最多可以扩展64KB的外部RAM和I/O接口,即CPU有64KB的外部寻址能力,又因为扩展RAM和I/O接口是统一编址,所以I/O相当于一个RAM的存储单元,CPU都通过MOVX来对它们进行读、写操作


2.5.2    片内数据存储器和特殊功能寄存器(SFR)
片内的RAM又可分为两部分:①. 00~7FH,低128字节地址,有工作寄存器区、位寻址区、数据缓冲堆栈区
                           ②.80H~FFH,高128字节地址,特殊功能寄存器区
1.    工作寄存器区
 
 
00H~1FH,共32个字节,又称通用寄存器
功能:一般作为数据运算和传送时的暂存地址单元
使用时,由PSW中的RS1和RS0来决定工作寄存器区(每次只允许一组被选中)

CPU复位有效时,自动选择第0区,其他3个区仅能作普通RAM存储单元使用
优点:单机器周期可完成,执行速度快,占用内存少,使用方便效率高
2.    位寻址区
20H~2FH,有16B地址单元,共128位
该区域可直接寻址方式访问,也可位寻址方式访问。每一位都有一个单独的位地址编码(00~7FH)。通常将各种程序状态标志、位控制变了都设置在其中,有些特殊功能寄存器也有位寻址功能。
3.    用户RAM区
30H~7FH,作为普通RAM存储单元
功能:一般用作数据的暂存、缓冲区域
只能直接寻址。实际应用中,在该区域设置堆栈,来保护CPU现场数据。由于SP复位后是07H,与工作寄存器区重叠,必须重新定义。
 
4.    特殊功能寄存器区
MCS-51有21个特殊功能寄存器
S51有26个,被离散地设置在80H~FFH中

 

 


128个字节只用了26个,所以部分地址访问无效
特殊功能寄存器按字节操作时,仅可用直接寻址方式。
若字节地址能被8整除(地址尾数是8或者0)则具有位寻址操作功能
S51有11个这样的寄存器


注:IE中的EA与引脚的EA非无关
其他特殊功能寄存器,将在第五章介绍

 

0 0
原创粉丝点击