INCFSZ f数据寄存器内容递增1,并作判0标志
语法形式:INCFSZ f,d
操作数:f为数据寄存器的低7位地址(0x00~0x7F)
d为目的寄存器的低7位地址(0x00~0x7F)
当d=f时,结果放在f数据寄存器,W寄存器的内容不变
当d=W时,结果放在W寄存器中,f数据寄存器的内容不变
执行时间:一个指令周期或两个指令周期
执行过程:【f】+1→d
状态标志影响:Z
说明:该指令首先对数据寄存器的内容做加1操作,结果按照d的指示保存到相应的地方,然后对Z进行判0操作(分支跳转控制):如果加1之后的结果非0,也就是Z=0,程序将会按照顺序执行下一条指令,使用1个指令周期;如果加1之后结果为0,也就是Z=1,那么程序将会跳过INCFSZ指令之后的第一条指令,开始执行第二条指令,使用2个指令周期。该指令常用于计数次数和循环次数的控制。
指令范例:
MOVLW 0xC0 ;循环计数数据赋初值
MOVWF Count ;此时循环计数器初值Count=0xC0
Loop:INCFSZ Count,f ;Count内容加1,放回Count中,并进行Z标志判断
GOTO Loop ;如果加1之后的结果不为0,则循环执行Loop的内 容,总共循环次数为0x00-0xC0=0x40次
NOP ;结果为0,则跳到这条指令
RRF 数据寄存器内容带进位的循环右移
语法形式:RRF f,d
操作数:f为数据寄存器的低7位地址(0x00~0x7F)
d为目的寄存器的低7位地址(0x00~0x7F)
当d=f时,结果放在f数据寄存器,W寄存器的内容不变
当d=W时,结果放在W寄存器中,f数据寄存器的内容不变
执行时间:一个指令周期
执行过程:
状态标志影响:C
说明:该指令把C进位寄存器(借位寄存器)和数据寄存器的8位数据结合在一起做9位的循环右移1位的操作。操作的结果是把C移到数据寄存器的最高位,原数据寄存器的最低位放到C中。
指令范例:
例1:实现数据寄存器自身8位的循环右移
RRF Data,W ;数据寄存器Data的内容右移1位,结果放入W寄存器,Data本身 的内容不变,但是最低位已经移到C中
RRF Data,f ;再次进行右移,结果写入Data自身。这时上一条指令移入C中的最低位现在已经变成Data的最高位,实现了最低位变最高位,最高位变成第二高位的目的
例2:实现数据寄存器算数右移(除2操作)
BCF STATUS,C ;确保C=0
RRF Data,f ;数据寄存器右移1位,最高位现在为0,结果放入自身
RLF 数据寄存器内容进行带进位的循环左移操作
语法形式:RLF f,d
操作数:f为数据寄存器的低7位地址(0x00~0x7F)
d为目的寄存器的低7位地址(0x00~0x7F)
当d=f时,结果放在f数据寄存器,W寄存器的内容不变
当d=W时,结果放在W寄存器中,f数据寄存器的内容不变
执行时间:一个指令周期
执行过程:
状态标志影响:C
说明:该指令将C和8位数据寄存器的数据结合起来进行9位的循环左移操作,结果放入d指定的位置。操作结果是把C移到数据寄存器的最低位,将原数据寄存器的最高位移入C中。
指令范例:
例1:实现数据寄存器的8位内容循环左移
RLF Data,W ;Data的内容左移1位放入W寄存器中,Data的内容不变,Data的 最高位放入C中
RLF Data,f ;Data的内容经操作后放回自身,C的内容(经上步操作后变成了原Data的最高位)放入Data的最低位。
例2:实现数据寄存器的算数左移(结果乘以2)
BCF STATUS,C ;确保C=0
RLF Data,f ;数据寄存器Data左移1位,最低位补充为0,实现乘以2
SWAPF 数据寄存器高低半字节内容进行交换
语法形式:SWAPF f,d
操作数:f为数据寄存器的低7位地址(0x00~0x7F)
d为目的寄存器的低7位地址(0x00~0x7F)
当d=f时,结果放在f数据寄存器,W寄存器的内容不变
当d=W时,结果放在W寄存器中,f数据寄存器的内容不变
执行时间:一个指令周期
执行过程:【f<3:0>】←→【f<7:4>】
状态标志影响:无
说明:该指令实现把数据寄存器的高低半字节的内容进行交换,结果放入d指定的地址。该指令在中断服务程序退出前恢复W寄存器的内容的过程中起着不可或缺的作用。不影响状态寄存器。
指令范例:
SWAPF w_temp,f ;w_temp的高低半字节内容交换,结果放回w_temp本身
SWAPF w_temp,W ;w_temp的高低半字节内容再次交换,但是结果放入W寄存器中,在不影响状态寄存器的前提下,实现了把w_temp的原内容复制到W寄存器中。
关键字:PIC 中档单片机 汇编指令
引用地址:
PIC中档单片机汇编指令详解(4)
推荐阅读最新更新时间:2024-03-16 14:54
PIC16F877A PICC AD转换程序
//软件思路:选择RAO做为模拟输入通道; // 连续转换4次再求平均值做为转换结果 // 最后结构只取低8位 // 结果送数码管的低3位显示 #include pic.h //包含内部资源预定义 __CONFIG(0x1832); //芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振荡 const char TABLE ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0X82,0XF8,0X80,0X90}; //定义常数0-9的数据表格 void DELAY(); //delay函数申明
[单片机]
Microchip推出PIC32MX 32位单片机产品组合
Microchip Technology Inc.(美国微芯科技公司),推出采用64/16 KB、256/64 KB和512/128 KB闪存/RAM配置的全新系列PIC32MX3/4单片机(MCU)。为支持这些新型MCU,Microchip还提供了针对连接、图形、数字音频和通用嵌入式控制设计的全面软件和工具。
新推出的MCU是对最受欢迎的PIC32MX3/4系列高性能32位单片机的扩展。它们以较低的成本提供了更高的RAM存储选项和集成度更高的外设。PIC32MX3/4具有28 × 10位ADC和5个UART、105 DMIPS性能、串行外设、图形显示、电容式触摸、连接和数字音频支持。
Microchip MCU32部门副
[单片机]
【PIC32MZ】OLED12864 I2C显式示例
本篇主要讲述如何使用PIC32MZ来点亮OLED12864。 OLED12864可以控制一个一个像素点,所以需要自建字库,有专门生成的软件,字库为字母字符,放到最后面。注意不同12864排列或者共极不同,则需要自行取模。 本片需要调用I2C通信中的基础代码,需要delay和i2c-Hardware,以下不再贴这部分代码。 第一部分是字模文件 codetab.h #ifndef _CODETAB_H #define _CODETAB_H /***************************16*16 Chinese, common gnd - column style - reverse output*****
[单片机]
PIC单片机的 程序存储器,数据存储器,EEPROM区别
PIC的程序存储器是FLASH存储器,主要存储程序代码,掉电不丢失。 数据存储器是SRAM,主要存储一些程序的变量,掉电丢失。 EEPROM一般存储程序中的重要数据,掉电也不丢失。 区别: FLASH: 只能块擦除(叫块擦除更准确吧,原文是BLOCK),举例说明:比如你用的FLASH的BLOCK是512个字节(不同的FLASH大小不同),那么只有擦除过(所有位写 1 )的BLOCK才能重新写入,意思就是只能从 1 写到 0 ,如果要从 0 改到 1 必须整块擦除,而且擦除时的速度相对写入和读出要慢很多。FLASH主要用于程序存储。 EEPROM; 可以单字节操作,没有块擦除的要求。相对FLASH更为灵
[单片机]
PIC单片机USB MSC的应用:用 MMC/SD 卡作为储存设备进行读写
单片机的USB接口,通常用法, 1)HID 是Human Interface Device的缩写,由其名称可以了解HID设备是直接与人交互的设备,例如键盘、鼠标与游戏杆等。不过HID设备并不一定要有人机接口,只要符合HID类别规范的设备都是HID设备。 2)CDC 虚拟串口,可与PC机直接联机通讯,如同RS232。 3)USB MSC (Mass Storage class) MSC是一种计算机和移动设备之间的传输协议,它允许一个通用串行总线(USB)设备来访问主机的计算设备,使两者之间进行文件传输。设备包括:移动硬盘,移动光驱,U盘,SD、TF等储存卡读卡器,数码相机,手机等等。 .......... 注意: 每
[单片机]
PIC16F877A单片机 (中断与定时器Timer2)
1 基本原理 2 实现代码 主要根据定时器2的逻辑框图和中断的逻辑框图来编写代码,这样代码的可读性强,也便于理解。但有些寄存器在框图中可能没有说明,所以也需要仔细阅读定时器0的官方文档,即基本原理部分。 /*----------------函数功能: 中断 定时器2 --------------------------*/ #include pic.h // 调用PIC16f87XA单片机的头文件 //#include delay.h //调用延时子函数 __CONFIG(0xFF32);//芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关 //__CONFIG(HS&WDTDIS&LVPD
[单片机]
基于PC及和PIC16F877芯片实现情感表情机器人的研究与设计
1、引言 十多年前“诡异谷”的理论制约了类人机器人的发展,但随着科技的发展,人们再次把关注的眼光投向了“更像人类的机器人”身上,机器人博览会上的saya已经到了以假乱真的地步,制作外形和行为方式更接近于人类的机器人已经成为了新的焦点和热点。在国外的一些科学家已经取得了一定的成绩,但在国内,对于表情机器人的研究还处于初级阶段,为了能在08年的奥运会上看到我们自己制作的机器人解说员,北京科技大学的王志良老师的课题组正致力于此项研究并取得了一定的成果。 2、机器人头部的设计要求 本设计的目的是设计一个仿人的机器人头部,以实现各种表情,来表达机器人内在的情感状态,最终使机器人能通过丰富生动的表情与人进行自然流畅的情感交流。既
[机器人]
基于PIC单片机的电动自行车控制系统设计
摘 要:介绍以单片机PICl6F72为核心的电动自行车用无刷直流电动机控制系统的设计。该系统采用电流与速度双闭环控制的结构,其中电流调节器用传统的PI调节器,速度调节器为改进的PI调节器。实验验证了此设计方案的可行性和优越性,即控制电路简洁,器件少,成本低,保护措施可靠,提高了系统的控制精度。该设计对无刷直流电机在其他领域的应用有一定的帮助和借鉴,具有广泛的现实意义。该系统速度环采用改进型的PI调节器控制,且通过软件运用算法测速,实现转速反馈,既简化电路又节省成本。 关键词:电动自行车;控制系统;无刷直流电动机;PIC16F72;PID控制 0 引 言 随着社会的不断进步,人们生活水平的提高,环境保护和能源节约问题已经越来越
[工业控制]