微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > PIC单片机基础知识之一

PIC单片机基础知识之一

时间:11-24 来源:互联网 点击:

异或
ADDWF f,d W和f相加
MOVF f,d 传送f
COMF f,d f取反
INCF f,d f递增1
DECFSZ f,d f递减1, 结果为0则跳
RRF f,d 带进位循环右移
RLF f,d 带进位循环左移
SWAPF f,d f高低4位内容交换
INCFSZ f,d f递增1, 结果为0则跳
位操作指令
BCF f,b f位清0
BSF f,b f位置1
BTFSC f,b f位测试, 为0则跳
BTFSS f,b f位测试, 为1则跳
立即数和控制操作指令
SLEEP - 进入低功耗休眠模式
CLRWDT - 清看门狗
RETLW k W带立即数返回
RETFIE - 中断返回
RETURN - 子程序返回
CALL k 调用子程序
GOTO k 强行跳转(k为9位地址描述)
MOVLW k W置立即数
IORLW k W和立即数逻辑或
ADDLW k W和立即数相加
SUBLW k 立即数减去W
ANDLW k W和立即数逻辑与
XORLW k W和立即数逻辑异或
注:f = 寄存器, k = 立即数 (8位), b = 位地址 <0,7>, d = 目的地 (1=f, 0=W)
上面就是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单片机内部结构框图。当然在学习单片机时,不是必须要了解芯片内部究竟时如何工作的。但是,大略地看看这个图,可以对PIC的某些特点有个初步的印象。从图上你可以看到程序总线和数据总线是相互独立的,在图的左下角你可以看到片内已经做好了上电复位,掉电复位,看门狗,振荡器起振延时器等为了增强单片机运行可靠性的模块,在程序指针(Program Counter)下面,你会看到一个和其他单片机不一样的地方,堆栈(Stack)。PIC单片机的堆栈是硬件堆栈,它和PC的宽度是一样的。当发生中断或者程序调用时,当前指令的PC+1(要清楚,前面讲过流水线,执行某条指令时,同时在预取PC+1处的指令)整个压入堆栈,返回时整个退栈。硬件堆栈和某些单片机在RAM空间里开辟的堆栈相比,有一个好处,就是不用担心因为堆栈的错误溢出而影响RAM区域,而且,你可以选择压栈后并不退栈,直接GOTO到其他处理。但是它也有自己的局限性,因为它是硬件的,所以堆栈的级数是有限的。对于PIC中档单片机,硬件堆栈只有8级,所以CALL的嵌套不要超过7级;对于PIC18系列,硬件中断则有31级。或许,你会担心堆栈不够用,但是,实际上,一个程序CALL嵌套超过7级的实在很少,而且,完全可以通过改变程序流程来保证堆栈不会溢出的。


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top