新聞中心

EEPW首頁(yè) > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 基于AT89S52和K9F6408UOA的語(yǔ)音數(shù)字系統(tǒng)設(shè)計(jì)

基于AT89S52和K9F6408UOA的語(yǔ)音數(shù)字系統(tǒng)設(shè)計(jì)

作者: 時(shí)間:2010-12-20 來(lái)源:網(wǎng)絡(luò) 收藏

3.4 放音程序
若P1.O按下,則執(zhí)行放音程序。放音過(guò)程實(shí)質(zhì)上是讀取外圍數(shù)據(jù)存儲(chǔ)器中的數(shù)據(jù),將其轉(zhuǎn)化為一定寬度的PWM波,進(jìn)行輸出的過(guò)程。讀取K9F6408UOA的子函數(shù)如下:


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



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

5 結(jié)束語(yǔ)
利用K9F6408UOA 8 MB NAND Flash存儲(chǔ)器和單片機(jī)PWM功能可為單片機(jī)的應(yīng)用增加語(yǔ)音功能。對(duì)聲音采樣數(shù)據(jù)的存儲(chǔ)方式是用直接的、原始的采樣數(shù)據(jù)。在具體的實(shí)際應(yīng)用中,可選用內(nèi)嵌A/D轉(zhuǎn)換器的STC12C5A08AD,可省去外擴(kuò)ADC0809,使電路更簡(jiǎn)潔。創(chuàng)新之處在于不使用專用的語(yǔ)音芯片,實(shí)現(xiàn)使單片機(jī)應(yīng)用系統(tǒng)語(yǔ)音的存儲(chǔ)與回放。

本文引用地址:http://m.butianyuan.cn/article/166309.htm

上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: 音頻

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉