
51单片机外扩存储器时,用地址线确定存储器的地址范围。
用一个IO口的口涎作为数据存储器的片选信号。比如8051单片机,P2:P0口提供的地址A15~A0(实际是A12~A0)用来访问8K的数据存储器。
用单片机的P1口作为存储器的片选信号:P10接一个存储器的CS,P11接另一个存储器的CS,这样8个存储器正好用完P1口,当要访问其中一个时,只把相应的P1x=0而其他为1,这样就可以了。
工作原理
存储器是用来存储程序和各种数据信息的记忆部件。存储器可分为主存储器(简称主存或内存)和辅助存储器(简称辅存或外存)两大类。和CPU直接交换信息的是主存。
主存的工作方式是按存储单元的地址存放或读取各类信息,统称访问存储器。主存中汇集存储单元的载体称为存储体,存储体中每个单元能够存放一串二进制码表示的信息,该信息的总位数称为一个存储单元的字长。
S52,片内有8kB程序存储器,地址空间范围是0000h~1FFFh。
片内SRAM有256B,地址空间范围是00h~FFh。
外部程序存储器和数据存储器都是可寻址全部的64kB空间。
如果要吧这个问题说的很细,我想会很难,Excel里提供了三种引用的方法,分别是相对引用、绝对引用和混合引用,他们的表达式分别是 “A1”,“$A$1”,
“$A1和A$1”这个主要是体现在公式里的,举个例子吧,比如你在B2输入了公式 =A1,当你把公式拖动到B3的时候,单元格公式变成了A2。拖动到C2单元格公式
则变成了 B1。这就是第一种,相对引用。你的公式移动了位置,它就移动相应的位置取值。绝对引用就相反,在 B2里输入“=A1”,无论你吧公式填充到哪里,
它还是显示 A1的内容。混合引用分两种,“行”引用和“列”引用
在B2输入=A$1,然后往B3和C2填充,你会发现在C2里变成了“=B2”,在B3里却还是“=A1”,这是因为行已经被定死了,我们只能引用第一行的数据。说明拖动公式后我们的行不会变化了,改变的值是列。同理,输入=$A1,填充到B3和C2,这回C2里显示的是“=A1”,而B3里显示成了“=A2”则指能引用A列的数据。拖动公式时列不会改变,改变的是行。多试几次你就能看出其中的道理了。我们做数据经常会用到引用单元格,所以了解这个是很有必要的!希望我的解说能对你有所帮助。
movx:访问外部数据存储器空间。
movc:访问程序存储器空间。
采用位寻址的指令访问的是位地址空间。如:JB、JNB、JBC、JC、JNC、MOV C,BIT、ANL C,BIT等
其他指令访问的是内部数据存储器空间。
一句话,单片机的指令系统是通过不同的指令及其寻址方式来区分不同的存储空间的。
MCS-51单片机存储器结构
1、 程序存储器
MCS-51具有64kB程序存储器寻址空间,它是用于存放用户程序、数据和表格等信息。对于内部无ROM的8031单片机,它的程序存储器必须外接,空间地址为64kB,此时单片机的端必须接地。强制CPU从外部程序存储器读取程序。对于内部有ROM的8051等单片机,正常运行时,则需接高电平,使CPU先从内部的程序存储中读取程序,当PC值超过内部ROM的容量时,才会转向外部的程序存储器读取程序。
8051片内有4kB的程序存储单元,其地址为0000H—0FFFH,单片机启动复位后,程序计数器的内容为0000H,所以系统将从0000H单元开始执行程序。但在程序存储中有些特殊的单元,这在使用中应加以注意:
其中一组特殊是0000H—0002H单元,系统复位后,PC为0000H,单片机从0000H单元开始执行程序,如果程序不是从0000H单元开始,则应在这三个单元中存放一条无条件转移指令,让CPU直接去执行用户指定的程序。
另一组特殊单元是0003H—002AH,这40个单元各有用途,它们被均匀地分为五段,它们的定义如下:
0003H—000AH 外部中断0中断地址区。
000BH—0012H 定时/计数器0中断地址区。
0013H—001AH 外部中断1中断地址区。
001BH—0022H 定时/计数器1中断地址区。
0023H—002AH 串行中断地址区。
可见以上的40个单元是专门用于存放中断处理程序的地址单元,中断响应后,按中断的类型,自动转到各自的中断区去执行程序。因此以上地址单元不能用于存放程序的其他内容,只能存放中断服务程序。但是通常情况下,每段只有8个地址单元是不能存下完整的中断服务程序的,因而一般也在中断响应的地址区安放一条无条件转移指令,指向程序存储器的其它真正存放中断服务程序的空间去执行,这样中断响应后,CPU读到这条转移指令,便转向其他地方去继续执行中断服务程序。
2、 数据存储器
数据存储器也称为随机存取数据存储器。MCS-51单片机的数据存储器在物理上和逻辑上都分为两个地址空间,一个是内部数据存储区和一个外部数据存储区。MCS-51内部RAM有128或256个字节的用户数据存储(不同的型号有分别),它们是用于存放执行的中间结果和过程数据的。MCS-51的数据存储器均可读写,部分单元还可以位寻址。
8051内部RAM共有256个单元,这256个单元共分为两部分。其一是地址从00H—7FH单元(共128个字节)为用户数据RAM。从80H—FFH地址单元(也是128个字节)为特殊寄存器(SFR)单元。从图1中可清楚地看出它们的结构分布。
在00H—1FH共32个单元中被均匀地分为四块,每块包含八个8位寄存器,均以R0—R7来命名,我们常称这些寄存器为通用寄存器。这四块中的寄存器都称为R0—R7,那么在程序中怎么区分和使用它们呢?聪明的INTEL工程师们又安排了一个寄存器——程序状态字寄存器(PSW)来管理它们,CPU只要定义这个寄存的PSW的第3和第4位(RS0和RS1),即可选中这四组通用寄存器。对应的编码关系如图2所示。
内部RAM的20H—2FH单元为位寻址区,既可作为一般单元用字节寻址,也可对它们的位进行寻址。位寻址区共有16个字节,128个位,位地址为00H—7FH。位地址分配如表1所示,CPU能直接寻址这些位,执行例如置“1”、清“0”、求“反”、转移,传送和逻辑等 *** 作。我们常称MCS-51具有布尔处理功能,布尔处理的存储空间指的就是这些为寻址区。
先明白定义再说区别和原理: 1、程序存储器(program storage) 在计算机的主存储器中专门用来存放程序、子程序的一个区域。 2、指令寄存器(IR ):用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到数据寄存器(DR)中,然后再传送至IR。指令划分为 *** 作码和地址码字段,由二进制数字组成。为了执行任何给定的指令,必须对 *** 作码进行测试,以便识别所要求的 *** 作。指令译码器就是做这项工作的。指令寄存器中 *** 作码字段的输出就是指令译码器的输入。 *** 作码一经译码后,即可向 *** 作控制器发出具体 *** 作的特定信号。 3、程序计数器(PC):为了保证程序(在 *** 作系统中理解为进程)能够连续地执行下去,CPU必须具有某些手段来确定下一条指令的地址。而程序计数器正是起到这种作用,所以通常又称为指令计数器。在程序开始执行前,必须将它的起始地址,即程序的一条指令所在的内存单元地址送入PC,因此程序计数器(PC)的内容即是从内存提取的第一条指令的地址。当执行指令时,CPU将自动修改PC的内容,即每执行一条指令PC增加一个量,这个量等于指令所含的字节数,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单的对PC加1。 当程序转移时,转移指令执行的最终结果就是要改变PC的值,此PC值就是转去的地址,以此实现转移。有些机器中也称PC为指令指针IP(Instruction Pointer) 4、地址寄存器:用来保存当前CPU所访问的内存单元的地址。由于在内存和CPU之间存在着 *** 作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到内存的读/写 *** 作完成为止 。 当CPU和内存进行信息交换,即CPU向内存存/取数据时,或者CPU从内存中读出指令时,都要使用地址寄存器和数据缓冲寄存器。同样,如果我们把外围设备的设备地址作为像内存的地址单元那样来看待,那么,当CPU和外围设备交换信息时,我们同样使用 地址寄存器和数据缓冲寄存器 基本上定义就是区别和应用。 蓝屏
以上就是关于51单片机外扩存储器时如何确定存储器的地址范围全部的内容,包括:51单片机外扩存储器时如何确定存储器的地址范围、4、at89s52单片机,可寻址的程序存储空间地址范围为~___; 可寻址的数据存储空、存储程序控制的基本原理,和说明EXCEL中单元格引用时相对地址和绝对地址的区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)