您当前的位置:五五电子网电子知识单片机-工控设备PIC单片机pic16c711测温程序 正文
pic16c711测温程序

pic16c711测温程序

点击数:7747 次   录入时间:03-04 11:46:43   整理:http://www.55dianzi.com   PIC单片机
    swapf    lsn,w        ; swap & save
    MOVwf    msn        ; into w
    MOVlw    0fh
    andwf    lsn,f        ; strip off upper rubbish
    andwf    msn,f        ; strip off upper rubbish
    MOVf     msn,0        ; reload
    call    lookup        ; get value
    MOVwf    lo_val        ; save it
    incf    msn,w        ; increment pointer
    call    lookup        ; get next value
    subwf    lo_val,w    ; get difference & save
    MOVwf    hi_val    

mult    addwf    hi_val,f    ; add to current
    decfsz    lsn,f        ; count down on multiply loop
    goto    mult
    swapf    hi_val,w    ; divide by 16
    andlw    0fh        ; extract upper nibble
    subwf    lo_val,w    ; add lo value to lo value to get result
    return

adconv  bsf    ADCON0,GO         ; start conversion
        MOVlw   .5        ; wait delay 10uS
        MOVwf   temp
    decfsz  temp,f        ; loop for a while
        goto    $-1
    btfsc   ADCON0,GO         ; test for end of conversion
        goto    $-1
        retlw    0

bin_bcd MOVwf   digit1          ; first digit
        clrf    digit2          ; second digit
     
tenlop  MOVlw   .10
        subwf   digit1,w    ; find out how many 10’s
        btfsc   STATUS,C
        incf    digit2,f
        btfsc   STATUS,C
        MOVwf   digit1        ; remainder 1’s left
        btfsc   STATUS,C
        goto    tenlop
    return 

; =======================================
init    clrf    PORTB        
    clrf    PORTA
        clrf    ADCON0        
    clrf    flags        
    page1
    MOVlw    b’11110011’
    MOVwf    TRISA
    MOVlw    b’10000000’    ; 
        MOVwf    TRISB             ; set up port b
    MOVlw    b’00000100’    ; /32
    MOVwf    OPTION_REG
    MOVlw    b’00000010’
    MOVwf    ADCON1
    page0
    MOVlw    b’00001000’    ; set up change of state on portb
    MOVwf    INTCON        ; to wake up
    sleep            ; shut down

        MOVlw   b’11000001’     ; set a/d internal rc clock
                                ; channel 0, a/d running
        MOVwf   ADCON0          ; do it
    MOVlw    .153        ; timeout value
    MOVwf    count
    MOVlw    .16        ; interval timer reload
    MOVwf    read
    MOVlw    b’10100000’    ; set up change of state on portb
    MOVwf    INTCON        ; to wake up
    call    adconv        ; perform A/D conversion

; ================== main ====================
main    btfsc    flags,0        ; test for timeout

上一页  [1] [2] [3]  下一页


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