您当前的位置:五五电子网电子知识单片机-工控设备PIC单片机12C508超声波测距仪程序 正文
12C508超声波测距仪程序

12C508超声波测距仪程序

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

;12C508超声波测距仪程序
; Internal Osc, WDT EnabLED

    include    <p12c508.inc>

loop        equ    10h    
dlyCTR        equ    11h        
tone_cnt    equ    12h    ; 反射周期计数
period        equ    13h    ; tmr0溢出时间


    org     0           
    MOVwf    OSCCAL        
    MOVlw    b’10001001’        
    option            ;1:2 WDT ON
    MOVlw    b’00001101’        
    tris    GPIO        
    MOVwf    0
    bcf    GPIO,1        ;输出脉冲

;===================================
main    clrwdt
    btfss    GPIO,0        ; 等待触发信号
    goto    main         
m2    clrwdt
    btfsc    GPIO,0         
    goto    m2

    call    burst        ; 发送超声波
    bsf    GPIO,1        ; 开始输出定时脉冲
m1    btfsc    GPIO,2
    goto    m1         
    bcf    GPIO,1        ; 结束输出定时脉冲
    goto    main

;===================================
burst     clrf    loop
    MOVlw    8         
    MOVwf    loop

burst1     MOVlw    b’00010000’
    MOVwf    GPIO

    MOVlw    3        
    MOVwf    dlyctr        
burst2     decfsz    dlyctr,f
    goto    burst2        ; 12uS

    MOVlw    b’00010100’
    MOVwf    GPIO
    MOVlw    2        ; (2 * 3inst * 1uS) -1uS = 5uS 
    MOVwf    dlyctr        ; 5uS + (8*1uS) = 13uS
burst3     decfsz    dlyctr,f
    goto    burst3

    nop
    decfsz    loop,f
    goto    burst1
    MOVlw    0x00        
    MOVwf    GPIO
    retlw    0

;================================
tone    clrf    TMR0
t1    btfsc    GPIO,2    
    goto    t1         
    MOVfw    TMR0
    clrf    TMR0
    MOVwf    period         

    MOVlw    21        ; if(period>22 && period<30) 
    subwf    period,w
    btfss    STATUS,C
    goto    t2
    MOVlw    30
    subwf    period,f
    btfsc    STATUS,C
    goto    t2
    decfsz    tone_cnt,f    ; 25uS period OK, so 
    goto    t1        ; if not yet 3 of them, keep looking
    retlw    0        ; else - success - return
    
t2     MOVlw    3         
    MOVwf    tone_cnt     
    goto    t1

;=====================================
     end




本文关键字:超声波  程序  测距仪  PIC单片机单片机-工控设备 - PIC单片机

上一篇:pic16c711测温程序