PIC单片机或运算指令XORWF的设计和实现

出处:互联网    发布于:2011-06-24 12:36:57

 

   大家都知道,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单片机的介绍
 
  PIC单片机(Peripheral Interface Controller)是一种用来开发的去控制外围设备的集成电路(IC)。一种具有分散作用(多任务)功能的CPU.与人类相比,大脑就是CPU,PIC 共享的部分相当于人的神经系统。PIC单片机有计算功能和记忆内存像CPU并由软件控制允行。然而,处理能力-存储器容量却很有限,这取决于PIC的类型。但是它们的操作频率大约都在20MHz左右,存储器容量用做写程序的大约1K-4K字节。时钟频率与扫描程序的时间和执行程序指令的时间有关系。但不能仅以时钟频率来判断程序处理能力,它还随处理装置的体系结构改变(1*)。如果是同样的体系结构,时钟频率较高的处理能力会较强。
 

  

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

相关技术资料
广告
上传BOM文件: BOM文件
*公司名:
*联系人:
*手机号码:
QQ:
应用领域:

有效期:
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:

0571-85317607

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!