—— —— —— 技术资料下载中心

>> PIC单片机原理 \

PIC系列单片机数据存储器的特点和功能（中）
学习PIC单片机数据存储器时，不仅要了解各寄存器单元的功能，而且还应在编制程序时会调用它们完成编程目的。下面笔者将以编程实例说明它们的用途。 2间接寻址寄存器INDF和FSR　位于PIC数据存储器的最顶端、地址00单元（地址码最小）的间接寻址寄存器INDF是一个空的寄存器。它只有地址码，在物理上不是一个真正的寄存器。它的功能常常与寄存器FSR（又称寄存器选择寄存器）配合工作，实现间接寻址目的。初学专用寄存器INDF和FSR时，记住下述的逻辑关系对编程是有帮助的：使用寄存器INDF的任何指令，在逻辑上都是对寄存器FSR所指向的RAM进行访问，即对INDF（本身）进行间接寻址（访问），读出的应是FSR内容。以下的一个简单程序是用间接寻址方式清除RAM地址20h～2Fh单元寄存器内容的实例。
MOVLW 0x20 ；20h→w，对指向RAM单元的指针
；初始化
MOVWF FSR ；20h→FSR，FSR指向RAM
LOOP CLRF INDF ；清除INDF，即清除FSR内容所指
；向的单元20h→2Fh
INCF 　 FSR ；（指针）FSR内容加1
BTFSS FSR，4；判别（指令）FSR的D3位，若为零
；执行下条循环指令；若为1间跳
；执行。
GOTO LOOP；跳转到LOOP（循环）
CONTINUE…　　　 ；已完成功能，继续执行程序
由上述指令看出，因寄存器INDF和FSR的配合工作，达到了对RAM地址20h～2Fh的寄存器清零目的。由于完成上述功能的指令数很少，这就会简化指令系统，使PIC单片机的指令集得以精简。
说明：上述各条指令易于看懂，所以无需再复述，但其中的一条判别指令“BTFSS FSR，4”比较关键。该条指令是保证题设中要选择RAM地址单元上限值2Fh时，其对应的二进制数为00101111B，此时FSR的第4位恰为1。所以上述指令中用了一条判断指令；BTFSS FSR，4，判断FSR的D3位值是否为1，若不为1而为0，则执行下条循环指令GOTO LOOP，使FSR中的地址不断加1，直到寄存器FSR的D3位为1时，这时它的内容代表的RAM地址恰为2Fh。
由此可见，学习PIC单片机数据存储器中的专用寄存器时，不必要对每个产品的专用寄存器进行学习，只需先学习它们的共同点，然后选中一个产品型号的专用寄存进行详细分析，有条件时进行必要的相关指令操作，就能完全掌握单片机技术。　　

成都　丁锦源

[ 返回 ]