基于ISD2560語音芯片的錄放電路設計
3 系統(tǒng)工作原理及程序設計
ISD2560雖然提供有地址輸入線,但它的內部信息段的地址一般無法讀出。因此,通常使用不需要知道地址的操作模式。但要讀出ISD2560內部信息地址,就需要專用的ISD開發(fā)設備,而這些設備的價格比較昂貴。為此,本系統(tǒng)采用單片機來控制。該方法不需讀出信息地址,而是直接設置信息段起始地址。該設想的實現(xiàn)方式有多種。第一種方式由于ISD2560的地址分辨率為100ms,所以,可用單片機內部定時器定時100 ms,然后再利用一計數器對單片機定時次數進行計數,這樣,計數器的計數值就是語音段所占用的地址單元。該方式能充分利用ISD2560內部的EEPROM,故在字段較多時可利用該方法;而如果語音字段較少,則可用第二種方式:即根據每一字段的內容多少直接分配地址單元。一般按每1 s說3個字計算,60 s可以說180個字,然后再根據ISD2560的地址分辨率為100 ms,計算出語音段所需的地址單元數。本系統(tǒng)即采用該方式。
3.1 AT89C2051對ISD2560的錄放音控制
錄音時,先按下錄音鍵,由單片機通過口線設置語音段的起始地址,再使PD端、P/R端和其它相關端口為低電平以啟動錄音;錄音結束,單片機又讓這些端口回到高電平,以完成一段語音的錄制。然后以同樣的方法,也可錄取第二段、第三段、等等。值得注意的是,錄音時間一般不能超過預先設定的每段語音的時間。
放音時,可根據需播放的語音內容,找到相應的語音段起始地址,并通過接口線送出。然后將P/R端設為高電平,PD端設為低電平,并讓其產生一負脈沖以啟動放音,這時單片機只需等待ISD2560的信息結束信號(即EOM的產生)。由于該信號為一負脈沖,且在負脈沖的上升沿,該段語音才播放結束,所以,單片機必須要檢測到該上升沿,才能播放第二段,否則,播放的語音將不連續(xù),而且會產生啪啪聲,這一點在編制軟件時一定要注意。圖2所示是其錄放音程序框圖。
其具體的操作方法如下:
(1)錄音
將跳線插在“REC”一側,即為錄音狀態(tài),按下“REC”鍵,指示燈亮,即可對著板上話筒講話錄音,松鍵時,錄音停止并形成一段。再次按下,則錄下一段。操作時,按“STOP”鍵為復位,再錄音時,又將從第一段開始。
(2)放音
將跳線插在“PLAY”一側,為放音狀態(tài),此后,按一下“PLAY”鍵即播放一段,一段結束后自動停止放音,再按“AN”,則播放下一段。操作過程中,按“STOP”鍵為復位,再放音時,又將從第一段開始。
3.2 程序設計
本程序是以AT89C2051為ISD2560的控制器,晶振頻率為12 MHz來編寫的。
下面給出錄取語音信息的錄音程序以及對這段語音進行播放的源程序。實際上,播放時也可根據實際情況組合回放。需要時,還可對該程序進行擴充。其ISD2560語音錄放系統(tǒng)程序如下:
評論