数据存储器构成
数据存储器由特殊功能寄存器(sfr)和通用寄存器(gpr)组成。sfr控制器件的操作,而gpr则是数据存储和改写的通用区域。
sfr和gpr数据存储区分成不同的存储区。gpr区分成不同的存储区,以实现对超过96字节的通用ram的寻址。sfr是用来控制外设和内核功能的寄存器。status寄存器的存储区选择控制位(status)用于选择存储区。图6-5是数据存储器的构成映射,这个映射与器件型号有关。
从一个寄存器向另一个寄存器传送数据时,必须通过w寄存器。这意味着所有寄存器之间的数据传送,都需要两个指令周期。
整个数据存储器可以采用直接寻址或间接寻址来存取。直接寻址可能需要使用rp1、rp0位,间接寻址需要用到指针寄存器(fsr)。间接寻址数据存储器的存储区0/存储区1或存储区2/存储区3时,要使用状态寄存器的间接寄存器指针(irp)位。
通用寄存器(gpr)
某些中档单片机的gpr区分成不同的存储区,上电复位并不能初始化gpr,其它的复位也不能改变gpr的值。
寄存器既可以直接寻址,也可以使用指针寄存器fsr间接寻址。某些器件具有各数据存储区共享的公用数据存储区,对公用数据存储区的读写不必考虑当前所在存储区,可使用同一个地址单元(值),我们称这个区域为公用ram。
特殊功能寄存器(sfr)
特殊功能寄存器由cpu和外设使用,用于控制器件的操作,这类寄存器实现为静态ram形式。特殊功能寄存器可分为两类,一类与内核功能有关,另一类与外设功能有关。本章将讲述与内核功能有关的特殊功能寄存器,另一类与外设功能操作有关的特殊功能寄存器将在相应的外设功能模块章节中讲述。
所有中档单片机的sfr寄存器区也分成不同的存储区。在这些存储区间切换时,需要设置状态(status )寄存器的rp0、rp1位来选择所需存储区。某些sfr寄存器会被上电复位和其它复位初始化,而有些一些sfr寄存器在复位时不会被初始化。
*注: 可能有通用寄存器映射到特殊功能寄存器区。
寄存器既可以直接寻址,也可以通过指针寄存器间接寻址。
存储区划分
数据存储器分为4个存储区,每个存储区包括特殊功能寄存器和通用寄存器。使用直接寻址时,为在这些存储区之间切换,需要设置状态寄存器的rp0、rp1位以选择需要的存储区。状态寄存器的irp位用于间接寻址。
每个存储区最多可有128字节(7fh)。特殊功能寄存器安排在存储区的低地址单元;通用寄存器安排在高地址单元。所有数据存储器都是用静态ram。所有存储区都包括特殊功能寄存器。为了减少程序代码和提高存取速度,存储区0中某些使用率高的特殊功能寄存器映射在其它存储区中。
随着产品的发展,其数据存储器的设计布局有一些变化。对于所有新器件来说,标准的数据存储器构成如图6-5所示。在这个存储器映射中,所有存储区的最后16字节都映射到存储区0中,这可以降低用于现场切换的软件开销。用粗体表示的寄存器存在于每种单片机中,其它寄存器的有无与外设模块有关。图中没有示出所有的外设寄存器,因为针对不同的器件,在某些文件地址处的寄存器定义与这里所显示的不同。除了使用本手册所提供的所有图、表和说明外,也应参阅特定器件的数据手册来核实细节。
图6-6所示为某些18引脚器件的寄存器存储区映射。未实现的寄存器读为‘0’。
间接寻址、 indf和 fsr寄存器
间接寻址是寻址数据存储器的一种方式,间接寻址时指令中的数据存储器地址不是固定的,而是 使用一个sfr(指针寄存器)作为指向要读写的数据存储器地址的指针。由于该指针位于ram中,其内容可以通过程序修改。这对于操作数据存储器中的数据表格很有用。图6-7所示为间接寻址的工作原理,实现了将数据传送到fsr寄存器的值指定的数据存储单元。
使用indf寄存器可以实现间接寻址。任何使用indf寄存器的指令实际上访问的是由指针寄存器(fsr)所指向的寄存器。若使用间接寻址方式对indf寄存器进行读操作(fsr= '0'),读的结果将为00h;而使用间接寻址对indf寄存器进行写操作,实际执行的是空操作,但可能会影响状态位。8位fsr寄存器与状态寄存器的irp位(status)相组合,可以得到一个9位有效地址。如图6-8所示:
图6-2用最少的指令,采用间接寻址方法实现了对20h-2fh ram单元的清零。采用与此相同的方法,可以将已定义字节数的数据(数据块)传送到usart的发送寄存器(txreg)。要发送数据块的起始地址很容易通过程序来修改。
初始化
例6-3举例说明了直接寻址时如何进行存储区切换。例6-4为初始化(清零)通用ram的部分代码。
如何解决安全问题?——重新定义与供应链伙伴的合作
VSAT通信组网技术原理简介
SLA系列直压气密性防水测试仪的介绍
Zigbee技术在我国的应用情况
自动驾驶传感器技术出新 激光雷达能否被取代?
pic单片机教程之数据存储器的直接间接寻址方式
氮化镓的市场在哪些领域?封装技术是怎样的?
CEVA面向真正无线立体声耳塞产品开发
物联网应用时代加速到来,对传感器的需求日益提高
苹果公司的儿童的手机上瘾问题解决声明
Linux平台下生成C语言数据结构关系图
LED芯片国产化 LED照明有望大幅降价
嫦娥五号轨道器将开展拓展任务
汽车线束大截面导线的加工工艺进行系统知识
适用于激光驱动器供电的数字电阻器
艾为电子入选2023上海硬核科技TOP100榜单
数码变频发电机故障
2020年全球无线通信网络技术发明专利排名出炉:华为第一
RS485自助收发控制原理
全自动薄板阻焊生产线:了解3分钟切换料号,杂料号必备!