今天是: 创芯电子 | 发布供求信息 | 设为首页 | 加入收藏  

首页   解密专栏   设计应用    初学实战   解决方案   下载中心   厂商信息   供求信息   资讯快递   联系我们
热点推荐
揭开物联网产业链全局图:..
我国电子信息产业现状及面..
深圳IC设计"拨云见日" ..
绿色、安全和通讯是汽车电..
从香港电子展分析消费电子..
金融危机影响电子元器件市..
松翰单片机解密/FEELING单..
并行频域OCT图像预处理系统..
基于dSPACE的双绕组感应发..
基于RF技术的机械数码一体..

图片链接






 首页 >> 初学实战 >> 其它学习
PIC单片机中BANK和PAGE的分析
时间: 2008-7-11
来源:网络收集    作者:

从PIC单片机的指令结构上来分析一下为什么PIC中要有BANK和PAGE的设置吧。先来看一下为什么PIC中要把RAM区划分多个BANK。

仔细观察PIC单片机汇编语言指令的格式,一条完整的汇编语言指令语句通常是这样的:标号操作码助记符 操作数1,操作数2;注释。其中,主体部分是‘操作码助记符操作数1,操作数2’。

例如:

指令:MOVF 33,1

操作码助记符:MOVF ;

操作数1:33 ;

操作数2:1 ;

而在程序被编译时指令语句的主体部分会被转换为代码的形式,通常是:指令代码操作数2 操作数1。

例如在指令位数为14位的中档PIC单片机中:

指令:MOVF 33,1

转换后代码:00 1000 1 011 0011

其中指令代码为:00 1000(MOVF f,d=00 1000 dfff ffff);

操作数2:1 (d = 1);

操作数1:011 0011 (f = 33H) ;

可以看到,由于指令代码占用了6位,再加上操作数2占用的1位,分配给操作数1的只有7位了。也就是说操作数1最大只能是‘111 1111’(7FH),因此‘MOVF’直接的寻址范围只能是00H~7FH之间。其它的对寄存器操作的指令情况基本相同,因此指令位数为14位的PIC 单片机将每125个(00H~7FH,80H~FFH……依此类推)寄存器划分为一个BANK,并且将STATUS寄存器的RP1、RP0为定为BANK 设置位。在编写程序时,要对某个寄存器进行操作就首先要对BANK的设置位进行设置,从而切换到该寄存器所在的BANK。

例如PIC16F877单片机的EECON1寄存器(地址18CH)就要通过设置BANK的形式来寻址了,这时寻址的地址数据是这样组成的‘BANK值+操作数1’,其中‘BANK值’=‘RP1 RP0’。

举个例子来说:

指令:BSF EECON1,1 ;

指令转换后代码:0101 001 000 1100 ;

这时如果‘BANK值’=3,寻址的地址数据就会是‘11 +000 1110’(18CH);而此时如果BANK值为0,则寻址的地址数据就会是‘00 +000 1110’(0CH),这样就出现了错误。

用同样的方法我们可以分析PIC单片机的PAGE的设置。举个例子,PIC16C5X的一个页面是512条指令。它的‘GOTO’指令是这样的: ‘101 k kkkk kkkk’(‘GOTO’指令没有操作数2)。我们看到该指令的操作数1最大只能是‘1 1111 1111’(1FFH),因此在指令位数为12位的PIC16C5X 芯片中‘GOTO’ 指令只能在512条指令(000H~1FFH,200H~3FFH,……)的范围内直接跳转。同样的理由,PIC16C5X的‘CALL’指令(‘1011 kkkk kkkk’)只能调用256条指令(000H~0FFH,200H~2FFH,……)范围内的子程序,因此在进行PIC16C5X单片机的编程时要将供调用子程序的入口放在前半页面。

而在指令位数为14位的PIC16F87X单片机中‘GOTO’指令代码是‘101 kkk kkkk kkkk’,而‘CALL’的指令代码是‘100 kkk kkkk kkkk’,它们的寻址范围都是‘111 1111 1111’(3FFH)。因此在PIC16F87X单片机中,一个页面长度就是3FFH=2048条指令(2K)。而且在使用中,使用‘CALL’指令时就不需要将子程序入口放在上半页面了。
 
上一篇: PIC单片机控制步进电机源程序
下一篇: 16*16点阵显示屏程序
打印】 【关闭

【资讯版权声明】
 1. 凡本网站注明“来源:单片机基地”的所有作品,版权均属于单片机基地,转载请注明“来源:单片机基地”。
 2. 本网转载自其它媒体的信息,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。
 3. 未经本站明确许可,任何网站不得非法盗链软件下载连接及抄袭本网站原创内容资源。
 4. 违反上述声明者,本网将追究其相关法律责任。谢谢!

网站地图  广告服务  版权声明  友情连接  关于我们 
Copyright©2005-2010 单片机基地,创芯电子技术 版权所有
技术支持:0755-82701553 21976338 E-mail:mcubase@163.com QQ:719659769
致力于单片机解密,IC解密,芯片解密加密技术研究,提供芯片解密服务,仅供合法研究学习用途
基地资源仅供学习参考,部分内容来源于网络,如侵犯您的版权,请通知本站即撤
ICP备案序号:粤ICP备06120039号