⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pic16cxxx-7.htm

📁 PIC单片机C语言教程!绝对经典
💻 HTM
📖 第 1 页 / 共 2 页
字号:
              <br>
              代码: <img src="image/a337.gif" width="162" height="52"><br>
              <br>
              指令周期: 1<br>
              操作: f+1→d<br>
              影响状态位: Z<br>
              说明: f寄存器内容加1后送W(d=0)或f本身(d=1)。<br>
              ───────────────────────────</p>
            <p>18. 寄存器加1,结果为0则跳<br>
              格式: INCFSZ f,d<br>
              <br>
              代码: <img src="image/a338.gif" width="163" height="55"><br>
              <br>
              指令周期: 1或2(跳转为2)<br>
              操作: f+1→d,结果为0则跳(PC+1→PC)<br>
              影响状态位: 无<br>
              说明: f寄存器内容加1,结果存入W(d=0)或f(d=1),如果结果为0,则PC+1→PC,跳<br>
              过下一条指令。<br>
              <img src="image/a339.gif" width="313" height="69"> <br>
              ───────────────────────────</p>
            <p>19. 常数&quot;或&quot;指令<br>
              格式: IORLW K<br>
              <br>
              代码: <img src="image/a340.gif" width="187" height="57"><br>
              <br>
              指令周期: 1<br>
              操作: W∨K→W<br>
              影响状态位: Z<br>
              说明: W寄存器内容和8位立即数K做逻辑或,结果放入W。<br>
              例: IORLW 55H ; W∨55H→W<br>
              ───────────────────────────<br>
              20. 寄存器&quot;或&quot;指令<br>
              格式: IORWF f,d<br>
              <br>
              代码: <img src="image/a341.gif" width="154" height="57"><br>
              <br>
              指令周期: 1<br>
              操作: W∨f→d<br>
              影响状态位: Z<br>
              说明: W寄存器内容和f寄存器内容做逻辑或运算,结果放入W(d=0)或f(d=1)。<br>
              例: IORWF 10,0 ; W∨F10→W<br>
              IORWF 10,1 ; W∨F10→F10<br>
              ───────────────────────────<br>
              21. 常数传送指令<br>
              格式: MOVLW K<br>
              <br>
              代码: <img src="image/a342.gif" width="189" height="52"><br>
              <br>
              指令周期: 1<br>
              操作: K→W<br>
              影响状态位: 无<br>
              说明: 8位立即数送入W寄存器。<br>
              ───────────────────────────</p>
            <p>22. f寄存器传送指令<br>
              格式: MOVF f,d<br>
              <br>
              代码: <img src="image/a346.gif" width="162" height="58"><br>
              <br>
              指令周期: 1<br>
              操作: f→d<br>
              影响状态位: Z<br>
              说明: 将f寄存器内容传至W(d=0)或f本身(d=1)。这条指令会影响状态位Z,所以经常<br>
              用来判断寄存器是否为0。见下例。<br>
              <img src="image/a347.gif" width="367" height="87"> <br>
              ───────────────────────────</p>
            <p>23. W寄存器传送指令<br>
              格式: MOVWF f<br>
              <br>
              代码:<img src="image/a348.gif" width="160" height="53"><br>
              <br>
              指令周期: 1<br>
              操作: W→f<br>
              影响状态位: 无<br>
              说明: W寄存器内容传送至f,W保持不变。<br>
              例: MOVLW 55H ; 55H→W<br>
              MOVWF F10 ; W(55H)→F10<br>
              ───────────────────────────<br>
              24. 空操作指令<br>
              格式: NOP<br>
              <br>
              代码: <img src="image/a349.gif" width="163" height="58"><br>
              <br>
              指令周期: 1<br>
              操作: 空操作<br>
              影响状态位: 无<br>
              说明: 不做任何操作,只使PC加1常用来起延时作用。<br>
              ───────────────────────────</p>
            <p>25. OPTION寄存器赋值指令<br>
              格式: OPTION<br>
              <br>
              代码:<img src="image/a350.gif" width="147" height="58"><br>
              <br>
              指令周期: 1<br>
              操作: W→OPTION寄存器<br>
              影响状态位: 无<br>
              说明: 将W寄存器内容载入OPTION寄存器。详见OPTION寄存器详介。由于在PIC16CXX<br>
              中OPTION寄存器是直接可读/写的,这点和PIC16C5X不同。所以在PIC16CXX中,<br>
              用户不必使用OPTION指令。而可以直接读/写OPTION寄存器(81H)。保留它只是<br>
              为了和PIC16C5X指令兼容,使得为PIC16C5X写的代码容易移植到PIC16CXX中。<br>
              在PIC16CXX中,可以这样置OPTION寄存器。<br>
              例: BSF STATUS,RP0<br>
              MOVLW OP_DATA<br>
              MOVWF OPTION<br>
              BCF STATUS,RP0<br>
              ───────────────────────────</p>
            <p>26. 中断返回指令<br>
              格式: RETFIE<br>
              <br>
              代码: <img src="image/a351.gif" width="152" height="62"><br>
              <br>
              指令周期: 2<br>
              操作: 栈顶→PC,1→GIE位<br>
              影响状态位: 无<br>
              说明: 中断服务子程序返回指令。栈顶为返回地址,压入PC。同时全体中断允许位GIE(在<br>
              INTCON中)置为&quot;1&quot;。<br>
              ───────────────────────────<br>
              27. 子程序带参数返回指令<br>
              格式: RETLW K<br>
              <br>
              代码: <img src="image/a352.gif" width="197" height="50"><br>
              <br>
              指令周期: 2<br>
              操作: 栈顶→PC,K→W<br>
              影响状态位: 无<br>
              说明: 子程序返回,栈顶内容→PC同时8位常数K→W,返回到子程序调用处。<br>
              ───────────────────────────</p>
            <p>28. 子程序不带参数返回<br>
              格式: RETURN<br>
              <br>
              代码: <img src="image/a353.gif" width="155" height="51"><br>
              <br>
              指令周期: 2<br>
              操作: 栈顶→PC<br>
              影响状态位: 无<br>
              说明: 子程序返回,栈顶内容→PC,返回到子程序调用处。注意返回不带参数,见上条指令。<br>
              ───────────────────────────<br>
              29. 寄存器带C循环左移指令<br>
              格式: RLF f,d<br>
              <br>
              代码: <img src="image/a354.gif" width="158" height="54"><br>
              <br>
              指令周期: 1<br>
              操作: f(n)→d(n+1),f(7)→C,C→d(0)<br>
              影响状态位: C<br>
              说明: 将f寄存器带C循环左移,结果存入W(d=0)或f(d=1),如下图所示。<br>
              <img src="image/a355.gif" width="470" height="78"><br>
              ───────────────────────────</p>
            <p>30. 寄存器带C循环右移指令<br>
              格式: RRF f,d<br>
              <br>
              代码:<img src="image/a356.gif" width="153" height="52"><br>
              <br>
              指令周期: 1<br>
              操作: f(n)→d(n-1),f(0)→C,C→d(7)<br>
              影响状态位: C<br>
              说明: f寄存器带C循环右移,结果存入W(d=0)或f(d=1),如下图所示。<br>
              <br>
              <img src="image/a357.gif" width="409" height="77"><br>
              ───────────────────────────</p>
            <p>31. 进入低功耗睡眠指令<br>
              格式: SLEEP<br>
              <br>
              代码: <img src="image/a358.gif" width="153" height="59"><br>
              <br>
              指令周期: 1<br>
              操作: 0→PD,1→TO 00→WDT,0→WDT预分频器<br>
              影响状态位: TO,PD<br>
              说明: 执行本指令后芯片进入低功耗睡眠模式,芯片OSC1振荡停止。<br>
              ───────────────────────────<br>
              32. 常数减法指令<br>
              格式: SUBLW K<br>
              <br>
              代码:<img src="image/a359.gif" width="183" height="53"> <br>
              <br>
              指令周期: 1<br>
              操作: K→W<br>
              影响状态位: C,DC,Z<br>
              说明: 8位常数K减W寄存器内容,结果放入W。PIC的减法运算通过做补码加法来实现。<br>
              <img src="image/a360.gif" width="363" height="130"> <br>
              ───────────────────────────</p>
            <p>33. 寄存器减法指令<br>
              格式: SUBWF f,d<br>
              <br>
              代码:<img src="image/a361.gif" width="157" height="58"> <br>
              <br>
              指令周期: 1<br>
              操作: f-W→d<br>
              影响状态位: C,DC,Z<br>
              说明: f寄存器减W寄存器结果放入W(d=0)或f(d=1)。<br>
              <img src="image/a362.gif" width="333" height="190"> <br>
              ───────────────────────────<br>
              34. 寄存器半字节交换指令<br>
              格式: SWAPF f,d<br>
              <br>
              代码:<img src="image/a363.gif" width="167" height="58"><br>
              <br>
              指令周期: 1<br>
              操作: f(0,3)→d(4,7),f(4,7)→d(0,3)<br>
              影响状态位: 无<br>
              说明: f寄存器高4位和低4位交换位置后结果存入W(d=0)或f(d=1),见下图:<br>
              <img src="image/a364.gif" width="319" height="127"> </p>
            <p><img src="image/a365.gif" width="227" height="54" hspace="80"></p>
            <p>例: MOVLW 56H<br>
              MOVWF 8 ; 56H→F8<br>
              SWAPF 8,1 ; F8=65H<br>
              <br>
              ───────────────────────────<br>
              35. 设置I/O方向控制寄存器指令<br>
              格式: TRIS f<br>
              <br>
              代码: <img src="image/a366.gif" width="152" height="55"><br>
              <br>
              指令周期: 1<br>
              操作: W→I/O控制寄存器TRISf(f=5,6)<br>
              影响状态位: 无<br>
              说明:由于在PIC16CXX中,TRIS(85H,86H)寄存器是直接可读/写的,所以用户不必使<br>
              用这条指令来设置I/O控制寄存器,保留它只是为了和PIC16C5X向上兼容,使为<br>
              PIC16C5X写的代码易移植到PIC16CXX中。参考OPTION指令。在PIC16CXX中可<br>
              以这样设TRIS寄存器。<br>
              例: BSF STATUS,RP0<br>
              MOVLW TRISA_DA<br>
              MOVWF TRISA<br>
              BCF STATUS,RP0<br>
              ───────────────────────────</p>
            <p>36. 立即数&quot;异或&quot;指令<br>
              格式: XORLW K<br>
              <br>
              代码: <img src="image/a368.gif" width="179" height="53"><br>
              <br>
              指令周期: 1<br>
              操作: W○K→W<br>
              影响状态位: Z<br>
              说明: W寄存器和8位常数K做&quot;异或&quot;运算后存入W。<br>
              ───────────────────────────<br>
              37. 寄存器&quot;异或&quot;指令<br>
              格式: XORWF f,d<br>
              <br>
              代码: <img src="image/a369.gif" width="154" height="55"><br>
              <br>
              指令周期: 1<br>
              操作: W○f→d<br>
              影响状态位: Z<br>
              说明: W寄存器内容和f寄存器内容做&quot;异或&quot;运算,结果存入W(d=0)或f(d=1)。<br>
              例: MOVLW 55H<br>
              MOVWF 10 ; F10=55H<br>
              MOVLW AAH ; W=AAH<br>
              XORWF f,1 ; F10=FFH</p>
            <div align="right"> 
              <p><a href="PIC16Cxxx-7-1.htm">下一页</a> </p>
            </div>
            <p><a href="PIC16Cxxx-1.htm">第一章</a> <a href="PIC16Cxxx-2.htm">第二章</a> 
              <a href="PIC16Cxxx-3.htm">第三章</a> <a href="PIC16Cxxx-4.htm">第四章</a> 
              <a href="PIC16Cxxx-5.htm">第五章</a> <a href="PIC16Cxxx-6.htm">第六章</a> 
              <a href="PIC16Cxxx-7.htm">第七章</a> <a href="PIC16Cxxx-8.htm">第八章</a> 
              <a href="PIC16Cxxx-9.htm">第九章</a> <a href="PIC16Cxxx-10.htm">第十章</a></p></td>
        </tr>
      </table>
      <table width="700" border="0" cellspacing="0" cellpadding="0">
        <tr> 
          <td width="20">&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
      </table>
      <table width="700" border="0" cellspacing="0" cellpadding="0">
        <tr bgcolor="#990000"> 
          <td height="1" width="634"></td>
        </tr>
        <tr align="right"> 
          <td height="6"></td>
        </tr>
        <tr align="right"> 
          <td><font color="#990000" size="2">[ <a href="index.htm">返回</a> ]</font> 
          </td>
        </tr>
        <tr>
          <td>&nbsp;</td>
        </tr>
        <tr> 
          <td>&nbsp;</td>
        </tr>
      </table></td>
  </tr>
</table> 
 
</body> 
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -