您当前的位置:五五电子网电子知识单片机-工控设备PIC单片机PIC16F84单片机做的频率计 正文
PIC16F84单片机做的频率计

PIC16F84单片机做的频率计

点击数:7161 次   录入时间:03-04 11:43:15   整理:http://www.55dianzi.com   PIC单片机
;
;           W register will be broken.
;
; Notes: Referred to AKIZUKI’s PIC sample software.
;        This routine uses the same technic of manual-calculation.
;
; Example:     00010010 (12h)
;        x00110100 (34h)
;        ----------
;         00000000
;        00000000
;           00010010
;          00000000
;         00010010
;        00010010
;       00000000
;      00000000
;    ------------------
;     0000001110101000 (03A8h)
;
; Allocations (MSB <-> LSB):
;    EX[3] EX[2] EX[1] EX[0] X[3] X[2] X[1] X[0]
;    EY[3] EY[2] EY[1] EY[0] Y[3] Y[2] Y[1] Y[0]
;-------------------------------------------------------------------------

mul_xy

;    *** Initialize ***

         MOV f    X+0, w            ; EY <- X.
         MOV wf    EY+0            ;
         MOV f    X+1, w            ;
         MOV wf    EY+1            ;
         MOV f    X+2, w            ;
         MOV wf    EY+2            ;
         MOV f    X+3, w            ;
         MOV wf    EY+3            ;

         MOV f    Y+0, w            ; X <- Y.
         MOV wf    X+0            ;
         MOV f    Y+1, w            ;
         MOV wf    X+1            ;
         MOV f    Y+2, w            ;
         MOV wf    X+2            ;
         MOV f    Y+3, w            ;
         MOV wf    X+3            ;

        clrf    EX+0            ; Clear EX.
        clrf    EX+1            ;
        clrf    EX+2            ;
        clrf    EX+3            ;

         MOV lw    32            ; Set data length.
         MOV wf    MDLOOPCT        ;

;    *** Multiply loop (32 times) ***

mul_loop
        btfss    X+0, 0            ; Skip below if LSB of XL = ’0’.
        goto    mul_next        ; (EY * ’0’ = 0)

        bcf    X+0, 0            ; Clear always LSB of X.

         MOV f    EY+0, w            ; EX <- EX + EY.
        addwf    EX+0, f            ;
         MOV lw    1            ; Set LSB of X to ’1’
        btfsc    status, c        ; if overflow. (Set carry)
        addwf    EX+1, f            ;
        btfsc    status, c        ;
        addwf    EX+2, f            ;
        btfsc    status, c        ;
        addwf    EX+3, f            ;
        btfsc    status, c        ;
        bsf    X+0, 0            ;

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25]  下一页


本文关键字:单片机  PIC单片机单片机-工控设备 - PIC单片机