![]() |
|
||||||||||||||
| | 首页 | 新闻 | 文库 | 方案 | 技术 | 独家 | 座谈 | 下载 | 图库 | 开发板 | 仿真器 | 邮购 | VIP | 芯片 | 客户评价 | 论坛 | | ||
|
||
|
|||||
| ADuC845的存储器组织结构 | |||||
作者:admin 文章来源:本站原创 点击数: 更新时间:2007-9-28 ![]() |
|||||
|
ADuC845的存储器组织有几个N N N存储空间,如图2-1所示。每个存储空间都具有连续的字节地址空间,其地址都是从0开始至最大存储范围的字节地址,即它们的地址是全部重叠的。它们之间是利用指令的寻址方式不同而区分的。 图2-1中,点画线框内是ADuON5片内的存储器,点画线框外是片外的存储器。AduC845的程序存储器只是点画线框内左边的片内FLASH/EE,ANION其余的都是数据存储器。
1.程序存储器(CODE)区 ADuC845的程序存储器区只在片内。ADuC845的片内程序存储器区(ICODE)是快闪存储器,可以多次擦写,特别适合于开发程序量不大的新产品或学习用,或者是不时需要升级的产品。ADuC845的片内快闪存储器最大为62 KB。 ADuC845可以从程序存储器中读取常数或查表。例如,下列指令都是从程序存储器中得 到常数的例子。
注意:(1)所需读取的数据直接表示为指令中的立即数;(2)立即数需要加前缀“#”(半角的井号字符);(3)立即数的第一位数为大于或等于十进制数“10”的数,即为A~F时,前面要加“0”。 常数与常数表格通常放在程序存储器中。常用“DB”伪指令表示以一个字节的形式存储在程序存储器中的常数与常数表格。例如:
常数放在从“CANGSHU”开始的地址中,由于小于十进制数“10”的十进制数与十六进制数一样,可以不加后缀“H”。大于或等于十进制数“10”的数,不加后缀“H”的是十进制数,加后缀“H”的是十六进制数。这点要引起注意。再者,十六进制数的第一位数大于或等于十进制数“10”的数,即为A~F时,前面要加一个十进制数“0”。 也可用“DW'’伪指令表示以一个字节的形式存储在程序存储器中的常数与常数表格。例如:
不加后缀“H”的是十进制数,其大小只能小于或等于十进制数65535(FFFFH)。加后缀“H”的十六进制数也只能小于或等于十六进制数FFFFH。 从程序存储器中读常数(表格)的指令有
两条指令。 下面是使用前一条指令的例子,后一条指令较少使用。 假设需要把R7中的十进制数转换成相应的七段数码管0~9数字的共阴显示代码。
8051单片机的指令集中没有向程序存储器写入数据的指令。 2.数据存储器(DATA)区 ADuC845的数据存储器(DATA)区包括片内前128 B的内部RAM、2 KB片内XRAM和外部16 MB的RAM(XDATA)三部分。片内前128 B主要用作数据段,称为DATA区,指令用1~2个周期来访问数据段的DATA区,比访问XRAM或XDATA区要快,因为它采用直接寻址方式,而访问XRAM或XDATA须采用间接寻址,必须先初始化DPTR。通常我们把使用比较频繁的变量或局部变量存储在DATA段中,但是必须节省使用DATA段,因为它的空间毕竟有限。 、 在数据段中也可通过R0和R1采用间接寻址访问,R0和R1被作为数据区的指针,将要读或写的字节的地址放人R0或R1中,根据源操作数和目的操作数的不同执行指令需要1~2个周期。 片内前128 B的DATA区又可以分为如图2—2所示的几个区域。其中: (1)工作寄存器组:地址为00H~1FH,每8个单元为1组,共有4组。00H--07H为第零组(0组),08H~0FH为第一组(1组),10H~17H为第二组(2组),18H~1FH为第三组(3组)。单片机复位时默认第零组为当前工作寄存器组,即读/写R0时是从00H单元进行读/写操作的,读/写R1时是从01H单元进行读/写操作的,……,读/写R7时是从07H单元进行读/写操作的。通过PSW(程序状态寄存器)中的RS0、RSl位可以设置当前工作寄存器组。表2-1给出了当前工作寄存器组与RS0、RSl的关系。例如,执行了以下两条指令:
3.特殊功能寄存器 中断系统和外部功能控制寄存器位于从地址80H开始的内部RAM中。这些寄存器称为专用寄存器或特殊功能寄存器(Special Function Register,SFR),其中很多寄存器都可位寻址(可通过名字进行引用)。例如,要对中断使能寄存器中的EA位进行寻址,可使用EA、IE.7或0AFH来访问。SFR控制定时/计数器、串行口、中断源及中断优先级等,这些寄存器的寻址方式和DATA中的其他字节和位一样。SFR的分布如图2—4所示。
如图2.5所示,SFR的作用如下。 (1)设置和标志单片机的运行模式和状态; (2)控制和标志并行I/O口的模式和状态; (3)读/写片内FIASH/EE数据存储器; (4)控制片内ADC; (5)设置和标志单片机的其他外设的运行模式和状态。
4.IDATA区 8052有附加的128 B的内部RAM,位于从80H开始的地址空间中,称为[DATA。IDATA区的地址和SFR的地址是重叠的,通过区分所访问的存储区来解决地址重叠问题。SFR只能通过直接寻址来访问,而IDATA区只能通过间接寻址来访问。例如:
5.XDATA区 ADuC845的最大数据存储空间为16 MB,采用24位地址寻址,称作外部数据区,简称XDATA区。这个区通常包括一些RAM,如SRAM,或一些需要通过总线接口的外围器件。对XDATA的读/写操作需要至少两个指令周期,只能使用DPTR、R0或R1间接寻址。 例如:
则把XDATA单元中的数据读到A中。 XDATA空间中的低2 KB的地址根据设置可以归片内XRAM使用,如图2—6和图2—7所 示。其设置如下。
6.XRAM区 .AE)uC845的片内有一个非易失性数据存储空间,大小为2 KB,为FLASH/EEPROM存储器,称为内部非易失性数据区,简称XRAM,如图2。7所示。对XRAM的读/写也只能使用DPTR。当CFG845/847/848位置位时用MOVX@DPTR指令访问XRAM,否则指令访问外部数据存储器(XDATA)。在只使用XRAM时,Po和P2口可以作为普通I/O口使用。
|
|||||
| 文章录入:admin 责任编辑:admin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 本站介绍 | 合作联络 | 欢迎投稿 | 广告业务 | 网站地图 | 设为首页 | 加入收藏 | 友情链接 | 网站公告 | 联系我们 | | |||
|