您当前的位置:五五电子网电子知识单片机-工控设备综合-其它EM78单片机存储器及寄存器结构 正文
EM78单片机存储器及寄存器结构

EM78单片机存储器及寄存器结构

点击数:7996 次   录入时间:03-04 11:54:41   整理:http://www.55dianzi.com   综合-其它

2.4.       程序存储器和堆栈

2.4.1.      程序存储器

EM78X56内部程序存储器和堆栈示意图如下:

PC指针(寄存器R2)和堆栈的位数依照型号EM78156、EM78256、EM78456分别是10位、11位、12位,即寻地空间分别为1K、2K和4K,一个程序页面为1K。页面选择通过设定状态寄存器R3的Bit6(PS1). Bit5 (PS0)来完成,内容下表(表2.3)所示: 

PS1(R3.6)

PSO(R3.5)

程序页面地址

0

0

0页[000-3FF]EM78X56没有PS1、PS0

0

1

1页[400-7FF]EM78256/456

1

1

2页[800-BFF]EM78256/456

1

1

3页[C00-FFF]EM78456

      ·对EM78156μPS1、PS0位为通用读/写位

      ·对EM78256μPS1为通用读/写位

EM78X56可在同一页面内直接跳转(JMP)和调用子程序(CALL),即JMP时装入目标地址至PC的低10位,CALL时装入目标地址至PC的低10位,且PC+1压栈,调用同1K页面内的任何程序。

在EM78256/EM78456中,当需要跳转或调用不同页面的子程序时,则须在调用前将修改R3的PS0/PS1、PS0,执行JMP或CALL后将状态寄存器R3的PS0/PS1、PS0载入PC的A10/A11、A10。

有一情况需特别注意:对PC(R2)进行直接操作指令如“MOV R2、A”、“ADD R2、A”、“BC R2,0”都将导致PC之第9及第10位(A9、A8)被清零,因此此类情况产生的任何跳转都限定在同一页面的前256个地址(查表指令的使用均在此限制内)

2.4.2.      堆栈

 EM78X56有五级堆栈,遵循后入先出的原则实现程序多至五级嵌套调用.通常堆栈使用如下:

    当CALL和中断响应时PC+1压栈;

当子程序或中断返回,执行RET、RETL(带参数返回)、RETI(中断返回),将栈顶值(栈1)弹回程序计数器PC、同时将堆栈2的值拷贝到堆栈1,堆栈3的值拷贝到堆栈2,以此类推。

要注意的是RET、RETL、RETI指令并没有改变R3中的PS0~PS1位便返回到原来调用程序的页面,所以当从一次跨页的子程序调用返回时,一定要用指令恢复R3中原先的PS0、PS1值。

2.5.       数据存储器RAM结构

EM78X56的数据存储器分工作寄存器、特殊功能寄存器和一般通用寄存器三大类,如图2.4所示:

2.5.1.      工作寄存器

1.R0间接寻址寄存器

RO并非一个实际工作的寄存器,只作为间接寻址用。任何对RO进行操作的指令,实际上是存取由RAM选择寄存器R4所指定的RAM内容。

2.R1(TCC)

此寄存器为8位定时/计数器,可由程序进行读/写操作。它用于对外加在TCC脚上的脉冲进行计数,或对内部时钟计数。

3.R2(程序计数器PC)和堆栈

·在复位情况下,R2被清零,地址指向OOOH

·对R2进行写操作的指令一定需要二个指令周期,其它有关R2和堆栈的内容§2.4中所述.

4.R3状态寄存器(STATUS)

如下表所示,R3包括ALU运算标志、页面标志、复位状态等

7

6

5

4

3

2

1

0

GP

PS1

PS0

T

P

Z

DC

C

Bit0(C) :进位标志

Bit1(DC):辅助进位标志

Bit2(Z) :零标志,当一算术或逻辑运算结果为“0”时,则置该位为“1”

Bit3(P) :掉电模式位。当系统上电时或执行“WDTC”指令后,置该位为“1”;当执行“SLEP”指令后,该位被置“0”。

Bit4(T) :超时位,当系统上电或执行“SLEP”和“WDTC”指令时,置位为“1”;当WDT溢出时置位为“0”

[1] [2]  下一页


本文关键字:单片机  存储器  寄存器  综合-其它单片机-工控设备 - 综合-其它