STC32位8051单片机原理及应用 课件 第五章 处理器内核和存储空间映射_第1页
STC32位8051单片机原理及应用 课件 第五章 处理器内核和存储空间映射_第2页
STC32位8051单片机原理及应用 课件 第五章 处理器内核和存储空间映射_第3页
STC32位8051单片机原理及应用 课件 第五章 处理器内核和存储空间映射_第4页
STC32位8051单片机原理及应用 课件 第五章 处理器内核和存储空间映射_第5页
已阅读5页,还剩213页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五章处理器内核和存储空间映射主要内容8位单片机处理器核的内部结构字节存储顺序8位单片机存储器结构和地址空间32位单片机处理器核的内部结构32位单片机存储器结构和地址空间中断系统原理及功能处理器内核和存储空间映射Intel的MCS-251单片机是对其MCS-51单片机的扩展和发展(即MCS-251向下兼容MCS-51),而STC公司最新的STC32系列MCU是对IntelMCS-251单片机的进一步改进和发展通过兼容MCS-251ISA,STC32系列MCU实现了整体性能的极大提升一方面在处理器核内部实现了8位、16位和32位操作另一方面通过扩展片内程序和数据存储器的容量,进一步提高了处理器核运行复杂程序代码的能力处理器内核和存储空间映射

--本章内容编排首先,介绍STC公司STC15/STC8系列增强型8位MCU内部处理器核功能以及存储器结构和地址空间映射然后,介绍STC328/16/32位MCU内部处理器核功能以及存储器结构和地址空间映射。最后,介绍了STC32G系列单片机中断系统的原理及功能处理器内核和存储空间映射

--8位单片机处理器核的内部结构本节以Intel公司经典的MCS-51(也称为8051)单片机为例,其目的是为了说明8位MCU内部的关键功能单元将8051单片机称为8位单片机,这是因为该单片机中的数据总线宽度为8位,并且寄存器也是8位宽度(DPTR寄存器为16位)本质上,MCS-51ISA就能体现出8位的本质运算器存储器和SFRP0.0~P0.7缓冲区程序地址寄存器程序计数器(PC)DPTR16端口0锁存端口2锁存程序存储器RAM地址寄存器端口0驱动RAM数据存储器8特殊功能寄存器(SFR)

中断、串口和定时器块B寄存器累加器(ACC)程序状态字(PSW)TMP2TMP1ALU振荡器XTAL1XTAL2指令寄存器时序和控制RSTALE/PROGPSENEA/Vpp端口1锁存端口1驱动P1.0~P1.7P2.0~P2.7端口3锁存端口3驱动P3.0~P3.7端口2驱动堆栈指针VCCVSSPC递增器8外设控制器时钟处理器内核和存储空间映射

--8位单片机处理器核的内部结构从上图可知,该单片机内包含了处理器核、存储器、外设和时钟系统共4个子系统处理器内核和存储空间映射

--8位单片机处理器核的内部结构MCS-51单片机内的CPU核由运算器和控制器构成运算器主要由算术逻辑单元(ArithmeticLogicUnit,ALU)和寄存器构成ALU用于执行算术和逻辑运算,它也用于计算目标地址控制器产生不同的节拍信号以控制ALU所执行的操作以及处理器核对存储器和外设的访问在处理器核内部,通过处理器内部总线将运算器和控制器连接在一起处理器内核和存储空间映射

--8位单片机处理器核的内部结构在MCS-51单片机中,提供了独立的程序存储器和数据存储器程序存储器用于保存程序中的代码和一些常数,而数据存储器用于保存在程序代码运行过程中需要保存的临时数据Flash存储器(也称为闪存)充当程序存储器静态随机访问存储器(StaticRandomAccessMemory,SRAM)充当数据存储器处理器内核和存储空间映射

--8位单片机处理器核的内部结构通过特殊功能寄存器(SpecificalFunctionRegister,SFR),处理器核就可以访问片上的外部设备(简称外设)比如,通用输入输出(GeneralPurposeInput&Output,GPIO)和通用异步串行收发器(UniversalAsynchronousReceiver&Transmitter,UART)处理器内核和存储空间映射

--8位单片机处理器核的内部结构这里有必要介绍一下总线(bus)的概念总线是一组用逻辑高电平和逻辑低电平所表征的电信号的集合,这些电信号始终处于高电平(逻辑“1”)和低电平(逻辑“0”)的交替变化中从传输信息内容的角度,将总线进一步划分为数据总线、地址总线和控制总线数据总线用于传输数据地址总线用于传输地址控制总线用于传输控制信息处理器内核和存储空间映射

--8位单片机处理器核的内部结构程序存储器、数据存储器、特殊功能寄存器都“挂在“一条总线上程序存储器和数据存储器都归类为存储器,而SFR主要用于处理器核自己以及处理器访问外设的接口因此,通过总线处理器核就能访问存储器和外设注:上图给出的是经典MCS-51的内部结构,而STC15/STC8系列增强型8051单片机内的处理器核采用了改进的设计结构,使得CPU核的整体性能有了显著提升,其速度比传统8051单片机快8~12倍,并且速度也比STC早期的IT系列单片机(如STC12/11/10系列)的速度快20%。此外,在处理器核内部使用双数据指针(DataPointer,DPTR)扩展传统的MCS-51处理器结构8位单片机处理器核的内部结构

--控制器控制器是处理器核中最重要的功能单元之一作用是保证处理器核内其他功能单元的按节奏有顺序的正常工作比如,控制器根据指令要求发出正确的控制信号,使得运算器能正确的实现加法运算控制器

--程序计数器

单片机采用了存储程序的架构,即需要执行的代码保存在一个称之为程序存储器的单元中在程序计数器(ProgramCounter,PC)的控制下,从程序存储器中源源不断地取出所要执行的指令PC是控制器中最基本的功能单元PC就是下一条所要执行指令的程序存储器地址,通常也说PC总是指向下一条要执行指令的程序存储器地址提示:打开一个程序,debug环境下,演示一下控制器

--程序计数器

从前面给出的MCS-51单片机的内部结构可知,程序计数器、PC递增计数器、缓冲区、程序地址寄存器都挂在其结构右侧的一条总线上程序地址寄存器的输出单向连接到程序存储器的地址线,用于给程序存储器提供写入/读取指令的地址。程序存储器的数据线“双向”连接到MCU的内部总线上这里需要解释一下程序存储器数据线“双向”的含义,这取决于是将指令“烧写”到程序存储器中(写入)还是从程序存储器中“取出”要执行的指令(读取)控制器

--程序计数器

控制器

--程序计数器

在一段代码中,程序指令的执行分为两种情况,一种是顺序执行,另一种是非顺序执行程序地址寄存器程序ROMPC+n1?01?01?01?01?01?01?01?01?01?01?01?01?01?01?01?0程序计数器(16位)新地址(16位)地址指令控制器

--程序计数器

顺序执行顺序执行是指按机器指令在程序存储器中的先后顺序来取出并执行指令由于MCS-51ISA中指令的长度是可变的,根据每条指令的长度n(n=1、2或3),将PC+n后的值作为下一条要执行指令的地址指向程序存储器。然后,从指向的程序存储器的地址中取出下一条要执行的指令控制器

--程序计数器

非顺序执行在编写的软件代码中,经常出现条件判断语句、跳转语句、程序调用语句和中断调用等因此,当执行程序代码的过程中遇到这些指令时,程序的执行顺序并不是按照PC+n->PC来执行程序,而是将这些语句所指向的新指令所在的新目标地址赋给程序地址寄存器控制器

--指令通道指令通道包含取指单元、译码单元、执行指令单元取指单元机器指令保存在程序存储器中,从PC所指向的程序存储器地址中取出一条机器指令在兼容MCS-51ISA的单片机中,机器指令为8位(1个字节)、16位(2个字节)或24位(3个字节)控制器

--指令通道译码单元根据取出指令的操作码字段对指令进行分析,其目的就是将机器指令转换成一系列逻辑控制序列比如控制序列中有一部分用于控制处理器核内运算单元的操作过程控制器

--指令通道执行单元当分析完指令之后,根据逻辑控制序列(微指令)所产生的逻辑行为,控制处理器核内的其他功能单元,完成指令需要的实现的具体操作行为比如,从数据存储器中加载数据到寄存器中控制器

--指令通道伴随着取指单元、译码单元和执行指令单元的是取指阶段(取指级)、译码阶段(译码级)和执行指令阶段(执行级)也就是说,取指阶段是在取指单元中完成,译码阶段是在译码单元中完成,执行阶段是在指令执行单元完成控制器

--指令通道

控制器

--指令通道对于该指令来说,译码和执行指令涉及下面的操作:从寄存器Rn中取出数据送入ALU的一个输入端口TMP1

(Rn)→(TMP1)从累加器A中取出数据送入ALU的另一个输入端口TMP2

(ACC)→(TMP2)将TMP1和TMP2的数据送到ALU进行相加,产生结果:

(TMP2)+(TMP1)→(总线)将ALU产生的结果,通过内部总线送入到ACC累加器中

(总线)→(ACC)控制器

--流水线传统8051单片机的指令通道采用的是串行结构为了分析问题的方便,下面假设每条指令的取值周期、译码周期和执行周期均相同当采用串行的指令通道时,需要T9个时钟周期才能完成对三条指令的执行。T1

T2

T3

T4

T5

取指1译码1执行指令1取指2译码2执行指令2取指3译码3执行指令3时间指令序列

0

T6

T7

T8

T9

控制器

--流水线与传统8051处理器核采用串行的指令通道相比,STC15/STC8系列增强型8051单片机处理器核内的指令通道采用了改进后的3级流水线结构(假设指令和数据之间无依赖性)T1

T2

T3

T4

T5

取指1译码1执行指令1取指2译码2执行指令2取指3译码3执行指令3时间指令序列0

控制器

--双数据指针数据指针(DataPointer,DPTR)是一个16位的专用寄存器,由DPTR的低8位(DPTRLow,DPL)和DPTR的高8位(DPTRHigh,DPH)组成它们在SFR中的地址分别为82H和83HDPTR是8051中唯一可以直接进行16位操作的寄存器可以按照字节分别对DPH和DPL进行操作控制器

--双数据指针如果8051单片机没有外部数据总线,则它只有一个DPTR。在STC15/STC8系列增强型8051单片机中,提供了外部数据总线,因此它有两个16位的数据指针DPTR0和DPTR1,这两个数据指针公用一个地址空间在STC15/STC8系列增强型8051单片机中,通过软件设置寄存器P_SW1(在SFR中的地址为A2H)中的第0位,即数据指针选择(DataPointerSelect,DPS)位来选择所使用的DPTR助记符地址名字76543210复位值AUXR1P_SW1A2H辅助寄存器1S1_S1S1_S0CCP_S1CCP_S0SPI_S1SPI_S00DPS00000000控制器

--堆栈及指针在8051单片机中,有一个称为堆栈(Stack)的特殊存储空间,其作用主要用于保存上下文(也称为现场)典型的,当执行程序的过程中遇到跳转指令时,就需要将当前PC指向的下一跳指令的地址保存起来,等待执行完跳转指令时,再将所保存的下一条指令的地址恢复到程序地址寄存器中

SP程序地址寄存器新地址步骤1步骤2控制器

--堆栈及指针下面以三个数据0x30、0x31和0x32入栈和出栈过程为例假设当前SP的内容为0x82,即(SP)=0x82也就是SP指向堆栈存储空间地址为0x82的位置控制器

--堆栈及指针入栈操作从上面的过程可以看出,随着数据的入栈操作,(SP)递增,SP总是指向最新保存的数据的存储器位置。也就是通常所说的,SP总是指向栈顶的位置控制器

--堆栈及指针出栈操作从上面的过程可以看出,随着数据的出栈操作,(SP)递减,SP总是指向最新保存的数据的存储器的位置,也就是通常所说的,SP总是指向栈顶的位置。控制器

--堆栈及指针注:当对8051单片机复位后,默认将SP的内容初始化为0x07。所以,实际上堆栈从08H的地址单元开始。考虑到地址范围0x08~0x1F是工作寄存器组1~3的地址空间。因此,如果在程序代码中使用堆栈存储空间时,建议最好将SP的内容改为0x80以上的值。8位单片机处理器核的内部结构

--运算器运算器用于执行丰富的数据操作功能8051单片机处理器核内的运算器包括8位算术逻辑单元、累加器、B寄存器、程序状态字运算器

--8位算术逻辑单元在处理器核内的运算器中,最核心的功能单元就是8位的算术逻辑单元(ArithmeticandLogicUnit,ALU)实现的功能主要包括算术运算,包括8位的加、减、乘和除运算其他运算,包括递增、递减、BCD十进制调整和比较运算逻辑运算,包括实现逻辑“与”、逻辑“或”、逻辑“异或”,逻辑“取反”(NOT)和旋转/移位运算按位运算,包括置位、复位、取补、如果没有设置则跳转操作、如果设置则跳转并且清除操作和移入/移出进位标志寄存器运算器

--

累加器累加器(Accumulator,ACC)简写为A,用于大多数指令结果的累加器累加器位于SFR地址为0xE0的位置运算器

--

B寄存器在乘法和除法运算中,B寄存器有特殊用途。对于在其他情况,它作为普通寄存器B寄存器位于SFR地址为0xF0的位置乘法操作参与乘法运算的一个操作数保存在B寄存器中,另一个保存在A寄存器中。并且,在乘法运算后,乘积的高8位保存在B寄存器中,乘积的低8位保存在A寄存器中除法操作参与除法运算的被除数保存在A寄存器中,除数保存在B寄存器中。并且,在除法运算后,所得的商保存在A寄存器中,余数保存在B寄存器中运算器

--

程序状态字在程序状态字(ProgramStatusWord,PSW)寄存器中,保存一些具有特殊含义的位,这些位反映当前8051单片机内处理器核的工作状态该寄存器位于SFR空间地址为0xD0的位置比特位76543210名字CYACF0RS1RS0OVRSVP运算器

--

程序状态字CY,进位标志算术和位指令操作影响该位在执行加法运算时,如果最高位有进位;或者在进行减法运算时,如果最高位有借位,则将CY设置为“1”;否则该位为“0”运算器

--

程序状态字AC,辅助进位标志ADD,ADDC,SUBB指令影响该位在进行加法运算时,如果第3位向第4位有进位;或者在进行减法运算时,如果第3位向第4位有借位,则将AC设置为“1”;否则设置为“0”设置辅助进位标志的目的是为了便于BCD码加法、减法运算的调整F0,通用标志0运算器

--

程序状态字RS1和RS0,寄存器组选择位用于选择不同的寄存器组RS1RS0当前使用的工作寄存器组(R0~R7)000组(00H~07H)011组(08H~0FH)102组(10H~17H)113组(18H~1FH)运算器

--

程序状态字OV,溢出标志ADD、ADDC、SUBB、MUL和DIV指令影响该位状态RSV,保留位P,奇偶标志位在指令每条指令后,设置或清除该位。该位表示累加器ACC中“1”的个数。如果累加器A中“1”的个数为奇数时,将P设置为“1”;否则,如果累加器A中“1”的个数为偶数时,将P设置为”0“8位单片机处理器核的内部结构

--特殊功能寄存器在8051单片机的处理器核中,SFR是具有特殊功能的RAM区域,它是一系列控制寄存器和状态寄存器的集合8位单片机处理器核的内部结构

--特殊功能寄存器地址0/81/92/A3/B4/C5/D6/E7/F地址0xF8P7CHCCAP0HCCAP1HCCAP2H———0xFF0xF0BPWMCFGPCA_PWM0PCA_PWM1PCA_PWM0PWMCRPWMIFPWMFDCR0xF70xE8P6CLCCAP0LCCAP1LCCAP2L———0xEF0xE0ACCP7M1P7M0———CMPCR1CMPCR20xE70xD8CCONCMODCCAPM0CCAPM1CCAPM2———0xDF0xD0PSWT4T3MT4HRL_TH4T4LRL_TL4T3HRL_TH3T3LRL_TL3T2HRL_TH2T2LRL_TL20xD70xC8P5P5M1P5M0P6M1P6M0SPSTATSPCTLSPDAT0xCF0xC0P4WDT_CONTRIAP_DATAIAP_ADDRHIAP_ADDRLIAP_CMDIAP_TRIGIAP_CONTR0xC70xB8IPSADENP_SW2—ADC_CONTRADC_RESADC_RESL—0xBF0xB0P3P3M1P3M0P4M1P4M0IP2IP2HIPH0xB70xA8IESADDRWKTCLWKCTL_CNTWKTCHWKTCH_CNTS3CONS3BUF—1E20xAF0xA0P2BUS_SPEEDAUXR1P_SW1—————0xA70x98SCONSBUFS2CONS2BUF—P1ASF——0x9F0x90P1P1M1P1M0P0M1P0M0P2M1P2M0CLK_DIVPCON20x970x88TCONTMODTL0RL_TL0TL1RL_TL1TH0RL_TH0TH1RL_TH1AUXRINT_CLK0AUXR20x8F0x80P0SPDPLDPHS4CONS4BUF—PCON0x878位单片机处理器核的内部结构

--特殊功能寄存器与传统8051单片机相比,在STC15/STC8系列单片机的SFR中又增加了新的一些寄存器8051单片机的SFR和高128字节的RAM使用相同的地址范围,即都使用0x80~0xFF的区域。因此,需要使用直接寻址方式访问SFR只有当SFR内的寄存器地址能够被8整除时才可以对该寄存器的每一位通过位地址进行操作,即上表中浅绿色区域可以进行位操作,其他区域不可以进行位操作8位单片机处理器核的内部结构

--扩展特殊功能寄存器在8位8051单片机中,SFR的地址映射空间范围为0x80~0xFF,一共128个字节SFR区域提供了用于单片机内处理器与片上外设进行交互的控制寄存器和状态寄存器也就是说,SFR本质上是多个控制寄存器和状态寄存器的集合随着8位8051单片机内所集成外设数量的不断增加,SFR区域无法为更多的控制寄存器和状态寄存器提供可用的地址空间一个棘手的问题是,如果SFR区域不能为新集成外设提供控制寄存器和状态寄存器的地址空间,那么就意味着无法实现在8位8051单片机内集成更多的外设,这将成为在8位8051单片机中集成更多外设的瓶颈8位单片机处理器核的内部结构

--扩展特殊功能寄存器如何解决这个棘手的问题呢?在STC15/STC8系列8位8051单片机中,通过扩展特殊功能寄存器(eXtendedSFR,XSFR)巧妙地解决了这个问题其方法就是在与扩展数据RAM存储器相同的地址空间内放置控制寄存器和状态寄存器物理上,XSFR和扩展数据RAM存储器又相互独立。在相同的地址空间内,如何访问两个相互独立的XSFR空间和数据RAM空间呢?技术上的创新,妙!实在是妙!8位单片机处理器核的内部结构

--扩展特殊功能寄存器在STC15/STC8系列单片机中,提供了一个端口配置寄存器P_SW2。通过配置P_SW2的EAXSFR位/P_SW2.7位,就可以使用户通过程序独立访问XSFR区域或扩展数据RAM区域当EAXSFR位设置为“0”时,处理器访问的是扩展数据RAM区域;当EAXSFR位设置为“1”时,处理器访问的是XSFR,这一点要特别注意。典型的,在STC15系列单片机内集成的增强型PWM发生器就使用了XSFR区域,STC15系列单片机内的CPU通过访问XSFR区域中的控制寄存器和状态寄存器,实现对增强PWM发生器的访问控制字节存储顺序大多数的微处理器都有一个存储器结构,它是按照8个比特位即一个字节的存储器位置构成很多数据项,比如地址、数字和字符串,由于它们太长,所以不能用一个字节保存,而必须用连续的多个字节保存当使用保存在多个字节的数据时,字节的顺序就是一个很严重的问题但是,对于多个字节的顺序并没有一个标准。目前,在计算机系统中广泛使用两种字节顺序存储方法字节存储顺序

--小端(LittleEndian)在小端模式中,先保存最低有效位,或者是低字节比如:一个十六位的整数0x1234,使用小端方式连续占用两个字节存储器地址存储单元内容0x00x340x10x12字节存储顺序

--小端(LittleEndian)对于一个32位的整数值0x57415244,使用小端方式连续占用四个字节存储器地址存储单元内容0x00x440x10x520x20x410x30x57字节存储顺序

--大端(BigEndian)在大端模式中,先保存最高有效位,或者是高字节;最后是最低有效位,或者是低字节一个十六位的整数0x1234,使用大端方式连续占用两个字节存储器地址存储单元内容0x00x120x10x34字节存储顺序

--大端(BigEndian)对于一个32位的整数值0x57415244,使用大端方式连续占用四个字节存储器地址存储单元内容0x00x570x10x410x20x520x30x44字节存储顺序对于8051单片机来说,它是8位处理器核,没有提供一条指令直接操作大于8位的数据对象。根据下面的规则,保存多个字节数据,即:8051的LCALL指令在堆栈内保存下一条指令的地址。压入堆栈时,先保存的低字节。因此,地址以小端方式保存在存储器中。

对于保存所有其它16位和32位值来说,采用大端模式,即首先保存高字节。比如:LJMP和LCALL指令期望16位的地址是大端模式(从中断向量表的分析可以看出)。

根据IEEE-754格式所保存的浮点数,是以大端格式保存,即先保存高字节。第五章处理器内核和存储空间映射8位单片机存储器结构和地址空间程序存储器内部数据存储器外部数据存储器程序Flash存储器

--程序存储器空间映射STC15系列/STC8系列增强型8051单片机的程序空间位于0x0000~0xFFFF的地址范围16位的PC指向下一条要执行的指令CPU只能通过使用MOVC指令,从程序空间读取数据当复位时,PC的内容为0x0000。因此,从程序存储器地址为0x0000的地方开始执行程序程序Flash存储器

--程序存储器空间映射类型程序存储器STC15W4K08S40x0000~0x1FFF(8K)STC15W4K16S40x0000~0x3FFFF(16K)STC15W4K24S40x0000~0x5FFF(24K)STC15W4K32S40x0000~0x7FFF(32K)STC15W4K40S40x0000~0x9FFF(40K)STC15W4K48S40x0000~0xBFFF(48K)STC15W4K56S40x0000~0xDFFF(56K)IAP15W4K58S40x0000~0xE7FF(58K)STC15W4K60S40x0000~0xEFFF(60K)IAP15W4K61S40x0000~0xF3FF(61K)程序Flash存储器

--程序存储器空间映射中断服务程序的入口地址(也称为中断向量)也放在程序存储单元低地址空间在程序存储单元中,对于每个中断来说都有一个固定的入口地址当外部中断进入8051CPU并得到响应后,8051CPU就自动跳转到相应的中断入口地址执行程序程序Flash存储器

--程序存储器的特点STC15/STC8系列增强型8051单片机内的程序存储器可以保存用户程序、数据和表格信息,其具有下面的特点:提供10万次以上擦写能力低压保护功能在低压状态下,禁止对程序存储器进行擦除和编程程序存储器对外不提供读电路有效地防止对用户程序的破解只有对程序存储器进行擦除操作后,才能对其进行编程操作在对程序存储器编程时,可以将程序代码乱序后存放程序Flash存储器

--程序存储器的特点程序存储器的最后7个字节设置全球唯一的ID号以扇区为单位擦除以字节为单位进行编程STC提供了通过通用异步串口,对Flash进行擦除、编程和代码加密的能力数据Flash存储器STC15/STC8系列增强型8051单片机内部提供了大容量的数据Flash存储器,用于实现电可擦除的只读存储器(ElectricallyErasableProgrammableRead-OnlyMemory,EEPROM)的功能数据Flash存储器和程序Flash存储器空间是分开的。其特点主要包括:通过ISP/IAP技术可以将内部的数据Flash当作EEPROM使用擦写次数在10万次以上以扇区位单位,每个扇区包含512个字节数据存储器的擦除操作是按扇区进行的数据Flash存储器注:由于EEPROM是以是以扇区为单位的,数据存储器的擦除操作是按扇区进行的。因此,建议同一次修改的数据保存在同一个扇区,不是同一次修改的数据需要保存在不同扇区数据Flash存储器

--数据Flash特殊功能寄存器在STC15/STC8系列增强型8051单片机内提供了用于IAP和EEPROM进行数据擦除和保存的特殊功能寄存器,这些寄存器位于SFR内数据Flash存储器

--数据Flash特殊功能寄存器ISP/IAP数据寄存器用于ISP/IAP的数据寄存器称为IAP_DATA,它位于STC单片机SFR内地址为0xC2的位置当ISP/IAP从EEPROM读出的数据放在该寄存器中,向EEPROM写的数据也放在这个寄存器中。该寄存器的复位值为“11111111”数据Flash存储器

--数据Flash特殊功能寄存器ISP/IAP地址寄存器用于ISP/IAP的地址寄存器由IAP_ADDRH和IAP_ADDRL构成,这两个寄存器分别位于STC单片机SFR内地址为0xC3和0xC4的位置当进行ISP/IAP时,分别用于保存高八位和低八位地址。这两个寄存器的复位值为“00000000”数据Flash存储器

--数据Flash特殊功能寄存器ISP/IAP命令寄存器用于ISP/IAP的命令寄存器称为IAP_CMD,它位于STC单片机SFR内地址为0xC5的位置当复位时,该寄存器的值设置为“xxxxxx00”。在该寄存器中只有MS1和MS0比特位有意义,用于控制对数据Flash(EEPROM)的操作比特B7B6B5B4B3B2B1B0名字——————MS1MS0数据Flash存储器

--数据Flash特殊功能寄存器MS1MS0功能00待机模式,无ISP操作01从用户的应用程序区对数据Flash(EEPROM)进行字节读操作10从用户的应用程序区对数据Flash(EEPROM)进行字节编程11从用户的应用程序区对数据Flash(EEPROM)进行扇区擦除注:(1)当程序在用户应用程序区时,仅可以对数据Flash(EEPROM)进行字节读/字节编程/扇区擦除(2)IAP15系列单片机可以在用户应用程序区修改用户应用程序区(3)可以通过MOVC指令读数据Flash(EEPROM),但是起始地址不再是0x0000,而是程序存储器空间结束地址的下一个地址数据Flash存储器

--数据Flash特殊功能寄存器IAP/ISP命令触发寄存器用于IAP/ISP的命令触发寄存器称为IAP_TRIG,它位于STC单片机SFR内地址为0xC6的位置该寄存器的复位值为“xxxxxxxx”当ICAP_CONTR寄存器B7位的IAPEN设置为“1”时,对命令触发寄存器先写入0x5A,然后再写入0xA5。这样,ISP/IAP命令才能生效IAP/ISP操作完成后,IAP地址高8位寄存器IAP_ADDRH、IAP地址低8位寄存器IAP_ADDRL,以及IAP命令寄存器IAP_CMD的内容不变。如果接着要对下一个地址的数据进行ISP/IAP操作,需要手动将该地址的高8位和低8位分别写到IAP_ADDRH和IAP_ADDRL寄存器中。数据Flash存储器

--数据Flash特殊功能寄存器注:(1)在每次IAP操作前,都要对IAP_TRIG先写入0x5A,然后再写入0xA5。这样,ISP/IAP才会生效。(2)在每次触发前,需要重新送字节读/字节编程/扇区擦除命令。在不改命令时,不需要重新送命令。数据Flash存储器

--数据Flash特殊功能寄存器ISP/IAP控制寄存器用于ISP/IAP的控制寄存器称为IAP_CONTR,它位于STC单片机SFR内地址为0xC7的位置当复位时,该寄存器的值设置为“0000x000”IAPEN,ISP/IAP功能使能位。当该位为“0”时,禁止IAP读/写/擦除数据Flash(EEPROM);当该位为“1”时,允许IAP读/写/擦除数据FlashSWBS。在复位后,软件选择从用户应用程序区启动还是从系统ISP监控程序区启动。当该位为“1”时,选择从系统ISP监控程序区启动;当该位为“0”时,选择从用户应用程序区启动。该位与SWRST一起配合使用比特B7B6B5B4B3B2B1B0名字IAPENSWBSSWRSTCMD_FAIL—WT2WT1WT0数据Flash存储器

--数据Flash特殊功能寄存器SWRST,软件复位控制位。当该位为“0”时,表示没有复位操作;当该位为“1”时,软件控制产生复位,单片机自动复位CMD_FAIL,命令失败指示位。如果IAP地址(由IAP_ADDRH和IAP_ADDRL寄存器确定)指向非法地址或者无效地址,且已经发送了ISP/IAP命令,并对IAP_TRIG发送0x5A~和0xA5触发失败,则CMD_FAIL为“1”

注意,需要使用软件清除该位数据Flash存储器

--数据Flash特殊功能寄存器WT2~WT0。设置等待时间设置等待时间CPU等待时间(CPU工作周期数)WT2WT1WT0读(2个周期)编程(=55µS)扇区擦除(=21ms)推荐的系统时钟1112个周期55个时钟21012个时钟≥1MHz1102个周期110个时钟42024个时钟≥2MHz1012个周期165个时钟63036个时钟≥3MHz1002个周期330个时钟126072个时钟≥6MHz0112个周期660个时钟252144个时钟≥12MHz0102个周期1100个时钟420240个时钟≥20MHz0012个周期1320个时钟504288个时钟≥24MHz0002个周期1760个时钟672384个时钟≥30MHz数据Flash存储器

--数据Flash特殊功能寄存器PCON电源控制寄存器,它位于STC单片机SFR内地址为0x87的位置当复位时,该寄存器的值设置为“00110000”SMOD和SMOD0与串口控制有关,在此不进行说明LVDF,低电压检测标志位。当单片机的供电电压低于检测门限电压时,该位设置为“1”。该位需要由软件清除注:当STC单片机内的低压检测电路发现STC单片机的供电电压Vcc偏低时,不要对数据Flash进行任何操作。在STC_ISP软件中,选中“低压时禁止EEPROM操作”选项前的复选框。比特B7B6B5B4B3B2B1B0名字SMODSMOD0LVDFPOFGF1GF0PDIDL数据Flash存储器

--数据Flash特殊功能寄存器POF,上电复位标志位。当单片机断电后,上电复位标志设置为“1”,该位由软件清除。该位可以用于判断复位源GP0和GF1,两个通用工作标志位。用户可以任意使用PD,掉电模式控制位。当该位设置为“1”时,进入掉电模式。在掉电模式时,内部时钟停止振荡。因此,处理器核、定时器等部件停止工作,只有外部中断继续工作。当进入掉电模式时,可以由外部中断上升沿或者下降沿触发事件进行唤醒IDL,空闲模式控制位。当该位设置为“1”时,进入空闲模式。在该模式下,除系统不给8051处理器核提供时钟,以及处理器核不执行指令外,其余功能单元仍然正常工作。在该模式时,可以由外部中断、定时器中断、低压检测中断以及A/D转换中断将其从空闲模式唤醒数据Flash存储器

--数据Flash空间映射下表给出了STC15W4K32S4系列单片机数据Flash(EEPROM)空间容量和地址型号EEPROM容量扇区数用IAP字节读时,数据Flash的起始扇区首地址用IAP字节读时,数据Flash的结束扇区首地址用MOVC指令读时,数据Flash的起始扇区首地址用MOVC指令读时,数据Flash的结束扇区首地址STC15W4K16S442KB840x00000xA7FF0x4C000xF3FFSTC15W4K32S426KB520x00000x67FF0x8C000xF3FFSTC15W4K40S418KB360x00000x47FF0xAC000xF3FFSTC15W4K48S410KB200x00000x27FF0xCC000xF3FFSTC15W4K56S42K40x00000x07FF0xEC000xF3FF数据Flash存储器

--数据Flash空间映射

IAP15W4K61S4--1220x00000xF3FF----IRC15W4K63S4--1260x00000xFBFF----以下系列特殊,用户可以在用户程序区直接修改用户程序,所有Flash空间均可作数据Flash(EEPROM)修改注:没有专门的数据Flash,但是用户可以将用户程序区的程序Flash当作数据Flash使用,使用时不要擦除字节的有效程序型号EEPROM容量扇区数用IAP字节读时,数据Flash的起始扇区首地址用IAP字节读时,数据Flash的结束扇区首地址用MOVC指令读时,数据Flash的起始扇区首地址用MOVC指令读时,数据Flash的结束扇区首地址8位单片机存储器结构和地址空间

--内部数据RAM存储器STC15系列的单片机内部集成了RAM存储器,可用于存放程序执行的中间结果和过程数据以STC15系列单片机为例,在单片机内部集成了4K字节的RAM内部数据存储器。在逻辑和物理上,将其分为两个地址空间内部基本RAM,其容量为256个字节(与传统MCS-51相同)内部扩展RAM,其容量为3840个字节内部数据RAM存储器

--片内基本RAMSTC15系列单片机内部RAM空间可以分成三个部分内部数据RAM存储器

--片内基本RAM低128字节RAM(兼容传统MCS-51单片机)对于这部分存储空间,即可采用直接寻址方式又可采用间接寻址方式进行访问,通常将这部分RAM区域称为通用RAM区域从图中可知,该存储区域包括工作寄存器组区域、可位寻址区、用户RAM区域和堆栈区内部数据RAM存储器

--片内基本RAM工作寄存器组区域该区域的地址范围为0x00~0x1F,占用了32个字节的存储单元。在8051单片机处理器核中,将这些寄存器分为四组,用编号0~编号3表示每组寄存器中包含8个通用寄存器R0~R7,但是它们属于不同的物理空间。通过使用不同的寄存器组,可以提高运算的速度之所以在工作寄存器组区域内提供4组寄存器,这是因为一组寄存器往往不能满足应用的要求注:在一个时刻只能选择其中的一个寄存器组。通过PSW中的RS1和RS0位,选择当前使用的寄存器组。这种分时使用不同寄存器组的方法,满足了对多个寄存器的应用需求。内部数据RAM存储器

--片内基本RAM可位寻址区域该区域的地址范围为0x20~0x2F,占用16个字节的存储单元。对于该区域来说,可实现对每个存储单元的按位寻址也就是说,可以对这16个单元中的每一位进行单独的寻址,该区域一共有128位(16字节Ⅹ8位=128位),所对应的位地址范围是0x00~0x7F,而内部RAM低128字节的地址范围也是0x00~0x7F但是,两者之间存在本质的区别,这是因为,位地址指向的是一个位,而字节地址指向的是一个字节单元,在程序代码中通过不同的指令进行区分内部数据RAM存储器

--片内基本RAM用户RAM和堆栈区在地址0x30~0xFF区域(包含了高128字节区域)是用户的RAM和堆栈区,可以采用直接寻址或者间接寻址的方式访问该区域内部数据RAM存储器

--片内基本RAM高128字节RAM(Intel在8052中扩展了高128字节RAM)这部分区域虽然和SFR区域的地址范围重合,都在0x80~0xFF的区域。但是,它们在物理上是相互独立的,通过不同的寻址方式来区分它们对于高128字节RAM区域来说,只能采用间接寻址方式内部数据RAM存储器

--片内基本RAMSFR对于SFR来说,只能采用直接寻址的方式内部数据RAM存储器

--片内扩展RAM在STC15系列增强型8051单片机中,除了集成256字节的内部基本RAM外,还集成了3840字节的扩展RAM,其地址范围是0x0000~0x0EFF内部数据RAM存储器

--片内扩展RAM在该系列单片机中,访问内部扩展RAM的方法和传统8051单片机访问外部扩展RAM的方法一致,但是不影响单片机外部P0口(数据总线和高8位地址总线)、P2口(低8位地址总线)、P4.2/WR、P4.4/RD和P4.5/ALE信号线内部数据RAM存储器

--片内扩展RAM在STC15系列单片机中使用汇编语言,通过MOVX指令访问内部扩展RAM区域,访问的命令为:

MOVX@DPTR或

MOVX@Ri使用C语言,通过使用xdata声明存储类型来访问内部扩展RAM区域内部数据RAM存储器

--片内扩展RAM在STC15系列单片机中,由SFR内地址为0x8E的辅助寄存器AUXR控制在该寄存器中的EXTRAM位控制是否可以访问该区域。当复位时,该寄存器的值为0x01当EXTRAM设置为“0”时,处理器核可以访问内部扩展的EXT_RAM。在STC15系列单片机中,通过指令:MOVX@DPTR

可以访问地址范围为0x0000~0x0EFF单元(3840字节),这是因为

DPTR为16位寄存器,可以加载16位的存储器地址注:当访问地址超过0x0F00时,总是访问外部数据存储器比特B7B6B5B4B3B2B1B0名字T0X12T1x12UAR_M0x6T2RT2_C/TT2x12EXTRAMS1ST2内部数据RAM存储器

--片内扩展RAM当EXTRAM设置为“1”时,禁止访问内部扩展RAM,此时指令:

MOVX@DPTR或MOVX@Ri

的使用同普通8052单片机8位单片机存储器结构和地址空间

--外部数据存储器外部数据存储器访问控制外部数据存储器访问时序单片机与外部数据存储器的硬件电路外部数据存储器

--外部数据存储器访问控制

外部数据存储器

--外部数据存储器访问控制在STC15系列单片机中,增加了一个控制外部数据存储器的数据总线速度的特殊功能寄存器BUS_SPEED该寄存器在SFR位置为0xA1的位置当复位时,该寄存器设置为“xxxxxx10”比特B7B6B5B4B3B2B1B0名字——————EXRTS[1:0]外部数据存储器

--外部数据存储器访问控制EXRTS[1:0]比特位的含义EXRTS[1:0]建立/保持/读和写时钟周期个数001012104118外部数据存储器

--外部数据存储器访问时序外部数据存储器

--外部数据存储器访问时序由于STC15系列增强型8051单片机的低8位地址线和数据线引脚是复用在P0[7:0]端口上,因此在XADL建立和保持周期内,P0[7:0]端口上产生出所要访问外部数据存储器的低8位地址P0[7:0]产生的低8位地址和P2[7:0]产生的高8位地址拼成一个16位的地址它可访问的外部数据存储器的地址范围为0x0000~0xFFFF,即64KB的范围外部数据存储器

--外部数据存储器访问时序对于写操作在XADRL保持结束后,在P0[7:0]端口上产生要写到外部数据存储器的8位写数据dataout_to_xram[7:0]对于读操作在XADRL保持结束后,在P0[7:0]端口上出现外部数据存储器返回的8位读数据dataout_from_xram[7:0]外部数据存储器

--外部数据存储器访问时序

外部数据存储器

--单片机与外部数据存储器的硬件电路由于单片机上的低8位地址和8位数据复用在P0端口上,因此需要将复用的低8位地址和8位数据分离。在实际应用中,通过使用74HC573器件将地址和数据进行分离外部数据存储器

--单片机与外部数据存储器的硬件电路74HC573是8位带三态输出的锁存器,其功能如下在设计中,74HC573器件的LE引脚与STC单片机P4.5/ALE引脚连接输入输出QENLED0111010000XQ01XXZ外部数据存储器

--单片机与外部数据存储器的硬件电路根据上图给出的时序,当ALE为高时,P0[7:0]端口给出的是用于访问外部数据存储器的低8位地址通过这个器件,就产生出可以连接到外部型号为IS62C256SRAM存储器的低8位地址STC单片机的P2[7:0]端口直接产生用于访问外部数据存储器的高8位地址P0[7:0]端口和需要访问的外部数据存储器的8位数据线直接连接此外,P2.7引脚作为访问外部存储器的片选信号第五章处理器内核和存储空间映射32位单片机处理器核的内部结构STC32系列单片机处理器核兼容MCS-251ISA,真正实现了1位/8位/16位和32位的操作下面给出该32位MCU的内部结构从图中可知,处理器核连接到片内的24位地址总线和8/16/32位数据总线32位单片机处理器核的内部结构在MCS-251ISA中,对于24位地址总线进行了定义,高8位表示访问的段空间,低16位表示当前访问段空间的具体存储单元位置,使用xxxxxxxx:yyyyyyyyyyyyyyyy表示使用8位二进制数“xxxxxxxx”表示访问的段使用16位二进制数”yyyyyyyyyyyyyyyy”表示所访问当前段的具体存储单元位置32位单片机处理器核的内部结构从图中可知,通过该地址和数据总线,连接片上存储器系统,包括:Flash存储器和EEPROM(共128kB)内部RAM区域-EDATA(共4KB)内部扩展RAM区域-XDATA(共8KB)32位单片机处理器核的内部结构STC32G系列单片机的片上程序存储器和数据存储器的容量都有显著增加。此外,STC32G系列单片机也具有扩展64KB外部数据存储器的能力32位单片机处理器核的内部结构24位地址总线和8/16/32位数据总线连接到外设接口单元(PeripheralInterfaceUnit,PIU)在PIU上连接了定时器0~定时器1、端口0~端口7、UART、实时时钟等外设资源32位单片机处理器核的内部结构在STC32G系列单片机中,增加了直接存储器访问(DirectMemoryAccess,DMA)控制单元(DMAControlUnit)一方面,该控制单元与HSSPI、USART、UART、ADC、I2C和LCM等外设直接连接;另一方面,与片内RAM进行连接因此,实现了在数据存储器RAM和外设直接的直接数据传输,显著提高了单片机的性能32位单片机处理器核的内部结构与STC15/STC8系列单片机相比,STC32G系列单片机内的时钟资源也显著增加STC32G系列单片机提供了4个可选的时钟源,包括:内部高精度IRC、内部32kHz的IRC、外部晶体振荡器和内部相位锁相环(PhaseLockLoop,PLL)输出时钟32位单片机处理器核的内部结构在STC32G系列单片机中,集成了专用的乘法和除法单元(Multiply&DivideUnit,MDU32)支持快速的无符号数和有符号数32位算术运算32位单片机处理器核的内部结构

--寄存器文件与STC15/STC8系列增强型8051单片机相比,STC32G系列单片机内处理器核的寄存器数量有了显著增加由于寄存器的个数较多,因此将这些寄存器的集合称为寄存器文件(RegisterFile,RF)在寄存器文件中,提供了40个寄存器(以8位宽度计量),这些寄存器可以按字节(8位)、字(16位,两个8位寄存器组合)和双字(32位,四个8位寄存器组合)访问32位单片机处理器核的内部结构

--寄存器文件寄存器文件存储器地址空间PSW位RS[1:0]选择一个组,通过寄存器文件访问在存储器地址空间可以访问组0~组3组0~组332位单片机处理器核的内部结构

--寄存器文件组地址范围PSW选择位RS1RS0000H~07H00108H~0FH01210H~17H10317H~1FH1132位单片机处理器核的内部结构

--寄存器文件与STC15/STC8系列增强型8051单片机一样,寄存器R0-R7仍然划分为四个组,每组依然包含8个寄存器这些不同组的寄存器仍然通过设置PSW中相应的字段进行设置它们在片内基本RAM(EDATA)的地址空间与8位单片机片内基本RAM区域给出的地址空间映射完全相同32位单片机处理器核的内部结构

--寄存器文件在上图中,寄存器以其最低编号的字节位置命名。例如:R4是由地址4组成的字节寄存器WR4是由寄存器4和5组成的16位字寄存器(WordRegister,WR)DR4是由寄存器4~7组成的32位双字寄存器(Dual-WordRegister,DR)32位单片机处理器核的内部结构

--寄存器文件字寄存器(16位)是两个字节寄存器的组合,双字寄存器(32位)是4个字节寄存器的组合寄存器R0~R15可作为字节、字或双字寻址其中寄存器R0~R7与8051单片机的寄存器R0~R7完全相同,寄存器R8~R15是对寄存器R0~R7的扩展当把四个8位寄存器R0~R3组合在一起,就构成一个32位寄存器DR0当把两个8位寄存器R8~R9组合在一起,就构成一个16位寄存器WR8寄存器R16~R31只能以字或双字的形式访问寄存器R56~R63只能以双字形式访问32位单片机处理器核的内部结构

--专用寄存器在寄存器文件中有4个专用的寄存器,包括:寄存器R10就是8051单片机处理器核中的寄存器B寄存器R11就是8051单片机处理器核中的累加器ACC(也称为累加器A)寄存器DR56扩展的数据指针(ExtendedDataPointer,DPX)寄存器DR60是扩展的堆栈指针(ExtendedStackPointer,SPX)专用寄存器

--累加器和B寄存器8位累加器ACC是寄存器文件中的寄存器R11(8位)也可以在SFR空间中作为S:E0H处的ACC访问用于乘法和除法的B寄存器是

寄存器文件中的寄存器R10

(8位)也可以在SFR空间中作为S:F0H处

的B访问专用寄存器

--累加器和B寄存器在STC15/STC8系列增强型8051单片机中,指令使用累加器作为数据移动和计算的主要寄存器然而,在兼容MCS-251ISA的STC32系列单片机中,寄存器R1~R15都可以用于这些功能因此,累加器没有发挥它在8051单片机中的核心作用专用寄存器

--扩展数据指针DPX双字寄存器DR56是扩展数据指针DPXDPX的低三个字节(DPL、DPH和DPXL)可作为SFR访问其中,数据指针低寄存器DPL和数据指针高寄存器DPH构成16位的数据指针DPTR。虽然8051单片机的指令始终使用数据指针寄存器DPTR作为数据指针,但兼容MCS-251ISA的STC32G系列32位单片机的指令可以使用任意字或双字寄存器作为数据指针DPXL是位于寄存器R57中的字节,指定映射到8051单片机64KB外部数据存储空间的存储器空间,即00:~FF:。换句话说,MOVX指令在将数据移入和移出外部存储器时寻址由DPXL指定的区域。DPXL的复位值为01H(指向片内扩展的RAM区域XDATA)专用寄存器

--扩展堆栈指针双字寄存器DR60为堆栈指针SPX寄存器R63中的字节是8051单片机处理器核中的8位堆栈指针SP。寄存器R62中的字节为堆栈指针高位寄存器SPH这两个字节允许堆栈扩展到存储空间区域00:的顶部。SP和SPH可以作为SFR访问PUSH和POP两条指令直接寻址堆栈指针子程序调用(ACALL、ECALL、LCALL)和返回(ERET、RET、RETI)也使用堆栈指针注:为保留堆栈,不能将DR60用作通用寄存器。专用寄存器

--程序状态字程序状态字寄存器PSWCY、AC、OV、N和Z标志由硬件设置,用于指示操作的结果PSW寄存器是可读写的寄存器PSW中的奇偶校验位P不受写入的影响位索引76543210名字CYACF0RS1RS0OVUDP专用寄存器

--程序状态字CY,进位标志如果最高有效位(MostSignificantBit,MSB)有进位,则由加法指令(ADD、ADDC)设置进位标志。如果MSB需要借位,则通过减法指令(SUB,SUBB)或比较指令(CMP)设置它。此外,进位标志还受到循环移位指令、逻辑位指令、位移动指令以及乘法(MUL)和十进制调整(DA)指令的影响。小问题:如何理解这里的MSB?专用寄存器

--程序状态字AC,辅助进位标志辅助进位标志仅受寻址8位操作数的指令影响如果具有8位操作数的加法指令产生第3位到第4位的进位(来自加法)或减法指令产生第3位到第4位的借位,则设置AC标志。否则,清除该标志该标志对BCD算术指令非常有用F0,标志0(Flag0)该标志可供用户使用RS1:RS0寄存器组选择位其含义同8051单片机对RS1和RS0的定义专用寄存器

--程序状态字OV,溢出标志如果有符号变量的加法或减法导致溢出错误(即,如果和/差的幅度对于二进制补码表示中的七个LSB来说太大),则设置该位如果乘积溢出一个字节或尝试被零除,也会设置溢出标志UD,用户可定义标志该通用标志可供用户使用P,奇偶校验位如果在累加器中设置了奇数位,则设置它。否则,清除它。并非所有指令都更新奇偶校验位。奇偶校验位由改变累加器(ACC,寄存器R11)内容的指令设置或清除专用寄存器

--程序状态字程序状态字寄存器PSW1CY,进位标志与PSW寄存器中的CY位含义相同AC,辅助进位标志与PSW寄存器中的AC位含义相同位索引76543210名字CYACNRS1RS0OVZ—专用寄存器

--程序状态字N,负标志如果最后一个逻辑或算术运算的结果为负(即位15=“1”),则设置该位;否则,清除该位RS1:RS0,组选择位含义同PSW寄存器的RS1和RS0位OV,溢出标志含义同PSW寄存器中的OV位专用寄存器

--程序状态字Z,零标志如果最后一个逻辑或算术运算的结果为零,则设置该标志。否则,清除该标志—,保留从该位读取的值是不确定的。只能给该位写“0”专用寄存器

--程序状态字可以使用位指令对PSW和PSW1寄存器中的各个位进行寻址PSW寄存器与8051单片机中的PSW寄存器相同PSW1寄存器是对PSW寄存器的扩展只存在于STC32G系列单片机的处理器核中PSW1中的CY、AC、RS0和RS1,以及OV位与PSW中相应的位相同即可以在PSW或PSW1寄存器中访问这些位专用寄存器

--程序状态字影响PSW和PSW1寄存器中标志的指令

指令类型指令影响的标志CYOVACNZ

算术指令ADD,ADDC,SUB,SUBB,CMPXXXXXINC,DEC———XXMUL,DIV0X—XXDAX——XX逻辑指令ANL,ORL,XRL,CLRA,CPLA,RL,RR,SWAP———XXRLC,RRC,SRL,SLL,SRAX——XX程序控制CJNEX——XXDJNE———XX表中,标记为“X”,表示标志可能受指令影响,标记为“0”,标志被指令清除;标记为“—”,表示标记不受影响。第五章处理器内核和存储空间映射32位单片机存储器结构和地址空间从前面介绍的STC32处理器核的内部结构可知:处理器核连接到片内的24位地址总线因此最多能够访问16M的存储器。其中,包括8M数据存储器和8M的程序存储器STC32G系列单片机没有提供访问外部程序存储器的总线因此单片机的所有程序存储器都采用片上Flash存储器,不能访问外部程序存储器在STC32G系列单片机内部集成了大容量的数据存储器它们在物理和逻辑上分为两个地址空间,包括内部基本RAM(EDATA)和内部扩展RAM(XDATA)32位单片机存储器结构和地址空间32位单片机存储器结构和地址空间从图中可知,在STC32G系列单片机中,将24位的地址分为高8位和低16位高8位表示所访问的存储空间的某个区域,类似“页面”的概念。低16位表示访问该区域的某个存储单元对于图中以十六进制数标记为FF:0000~FF:FFFF的区域该区域内的地址变化范围为0000~FFFF,容量大小为64KB与8051单片机的0x0000~0xFFFF地址范围相同该区域用作程序存储空间,也称为CODE区域32位单片机存储器结构和地址空间对于图中以十六进制数标记为FE:0000~FE:FFFF的区域该区域的地址变化范围为0000~FFFF,容量大小为64KB为扩展程序存储空间,也称为ECODE区域对于图中以十六进制数标记为01:0000~01:1FFF的区域该区域的地址变化范围为0000~1FFF容量大小为8KB,为片内扩展RAM空间,也称为XDATA区域32位单片机存储器结构和地址空间对于图中以十六进制数标记为00:0000~00:0FFF的区域该区域的地址变化范围为0000~0FFF容量大小为4KB,为片内基本RAM空间,也称为EDATA区域在STC32G系列单片机中,使用了以十六进制数标记为7E:0000~7E:FFFF的区域该区域为扩展特殊功能寄存器(eXtendedSpecificalFunctionRegister,XSFR)区域该区域是对SFR的扩展。通过这种方式,使得STC32G系列单片机中的处理器核能够访问更多的片上设备,这也意味着可以在单片机中集成更多的外部设备32位单片机存储器结构和地址空间

--程序存储器STC32G系列单片机内部的程序存储器用于保存用户的程序、常数以及表格等信息当给STC32G系列单片机复位后,程序计数器(PC)的内容为FF:0000H从FF:0000H的单元开始执行程序32位单片机存储器结构和地址空间

--程序存储器与8051单片机相同,中断服务程序的入口地址(也称为中断向量)也位于程序存储器中在程序存储器中,每个中断都有一个固定的入口地址,当发生中断并且处理器核响应中断后,PC就会自动跳转到相应的中断入口地址去执行程序入口类型STC32G系列单片机STC8/STC15系列单片机复位入口地址FF:0000H0000HINT0中断入口地址FF:0003H0003HTIMER0中断入口地址FF:000BH000BHINT1中断入口地址FF:0013H0013HTIMER1中断入口地址FF:001BH001BHUART中断入口地址FF:0023H0023H32位单片机存储器结构和地址空间

--程序存储器扩展内容与STC15/STC8系列增强型8051单片机相同,STC32G系列单片机也集成了F

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论