機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
基于AT89C51的超聲波測距設(shè)計
基于AT89C51的超聲波測距設(shè)計
 更新時間:2008-7-27 13:58:38  點擊數(shù):3
【字體: 字體顏色

;********WAVE-E6000/T*******************************
;*MCU:          AT89C51                            *
;*MCU-crystal:  12M                                *
;*Version:      00                                 *
;*Last Updata:                                     *
;*Author:       www.picavr.com                     *
;*Description:  超聲波測距
;晶振采用6M,P1口為數(shù)碼管段輸出口,P3.0~P3.2為     *

;數(shù)碼管位輸出口,P3.5超聲波;發(fā)送輸出,P3.7超聲波收 *                    
;***************************************************
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;           中斷入口程序              ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            ORG 0000H
            ljmp start
            ORG 002BH
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;           主 程 序                 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
     START: MOV R0,#70H    
            MOV R7,#0BH    
            MOV 20H,#00H   
CLEARDISP:  MOV @R0,#00H   
            INC R0         
            DJNZ R7,CLEARDISP
            MOV TMOD,#99H  
      cjzcx:MOV TL0,#00H   
            MOV TH0,#00H
            MOV R0,#0bH
            MOV r1,#0bh
     MOV 16h,#03H
     MOV 15h,#54H
     MOV 17h,#90h
      puzel:MOV 14h,#32h    ;超聲波發(fā)射持續(xù)200ms
       here:cpl p3.5        ;輸出40kHz方波
            nop             
            nop             
            nop                                             
            djnz 14h,here   
            setb tr0
            setb p3.2
         mq:djnz 15h,$
            djnz 16h,mq
        QBA:JNB P3.7,QBC
            DJNZ R1,QBA
            DJNZ R0,QBA
        QBC:djnz 17h,QBC
            clr p3.2
            clr tr0                  
            MOV 70h,tl0
            MOV 71h,th0
            MOV r2,71h
            MOV r3,70h
            MOV r6,#22H
            MOV r7,#0H
            LCALL MULD           
            MOV r6,#64H
            MOV r7,#0H
            LCALL DIVD    
            MOV 73H,R2
            MOV 74H,R3
            CLR R3
            CLR R4
            CLR R5
            MOV R6,73H
            MOV R7,74H    
            LCALL HB2    
            MOV A,R4     
            MOV B,#10H
            DIV AB
            MOV 78H,A
            MOV 77H,B
            MOV A,R5
            MOV B,#10H
            DIV AB
            MOV 76H,A
            MOV 75H,B     
            MOV a,78h
            cjne a,#0h,pdcx
            MOV a,77h
            cjne a,#5h,pdcx
            MOV a,76h
            cjne a,#0h,pdcx
            MOV 78h,#0bh
            MOV 77h,#0bh
            MOV 76h,#0bh
            ajmp xxcx
       pdcx:MOV a,78h
            cjne a,#4h,xxcx
            MOV a,77h
            cjne a,#0h,xxcx
            MOV a,76H
            cjne a,#0h,xxcx
            MOV 78h,#0ah
            MOV 77h,#0ah
            MOV 76h,#0ah
       xxcx:MOV 7AH,#0EFH
        XXX:LCALL DISPLAY                
            DJNZ 7AH,XXX
            ajmp cjzcx

 

       MULD:MOV A,R3      
            MOV B,R7
            MUL AB
            MOV R4,B      
            MOV R5,A
            MOV A,R3      
            MOV B,R6
            MUL AB
            ADD A,R4       
            MOV R4,A
            CLR A
            ADDC A,B
            MOV R3,A
            MOV A,R2       
            MOV B,R7
            MUL AB
            ADD A,R4       
            MOV R4,A
            MOV A,R3
            ADDC A,B
            MOV R3,A
            CLR A
            RLC A
            XCH A,R2       
            MOV B,R6
            MUL AB
            ADD A,R3       
            MOV R3,A
            MOV A,R2
            ADDC A,B
            MOV R2,A
            RET               

 

       DIVD:CLR C         
            MOV A,R3
            SUBB A,R7
            MOV A,R2
            SUBB A,R6
            JC DVD1
            SETB OV        
            RET
       DVD1:MOV B,#10H     
       DVD2:CLR C          
            MOV A,R5
            RLC A
            MOV R5,A
            MOV A,R4
            RLC A
            MOV R4,A
            MOV A,R3
            RLC A
            MOV R3,A
            XCH A,R2
            RLC A
            XCH A,R2
            MOV F0,C       
            CLR C
            SUBB A,R7      
            MOV R1,A
            MOV A,R2
            SUBB A,R6
            ANL C,/F0      
            JC DVD3
            MOV R2,A      
            MOV A,R1
            MOV R3,A
            INC R5         
       DVD3:DJNZ B,DVD2    
            MOV A,R4       
            MOV R2,A
            MOV A,R5
            MOV R3,A
            CLR OV         
            RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;           BCD轉(zhuǎn)換                   ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        HB2:CLR A           ;BCD碼初始化
            MOV R3,A
            MOV R4,A
            MOV R5,A
            MOV R2,#10H     ;轉(zhuǎn)換雙字節(jié)十六進(jìn)制整數(shù)
        HB3:MOV A,R7        ;從高端移出待轉(zhuǎn)換數(shù)的一位到CY中
            RLC A
            MOV R7,A
            MOV A,R6
            RLC A
            MOV R6,A
            MOV A,R5        ;BCD碼帶進(jìn)位自身相加,相當(dāng)于乘2
            ADDC A,R5
            DA A            ;十進(jìn)制調(diào)整
            MOV R5,A
            MOV A,R4
            ADDC A,R4
            DA A
            MOV R4,A
            MOV A,R3
            ADDC A,R3
            MOV R3,A        
            DJNZ R2,HB3     
            RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;           顯示程序                  ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    DISPLAY:MOV R1,#76H     
            MOV R5,#0FEH    
       PLAY:MOV A,R5        
            MOV P3,A         ;累加器A中的數(shù)值送P3口
            MOV A,@R1     
            MOV DPTR,#TAB   
            MOVC A,@A+DPTR   ;
            MOV P1,A         ;累加器A中的數(shù)值送P1口
            MOV R6,#14H     
        DL1:MOV R7,#19H     
        DL2:DJNZ R7,DL2     
            DJNZ R6,DL1     
            INC R1         
            MOV A,R5        
            JNB ACC.2,ENDOUT
            RL A            
            MOV R5,A        
            AJMP PLAY       
     ENDOUT:SETB P3.5       
            MOV P1,#0FFH     ;立即數(shù)0FEH送P1口
            RET             
        TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0c6H,3fh
            END

  • 上一篇: 相位差測量完整的設(shè)計,包含原理圖,PCB,程序和技術(shù)報告
  • 下一篇: [課程設(shè)計]8X8 LED點陣顯示原理與編程技術(shù)
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會員助手 | 免費(fèi)鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實性、準(zhǔn)確性和合法性。
    機(jī)電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機(jī)電之家,機(jī)電之家將及時作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1