程序存储器最低端的地址可以在片内Flash中,或在外部存储器中。将外部存取(EA)引脚接Vcc或接地,就可进行这种选择。例如,在带有4KB片内Flash的AT89C51中,如果把EA引脚连到Vcc,当地址为0000H~0FFFH时,则访问内部Flash;当地址为1000H~FFFFH时,则访问外部程序存储器。在AT89C52(8KB Flash)中,当EA端保持高电平时,如果地址不超过1FFFH,则访问内部Flash;地址超过1FFFH(即为2000H~FFFFH)时,将自动转向外部程序存储器。如果EA端接地,则只访问外部程序存储器,不管是否有内部Flash存储器。
外部程序存储器读选通信号PSEN用于读取所以的外部程序;读取内部程序时,不产生PSEN信号。 执行外部程序是的硬件连接方法如图1-6所示。
注意,在访问外部程序存储器时,16条I/O线(P0和P2)作为总线使用。P0端口作为地址/数据总线使用。它先输出16位地址的低8位PCL,然后进入悬浮状态,等待程序存储器送出的指令字节。当有效地址PCL出现在P0总线上时,ALE(允许地址锁存)把这个地址锁存到地址锁存器中。同时,P2端口输出地址的高8外PCH。然后PSEN选通外部程序存储器,使指令送到P0总线上,由CPU取入。
即使所用的程序存储器的实际空间可能小于64KB,程序存储器的地址总是为16位的。在访问外部程序存储器时,要用到两个8位端口--P0和P2来产生程序存储器的地址。
1.4.2 数据存储器
数据存储器在物理上逻辑上都分为两个地址空间:一个为内部数据存储器空间;一个为外部数据存储器空间。数据存储器的配置如图1-7所示。
图1-7是访问8KB外部RAM时的硬件连接图。在这种情况下,CPU执行内部Flash中的指令(EA接Vcc)。P0端口作用RAM的地址/数据总线,P2端口中的3位也作为RAM的页地址。访问外部RAM期间,CPU根据需要发送RD和WR信号。
at89s52 AT89S52芯片详细介绍
外部数据存储器的寻址空间可达64KB。[)外部数据存储器的地址可以是8位或16位的。使用8位地址时,要连同另外一条或几条I/O线作为RAM的页地址,如图1-7所示。这时P2的部分引线可作为为通用的I/O线。若采用16位地址,则由P2端口传送高8位地址。
内部数据存储器的地址是8位的,也就是说其地址空间只有256字节,但内部RAM的寻址方式实际上可提供384字节。高于7FH的直接地址访问同一个存储空间,高于7FH的间接地址访问另一个存储空间。这样,在图1-8中,虽然高128字节区与专用寄存器,即特殊功能寄存器(SFR)区的地址是重合的(80H~FFH),但实际上它们是分开的。究竟访问哪一区,是通过不同的寻址方式加以区分的。访问高128字节区时,采用间接寻址方式;访问SFR区时,采用直接寻址方式;访问低128字节区时,两种寻址方式都可采用。
低128字节区的分配情况如图1-9所示。最低32个单元(00H~1FH)是4个通用工作寄存器组。每个寄存器组含有8个8为寄存器,编号为R0~R7。专用寄存器PSW(程序状态字)中有2位(PS0,RS1)用来确定采用哪一个工作寄存器组。这种结构能够更有效地使用指令空间,因为寄存器指令比直接寻址指令更短。
工作寄存器组上面的16个单元(20H~2FH)构成了布尔处理机的存储器空间。这16个单元的128位各自都有专门的位地址,如图1-10所示,它们可以被直接寻址,这些位地址是00H~7FH。在89系列单片机的指令系统中,还包括了许多位操作指令,这些位操作指令可直接对这128位寻址。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-82080-20.html
我必犯人”
我怎么感觉你是来秀优越感的呢
但即便不是无害通过也不会不予警告就直接开火或者撞击