新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于AT89S52 和K9F6408U0A 的語音數字系統設計

        基于AT89S52 和K9F6408U0A 的語音數字系統設計

        作者: 時間:2011-01-20 來源:網絡 收藏


        3 系統軟件設計

        系統具有錄音、放音、暫停、清除存儲內容等功能,各種功能由按鍵來選擇,系統首先掃描各個按鍵的狀態,如果有按鍵按下,就轉往相應的處理程序,系統程序流程如圖6 所示。

        系統流程圖
        系統流程圖
        圖6 系統流程圖。

        3.1 系統初始化程序

        系統初始化程序主要對中斷、定時器、LCD 初始化、鍵盤、PWM、K9F6408U0A 存儲接口,以及ADC0809 地址、程序中要用到的各個變量進行設置。

        3.2 按鍵掃描程序

        由于錄音和暫停是由和外部中斷引腳相連的2 個按鍵來設置,一旦按鍵按下就進入錄音或放音程序,所以按鍵掃描程序用于掃描放音鍵和清除鍵是否按下。

        3.3 錄音程序

        與外部中斷0 相連的按鍵按下,則進入錄音程序。

        錄音過程實質上是啟動ADC0809 對模擬音頻信號進行采樣, 并將A/D 轉換結果存儲到外圍數據存儲器中的過程,故其主要包含對ADC0809 進行讀取, 對外圍數據存儲器進行寫入兩個部分。

        提取聲音數據時,要注意采樣頻率、采樣位數、存儲容量與存儲時間的關系,通常8 kHz 的采樣頻率和8 位的采樣位數可獲得清晰的語音以及較好的音樂聲,并且占有較少的存儲空間。

        以8 kHz 的采樣頻率啟動ADC0809,并讀取上次采樣結果,寫到外擴Flash 存儲器的代碼片段如下:




        3.4 放音程序

        若P1.0 按下,則執行放音程序。放音過程實質上是讀取外圍數據存儲器中的數據,將其轉化為一定寬度的PWM 波,進行輸出的過程。讀取K9F6408U0A 的子函數如下:

        // 函數名稱: READBYTE


        關鍵詞: 單片機

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 察隅县| 绥芬河市| 咸阳市| 丹阳市| 家居| 闽侯县| 鹰潭市| 江西省| 天柱县| 揭阳市| 驻马店市| 榆林市| 资阳市| 文山县| 忻城县| 湖北省| 光山县| 邵东县| 额尔古纳市| 昌宁县| 濮阳县| 东兴市| 南康市| 西青区| 广州市| 化德县| 湛江市| 托克逊县| 剑川县| 车致| 寿宁县| 武威市| 广灵县| 中方县| 留坝县| 苏尼特右旗| 商丘市| 慈利县| 昌宁县| 年辖:市辖区| 隆化县|