欢迎进入PCB抄板科技有限公司网站
全国服务热线
020-66**9888
芯片解密
PIC单片机基础知识之一
时间: 2021-09-13 19:39 浏览次数:
1)哈佛机合-先容哈佛机合时时要和冯.纽曼机合比拟来先容。咱们谙习的8086便是一种范例的冯.纽曼机合,它的措施和数据是共用统一个存储空间,CPU也是应用统一个来拜候它们。那么

  1)哈佛机合-先容哈佛机合时时要和冯.纽曼机合比拟来先容。咱们谙习的8086便是一种范例的冯.纽曼机合,它的措施和数据是共用统一个存储空间,CPU也是应用统一个来拜候它们。那么,取指令和取数据势必分时来举行,这就限定了数据的流量。和它相对应的哈佛机合,则是分别。哈佛机合的范例特征便是措施和数据是分立的空间,CPU对措施和数据的拜候也是应用一律独立的两套总线。于是,相对待冯.纽曼机合,它可能同时从两个空间取指令和取数据,这就扩展了数据流量。并且,由于两个总线互不联系,于是,措施总线和数据总线可能做得不相同宽。正在打算之初拣选了哈佛机合,并基于措施总线位指令宽度的单片机系列,分裂对应的是PIC低档系列,PIC16中档系列,以及PIC18系列单片机。这里要阐述的是,数据总线位,于是不管它的指令宽度是多少,它仍旧仍是8位单片机。

  2)指令流水线操作-大局部的单片机,取指令和推广的历程是纪律举行的。PIC单片机正在打算时引入了指令流水线的打算,使得单片机的取指和推广可能同步举行。咱们来看下面的指令取指和推广历程图示。

  从这个图示上,咱们可能看到取指和推广是何如同步举行的,也可能分析到,指令可能正在一个指令周期内推广。然则,当有措施分支时(如CALL,GOTO或直接批改PC)是不同的,须要多花一个指令周期。图示上标有*号的地方,你可能看到,正在推广CALL SUB_1这条指令时,同时预取了第4条指令BSF PORTA,3,措施是要挪用SUB_1子措施,那么这条指令昭着是差池预取的。然则不消费心,单片机的硬件会主动鄙人一个指令周期里刷掉被差池预取的指令4,同时正在该指令周期内预取SUB_1标号处的指令,那么接下来的Tcy5便是推广子措施的指令了。从这个历程咱们就可能分析,为什么措施分支时,须要两个指令周期了。

  3)单字指令,长字指令-由于措施和数据是一律独立存储的,于是指令和数据的宽度可能不相同。PIC单片机的指令宽度有12位,14位和16位几种,分裂对应低中高三档的系列。以中档PIC16系列单片机为例,它的指令字长是14位的,咱们把它叫做长字指令。何如个“长”法,来看一个例子

  PIC单片机指令示例:MOVLW0x55(注释,给W事业寄存器赋速即数55H)

  从图示上,你可能了了的看到PIC16的一条指令是一个14位的长字,这个长字的前面局部是操作码,后半局部是操作数。和其他单片机比力来看,同样效用操作的指令,会被翻译成操作码字节和操作数字节,两个字节。于是,从这里,你可能取得一个观念,便是,PIC的一条长字指令,约莫等于其他单片机的两个字节的指令。反响到措施空间上,便是PIC的1K字的措施空间,约莫相当于其他单片机的2K字节的措施空间。当然,这个比例不是绝对的,分此表代码会有不相同的比例结果,然则这个1:2的近似结果有帮于你正在拣选PIC单片机型号时行为参考。对待长字指令,尚有着另一个好处,便是:措施指针PC指向的任何地方都是一个指令长字,纵然PC跑飞,所指向的也是一条合法的长字指令(由于操作码的打算掩盖了一起的二进造组合),云云你就可能轻易地用“坎阱”或“填充”等权谋来减幼PC跑飞带来的误操作。相对应地,操作码和操作数分为两个字节的单片机,必然措施上,存正在PC跑飞后把操作数当成操作码来译码的危急。纵然现正在的单片机打算都有必然权谋来治服这种PC错位,然则它仍是没有PIC单片机这种单字指令来得轻易。

  上面便是PIC中档单片机的扫数35条指令,这些指令或许对待入门者,显得很生疏,然则当你去看英文数据手册时,就会分析,这些指令,基础都是一句英文的首字母缩写,好比BTFSC,便是Bit Test File register Skip if Clear(位测试某f寄存器,借使为0则跳过一条指令)。一共就这35条指令,就算你一起首不习性,要不停看指令表,但我念借使你起首写措施,一六合来该当就能记室第有的指令。念念此表单片机一百多条指令,某些日系的8位单片机竟有四百多条指令,不是那么容易背下来吧。

  5)文档寄存器 - 英文的原文是file Register。正在PIC单片机中惟有两类寄存器,一类是W,Working Register事业寄存器,惟有一个,相当于51的A累加器,其他的一起寄存器都是F寄存器,也便是文档寄存器。这里的“文档”,是一个现象的形容,你可能分析除了W以表的一起通用RAM和独特效用寄存器都是一个个的文档,当须要操作的光阴,取出某个文档,和W经由ALU中心运算单位运算后,结果既可能放到W里,也可能放到该文档寄存器里。这里要夸大的是,一起的通用RAM和独特效用寄存器(如端口,操纵寄存器等)都是文档寄存器,于是对他们操作的指令都是相同的。象有些单片机,对端口拜候,对遍及RAM,对独特效用寄存器的操作都要用分此表指令,比拟起来,PIC单片机要轻易得多。

  下图是PIC单片机内部机合框图。当然正在研习单片机时,不是必定要领悟芯片内部底细时何如事业的。然则,简陋地看看这个图,可能对PIC的某些特征有个初阶的印象。从图上你可能看到措施总线和数据总线是互相独立的,正在图的左下角你可能看到片内依然做好了上电复位,掉电复位,看门狗,振荡器起振延时器等为了加强单片机运转牢靠性的模块,正在措施指针(Program Counter)下面,你会看到一个和其他单片机不相同的地方,旅馆(Stack)。PIC单片机的旅馆是硬件旅馆,它和PC的宽度是相同的。当发作断绝或者措施挪用时,方今指令的PC+1(要了了,前面讲过流水线,推广某条指令时,同时正在预取PC+1处的指令)全数压入旅馆,返回时全数退栈。硬件旅馆和某些单片机正在RAM空间里诱导的旅馆比拟,有一个好处,便是不消费心由于旅馆的差池溢出而影响RAM区域,并且,你可能拣选压栈后并不退栈,直接GOTO到其他治理。然则它也有我方的节造性,由于它是硬件的,于是旅馆的级数是有限的。对待PIC中档单片机,硬件旅馆惟有8级,于是CALL的嵌套不要凌驾7级;对待PIC18系列,硬件断绝则有31级。或者,你会费心旅馆不敷用,然则,实践上,一个措施CALL嵌套凌驾7级的实正在很少,并且,一律可能通过更正措施流程来包管旅馆不会溢出的。

Copyright © PCB抄板科技有限公司 版权所有 粤ICP备14031015号-1
全国服务电话:020-66**9888   传真:020-66**9888
公司地址:广东省广州市番禺经济开发区58号