PIC单片机指令系统及设计

来源:本站
导读:目前正在解读《PIC单片机指令系统及设计》的相关信息,《PIC单片机指令系统及设计》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《PIC单片机指令系统及设计》的详细说明。
简介:PIC单片机指令系统及设计

1.空操作指令 NOP

此指令起到单纯的延时,延长一个指令周期,不进行任何操作

2.寄存器传送指令 MOVWF f

此指令作用为将W寄存器中的数据放到F寄存器

例: MOVLW 10 (将立即数10放入 W寄存器)

MOVWF 11 (将W寄存器中的数据放入F11寄存器中)

可能原来使用51系列单片机的朋友看这些程序有点别扭,呵呵,我就有点别扭,

但理解起来应该并不困难

3.清工作寄存器W CLRW

此语句需要一个指令周期,作用让W=0,影响状态寄存器Z标志位,W清0则Z为1

状态寄存器F3各位定义:

D7 D6 D5 D4 D3 D2 D1 D0

PA2 PA1 PA0 TO PD Z DC C

(1)C志位既为进位/借位标志 ,当两个数相加时产生了进位则C=1反之C=0此处跟

51系列单片机汇编没有什么区别,但当两个数相减的时候如果得到的数据为负,也就

也就是说产生了借位则C=0,反之C=1这是与51系列单片机不同之处。

(2)DC位为半进位标志。当进行减法或者加法的时候低四位操作产生进位的时候则

DC=1

(3)这是0标志,在算术逻辑操作结果为0的时候 Z=1

(4)PD位为低功耗标志,在上电或者执行CLRWDT时候,此位为1,当执行SLEEP指令的

时候此位为0

(5)TO位是WDT超时标志,当上电或者执行CLRWDT,SLEEP指令的时候该位为1,当

WDT超时的时候此位为0

(6)PA0和PA1可读可写,可以通过他的设置来选择程序存储器的页面

(7)PA2为保留位

4.清数据寄存器 CLRF f,d

清理寄存器F(f)为0 当d=1的时候只清除F(f),当d=0的时候同时清除W寄存器

例: CLRF 11,1 (F11=0 W寄存器数据不改变)

CLRF 11,0 (F11=0,W=0)

此指令为单周期指令,其实PIC里的大多数汇编指令都是单周期指令,只有CALL和

GOTO指令需要两个周期

5。寄存器相减 SUBWF f,d

例: MOVLW 10

MOVWF 11

MOVLW 12

SUBWF 11,1

此程序的意思就是将W寄存器中先放入10,然后将W中的数据放在F11数据寄存器中

然后再向W寄存器中放12,再指令SUBWF 11,1 意思是用F11中的数减去W中的数据

然后把结果放在F11中,因为d=1 ,如果把指令换成SUBWF 11,0的话则把结果放在

W寄存器中,影响到的标志位有C ,DC,Z,关于如何影响我想就不用说了吧,前面已经

详细说明这几个位是如何改变的

6.寄存器减1 DECF f,d

将f寄存器中的数据减1然后放入d d=0的时候放入W,D=1的时候放入 f

7.寄存器或 IORWF f,d

通过前面几条指令的解释我想这个就应该很简单了,无非将W与F取或后存入D

8寄存器与 ANDWF f,d

9.寄存器异或 XORWF f,d

10,寄存器相加 ADDWF f,d

11,寄存器传送 MOVF f,d

将F(f)中的数据放入d,当为1时,F(f)将数据从新放入自身,如果d=0则将F中的数据

放入W寄存器。

12,寄存器取反 COMF f,d

13,寄存器加1 INCF f,d

14,减1为0跳转 DECFSZ f,d

例:MOVLW 55H

MOVWF 10

LOOP:DECFSZ 10,1 (如果F10减1后为0的话则跳转到RETLW 0否则继续执行)

GOTO LOOP

RETLW 0

15.带进位C进行右移 RRF f,d

类似于51汇编中的带C左移功能

16,带进位C进行左移 RLF d,f

17,寄存器高低四位进行交换

SWAPF f,d

18。加1为0跳转 INCFSZ f,d

提醒:《PIC单片机指令系统及设计》最后刷新时间 2024-03-14 01:14:25,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《PIC单片机指令系统及设计》该内容的真实性请自行鉴别。