新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > 基于AT89S52和K9F6408UOA的語音數字系統設計

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

        作者: 時間:2010-12-20 來源:網絡 收藏

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


        產生PWM波形的步驟:1)設置定時器,產生定時中斷,若采樣率為11.025 kHz,則設置定時器的定時中斷頻率為11.025 kHz;2)初始化PWM模塊,產生11.025 kHz的PWM波形;3)等待定時器中斷,在中斷處理程序中取采樣數據,并設置PWM占空比寄存器,判斷聲音是否播放完成。若完成,則關定時器中斷,并停止PWM輸出。
        3.5 暫停程序
        在錄音過程中,如果需要暫時停止錄音可以按下暫停鍵進入暫停狀態,再次按下暫停鍵可以返回暫停以前的狀態。程序中設置了一個變量來指示現在是應該暫停還是恢復。
        3.6 存儲器內容清除程序
        當存儲器內容已滿,而又需要錄音時,可以按下清除按鍵,清除一定容量的內容,供用戶再次使用。
        擦除:以塊為單位進行擦除。代碼片段如下。



        4 調試注意事項
        系統進行調試時,應注意以下方面:
        1)由于在PCM(Pulse Code Modulation)編碼及DPCM編碼模式下都要采用8 kHz的采樣率,所以,每次壓縮中斷服務程序必須在不超過125 μs的時間內完成,因此,壓縮錄音處理程序的代碼必須進行最大可能的優化,以減少程序執行時間,以免采樣和數據處理或信息顯示發生沖突,也可避免在中斷采樣時造成采樣點的丟失。
        2)在選擇ADC0809的時鐘時,經典選擇是640 kHz左右,最初選擇將單片機的ALE端4分頻后作為ADC0809的時鐘信號,但發現影響了LCD的輸出顯示。將ALE改為2分頻后(用1 M觸發)作為ADC0809的時鐘信號,問題得到解決。
        3)使用MAX813L復位芯片替代RC復位電路,使電路可靠復位.結合軟件監控實現看門狗功能。
        4)當采樣頻率為8 kHz,字長為8位時,存儲語言時長超過15 min,回放語音質量良好。

        5 結束語
        利用K9F6408UOA 8 MB NAND Flash存儲器和單片機PWM功能可為單片機的應用增加語音功能。對聲音采樣數據的存儲方式是用直接的、原始的采樣數據。在具體的實際應用中,可選用內嵌A/D轉換器的STC12C5A08AD,可省去外擴ADC0809,使電路更簡潔。創新之處在于不使用專用的語音芯片,實現使單片機應用系統語音的存儲與回放。

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

        上一頁 1 2 3 下一頁

        關鍵詞: 音頻

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 专栏| 通渭县| 鹤峰县| 都兰县| 岳普湖县| 大冶市| 和静县| 邹平县| 姚安县| 新营市| 新建县| 汉寿县| 江津市| 都匀市| 晋宁县| 雷波县| 巫溪县| 云梦县| 龙口市| 丰镇市| 通州区| 雷波县| 竹山县| 海城市| 会泽县| 西平县| 威宁| 郸城县| 石嘴山市| 紫金县| 玉田县| 安远县| 屏东县| 东山县| 彭山县| 镇原县| 太保市| 平遥县| 平顺县| 桐柏县| 成都市|