快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

澳门银河网址yh开头:PIC16C5X单片机的程序存储器结构和堆栈技术介绍



PIC16C5X内部有384~2K的只读法度榜样存贮器,下面叙述其布局和客栈。

1.4.1 法度榜样存储器布局

PIC16C5X法度榜样存储器布局如图1.3所示:

从上图可看出,PIC法度榜样存储器采纳分页布局,每页长0.5K。是以对付PIC16C52法度榜样存储器在1页之内,而对付PIC16C54和PIC15C55法度榜样存储器容量为1页,PIC16C56和PIC16C57 的容量则分手为2页和4页。页面地址由状态寄存器f3的第5位和第6位(PA0、PA1)确定。法度榜样转移时,在本页内可直接进行;在需跨页跳转时(GOTO、CALL指令),则必须根据将要跳转去的页面,把f3中的PA0、PA1位置成响应的值。详细请参考f3寄存器描述及2.7.2 法度榜样设计根基的法度榜样技术例子。

1.4.2 客栈

PIC16C5X设有二层澳门银河网址yh开头客栈,客栈1和客栈2,供子法度榜样调用。涉及客栈操作的指令有二条。

1、CALL--在主法度榜样中第一次履行CALL指令时,将PC值加1后推入客栈1,客栈1 原有的内容则被推入客栈2中。这时子法度榜样中还可再做一次子法度榜样嵌套,即再履行一次 CALL指令。假如子法度榜样调用多于二层时,客栈中只寄放近来的二个返回地址。

当履行一条CALL指令时,状态寄存器f3中的将页面寻址位PA1、PA0将被置入到PC的最高二位(第11位和第10位),而PC的第9位老是被置为0,如图1.3所示。以是这时PC 值将是

这意味着在PIC16C5X中,子法度榜样肇端地址只能放在每个法度榜样存储页面的上半页,即低地址的那一半(0澳门银河网址yh开头00-0FF、200-2FF、400-4FF、600-6FF)。留意,这里指的是子法度榜样的澳门银河网址yh开头肇端地址,即子法度榜样头。而子法度榜样体是可以延伸到下半页去的。

对付PIC16C56和PIC16C57,因为法度榜样空间分手为1K和2K,可能存在跨页面子法度榜样调用。以是调用子法度榜样前必须先把f3中的PA0、PA1设置成该子法度榜样所在的页面地址。返回后再将其规复成当前的页面值。当然假如这时子法度榜样是在同一页面,则可省去这一历程。

2、RETLW--该指令把栈顶(客栈1)的值写入PC,同时还把客栈2的值拷贝到客栈1 去。子法度榜样老是返回到调用它时所在的地方,不管它是处在什么页面,也不管f3寄存器中的PA0、PA1这时是指在什么页面。然则履行RETLW(子法度榜样返回)指令并不会改变f3中PA0、PA1的值,以是当你从一次跨页面的子澳门银河网址yh开头法度澳门银河网址yh开头榜样调用返回时,不要忘了规复f3中的本来的PA0和PA1值。请参考上面关于CALL指令的论述。

因为客栈和PC的宽度是相同的,以是你可以在法度榜样的任何地方履行一条CALL 指令来调用子法度榜样。然则对付跨页面的调用,你要小心处置惩罚f3中的页面地址位PA0和PA1,请参考第二章指令详解中的CALL实例。

责任编辑;zl

您可能还会对下面的文章感兴趣: