您的位置 首页 国产IC

PIC16C5X单片机程序存储器

PIC16C5X系列单片机内部有一定容量的程序存储器和数据存储器,程序存储器的字节宽度为12位,用于存放用户程序和数据表格。PIC16C52有384字节

PIC16C5X系列单片机内部有必定容量的程序存储器和数据存储器,程序存储器的字节宽度为12位,用于寄存用户程序和数据表格。PIC16C52有384字节的程序存储空间,PIC16C54/55的ROM空间为512字节,PIC16C56的地址空间为1024字节,PIC16C57/58则为2048个字节。PIC16C5X单片机选用的是分页寻址方法,每页位512字节,页面地址由状况寄存器f3的PA0、PA1挑选。512字节的12位页内可直接寻址,较大的程序存储器可通过挑选4个页、每页512字节页面来寻址,如下图所示。

但当页面之间跳转(GOTO CALL指令)有必要先把f3的PA0、PA1设置为相应的页面。需求留意的是:在体系复位时,程序计数器PC将指向程序存储器最终一个页面的最终一个单元。例如PIC16C54/55指向1FFH,PIC16C56指向3FFH,PIC16C57/58则指向7FFH。状况寄存器f3的PA0、PA1指向零页空间,所以程序员在编程时需求在程序存储器底部放置一条跳转指令,跳到程序进口。

单片机履行程序时,程序计数器(PC)主动加1,程序操作支撑直接、直接、相对寻址方法,能由测验、跳转指令、子程序调用指令、搬运指令或把算出的地址装入PC来完成程序的跳转。片内两级仓库为子程序嵌套供给服务。

仓库

PIC16C5X系列单片机供给两级仓库,参阅上图。CALL指令把程序计数器加1压入仓库1,栈1主动压入栈2,当多于两级子程序调用指令履行时,仓库中只要存储最近两个回来地址,所以主程序中调用的子程序最多只能嵌套一次,当履行一条CALL指令,PIC16C56/57/58的f3之页面挑选位PA1、PA0被装入程序计数器的最高两位,第9位清“0”,也便是子程序进口地址有必要坐落存储页的低半页000-0FF、200-2FF、400-4FF、600-6FF地址。但这儿指的是子程序主体的开始方位,而子程序体是能够延伸到下半页面的。

PIC16C56/57/58,因为程序空间分别为1k和2k,或许存在跨页面子程序调用,所以调用子程序前须先把f3的PA1、PA0设置成该子程序地点页面地址。固然,假如子程序与调用程序同在一个页面,则无需这个过程。因为仓库和PC的宽度是相同的,所以可在程序的任何地方履行CALL指令来调用子程序。当然跨页面的调用还须考虑页面地址PA1、PA0。

RETLW(子程序回来指令)把栈1内容送到程序计数器PC,一起栈2内容复制到栈1,多于两个RETLW指令运行时,栈1只会装入从前存在栈2的地址,关于P%&&&&&%16C56/57,程序总是回来调用它的同一页面,不论它是处在哪个页面,也不论f3的页面挑选位的设置状况怎么。可是履行RETLW指令并不会改动f3中的PA1、PA0的值。w寄存器会被装入RETLW指令中所指向的数值,即当即数。这在程序存储器中完成数据查表时就十分有用。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/ic/254144.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部