基于單片機(jī)的語音存儲與回放系統(tǒng)設(shè)計(jì).doc_第1頁
基于單片機(jī)的語音存儲與回放系統(tǒng)設(shè)計(jì).doc_第2頁
基于單片機(jī)的語音存儲與回放系統(tǒng)設(shè)計(jì).doc_第3頁
基于單片機(jī)的語音存儲與回放系統(tǒng)設(shè)計(jì).doc_第4頁
基于單片機(jī)的語音存儲與回放系統(tǒng)設(shè)計(jì).doc_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

滁州學(xué)院本科畢業(yè)設(shè)計(jì) 本 科 生 畢 業(yè) 設(shè) 計(jì) (申請學(xué)士學(xué)位)論文題目 基于單片機(jī)的語音存儲與回放 系統(tǒng)設(shè)計(jì) 作者姓名 所學(xué)專業(yè)名稱 電子信息工程 指導(dǎo)教師 2017年 5 月學(xué) 生: (簽字)學(xué) 號: 答 辯 日 期: 2017 年 5 月 20 日指 導(dǎo) 教 師: (簽字)目 錄摘要31緒論41.1課題研究背景41.2課題研究的發(fā)展前景51.3課題研究的意義及目的52 語音系統(tǒng)的設(shè)計(jì)方案62.1方案設(shè)計(jì)62.2方案分析和選擇73 材料選取73.1 控制芯片STC90C516RD+73.2 語音芯片ISD400483.3功放芯片TDA2822M104 電路設(shè)計(jì)104.1時鐘電路104.2復(fù)位電路114.3顯示電路114.4 3.3V電源電路124.5按鍵模塊124.6 ISD4004音頻處理模塊134.7 TDA2822M功放電路134.8總電路設(shè)計(jì)圖145 程序設(shè)計(jì)155.1主程序流程圖155.2錄音程序流程圖165.3放音序流程圖166實(shí)物調(diào)試166.1程序編譯和下載166.2 實(shí)物調(diào)試最終結(jié)果展示186.3 實(shí)物調(diào)試過程及故障解決方法18結(jié)論20參考文獻(xiàn)20附錄21附錄1元件清單21附錄2程序22致謝32基于單片機(jī)的語音存儲與回放系統(tǒng)設(shè)計(jì)摘要:本設(shè)計(jì)是基于單片設(shè)計(jì)的一個能實(shí)現(xiàn)語音存儲和回放功能的系統(tǒng),利用宏晶公司生產(chǎn)的STC90系列單片機(jī)作為主控制器,使用具有錄音和放音功能的ISD4004語音芯片,能夠顯示32個字符的LCD1602顯示器件和能對音頻進(jìn)行無失真的放大的TDA2822M差分放大器設(shè)計(jì)而成的。首先我們利用STC90C516RD+單片機(jī)的優(yōu)越的控制性能來控制ISD4004語音芯片,通過單片機(jī)向語音芯片發(fā)送指令來完成ISD4004芯片的錄音和放功能,用LCD1602來顯示單片機(jī)對ISD4004的操作狀態(tài),使用TDA2822M將ISD4004芯片輸出的音頻進(jìn)行無失真的放大的思路來進(jìn)行語音存儲和回放系統(tǒng)設(shè)計(jì)的,用Circuit Design Suite 10.0(Multisim)軟件來繪制該系統(tǒng)的電路,用Keil uVision5軟件來編寫硬件程序。電路圖和程序都完成后使用萬用洞洞板依據(jù)電路圖來焊接實(shí)物電路,實(shí)物完成后載入芯片程序直接進(jìn)行實(shí)物調(diào)試,使用實(shí)物調(diào)試更容易找出問題和系統(tǒng)設(shè)計(jì)的缺陷,出現(xiàn)問題時可以通過模塊化思想輕松查找到故障原因,并進(jìn)行修復(fù)故障。ISD4004芯片錄音時基于多電平存儲技術(shù)實(shí)現(xiàn)的沒有傳統(tǒng)的數(shù)字錄音過程中A/D轉(zhuǎn)換帶來的量化噪音和變色的金屬音色。該系統(tǒng)錄取的聲音播放出來后和原音的音色、音調(diào)保持一致不失真。關(guān)鍵詞:STC90C516RD+;Keil uVision5;ISD4004; Multisim;語音錄放1緒論1.1課題研究背景語音存儲與回放技術(shù)的課題研究主要分為三部分,分別是語音采集技術(shù)、語音存儲技術(shù)和語音回放技術(shù)。這三個部分缺了任意一個都無法完成這個課題。那么問題來了,我們該如何用什么來采集語音,就算能采集到這些語音又該放在那里保存起來不會消失,就算能采集到又能保存起來那么究竟又該如何將其取出?如果不能取出,那么語音的采集和存儲將不會有任何意義。聲音是一種能量體不像物質(zhì)那樣能夠輕易的采集、存儲和進(jìn)行取出操作。在古代各種技術(shù)比較落后的時代基本都是基于物質(zhì)的基礎(chǔ)上以文字和圖像等形式對信息進(jìn)行存儲和再現(xiàn)的,那么在那個時代有沒有關(guān)于聲音存儲的技術(shù)呢?仔細(xì)想想還真有,古代的八音寶盒便是其中一種,但是這不是真正意義上的語音存儲與回放技術(shù)。在近代史上從電能的利用開始,各種科技飛速的發(fā)展起來,此時語音的存儲與回放技術(shù)才真正開始萌芽,并以飛越般的速度進(jìn)入發(fā)展期。1877年愛迪生發(fā)明了留聲機(jī),留聲機(jī)也就是歷史上最早出現(xiàn)的完整的語音存儲與回放技術(shù)。從此語音進(jìn)入了機(jī)械錄音的時代。在這期間出現(xiàn)各種各樣的語音存儲和回放技術(shù)和產(chǎn)品,例如最早應(yīng)用于電影的蠟盤錄音技術(shù),隨著科技的發(fā)展原有的技術(shù)在各種應(yīng)用場合已經(jīng)無法滿足要求,后來磁帶和光學(xué)錄音系統(tǒng)出現(xiàn)結(jié)束了機(jī)械錄音的時代。21世紀(jì)初半導(dǎo)體技術(shù)逐漸進(jìn)入初步成熟階段,在這個階段大規(guī)模的集成電路技術(shù)出現(xiàn),這項(xiàng)技術(shù)主要朝三個反向發(fā)展,分別是大規(guī)模集成放大電路、大規(guī)模集成邏輯電路和大規(guī)模集成存儲電路。這半導(dǎo)體集成技術(shù)使得電子產(chǎn)品進(jìn)入了微型化時代,這也使得語音存儲與回放系統(tǒng)的體積進(jìn)一步縮小,更加便于攜帶,更重要的是比傳統(tǒng)的語音設(shè)備性能更加優(yōu)越價(jià)格更加低廉。使得它迅速進(jìn)入了各項(xiàng)領(lǐng)域。1.2課題研究的發(fā)展前景雖然目前語音儲存和錄放技術(shù)已近很成熟了特別是語音識別、語音編碼以及語音文本互換三大核心技術(shù),但是我認(rèn)為該項(xiàng)技術(shù)今后還有很大的發(fā)展空間,例如采用更高的速度和質(zhì)量的加密方式、采用更加先進(jìn)的信息技術(shù)對語音信號進(jìn)行優(yōu)化處理減少存儲空間以及采用語音合成技術(shù)推動語音技術(shù)向語境真實(shí)化和多模式化發(fā)展。而智能語音將是未來發(fā)展的主旋律。1.3課題研究的意義及目的21世紀(jì)是一個各種技術(shù)相互融合相互彌補(bǔ)不足共促發(fā)展的大時代,例如語音錄放系統(tǒng)與數(shù)學(xué)理論相結(jié)合智能語音識別技術(shù)、語音優(yōu)化技術(shù)等,語音系統(tǒng)在各種機(jī)械上使用能夠提高機(jī)械的操作能力和輔助學(xué)習(xí)能力。該項(xiàng)技術(shù)應(yīng)用在教育、商業(yè)、生活、軍事、航天等各個領(lǐng)域,幾乎隨處可見??梢娬Z音儲存和錄放技術(shù)的重要性。因此對于語音儲存和錄放技術(shù)的研究是很有必要。本設(shè)計(jì)主要是基于單片設(shè)計(jì)的一個能實(shí)現(xiàn)語音存儲和回放功能的系統(tǒng)。2 語音系統(tǒng)的設(shè)計(jì)方案本設(shè)計(jì)基本兩種設(shè)計(jì)發(fā)案,第1種方案是根據(jù)聲音信號的物理性質(zhì)特點(diǎn)來進(jìn)行設(shè)計(jì)的,也是最早期的語音數(shù)字化設(shè)計(jì)思路。第2種方案則是基于單片機(jī)控制語音芯片來完成。以下為兩個方案的具體設(shè)計(jì)思路。2.1方案設(shè)計(jì)音頻輸出音頻輸入顯示模塊按鍵模塊存儲芯片編碼芯片A/D芯片解碼芯片D/A芯片運(yùn)放芯片運(yùn)放芯片STC90C51RD+單片機(jī)方案1:采用單片機(jī)、AD轉(zhuǎn)換芯片、D/A轉(zhuǎn)換芯片、運(yùn)放芯片、存儲芯片、編碼芯片和解碼芯片構(gòu)成。該方案是同過受話器將聲音轉(zhuǎn)換成電信號,將電信號經(jīng)過放大后用模數(shù)轉(zhuǎn)換芯片轉(zhuǎn)換成數(shù)字信號,再通過編碼芯片將數(shù)字信號重新編碼壓縮減小數(shù)據(jù)在內(nèi)存中的存儲空間,STC90C51RD+單片機(jī)從編碼芯片讀取數(shù)據(jù)轉(zhuǎn)存在外置存儲芯片中,播放時STC90C51RD+單片機(jī)從外置存儲芯片讀取數(shù)據(jù)發(fā)送至解碼芯片進(jìn)行解碼,然后通過數(shù)模轉(zhuǎn)換芯片將數(shù)字信號轉(zhuǎn)換成模擬信號再經(jīng)過信號放大器放大輸出還原成聲音。通過按鍵來控制單片機(jī)進(jìn)行錄音和放音操作,用顯示器顯示當(dāng)前系統(tǒng)的操作狀態(tài)。圖1-1 方案1原理框圖音頻輸入音頻輸出顯示模塊按鍵模塊STC90C51RD+單片機(jī)運(yùn)放芯片語音芯片方案2:采用單片機(jī)、語音芯片、運(yùn)放芯片構(gòu)成。該方案是利用集成語音芯片和單片機(jī)構(gòu)成的,集成語音芯片本身具有錄音功能,錄音數(shù)據(jù)存儲以及對錄音數(shù)據(jù)播放功能。但是該芯片不能獨(dú)立進(jìn)行正常工作需要控制器對該芯片寫入相應(yīng)的指令才能執(zhí)行相應(yīng)的功能,因此這個方案是通過單片機(jī)控制語音芯片進(jìn)行錄音和回放,通過按鍵來控制單片機(jī)向語音芯片發(fā)送指令完成錄音和放音操作,通過顯示器顯示當(dāng)前操作狀態(tài)。圖1-2 方案2原理框圖2.2方案分析和選擇方案1原理:錄音是將采集到的音頻信號首先進(jìn)行量化成數(shù)據(jù),接著將該數(shù)據(jù)進(jìn)行編碼減少數(shù)據(jù)存儲的體積然后存放在外置存儲器中。放音時將存儲器里的數(shù)據(jù)讀出,然后經(jīng)過解碼器還原成編碼前的數(shù)據(jù),再由數(shù)模轉(zhuǎn)換芯片還原成模擬信號通過運(yùn)放將信號放大通過音盆還原成聲音。方案2原理:利用單片機(jī)對ISD4004芯片發(fā)送指令進(jìn)行控制,使ISD4004芯片完成錄音,存儲和放音的功能。該芯片在錄音時直接將采集到的音頻信號通過電平截取的方式存儲到存儲器中不需要對信號進(jìn)行量化操作避免了音源的失真。對比:方案1比方案2所使用的芯片數(shù)目多、電路復(fù)雜、成本也比較高、穩(wěn)定性低,綜合考慮使用方案2最合適。3 材料選取主控芯片:STC90C51RD+;音頻處理芯片:ISD4004;運(yùn)放:TDA2822M;顯示:LCD12063.1 控制芯片STC90C516RD+ STC90C516RD+是宏晶公司生產(chǎn)的一種低功耗、高性能的CMOS八位微控處理制器,它具有 8K字節(jié)系統(tǒng)可編程Flash存儲器。STC90C516RD+不僅僅繼承了經(jīng)典的MCS-51內(nèi)核,而且在原有版本的基礎(chǔ)上做了很多的改進(jìn)使得芯片具有很多傳統(tǒng)51單片機(jī)所不具備的功能。在單個芯片上,擁有靈巧的八位CPU 和系統(tǒng)在線可編程Flash,使得STC90C516RD+為眾多的嵌入式控制應(yīng)用系統(tǒng)提供高靈活、高效率的各種解決方案。圖3-1 STC90C516RD+引腳圖片主要特性:本芯片具有512字節(jié)數(shù)據(jù)存儲空間和8K字節(jié)程序存儲空間,內(nèi)帶4K字節(jié)EEPROM存儲空間,可直接使用串口下載。(1)工作電壓:5V單片機(jī)5.5V3.3V,3V 單片機(jī)3.8V2.0V。(2)工作頻率:正常工作頻率040MHz,相當(dāng)于普通的805180MHz,最大的工作頻率可48MHz。(3)時鐘/機(jī)器周期:STC90C516RD+是增強(qiáng)型8051單片機(jī),有6 時鐘/機(jī)器周期和12 時鐘/機(jī)器周期模式,所以指令代碼完全兼容傳統(tǒng)8051。(4)片上集成512 字節(jié)RAM(Random Access Memory) ,用戶應(yīng)用程序空間為8K字節(jié),內(nèi)帶4K字節(jié)EEPROM存儲空間,可以使用data flash技術(shù)進(jìn)行在線數(shù)據(jù)保存防止掉電造成數(shù)據(jù)丟失。(5)芯片具有4組通用的I/O口,其中P0口是漏極開路輸出可以作為總線擴(kuò)展端使用,該端口作為普通端口使用時須要加弱上拉電阻才能正常工作。P1、P2、P3是準(zhǔn)雙向的I/O口具有弱上拉電阻。(6)芯片下載程序時只須通過RxD/P3.0,TxD/P3.1端口進(jìn)行串行數(shù)據(jù)傳輸就能完成,不需要專用的編程器和仿真器進(jìn)行下載程序。該芯片內(nèi)部具有EEPROM存儲空間使得系統(tǒng)可以在線編程和應(yīng)用編程。 (7)片內(nèi)16位定時器/計(jì)數(shù)器一共有3個,分別是T0、T1、T2??梢酝ㄟ^指令控制定時和計(jì)數(shù)功能。(8)外部中斷,觸發(fā)電路下降沿或低電平中斷,Power Down 模式可由外部中斷低電平觸發(fā)中斷方式喚醒。(9)串行口:通用異步串行口(UART),還可用軟件控制定時器實(shí)現(xiàn)多個UART。(10)工作溫度范圍:工業(yè)級-40+85, 商業(yè)級075。3.2 語音芯片ISD4004 ISD系列芯片是美國ISD公司面對語音信息存儲和處理所推出的產(chǎn)品。該系列語音芯片所采用語音存儲技術(shù)是多電平直接模擬存儲(Chip Corder)專利技術(shù), 音頻信號不需要經(jīng)過A/D轉(zhuǎn)換和編碼壓縮,這種存儲技術(shù)沒有A/D轉(zhuǎn)換誤差,每個信號采樣值直接存儲在閃爍存儲器中,因而能夠自然地再現(xiàn)當(dāng)時現(xiàn)場原本的聲音、音樂等效果聲。避免了一般數(shù)字錄音電路量化和壓縮過程中造成的噪聲和金屬聲以及音頻大幅度失真。圖3-2 ISD4004引腳圖片電源:該芯片的數(shù)字和模擬(VCCD、VCCA)電路使用不同的電源線路可以時錄音時的噪聲最小化,數(shù)字和模擬電源端要分別走線,分別引到不同管腳上,電源引腳盡可能在靠近供電端處相連,并且去耦濾波電容應(yīng)盡量靠近芯片,同時電源地線(VSSA、VSSD)的模擬地和數(shù)字地也要使用不同的線路。片選(SS):低電平有效,即當(dāng)該端為低時向ISD4004芯片發(fā)送指令,多條指令之間為高電平。同相模擬輸入(ANA IN+):這是音頻信號輸入的同相端。音頻可以經(jīng)過單端或差分放大器驅(qū)動后輸入。當(dāng)輸入的音頻信號經(jīng)單端輸入時,信號必須接耦合電容輸入芯片,該信號的最大幅度為32mVpp, 芯片頻帶的低端截止頻率由耦合電容與該端的3K電阻輸入阻抗決定。如果采用差分驅(qū)動,音頻信號最大幅度為16mVpp。反相模擬輸入(ANA IN-):采用差分驅(qū)動時,該端為錄音信號的反相輸入端。信號須要經(jīng)過耦合電容后輸入芯片,最大幅度為16mVpp。音頻輸出(AUD OUT):提供音頻信號輸出,可驅(qū)動5K的負(fù)載。串行輸入(MOSI):此端為串行輸入是芯片與控制端進(jìn)行數(shù)據(jù)、地址和指令信息的傳輸端端,主控制器須要在串行時鐘上升沿之前將數(shù)據(jù)輸入到該引腳,供ISD芯片輸入。串行輸出(MISO):主控制器可以通過該引腳讀取ISD4004芯片的地址等信息,數(shù)據(jù)通過串行方式輸出,如果ISD芯片未上電時,該引腳呈高阻狀態(tài)。串行時鐘(SCLK):該引腳為時鐘信號輸入端,由主控制器產(chǎn)生,,MOSI 和MISO 共用該時鐘信號進(jìn)行數(shù)據(jù)傳輸。SCLK上升時數(shù)據(jù)沿鎖存到ISD芯片,在下降沿移出ISD芯片。中斷(/INT):本引腳是漏極開路輸出,當(dāng)ISD芯片檢測到EOM 或OVF 時,該引腳變?yōu)榈碗娖讲⒈3?。該狀態(tài)會在下一個數(shù)據(jù)發(fā)送周期開始時清除。用RINT指令也可讀取該狀態(tài)。OVF 標(biāo)志表示ISD的錄音或放音操作已到達(dá)存儲器的尾端。EOM標(biāo)志只有在放音中檢測到內(nèi)部的EOM 標(biāo)志時,該狀態(tài)位才會置1。行地址時鐘(RAC):該引腳是漏極開路輸出,可用于存儲管理技術(shù)。一個RAC周期表示ISD芯片內(nèi)部的存儲器存儲或讀取了一行數(shù)據(jù)。當(dāng)芯片在快進(jìn)模式下時RAC一個周期的高電平218.75us低電平31.25us,正常模式下RAC一個周期的高電平175ms低電平25ms。存儲單元(2400行):ISD4004芯片內(nèi)部的存儲器的空間與普通的存儲器結(jié)構(gòu)不一樣,普通存儲器一般是按字節(jié)進(jìn)行存儲的,而該存儲器的數(shù)據(jù)是按照行進(jìn)行存儲的,所以該存儲器的容量大小用行來計(jì)數(shù)。外部時鐘(XCLK):該引腳為音頻采樣時鐘輸入端,正常情況下該芯片不須接外部時鐘。因?yàn)樵撔酒瑑?nèi)部自帶8.0KHz的采樣時鐘,該芯片在8KHz采樣頻率下能夠錄制480秒的語音信息,如果要延長錄制的時間就要從該引腳輸入其他頻率的采樣時鐘信號,輸入的時鐘信號可以為4.0KHz、5.3 KHz、6.4 KHz、8.0 KHz,輸入時鐘信號頻率越低錄制時間越長。如果已8.0 KHz采樣頻率進(jìn)行音頻錄制則該引腳直接接地。自動靜噪(AMCAP):該引腳須要外接電容以削弱系統(tǒng)采樣時鐘帶來的噪聲信號,類似于旁路濾波電容。該引腳實(shí)際上是內(nèi)部信號電平峰值檢測電路的一部分,該電路能夠檢測出的峰值電平與預(yù)設(shè)的電平閾值進(jìn)行比較,若音頻信號電平低于內(nèi)部設(shè)定的閾值以下時,就會使該信號衰弱,這樣會使有用信號的更清晰。當(dāng)該芯片采用不同頻率進(jìn)行采樣時該引腳對地接的電容值也會不同。通常在8 KHz的采樣頻率下該引腳對地接1000uF的電容。當(dāng)采樣信號比較大時,自動靜噪電路不對信號進(jìn)行衰減,靜音時衰減6dB。若要提升電路對信號幅度的響應(yīng)速度則該引腳接VCCA,禁止靜噪功能。3.3功放芯片TDA2822MTDA2822M是飛利浦公司利用意法半導(dǎo)體(ST)結(jié)構(gòu)設(shè)計(jì)的單片雙通道集成功率放大電路,該芯片外圍電路元器件少、對音源放大失真性非常低、供電范圍大1.5V15V、價(jià)格便宜等優(yōu)點(diǎn),使得很多硬件設(shè)計(jì)師在設(shè)計(jì)一些涉及音頻系列產(chǎn)品都采用它為音頻功放元件。在我們生活中經(jīng)常見到的收音機(jī)、磁帶式錄音機(jī)、碟機(jī)等產(chǎn)品中就是采用這種芯片作為音頻放大元件。該芯片在電壓低至1.8V時仍能工作,交越失真也小,靜態(tài)電流小使得它應(yīng)用的范圍變得更加的廣泛。該芯片有2種封裝模式,有8個引腳,內(nèi)部集成了2個獨(dú)立的放大器,因此可以用來做為立體聲音頻放大電路,還可以將這2個放大器通過橋接的方式連接起來提升信號的放大倍數(shù)。圖3-3 TDA2822M引腳圖片4 電路設(shè)計(jì)4.1時鐘電路時鐘電路由12MHz晶振和2個30pF的電容構(gòu)成時鐘震蕩電路,為單片機(jī)提供穩(wěn)定的時鐘信號。圖4-1 時鐘電路4.2復(fù)位電路復(fù)位電路在微機(jī)系統(tǒng)中是一個很簡單的電路但是卻非常的重要,如果該電路出現(xiàn)故障那么整個微機(jī)系統(tǒng)都無法運(yùn)行。它的主要功能是上電復(fù)位,保障上電時能正確的啟動系統(tǒng)。當(dāng)系統(tǒng)受到某種外因使系統(tǒng)出現(xiàn)故障時,可以通過復(fù)位按鈕將系統(tǒng)復(fù)位恢復(fù)到正常工作狀態(tài)。圖4-2 為復(fù)位電路原理電路圖。圖4-2 復(fù)位電路4.3顯示電路采用lcd1602顯示模塊,該模塊是工業(yè)字符型液晶,能夠同時顯示16x02即32個字符。該模塊的內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個不同的點(diǎn)陣字符圖形,包括數(shù)字,英文大小寫字母和常用的符號等。1602通過D0D7的8位數(shù)據(jù)端傳送數(shù)據(jù)和指令,該端口接單片機(jī)的P0口。V0端口為調(diào)整顯示器的對比度該端口接10K的可變電阻,通過調(diào)節(jié)電阻的大小來控制顯示器的對比度。RS為寄存器選擇控制端,該端口接單片機(jī)的P24引腳,該引腳高電平為數(shù)據(jù)寄存器、低電平為指令寄存器。RW為讀寫控制端,該端口接單片機(jī)P25引腳。圖4-3為顯示電路原理圖。圖4-3 顯示電路4.4 3.3V電源電路該電路利用AMS1117-3.3穩(wěn)壓元件產(chǎn)生穩(wěn)定的3.3V電壓,為ISD4004芯片提供正常的工作電壓,AMS1117-3.3兩側(cè)分別接100nf的瓷片電容對電源進(jìn)行濾波以減少電源帶來的噪聲,3.3V輸出的對地接10uf的電容可以為ISD4004芯片提供瞬時的大電能供電要求,讓語音芯片時刻工作在最優(yōu)的環(huán)境有利于芯片發(fā)揮出最佳性能。圖4-4 3.3V電源電路4.5按鍵模塊該模塊由10K上拉電阻和輕觸按鈕組成,該電路的電阻和按鈕之間分別連接單片機(jī)的P34、P35、P36、P37引腳。當(dāng)按下按鈕時輸入為低電平,松開時恢復(fù)到高電平。通過該按鈕可以控制單片機(jī)進(jìn)行錄音、暫停、選擇、播放操作。圖4-5按鍵模塊4.6 ISD4004音頻處理模塊ISD4004的片選(SS)端接單片機(jī)的P20引腳,串行輸入(MOSI)端接單片機(jī)的P21,串行輸出(MISO)端接單片機(jī)的P21引腳;串行時鐘(SCLK)接單片機(jī)的P23引腳,中斷(INT)接單片機(jī)的P32引腳,電源(Vssd、Vssa)和串行時鐘的(XCLK)端接地(電源負(fù)極),電源(Vcca、Vccd)接3.3V電源正極。音源輸入電路由2個10K電阻、2個10nf無極電容和柱極話筒構(gòu)成。ANDOUT接阻容元件對外輸出。每個Vssd和Vcca分別從地線串聯(lián)一個0歐的電阻接入,這是模擬地和數(shù)字地隔離的一種很有效的方法,同時也能夠很好的屏蔽掉電路中的雜波信號的干擾。圖4-6 ISD4004音頻處理模塊4.7 TDA2822M功放電路TDA2822M芯片具有良好的音頻放大能力,且外圍電路元件少,電路簡單易于操作。該功放電路將芯片內(nèi)的2個運(yùn)放連接在一起組成單聲道橋式(BTL)輸出電路,IN2+引腳接了一個10K電阻可以很好的降低電路產(chǎn)生的噪聲。ISD4004輸出的音頻從端口Sing in輸入經(jīng)過TDA2822M內(nèi)部的2個差分放大器放大后輸出可推動功率為3W阻抗為4歐的音盆,音質(zhì)純凈無噪音。圖4-7 TDA2822M功放電路4.8總電路設(shè)計(jì)圖將以上各個電路圖進(jìn)行組合后為本次設(shè)計(jì)的最終設(shè)計(jì)電路圖(利用National Instruments中的Multiuse繪制)。圖4-8 總設(shè)計(jì)電路5 程序設(shè)計(jì) 程序設(shè)計(jì)主要分為三個部分,分別為主控制程序設(shè)計(jì)、錄音子程序和放音子程序。以下分別為三個部分設(shè)計(jì)思路。5.1主程序流程圖YYYYN開始錄音鍵按下并且ISD=0執(zhí)行錄音程序ISD=1初始化程序載入放音鍵按下并且ISD=0選擇鍵按下并且ISD=0停止鍵按下執(zhí)行放音程序ISD=1停止當(dāng)前操作ISD=1執(zhí)行錄音程序NNN主程序設(shè)計(jì)思路是通過單片機(jī)循環(huán)的掃描四個按鍵接口,如果檢測到某個按鍵被按下時當(dāng)松開該按鍵后就會轉(zhuǎn)過去執(zhí)行該按鍵所對應(yīng)子程序。例如當(dāng)單片機(jī)錄音按鍵按下時單片機(jī)就會轉(zhuǎn)到錄音子程序執(zhí)行,單片機(jī)放音按鍵按下時單片機(jī)就會轉(zhuǎn)到放音子程序執(zhí)行。每個狀態(tài)在執(zhí)行時切換下一個狀態(tài)時都需要按下停止按鍵清除狀態(tài)標(biāo)志。程序代碼見附錄2的主程序部分.圖5-1 主程序流程圖5.2錄音程序流程圖當(dāng)單片機(jī)執(zhí)行該程序時先是向語音芯片發(fā)送八位上電指令代碼使語音芯片開啟,接著發(fā)送十六位地址+當(dāng)前地址錄音八位指令代碼,再將語音芯片片選端拉低后再置高位,再發(fā)送指定地址錄音指令這時語音芯片就會從當(dāng)前的地址開始進(jìn)行錄音。程序代碼見附錄2的ISD4004驅(qū)動程序部分。 開始芯片上電發(fā)送當(dāng)前地址錄音指令發(fā)送十六位地址結(jié)束發(fā)送指定地址錄音指令圖5-2 錄音程序流程圖5.3放音序流程圖 開始芯片上電發(fā)送當(dāng)前地址放音指令發(fā)送十六位地址結(jié)束發(fā)送指定地址錄放指令當(dāng)單片機(jī)執(zhí)行該程序時先是向語音芯片發(fā)送八位上電指令代碼使語音芯片開啟,接著發(fā)送十六位地址+當(dāng)前地址放音八位指令代碼,再將語音芯片片選端拉低后再置高位,再發(fā)送指定地址放音指令這時語音芯片就會從當(dāng)前的地址開始進(jìn)行放音。程序代碼見附錄2的ISD4004驅(qū)動程序部分。圖5-3 放音程序流程圖6實(shí)物調(diào)試6.1程序編譯和下載使用Keil uVision5對硬件進(jìn)行程序設(shè)計(jì),圖6-1程序編譯通過無錯誤無警告窗口圖片。圖6-1 程序編譯通過圖片使用STC系列單片機(jī)專用的芯片程序燒寫軟件STC-ISP.exe,將編譯通過的HEX文件傳輸?shù)絾纹瑱C(jī)芯片中,圖6-2為單片機(jī)程序下載界面圖片。圖6-2 芯片程序下載圖6.2 實(shí)物調(diào)試最終結(jié)果展示以下為實(shí)物最終調(diào)試完成品和各個功能演示圖片。圖6-3 各部分模塊實(shí)物圖 圖6-4 開機(jī)狀態(tài)圖6-5 選擇錄音地址 圖6-6 錄音狀態(tài)圖6-7 放音狀態(tài) 圖6-8 暫停狀態(tài)6.3 實(shí)物調(diào)試過程及故障解決方法在實(shí)物調(diào)試過程中出現(xiàn)以下問題:(1)設(shè)計(jì)過程中由于將單片機(jī)復(fù)位電路的電容用大了導(dǎo)致程序無法下載到單片機(jī)芯片中。在調(diào)試過程中出現(xiàn)錄音無效,無法錄取聲音,經(jīng)檢查發(fā)現(xiàn)柱極話筒沒有接入電源。解決方法:把復(fù)位電容換成10uf的,接好柱極話筒的電源。(2)在播放錄音時出現(xiàn)無法按照指定的地址進(jìn)行播放操作,播放時時按照無序的方式放音的,這種現(xiàn)象是由于程序邏輯出現(xiàn)問題,經(jīng)過仔細(xì)查找發(fā)現(xiàn)是發(fā)送指令的順序出現(xiàn)了錯誤,解決方法:修改程序后故障修復(fù)。(3)錄完一段聲音后進(jìn)行播放發(fā)現(xiàn)揚(yáng)聲器有很大的噪音,噪聲幾乎掩蓋了音頻信號,經(jīng)過排除法分析發(fā)現(xiàn)噪聲來自于錄取的音頻而不是來自于音頻放大器電路的,首先想到的是利用濾波電路將噪聲過濾,但是發(fā)現(xiàn)很難將噪聲除盡而且輸出的聲音有點(diǎn)失真。因此通過濾波來去除噪聲并不好,那么只能通過將噪聲源去除才是最完美的,通過上網(wǎng)有關(guān)音頻設(shè)計(jì)的論壇來查找噪聲產(chǎn)生的原因進(jìn)行分析并仔細(xì)閱讀ISD4004的資料后發(fā)現(xiàn)噪聲來源于ISD4004芯片電路的模擬地線和數(shù)字地線沒有分開布線所引起的。模擬地和數(shù)字地的分割可以采用串接磁珠、零歐電阻、電容和電感來實(shí)現(xiàn),通過實(shí)驗(yàn)發(fā)現(xiàn)采用零歐的電阻效果最佳。解決方法:對ISD4004和TDA2822M的電路從新設(shè)計(jì),并利用PCB布線軟件繪制實(shí)物電路排布。然后從新制作該部分實(shí)物。以下是原錄音部分實(shí)物圖(圖6-9和圖6-10)和重做后的實(shí)物圖(圖6-11和圖6-12),以及PCB圖(圖6-13)。PCB繪制并沒有采用標(biāo)準(zhǔn)的布線規(guī)則,而是利用和實(shí)物材料以及簡潔易懂的方式來布線的,其中紫色的表示地線,綠色的表示跳線,灰綠色表示3.3V電路,其他線用紅色表示。按照1:1的PCB布線圖再次自作音頻部分電路板后進(jìn)行測試發(fā)現(xiàn)噪音成功的去除了。 圖6-9 原錄音部分實(shí)物背面圖 圖6-10 重做后的錄音部分實(shí)物背面圖 圖6-11 原錄音部分實(shí)物正面圖 圖6-12 重做后的錄音部分實(shí)物正面圖圖6-13 PCB布線圖結(jié) 論本設(shè)計(jì)基于單片機(jī)設(shè)計(jì)的一個能實(shí)現(xiàn)語音存儲和回放功能的系統(tǒng),利用STC90C51RD+單片機(jī)來控制ISD4004語音芯片成功的實(shí)現(xiàn)了多條語音的錄取和回放功能(圖6-5、6-6和6-7實(shí)物圖)。該設(shè)計(jì)是通過受話器將震動的聲波信號轉(zhuǎn)換為電信號, ISD4004芯片按照8KHz的采樣頻率對該電信號直接取樣,然后將這些取樣信號直接存儲在ISD4004內(nèi)部的存儲空間中。放音時ISD4004芯片的信號輸出引腳會將錄取的電信號按照取樣的順序還原出來,將這個信號再經(jīng)過低通濾波電路濾波后再放大濾波后的信號通過音盆還原成聲音。該設(shè)計(jì)的難點(diǎn)主要是對ISD4004芯片的結(jié)構(gòu)和控制方式不熟以及音頻采集時電路產(chǎn)生的高頻噪聲難以去除。優(yōu)點(diǎn)為錄取的聲音真實(shí)度高不失真不變色,穩(wěn)定性也很好。本次畢業(yè)設(shè)計(jì)增加了我們對電子產(chǎn)品開發(fā)的經(jīng)驗(yàn)和知識,也使得我們今后在單片機(jī)設(shè)計(jì)這方面走的更高更遠(yuǎn),也讓我們學(xué)會了如何使用陌生的芯片,這樣能夠讓我們認(rèn)識更多的芯片從而設(shè)計(jì)出更加優(yōu)秀的設(shè)計(jì)。參考文獻(xiàn)1 馮軍,謝嘉奎.電子線路M.北京:高等教育社,2010.2 何欽銘,顏暉. C語言程序設(shè)計(jì)M.北京:高等教育社,2013.3 童詩白,華成英.模擬電子技術(shù)基礎(chǔ)M.北京:高等教育社,2006.4 楊美仙.單片機(jī)的發(fā)展及其應(yīng)用J.科技信息(學(xué)術(shù)研究),2007,(35).239+241.5 沈紅衛(wèi).基于單片機(jī)的智能系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)M.北京:電子工業(yè)出版社,2005.6 豈興明.51單片機(jī)編程基礎(chǔ)與開發(fā)實(shí)例詳解M.北京:人民郵電出版社,2008.7 于曉東.80C51單片機(jī)原理、開發(fā)與應(yīng)用實(shí)例M.北京:中國電力出版社,2008.8 陳忠平.基于Proteus的51系列單片機(jī)設(shè)計(jì)與仿真M.北京:電子工業(yè)出版社,2015.9 李寶堂.三端穩(wěn)壓集成塊在教學(xué)儀器中的應(yīng)用J.教學(xué)儀器與實(shí)驗(yàn),1993,(5):20-22.10 王振紅,李洋,郝成祥.ISD4004語音芯片的工作原理及其在智能控制系統(tǒng)中應(yīng)用J.電子器件,2002,25(1):79-83.附錄附錄1元件清單表1 元件清單元件名稱數(shù)目STC90C516RD+1ISD40041TDA2822M1LCD160210貼片電阻710k貼片電阻220.1uf安規(guī)電容20.01uf安規(guī)電容30.1uf貼片電容310uf電解電容4470uf電解電容2100k電位器1ASM1177-3.31輕觸按鈕4柱極話筒15V8音盆112MHz晶振1附錄2程序主程序:#include#include#include#include #include#include sbit K1=P34;/錄音按鍵sbit K2=P35;/放音按鍵sbit K3=P36;/暫停按鍵sbit K4=P37;/選地址按鍵unsigned char add14=0x00,0x58,0xb0,0x08;/低8位地址存儲數(shù)組unsigned char add24=0x00,0x02,0x04,0x07;/高8位地址存儲數(shù)組/*主程序*/void main() char adds16; unsigned int tpx=0; int w; w=0; addl=0x00; addh=0x00; P1=0xFF; P2=0XFF; P3=0XFF; LCD_Init(); LCD_Write_String(4,0,Welecome); LCD_Write_String(0,1,GraduationDesign); while(1) /*檢測到錄音命令程序*/ if(K1=0) delayms(10); while(K1=0); /松手判斷 LCD_Clear(); LCD_Write_String(0,1,Record:); tpx=(int)(addl+addh*256); sprintf(adds,%d,tpx); LCD_Write_String(7,1,adds); delayms(500); rec(); delayms(10); /*檢測到放音命令程序*/ if(K2=0) delayms(10); while(K2=0); /松手判斷 delayms(500); LCD_Clear(); LCD_Write_String(0,1,Sound:); tpx=(int)(addl+addh*256); sprintf(adds,%d,tpx); LCD_Write_String(6,1,adds); play(); delayms(10); /*檢測到停止命令程序*/ if(K3=0) delayms(10); while(K3=0); /松手判斷 LCD_Clear(); LCD_Write_String(6,0,STOP); stop(); Dstop(); /*檢測到選地址命令程序*/ if(K4=0) while(K4=0); /松手判斷 w+; if(w3) w=0; addl=add1w;addh=add2w;LCD_Clear(); LCD_Write_String(0,1,Selecter:);tpx=(int)(addl+addh*256); sprintf(adds,%d,tpx); LCD_Write_String(9,1,adds); ISD4004驅(qū)動程序:#includesbit SS=P20; sbit MOSI=P21;sbit MISO=P22;sbit SCLK=P23;uint addl;/全局變量放音地址低8位地址uint addh;/全局變量放音地址高8位地址/*發(fā)送8位數(shù)據(jù)*/void sds8(unsigned char addx) uint y;for(y=0;yy)&0x01) MOSI=1;else MOSI=0;_nop_();_nop_();_nop_();SCLK=1;_nop_();_nop_();_nop_();SCLK=0; /*放音函數(shù)*/void play() SS=1;SS=0;MOSI=0;SCLK=0;sds8(0x20); /發(fā)送上電控制指令SS=1; /上電結(jié)束delayms(25);SS=0;MOSI=0; /發(fā)送地址SCLK=0;sds8(addl); /發(fā)送放音地址低8位地址sds8(addh); /發(fā)送放音地址高8位地址sds8(0xe0); /發(fā)送控制指令SS=1;delayms(25);SS=0;MOSI=0;/放音SCLK=0;sds8(0xf0);/發(fā)送放音控制指令SS=1; /*錄音程序*/void rec() SS=0;MOSI=0; /發(fā)送開始SCLK=0;sds8(0x20); /發(fā)送上電控制指令SS=1; /上電結(jié)束delayms(25);SS=0;MOSI=0; /發(fā)送開始SCLK=0;sds8(0x20);SS=1; /上電結(jié)束delayms(50);SS=0;MOSI=0; /發(fā)送地址 SCLK=0;sds8(addl); /發(fā)送錄音地址低8位地址sds8(addh); /發(fā)送錄音地址高8位地址sds8(0xa0); /發(fā)送控制指令SS=1; delayms(25);SS=0;MOSI=0;SCLK=0; sds8(0xb0); /發(fā)送錄音控制指令SS=1; /*停止當(dāng)前操作程序*/void stop() SS=1;SS=0;MOSI=0; SCLK=0;sds8(0x30);/發(fā)送控制指令SS=1; delayms(50);/*停止當(dāng)前操作并掉電*/void Dstop() SS=1;SS=0;MOSI=0;SCLK=0;sds8(0x10);/發(fā)送控制指令SS=1; delayms(50);1602顯示驅(qū)動程序:#include 1602.h#include delay.h#define CHECK_BUSY/是否使用判斷忙語句條件,后面使用條件編譯sbit RS = P24; /端口定義 sbit R

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論