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

PIC16F84单片机做的频率计

点击数:7161 次   录入时间:03-04 11:43:15   整理:http://www.55dianzi.com   PIC单片机

         MOV lw    10            ; Set loop counter &
         MOV wf    I            ; Y.
         MOV wf    Y+0            ;
        clrf    Y+1            ;
        clrf    Y+2            ;
        clrf    Y+3            ;

;    *** Conversion loop (32 bits = 10 digits max) ***

xts_loop
        call    div_xy            ; X <- X / 10.
         MOV f    EY+0, w            ; EY(Lowest digit) <- X mod 10.

        addlw    ’0’            ; Change to ASCII &
         MOV wf    indf            ; store.

        decf    fsr            ; Set location to next.
        decfsz    I            ;
        goto    xts_loop        ;

;    *** Return from subroutine ***

        return

;-------------------------------------------------------------------------
; Clear screen. (display)
;   Input : None.
;   Output: None.
;           W register & variable LCD_DATA will be broken.
;-------------------------------------------------------------------------

cls

;    *** Clear display ***

         MOV lw    L_DSPCLR        ; Clear display.
         MOV wf    LCD_DATA        ;
        call    set_LCDcmd        ;

         MOV lw    5            ; Wait.
        call    wait_ms            ;

;    *** Return from subroutine ***

        return

;-------------------------------------------------------------------------
; Display fixed string. (ASCIZ string on ROM)
;   Input : LCD_FXMPTR (Pointer of fixed ASCIZ string table)
;   Output: None.
;           W, Index register, variable & LCD_FXMPTR will be broken.
;-------------------------------------------------------------------------

dsp_fixstr

;    *** Initialize ***

        bsf    LCD_RSEL, L_SELDR    ; Select data register.

;    *** Display loop ***

dfs_loop
        call    get_fixchr        ; Exit if character = NULL.
        addlw    0            ;
        btfsc    status, z        ;
        goto    end_dfs            ;

        call    set_LCD            ; Display character.

        incf    LCD_FXMPTR        ; Continue.
        goto    dfs_loop        ;

;    *** Return from subroutine ***

end_dfs
        clrf    LCD_RSEL        ; Set to default.
        return

;-------------------------------------------------------------------------
; Get character from fixed message table.
;   Input : LCD_FXMPTR (Pointer of fixed ASCIZ string table)
;   Output: None.
;           W register will be broken.
;-------------------------------------------------------------------------

get_fixchr
         MOV f    LCD_FXMPTR, w        ; Caution: Upper byte of PCL
         MOV wf    pcl            ; is always 0.

;-------------------------------------------------------------------------
; Set LCD command for standard operation.
;   Input : W register (Command)
;   Output: None.
;           W register & variable LCD_DATA will be broken.
;-------------------------------------------------------------------------

上一页  [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单片机