原创 优秀的代码PIC 代码

2010-3-23 22:35 2137 6 6 分类: MCU/ 嵌入式

最近整体PIC 设计开发,摘录几个精炼的程序代码:


1)除以3运算


将一个正整数除以3的算法。简称“3等分”。


X/3=X/2-X/4+X/8-X/16+X/32-X/64.......


DIV3:                                                       ;   'w' 中的内容被3除


         MOVWF


         CLRF Quotient


DIV3_LOOP                                             ; 直到被除数等于0,循环结束


         bcf    STATUS,C


        rrf      Dividend,  F                               ;被除数除以2


       movf   dividend, f                                  ; = 0 ?


       btfsc    STATUS,Z


      goto     Div3_Done


      addwf Quotient                                           ; 值加到商上


     rrf       Divident,F


      movf   Divident, W


      btfsc    STATUS,Z


     goto    Div3_Done


      subwf   Quotient,F


      goto  DIV3_LOOP     


Div3_Done


        movf   Quotient, W


         return


2)检测寄存器内的变化


检测I/O 接口、定时器或其它寄存器的变化。


              MOVF   reg,w


             andlw       mask                           ; 屏蔽未使用的位


              xorwf       old,w                          ;  与前一个值比较


               btfsc        STATUS,Z                  ; 如果结果为0,没有变化


              goto          no_change


              xorwf         old


3)  交换 “W" 和其它寄存器的内容


             xorwf           reg,  F


            xorwf            reg,  W


             xorwf           reg,  F                     ; end swap w and  reg


 


4)   交换  两个寄存器的内容


            movf                X,w


            subwf               Y,w                     ; w = Y-w


           addwf                X,f                       ; X= X+(Y-X)


            subwf              Y,f                         ; Y="Y-"(Y-X)


 


 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
6
关闭 站长推荐上一条 /3 下一条