- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)