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