PIC单片机基础知识之一
异或
ADDWF
MOVF
COMF
INCF
DECFSZ
RRF
RLF
SWAPF
INCFSZ
位操作指令
BCF
BSF
BTFSC
BTFSS
立即数和控制操作指令
SLEEP
CLRWDT
RETLW
RETFIE
RETURN
CALL
GOTO
MOVLW
IORLW
ADDLW
SUBLW
ANDLW
XORLW
注: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级的实在很少,而且,完全可以通过改变程序流程来保证堆栈不会溢出的。
PIC单片机基础知 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)