新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于AT89S52 和K9F6408U0A 的語音數(shù)字系統(tǒng)設(shè)計

基于AT89S52 和K9F6408U0A 的語音數(shù)字系統(tǒng)設(shè)計

作者: 時間:2011-01-20 來源:網(wǎng)絡(luò) 收藏


3 系統(tǒng)軟件設(shè)計

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

系統(tǒng)流程圖
系統(tǒng)流程圖
圖6 系統(tǒng)流程圖。

3.1 系統(tǒng)初始化程序

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

3.2 按鍵掃描程序

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

3.3 錄音程序

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

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

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

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




3.4 放音程序

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

// 函數(shù)名稱: READBYTE


關(guān)鍵詞: 單片機

評論


相關(guān)推薦

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

關(guān)閉