新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ATmega16的語音型超聲波測距儀的設計

        ATmega16的語音型超聲波測距儀的設計

        作者: 時間:2013-01-11 來源:網絡 收藏

        2.3 語音播報模塊
        語音播報模塊電路如圖4所示。由集成穩壓芯片AMS1117—3.3構成的穩壓電路輸出3.3 V電壓供給ISD4004。ISD4004的語音輸入由麥克風MIC輸入或由插頭輸入,插入插頭時麥克風輸入電路自動斷開,此時可以與電腦連接進行錄音。放音時,音頻輸出經LM386放大驅動揚聲器進行放音。ATmega16通過SPI接口向ISD4004發送錄音地址和錄音命令進行錄音,發送放音地址和放音命令進行放音。中文液晶YM12 864和溫度傳感器DS18B20與ATmega16的連接較為簡單,在此不作詳述。

        本文引用地址:http://www.104case.com/article/170620.htm

        d.JPG



        3 軟件設計
        3.1 程序設計
        超聲波測量距離的表達式為S=[(331.4+0.607T)×t]/2。其中,T為環境溫度,t為從發射超聲波信號到接收到回波信號所經過的時間。由此可見,測量距離的關鍵是盡可能精確地測出時間t。測量時間t常用的方法是用一個定時器/計數器和一個外部中斷來實現。定時器/計數器用來計時,外部中斷設置成電平觸發方式,用于檢測一個脈沖的上升沿和下降沿,當ATmega16外部中斷引腳輸入電平由低變高時觸發第一次中斷,讀取時間值t1,然后將外部中斷設置為下降沿觸發中斷,等到ATmega16外部中斷引腳輸入的電平由高變低時,再次觸發中斷,讀取時間值t2,然后將外部中斷設置為上升沿觸發中斷,兩次時間值之差t=t2-t1即為脈沖的寬度。這種方法除了多占用ATmega16的一個外部中斷源外,讀取的時間值精度還容易受到中斷響應時間的影響,造成測量距離誤差增大。ATmega16具有一路輸入捕獲功能,配合內部的定時器/計數器T/C1,可以非常方便和精確地測出一個脈沖從上升沿到下降沿間的時間。方法是先將T/C1設置為輸入捕獲模式、上升沿捕獲,并開啟全局中斷;當發射探頭發射的超聲波信號遇到障礙物后返回,被接收探頭接收時,ATmega16的PD6(ICP1)引腳由低電平變高電平,觸發第一次輸入捕獲,將T/C1的TCNT1中的計數值自動寫入輸入捕獲寄存器ICR1,在程序中將ICR1的值保存在變量t1中,然后將T/C1設置為下降沿捕獲;當接收到的信號下降沿到來時,再一次觸發輸入捕獲,將ICR1的值保存在變量t2中,然后將TCNT1中的值清0,并將T/C1設置為上升沿捕獲。假設ATmega16所使用的晶振為8 MHz,采用1/8分頻,則兩次捕獲發生的時間之差t=t2-t1(μs)即為發射超聲波信號至接收到回波信號所經過的時聞。定時器/計數器T/C1捕獲中斷程序如下:
        e.JPG

        手機電池相關文章:手機電池修復




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 板桥市| 吴忠市| 涟源市| 江津市| 长汀县| 沭阳县| 志丹县| 姜堰市| 鹤庆县| 河北区| 全南县| 永春县| 阳朔县| 资阳市| 彝良县| 邵阳县| 内江市| 通城县| 湘阴县| 扬州市| 大名县| 天柱县| 松滋市| 平山县| 安顺市| 社旗县| 怀来县| 册亨县| 高碑店市| 当雄县| 新巴尔虎左旗| 东丽区| 高唐县| 晴隆县| 保德县| 屏南县| 齐河县| 新丰县| 罗定市| 中宁县| 三江|