PIC16C5X指令集和程序设计技巧.doc

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PIC16C5X指令集及程序设计技巧 第一节 PIC16C5X指令概述 §2.1 PIC165X 指令概述 ????PIC16C5X每条指令长12位,指令由操作码和操作数组成。PIC16C5X共有33条指令,按操作分成三大类: ????????1. 面向字节操作类 ????????2. 面向位操作类 ????????3. 常数操作和控制操作类 ????全部指令如表2.1所示。 第二节 PIC16C5X 指令寻址方式 §2.2 PIC16C5X 指令寻址方式 ????PIC16C5X单片机寻址方式根据操作数的来源,可分为寄存器间接寻址、立即数寻址、直接寻址和位寻址四种。 ????一、寄存器间接寻址 ????这种寻址方式通过寄存器F0、F4来实现。实际的寄存器地址放在F4中,通过F0来进行间接寻址。 例: MOVLW 05H ; W=5 ????MOVWF 4 ; W(=5)→F4 ????MOVLW 55H ; W=55H ????MOVWF 0 ; W(=55H)→F5 ????上面这段程序把55H送入F5寄存器。间址寻址方式主要用于编写查表、写表程序,非常方便。请参考§2.7程序设计技巧。 ????二、立即数寻址 ????这种方式就是操作数为立即数,可直接从指令中获取。  例: MOVLW 16H ; 16H →W ????三、直接寻址 ????这种方式是对任何一寄存器直接寻址访问。对16C52/54/55/56来说,寄存器地址(5位)直接包括在指令中。对PIC16C57,寄存器地址中高2位由(选Bank)由FSR6:5二位决定。 例: MOVWF 8 ; W→F8寄存器 ????MOVF 8,W ; F8→W ????四、位寻址 ????这种寻址方式是对寄存器中的任一位(bit)进行操作。 例: BSF 11,0 ; 把F11的第0位置为1。 第三节 面向字节操作类指令 §2.3 面向字节操作类指令 ????这类指令共有18条,包括有数据传送、算术和逻辑运算、数据移位和交换等操作。它们的操作都是在W数据寄存器f之间进行,其指令码结构为: ????高6位是指令操作码。第6位d是方向位。d=1,则操作结果存入f(数据寄存器),d=0,则操作结果存入W。低5位是数据寄存器地址,可选中32个寄存器。对于PIC16C57,则还要参考寄存器体选择器F4的bit5或bit6来选择存入哪一个寄存器体(bank0-bank3)。 表2.1 PIC16C5X 指令集 注:(1)除GOTO指令外,任何有关写PC(F2)的指令(例如 CALL、MOVWF 2)都将会把PC 寄存器的第9位清零。 ????(2)若对I/O口寄存器进行操作,如SUBWF 6,1,则使用的F6的值是当前B口上的状态值,而非B口输出锁存器里的值。 ????(3)指令TRIS f(f=5、6或7)将W寄存器中的内容写入f的I/O口控制寄存器中:1 关断对应端口的输出缓冲器,使其为高阻状态。 ????(4)当预分频器分配给RTCC后,任何对RTCC寄存器(F1)写操作的指令都将使预分频器(Prescaler)清零。 第四节 面向位操作指令 §2.4 面向位操作指令 ????这类指令共有4条,指令码基本结构为: 高4位是操作码。bit5-bit7是位地址(可寻址8个位),bito-bit4是寄存器地址。 第五节 常数和控制操作类指令 §2.5 常数和控制操作类指令 ????这类指令共有11条,其指令码结构为: 高4位是操作码,低8位是常数K。 高4位是操作码。bit5-bit7是位地址(可寻址8个位),bito-bit4是寄存器地址。 第六节 特殊指令助记符 §2.6 特殊指令助记符 ????PIC16C5X 的一些指令还可以用容易记忆的助记符来表示。PIC15C5X的汇编程序PICASM可以认识这些助记符,在汇编时会将其转译成相应的PIC16C5X基本指令。 ????例如指令BCF 3,0(清零C)也可以写成CLRC,BSF 3,0(置C=1)也可写成SETC等。 ????表2.2列出了这些助记符及其相对应的PIC165X指令。 在后面的例子里,你将看到程序中使用了很多的特殊指令助记符。特殊指令助记符容易记忆。使用它程序可读性也较好。但这取决于每个人的习惯,你可以只使用一部分你认为好记的助记符,甚至只用基本的指令助记符而不用特殊指令助记符来编写程序。 第七节 PIC16C5X程序设计基础 §2.7 PIC16C5X程序设计基础 ????上面我们已经详细介绍了PIC16C5X的每条指令。现在我们来总结一下它们的几个特点: ????1、各寄存器的每一个位都可单独地被置位、清零或测试,无须通过间接比较,可节省执行时间和程序地址空间。 ????2、操

文档评论(0)

xuefei111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档