PIC系列单片机或运算指令XORWF的应用

发布者:bobojrt最新更新时间:2011-05-27 关键字:PIC系列单片机  运算指令  XORWF 手机看文章 扫描二维码
随时随地手机看文章

    大家都知道,PIC单片机的大多数寄存器,包括RAM数据存储器的每个存储单元都能实现移位、清位、位测试等系列复杂操作功能。然而,协调它们运行的(应用最广泛的基本级、中级)精简指令集中,却没有对寄存器的某“位”进行“取反”运作的现成指令,而在实际应用中对某些“位”进行取反运作是很需要的。如下图所示。单片机PIC16C622的端口RB作为输出端口的8个引脚,分别控制着8个不同的电器设备。按动按钮AN一下,继电器J吸合,再按一下J释放,即按动AN一下,端口RB3引脚的输出状态改变一下,而RB口的其它7个引脚输出保持原有状态不变。在这种情况下最好的方法是按动一下AN,对PORTB(3)“取反一次”——这对于MCS-51系列单片机来讲是极容易的。只要写一条(如CPL P33)位取反指令就可以了。而PIC16C622只有对字节取反指令,却没有对位取反的直接指令。笔者运用了“W和f相异或”的指令,也轻易地解决了位取反问题。实例:
  MOVLW   0x08;将常数0x08送至W
  XORWF 6,1  ;W和F6相异或结
           果存F6
    这样就实现了对F6(3)即RB3脚的“取反”运作。假如当时寄存器F6的状态为“B01101001”则经过上述指令运作后,有
  异或前  W    00001000
      F6    01101001
  异或后 F6    01100001
    结果寄存器F6的内容为“B01100001”。可见除了F6(3)由“1”取反为“0”外,其它位保持不变,实现了预期的目的。这种方法,可以对寄存器其中的1位、2位……几位同时“取反”——只要对工作寄存器W送常数时,常数的相应“位”上为逻辑“1”就可以了。

    还有像两个数据比较一类程序的编写,通常人们是用“减法”指令来完成的。运用“异或运算”指令同样可以解决问题,而且更为简洁(它只影响状态寄存器中的零标志位“Z”,对其它概不影响)。如建立时钟程序,当秒计数寄存器计数至60秒时,应向分计数寄存器“进1”,若设秒计数寄存器为F20,分计数寄存器是F21,则定时器中断子程序为:
INTSUB1:
     …
  INCF     20,1   ;秒计数寄存器F20             ;“增1”
  MOVLW 0x3C  ;把常数D‘60’置入W
  XORWF  20,0        ;寄存器F20计数是
          ;否等于60秒
  BTFSS   STATUS,2  ;若F20的计数等于           ;60(零标志位Z=1)
  GOTO    INTSUB2    ;则跳
  INCF  21,1       ;分计数寄存器F21
          ;“增1”
    …
INTSUB2   RETFIE ;中断返回

    从上述例子中可以看到,异或运算指令XORWF跟PIC中的其它指令一样,只要灵活运用其功能是非常强大的。

 

关键字:PIC系列单片机  运算指令  XORWF 引用地址:PIC系列单片机或运算指令XORWF的应用

上一篇:dsPIC及其在交流变频调速中的应用研究
下一篇:针对PIC微控制器的设计窍门

推荐阅读最新更新时间:2024-03-16 12:36

基于PIC系列单片机开发的高精度数据采集器
1ADS1210引脚及功能   ADS1210是一种高精度、宽动态范围,采用单5V电源供电,具有24位分辨率的新型A/D转换器。封装形式有18脚双列直插式和18线贴片式,引脚功能描述如表1。   ●指令寄存器(INSR)   指令寄存器是一个8位寄存器,它指明了系统是进行读操作还是写操作,并确定读/写操作的字节长度以及读/写操作寄存器的起始地址。   ●命令寄存器(CMR)   命令寄存器是ADS1210的关键,它控制着ADS1210的所有特性功能。一旦串口时钟的下降沿将数据字节的最后一位写入命令寄存器,新的模式就开始生效。命令寄存器控制ADS1210所选用的选项和操作模式,包括可编程增益放大器的增益(G)设置、增强模式(T
[单片机]
基于<font color='red'>PIC</font><font color='red'>系列单片机</font>开发的高精度数据采集器
Microchip推出PIC18-Q24 系列单片机 为增强代码安全性设置新标准
该系列单片机新增电压电平转换功能,有助于提高灵活性并降低系统成本 从手机、汽车到智能恒温器和家用电器,越来越多日常设备与云端相连。随着连接性增多,在芯片层面部署先进的安全措施以保护固件和数据,就变得至关重要。为了应对当前和不断扩大的安全威胁,Microchip Technology Inc.(微芯科技公司)今日发布PIC18-Q24 系列单片机(MCU)。 为应对在嵌入式系统中对器件进行恶意重新编程的威胁,PIC18-Q24单片机引入了编程和调试接口禁用(PDID)功能。启用后,这一增强型代码保护功能将锁定对编程/调试接口的访问,并阻止未经授权的读取、修改或擦除固件的尝试。 Microchip 8位单片机业务部副
[单片机]
Microchip推出<font color='red'>PIC</font>18-Q24 <font color='red'>系列单片机</font>  为增强代码安全性设置新标准
PIC16系列单片机与PC机串行通信的软硬件实现
1 前言 美国Microchip公司的PIC16系列单片机是一种新型的CMOS工艺的8位单片机。其中,PIC16FXX单片机的程序存储器为电可擦除闪速存储器(flash),可多次修改程序,甚至可以在线编程。PIC16F83和PIC16F84片内数据存储器除RAM外,还有64字节的EEPROM,可以当作一般的或非易失性的数据存储器使用,简单方便。它还具有片内上电复位、延时电路、看门狗电路等。另外,PIC16系列单片机功耗极低,因而是一种非常适合在各种便携式设备中使用的高性价比的单片机,并已经得到了越来越广泛的应用。 但是在许多需要大量计算的运用中,还必须借助微机的强大数据处理能力。这样必须通过通信电路实现PIC单片机与微机间的可靠
[单片机]
<font color='red'>PIC</font>16<font color='red'>系列单片机</font>与PC机串行通信的软硬件实现
多核与多执行绪的嵌入式系统解决方案
在嵌入式装置中建置多核心(包含同质或异质)以及多执行绪技术,的确能带来诸多效益,尤其是改进系统效能方面最为明显。 尽管RISC嵌入式技术所面临的挑战越来越多,但是在维持以往嵌入式软件资源兼容性的前提之下,能够改善其未来适用性,并且有效提升新系统的效能表现,使其不失为良好的解决方案。 应用决定多核或多绪 多核心与多执行绪在效能表现上有其帮助,但是效能与这些技术的内建其实并没有绝对关系,会造成这样的原因主要是应用环境的需求。以手机为例,整合于手机内的SoC芯片虽然是属于多核心架构的一环,但是手机采用的SoC芯片多为应用处理器,其整合的核心并非完全属于同性质架构,同质多核心在嵌入式系统实际应用上的案例其实非常少。 而多执行绪处理器
[应用]
MCS-51单片机汇编语言:逻辑运算指令有哪些?
简单 逻辑操作指令 CLR A ; A← “ 0 ” CPL A ; A← A SWAP A ; A0~3 A4~7 左循环指令 (Rotate Accumulator Left) RL A 带进位左循环指令( Rotate Accumulator Left through Carry flag ) RLC A 右循环指令( Rotate Accumulator Right ) RR A 带进位右循环指令( Rotate A Right with C ) RR
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved