PIC单片机在现实中被大量使用,并且许多应用都是基于PIC单片机设计的。
电子相关专业的朋友自然很熟悉pic微控制器。
为了增强大家对pic微控制器的理解,本文将继续介绍pic微控制器。
在本文中,编辑器将说明pic微控制器的PAGE和BANK。
如果您对pic微控制器感兴趣,则不妨继续阅读。
从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设置位置1,以便切换到该寄存器所在的BANK。
例如,应通过设置BANK表格来寻址PIC16F877单片机的EECON1寄存器(地址18CH)。
此时,寻址的地址数据由“ 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芯片中,该指令只能在512条指令中使用(000H〜1FFH,200H)。
直接在〜3FFH范围内跳跃...)。
出于相同的原因,呼叫PIC16C5X的指令(' 1011 kkkk kkkk')只能调用256条指令(000H〜0FFH,200H〜2FFH,...)范围内的子例程。
页面上半部分的子例程。
在具有14位指令位的PIC16F87X单片机中,指令代码为“ GOTO”。
是“ 101 kkk kkkk kkkk”,并且“ CALL”的指令代码是是' 100 kkk kkkk kkkk&#39 ;,其寻址范围都是' 111 1111' 1111' (3FFH)。
因此,在PIC16F87X单片机中,页面的长度为3FFH = 2048条指令(2K)。
在使用中,使用“ CALL”指令时,无需将子例程条目放在页面的上半部分。
上面是“ PIC MCU”。
该编辑器带来的相关内容。
通过本文,希望大家对pic MCU的PAGE和BANK有一个初步的了解。
如果您喜欢这篇文章,不妨继续关注我们的网站,稍后编辑器将带来更多令人兴奋的内容。
最后,感谢大家阅读,祝您有美好的一天!