久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專(zhuān)注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

超聲波測(cè)距電路+匯編程序

作者:huqin   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2013年11月14日   【字體:

大家好!
我現(xiàn)在在做超聲波測(cè)距,用的是非門(mén) + CX20106A方案。發(fā)射部分用非門(mén)驅(qū)動(dòng),如下:

 (原文件名:超聲波發(fā)射電路原理圖.gif) 

 


我手上沒(méi)有74ALS04或74LS04,所以用74HC04和HCF4069UBE代替。

超聲波接收采用CX20106A,如下:

 (原文件名:接收電路 .jpg) 

 


我用的CX20106A是拆機(jī)件。

用萬(wàn)用板搭好電路之后,在網(wǎng)上找到了一些參考匯編程序,我修改后可以通過(guò)串口發(fā)到PC顯示超聲波往返的時(shí)間:
;///////////////////////////////////////////////////////
;               USE  BY :超聲波測(cè)距器                 
;               IC      :STC89C52                     
;               OSCCAL  :XT   (12M)                                 
;///////////////////////////////////////////////////////
;
       T2CON    EQU     0C8H
       T2MOD    EQU     0C9H
       RCAP2L   EQU     0CAH
       RCAP2H   EQU     0CBH
       TH2      EQU     0CDH
       TL2      EQU     0CCH      
       VOUT     EQU     P3.7                    ;超聲波輸出端口

;********************************************
;*             中斷入口程序                 *
;********************************************
;
      ORG 0000H        ;復(fù)位
      LJMP  START          
      ORG 0003H        ;外部中斷0
      LJMP  PINT0    
      ORG 000BH        ;T0溢出中斷
      RETI    
      ORG 0013H        ;外部中斷1
      RETI  
      ORG 001BH        ;T1溢出中斷  
      LJMP  INTT1  
      ORG 0023H        ;串口中斷
      RETI  
      ORG 002BH        ;T2EN端負(fù)跳變(52系列)
      RETI    
;
;********************************************
;*               主 程 序                   *
;********************************************
;
           START:  MOV     SP,#4FH                  
                   MOV     SCON,#50H     ;串口方式1工作,8位數(shù)據(jù)位,1位停止位,無(wú)奇偶校驗(yàn),允許接收
                   MOV     T2MOD,#00H    ;DCEN = 0,向上計(jì)數(shù)
                   MOV     RCAP2H,#0FEH  ;定時(shí)器T2置重裝數(shù),波特率:1200. (12MHz)
                   MOV     RCAP2L,#0C8H
                   MOV     TH2,#0FEH     ;定時(shí)器T2置初值
                   MOV     TL2,#0C8H 
                   MOV     T2CON,#34H    ;T2工作方式:波特率發(fā)生器,同時(shí)啟動(dòng)Time2定時(shí)器
                   CLR     TI 
                   CLR     30H          
                  
                   MOV     TMOD,#11H     ;T1、T0為16位定時(shí)器
                   MOV     TH0,#00H      ;65毫秒初值
                   MOV     TL0,#00H
                   MOV     TH1,#00H    
                   MOV     TL1,#00H
                   MOV     P0,#0FFH
                   MOV     P1,#0FFH
                   MOV     P2,#0FFH
                   MOV     P3,#0FFH
                   MOV     R4,#04H       ;超聲波脈沖個(gè)數(shù)控制(為賦值的一半,即2個(gè)超聲波)
                   SETB    PX0
                   CLR     IE0           ;外部中斷0中斷請(qǐng)求標(biāo)志位。當(dāng)主機(jī)響應(yīng)中斷轉(zhuǎn)向該中斷服務(wù)程序執(zhí)行時(shí),由內(nèi)部硬件自動(dòng)將IE0位清0
                   SETB    IT0           ;當(dāng)IT0 = 1時(shí),則外部中斷0(INT0 )端口由“1 ”→“0 ”下降沿跳變,激活中斷請(qǐng)求標(biāo)志位IE0,向主機(jī)請(qǐng)求中斷處理
                   SETB    ET1           ;允許T1中斷
                   SETB    EA
                   SETB    TR1           ;開(kāi)啟測(cè)距定時(shí)器
;main主循環(huán)開(kāi)始                  
            start1:
                    JNB    30H,$         ;收到反射信號(hào)時(shí)標(biāo)志位為1
                   
                    CLR    EA            ;不讓T1中斷                
                    MOV    R2,#64H       ;測(cè)量間隔控制(約5*100=500MS). 64H = 100
              LOOP: LCALL  DL1MS
                    LCALL  DL1MS
                    LCALL  DL1MS
                    LCALL  DL1MS
                    LCALL  DL1MS                   
                    DJNZ   R2,LOOP 
                                     
                    CLR    30H           ;清除反射信號(hào)標(biāo)志位
                    CLR    ET0           ;關(guān)閉T0中斷
                    MOV    TH0,00H
                    MOV    TL0,00H
                    SETB   TR1           ;重新開(kāi)啟測(cè)距定時(shí)器
                    SETB   EA                  
                    SJMP   start1
;main主循環(huán)結(jié)束
 
;****************************************************
;*                    中斷程序                      *
;****************************************************
 
;T1中斷,發(fā)超聲波用     ;T1中斷,65毫秒中斷一次
INTT1:          CLR     EA
                CLR     TR0
                CLR     EX0
                MOV     TH0,#00H
                MOV     TL0,#00H
                MOV     TH1,#00H
                MOV     TL1,#00H
                SETB    ET0             ;外部中斷0中斷請(qǐng)求標(biāo)志位。當(dāng)主機(jī)響應(yīng)中斷轉(zhuǎn)向該中斷服務(wù)程序執(zhí)行時(shí),由內(nèi)部硬件自動(dòng)將IE0位清0
                SETB    EA
                SETB    TR0             ;啟動(dòng)計(jì)數(shù)器T0,用以計(jì)算超聲波傳播時(shí)間
intt11:
                CPL     VOUT            ;發(fā)射40KHZ超聲波. 晶振:12MHz,1us
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop                            
                DJNZ    R4,intt11       ;2us
                                        ;超聲波發(fā)送完畢
                CLR     IE0
                MOV     R4,#04H
                LCALL   DL1MS           ;延時(shí)2ms,避開(kāi)發(fā)射的直達(dá)聲波信號(hào),消除余震
                LCALL   DL1MS       
                SETB    EX0             ;開(kāi)啟接收回波中斷
               
RETIOUT:        RETI

;外中斷0,收到回波時(shí)進(jìn)入
PINT0:          nop
                jb      P3.2,pint0_exit
                CLR     TR0             ;關(guān)閉T0                
                CLR     EA            
                CLR     EX0                 
               
                MOV     SBUF,TH0
                JNB     TI,$
                CLR     TI
               
                MOV     SBUF,TL0
                JNB     TI,$
                CLR     TI               
             
                MOV     TH0,#00H
                MOV     TL0,#00H
                JNB     p3.2,$
                SETB    30H             ;接收成功標(biāo)志
pint0_exit:
                RETI
;

;****************************************************
;*                    延時(shí)程序                      *
;****************************************************
;
DL1MS:
               push    06H
               push    07H
 
               MOV    R6,#14H    ;14H = 20
        DL1:   MOV    R7,#19H    ;19H = 25
        DL2:   DJNZ   R7,DL2     ;2us * 25 = 50
               DJNZ   R6,DL1     ;50us * 20 = 1000us
               pop    07H
               pop    06H
               RET
;

;
DL100US:
               push    06H
 
               MOV    R6,#32H    ;32H = 50
        DL3:   DJNZ   R7,DL3     ;2us * 50 = 100us
               pop    07H
               pop    06H
               RET
;

   END

關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 九九综合 | 91中文字幕在线观看 | 精品国产一区一区二区三亚瑟 | 国产精品久久久久久久久久了 | 欧美精品在线观看 | 日本欧美国产在线 | 久国久产久精永久网页 | 欧美一区二区三 | 欧美日韩精品区 | 一区二区三区免费 | 美国一级黄色片 | 91在线视频免费观看 | 精品国产女人 | 成人免费视频网站在线观看 | 亚洲免费视频在线观看 | 日韩成人在线观看 | 色精品 | 国产一区二区视频免费在线观看 | 亚洲美乳中文字幕 | 久久精品一区二区 | 先锋影音资源网站 | 成人黄色a | 91网视频 | 欧美日韩视频在线 | 日韩欧美精品 | 亚洲成人久久久 | 国产高清一区二区三区 | 在线视频一区二区三区 | 欧美v免费 | 欧美午夜在线 | 伊人爽| 精品一二三区在线观看 | 成人在线免费 | 97在线观视频免费观看 | 金莲网 | 人操人人干人 | 91久久北条麻妃一区二区三区 | 乱码av午夜噜噜噜噜动漫 | 久久久久久国产精品免费免费男同 | 日韩精品一区二区三区四区视频 | 久草视频在 |