?
隨著語言的處理技術在工業(yè)生產、交通、通信等方面的運用得到不斷創(chuàng)新。數(shù)碼錄音放音系統(tǒng)已得到了越來越多的人的青睞,通過對多種錄音放音系統(tǒng)的設計方案進行了比較和分析,本論文最終選定以STC89C52單片機設計了一個數(shù)碼錄音放音系統(tǒng)。
本文提出并設計實現(xiàn)了基于STC89C52單片機和ISD4004語音芯片的數(shù)碼錄音放音系統(tǒng)方案。首先介紹了設計方案,接著進行了系統(tǒng)的硬件設計,包括單片機最小系統(tǒng)電路的設計、信號收集放大處理電路設計、按鍵控制電路的設計、液晶顯示電路的設計等。設計中以STC89C52單片機主控制為核心,采用ISD公司制造的ISD4004語音芯片實現(xiàn)數(shù)碼錄音放音系統(tǒng)的功能。其中按鍵控制電路對整個系統(tǒng)進行控制,顯示電路用LCD1602更直觀的把錄音放音等相關信息顯示,信號收集放大處理電路放大器采用通用型音頻功率放大器LM386來實現(xiàn)。系統(tǒng)模塊包括主程序模塊、語音信號的采集模塊、鍵盤掃描模塊、信息顯示模塊等,進行了程序流程的設計,編寫了程序代碼。本系統(tǒng)實現(xiàn)了語音數(shù)據(jù)的錄音、播放、暫停、快進、快退、錄音條目選擇以及LCD1602等顯示相關操作等功能,設計具有一定的應用價值。
引言
在經濟不斷發(fā)展,電子科學技術迅猛提升的現(xiàn)今。數(shù)碼錄音對于現(xiàn)如今的眾多電子產品來說,已是常帶有的功能了,它已經被用在了許多的地方。例如手機、電腦等人們常用的電子設備上,以及社交App微信、QQ等,語音信息為人們的生活提供了很大便利。在工業(yè)生產、交通、通信等方面的運用得到不斷創(chuàng)新。
在你無法憑借記憶記住重要談話,或者重要會議的重要內容的時候,它便體現(xiàn)除了它的優(yōu)勢,清晰完整無誤的記錄下你要記錄的東西,而你能夠拿出更多的時間來處理其他事情。
本次設計的數(shù)碼錄音放音系統(tǒng),就是在此基礎上添加一些更適用的功能,能錄制多條語音信息的同時還能實現(xiàn)快進快退、繼續(xù)暫停功能。能從錄音中更好的提取的信息。設計具有一定的應用價值。
1 系統(tǒng)概述
1.1 任務要求
綜合運用所學的模擬電子技術、數(shù)字邏輯電路、C語言、單片機原理及應用、傳感器等專業(yè)知識,設計出一套數(shù)碼錄音放音系統(tǒng)。系統(tǒng)實現(xiàn)錄音、放音、播放停止、快進快退、刪除、顯示相關信息等功能。
1.2 主要研究內容
本次設計就利用單片機和語音芯片來實現(xiàn)一個數(shù)碼錄音放音系統(tǒng)。對于數(shù)碼錄音放音系統(tǒng)的最基本要求便是可以錄音、播放、暫停、快進、快退、顯示相關信息、錄音條目選擇、刪除要求。STC89C52該款單片機資源豐富,再加上與ISD4004語音芯片的結合來實現(xiàn)語音的存儲與回放,通過單片機的控制可以實現(xiàn)語音的錄放的功能。
主要研究內容由信號處理模塊、語音錄放模塊、和音頻放大模塊三部分組成。并選用STC89C52為主控器。利用51型單片機對ISD語音芯片的控制實現(xiàn)對語音的錄、放。并加入功放、麥克、揚聲器等人性化功能。
采用語音芯片進行信號處理并把處理結果送往主控器。由主控器控制語音模塊的錄放。語音錄放模塊主要由ISD語音芯片及一些外圍元件組成,主要完成語音的錄放及語音的存儲等。音頻放大模塊主要由LM386及部分外圍器件構成,主要是對錄放的聲音信號進行放大。
鑒于此, 本系統(tǒng)的設計采用ISD4004語音芯片和STC89C52單片機的結合,完成數(shù)碼錄音錄放系統(tǒng)的設計。并通過一些外部人機交互功能,設計出一套數(shù)碼錄音放音系統(tǒng)。系統(tǒng)實現(xiàn)錄音、放音、播放停止、快進快退、刪除、顯示相關信息等功能。
2 設計方案及元器件介紹
2.1系統(tǒng)設計總體方案
數(shù)碼錄音放音系統(tǒng)的主要功能是實現(xiàn)語音的錄音、播放與停止、快進與快退、刪除、播放選擇以及能顯示相關信息。要實現(xiàn)語音的錄音、播放與停止、快進與快退、刪除、播放選擇的方法很多,可供選擇的器件也很多。由于單片機等微控制器的出現(xiàn)和數(shù)字電路技術的發(fā)展,使得現(xiàn)在語音的錄音與放音、快進與快退變得易于實現(xiàn)。本系統(tǒng)設計采用單片機作為微控制器。選用字長為8位的STC89C52單片機作為控制器。
目前能與單片機配合使用實現(xiàn)本系統(tǒng)設計的語音芯片有很多,其中不乏性能優(yōu)越的語言芯片。ISD公司生產的ISD4004語音芯片就是一款性能優(yōu)越的語音芯片。ISD4004芯片采用CMOS技術,內含振蕩器、防混淆濾波器、平滑濾波器、音頻放大器、自動靜噪及高密度多電平閃爍存貯陣列。引腳包括電源、時鐘、語音信號模擬輸入/輸出端、與MCU接口(SPI接口)幾部分。芯片采用多電平直接模擬量存儲技術,每個采樣值直接存貯在片內閃爍存貯器中,因此能夠非常真實、自然地再現(xiàn)語音。
ISD4004系列單片錄放時間為8~16 min,采樣頻率可為4.0/5.3/6.4/8.0 kHz,頻率越低,錄放時間越長,而音質則有所下降。芯片設計基于所有操作必須由微控制器控制,操作命令可通過串行通信接口(SPI或Mi—crowire)送入。由于ISD4004的眾多優(yōu)點,本設計就采用它作為錄放音器件。
數(shù)碼錄音放音系統(tǒng)設計主要有六個部分,錄音模塊部分、放大器部分、控制處理部分、數(shù)據(jù)存儲部分、中斷按鍵部分、顯示部分。如圖2-1所示。
以STC89C52單片機作為主控器,通過ISD4004語音芯片進行語音的錄制與播放。由語音采集電路采集的經過ISD4004的處理與保存,錄好的語音信息再通過LM386功放進行信號的放大再播放。中斷按鍵與單片機相連接通過單片機的控制從而實現(xiàn)系統(tǒng)的功能。LCD1602與單片機配合顯示數(shù)碼錄音放音系統(tǒng)的各種信息。以上為本次設計的電路設計總體方案。
2.2主要器件介紹
2.2.1 ISD4004語音芯片
ISD4004語音芯片與其他類型語音芯片相比, ISD4004具有如下優(yōu)點: 首先是記錄聲音沒有段長度限制, 并且聲音記錄不需要A/D 轉換和壓縮。其次, 片內信息存于FLASH存貯器中,可在斷電情況下保存100 年(典型值),反復錄音10 0000次。此外ISD4004具有記錄時間長(8-16分鐘, 本次設計采用的為8分鐘的ISD4004語音芯片)的優(yōu)點。最后ISD4004開發(fā)應用還具有所需搭配的電路較為簡單的優(yōu)點。ISD4004芯片管腳如圖2-2所示。
芯片采用的多電平直接模擬量存儲技術, 每個采樣值直接存貯在片內FLASH存貯器中,因此能夠非常真實、自然地再現(xiàn)語音、音樂、音調和效果聲,避免了一般固體錄音電路因量化和壓縮造成的量化噪聲和"金屬聲"。基于以上的優(yōu)點,這也是我這次論文選擇該語音芯片的原因。
該芯片的上電順序:器件延時TPUD后才能開始操作。因此,用戶發(fā)完上電指令后,必須等待 TPUD,才能發(fā)出一條操作指令。
-
發(fā)POWERUP 命令;
-
等待TPUD(上電延時);
-
發(fā)地址值為00 的SETPLAY 命令;
-
發(fā)PLAY 命令器件會從此00 地址開始放音,當出現(xiàn)EOM 時,立即中斷,停止放音。
-
發(fā)POWERUP命令;
-
等待TPUD(上電延時);
-
發(fā)POWERUP命令
-
等待2倍TPUD;
-
發(fā)地址值為00的SETREC命令;
-
發(fā)REC命令,器件便從00地址開始錄音,一直到出現(xiàn)OVF(存貯器末尾)時,錄音停止。
LCD1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊,它有若干個5X7或者5X10等點陣字符位組成,每個點陣字符位都可以顯示一個字符。每位之間有一個點距的間隔每行之間也有也有間隔起到了字符間距和行間距的作用,正因為如此,所以他不能很好的顯示圖形。目前常用16*1,16*2,20*2和40*2行等的模塊。
一般的LCD1602字符型液晶顯示器的內部控制器大部分為HD44780,能夠顯示英文字母、阿拉伯數(shù)字、日文片假名和一般性符號。
LCD1602是指顯示的內容為16X2,即可以顯示兩行,每行16個字符液晶模塊。一般1602字符型液晶顯示器實物如圖2-4如下。
(3)提供各種控制命令,如:清屏、字符閃爍、光標閃爍、顯示移位等多種功能
(4)有80字節(jié)顯示數(shù)據(jù)存儲器DDRAM
(5)內建有160個5X7點陣的字型的字符發(fā)生器CGROM
(6)8個可由用戶自定義的5X7的字符發(fā)生器CGRAM
STC89C52RC是宏晶科技公司生產的一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash存儲器。STC89C52RC使用經典的MCS-51內核,但做了很多的改進使得芯片具有傳統(tǒng)51單片機不具備的功能。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89C52RC為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。 STC89C52RC 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。最高運作頻率35MHz,6T/12T可選。其引腳圖如圖2-4所示。
(1)8位CPU,8kbytes程序存儲器(ROM);
(2)256bytes的數(shù)據(jù)存儲器(RAM);
(3)32條I/O口線,111條指令,大部分為單字節(jié)指令;
(5)3個可編程定時/計數(shù)器,6個中斷源,2個優(yōu)先級;
(6)I/O口:4個8位并行I/O口,既可用作輸入,也可用作輸出;
(7)T/C:3個定時/記數(shù)器,既可以工作在定時模式,也可以工作在記數(shù)模式;
(8)一個全雙工
UART(通用異步接收發(fā)送器)的串行I/O口,用于實現(xiàn)單片機之間或單片機與微機之間的串行通信;
(9)片內振蕩器和時鐘產生電路,石英晶體和微調電容需要外接。最高振蕩頻率為12M。
LM386是國家半導體公司生產的音頻功率放大器,主要應用于低電壓消費類產品。為使外圍元件最少,電壓增益內置為20。但在1腳和8腳之間增加一只外接電阻和電容,便可將電壓增益調為任意值,直至 200。LM386的封裝形式有塑封8引線雙列直插式和貼片式,原理圖如圖2-6所示。
(1)靜態(tài)功耗低,約為4mA,可用于電池供電;
(2)工作電壓范圍寬,4-12V or 5-18V;
3 硬件設計
3.1 系統(tǒng)各部分電路設計
3.1.1單片機最小系統(tǒng)電路 單片機最小系統(tǒng),也稱為最小應用系統(tǒng),它是指由最少元件組成可以使單片機正常工作的系統(tǒng)。單片機最小系統(tǒng)大致包括電源電路、復位電路、晶振電路三部分組成。單片機最小系統(tǒng)電路如圖3-1所示。
電源電路:作為電子元器件,單片機也是需要供電的。單片機供電有一個范圍,本系統(tǒng)使用的STC89C52單片機,它一般使用5V電源。在使用的時候,可以從USB接口當中獲取5V電源。為此搭建了電源電路如圖3-2所示。
復位電路:單片機通電需要復位一次,因此,復位電路也是單片機最小系統(tǒng)的一部分。由電容C1與電阻R07組成的復位電路。單片機通常有一個低電壓復位引腳,即當輸入到低電平時,單片機復位。當電阻給電容器充電時,電容器的電壓緩慢上升到VCC。當芯片復位腳接近低電平時,芯片復位接近VCC,因此芯片停止復位并完成復位。
晶振電路:單片機正常工作是需要一個時鐘的,因此需要在晶振引腳外接一個晶振。單片機有兩個引腳為外部晶振的輸入口,晶振的兩端接這兩個IO口。把晶振直接的連接在IO口上會導致系統(tǒng)工作不穩(wěn)定,因為在晶振啟振一瞬間會產生電感,為了消除電感帶來的干擾,可分別在晶振的兩端接電容到地,這兩個電容取值在10~33P之間即可,從而讓晶振工作的時候更加穩(wěn)定。
3.1.2 LCD1602顯示電路
數(shù)據(jù)端口D0至D7與單片機P0.0至P0.7的I/O口相連用于數(shù)據(jù)的傳輸,數(shù)據(jù)/命令選擇RS與單片機P2.7相連,讀/寫選擇接電源地線(高電平時進行讀操作,低電平時進行寫操作)。使能端E連接單片機P2.6口。由單片機P2.6與P2.7端進行控制。LCD1602顯示電路如圖3-3所示。
信號收集放大處理電路由ISD4004語音芯片與LM386芯片組成。ISD4004語音芯片主要負責采集信號。LM386芯片主要負責信號的放大處理。由于ISD4004語音芯片需要3.3V的電壓供電。因此需要搭建一個由3.3V的芯片(AMS117-3.3V電源穩(wěn)壓芯片)組成的電路,把5V電壓轉成3.3V從而給ISD4004語音芯片供電。3.3V電壓如圖3-4所示。
片選端口(SS)連接于單片機P3.6口。串行輸出端口(MOSI)連接于單片機P3.5口。芯片數(shù)據(jù)地(Vssd)與模擬地(Vssa)全部與地線相接。外部時鐘(XCLK)連接地線。同相模擬輸入(IN+)與反相模擬輸入(IN-)分別與電容、電阻以及麥克風組成信號采集電路。自動靜噪(AMCAP)接電容接地。音頻輸出(AUDOUT)與電位器R22串聯(lián)接與LM386芯片信號輸入端口進行信號的放大處理。電位器R22的作用是調節(jié)音量大小。LM386兩個增益端口1腳與8腳相連,中間串聯(lián)一個1K電阻與一個10uF的電容。當兩個增益端口相連10uF的電容時,電壓放大倍數(shù)為200倍。5腳(Vout)為信號輸出端口串聯(lián)電容C10連接喇叭可放音。信號收集放大處理電路如圖3-5所示。
按鍵控制模塊由按鍵開關S0-S4分別與單片機的P1.2-P1.6端口連接,用于控制單片機實現(xiàn)系統(tǒng)功能。S0為錄音條目切換,S1為錄音按鍵,S2為放音按鍵S3為刪除按鍵,S4為退出按鍵。按鍵控制電路如圖3-6所示。
4 軟件設計
4.1 程序總體設計
本次畢業(yè)設計的程序用全部由C語言編寫完成,編程軟件用的是Keli uVision5來進行程序的編寫。編寫程序時采用多文件編寫方式,運用時在主函數(shù)里調用即可。
設計以MCS-51系列的單片機作為主控核心,ISD4004做錄放音部分及外部電路組成的一個數(shù)碼錄音放音系統(tǒng)。系統(tǒng)實現(xiàn)錄音、放音、播放停止、快進快退、刪除、顯示相關信息等功能。
程序設計中由以下幾個主體部分組成,主程序處理部分、按鍵處理部分、ISD4004語音處理部分、LCD1602信息顯示部分。程序以多文件方式進行編寫,更易于對程序的處理與調用。
程序流程圖如圖4-1所示。
圖4-1程序總體框圖
主程序如下;對LCD1602進行初始化,并顯示上電后的信息,再對ISD、計數(shù)器進行初始化,打開芯片使能端并延時。在while循環(huán)中調用各部分函數(shù),使之顯示數(shù)碼錄音放音系統(tǒng)的功能。
L1602_string(1,1,"lcd init");
錄音程序設計大致為三部分,即通信命令函數(shù)(SendCmd)、自動放音函數(shù)(isd_autoplay)、自動錄音函數(shù)(isd_autorecord)。
通信命令函數(shù):內容主要包括ISD芯片通信端spi開啟與關閉,以及錄放音地址的配置,還有命令的調用。
void SendCmd(unsigned char cmd,unsigned int addr)
ar=(unsigned char)(addr);
spi_send(ar); //發(fā)送地址低位
ar=(unsigned char)(addr>>8);
spi_send(ar); //發(fā)送地址高位
5 系統(tǒng)測試
系統(tǒng)上電之后,按下自鎖開關LCD1602會進入錄音條目選擇界面。按鍵開關從左至右功能分別為條目選擇、錄音、播放、刪除、退出。條目選擇共4條,共可以錄音4條語音信息。選擇相對應的條目可以實現(xiàn)錄音、播放、刪除。
當按下錄音鍵后,系統(tǒng)開始錄音。錄音完畢時,按下退出鍵。再按播放鍵可播放錄音內容,同時第一個按鍵能實現(xiàn)快進,第二個按鍵能實現(xiàn)快退,第三與第四按鍵能實現(xiàn)繼續(xù)與停止。只有在播放模式下這四個按鍵才能實現(xiàn)快進、快退、繼續(xù)與停止的功能。
選擇相對應的條目,在按下刪除鍵即可刪去該條目的語音信息。通過調節(jié)電位器可以調節(jié)喇叭音量大小。
5.3 系統(tǒng)的不足及改進方式
本系統(tǒng)在播放錄音時會有少量的噪音,可能由以下原因造成:
(1)整個系統(tǒng)完全是手工焊制,線路之間存在干擾;
(2)ISD4004語音芯片的數(shù)字地與模擬地沒有分別走線,全部接到了一起,存在干擾;
(3)語音輸入放大電路的放大倍數(shù)不夠,噪聲沒有得到足夠的抑制。
另外由于語音芯片的限制,該錄音芯片時間過短,可選取存儲空間大一些的芯片來取代。該語音芯片也不是數(shù)字信息存儲,不能和PC端交互,在改良時,可以選取數(shù)字存儲類的芯片。
整個系統(tǒng)的設計合理,外圍電路結構簡單,方便調試;單片機余留有I/0 口,方便系統(tǒng)的升級和擴展;單片機的所有程序均使用c一51進行編寫,方便調試和閱讀。整個系統(tǒng)工作穩(wěn)定,操作方便。本設計的設計原理完全可以用在公共汽車上,作為語音報站器使用,也可以用在銀行和醫(yī)院等一些需要自動播報語音信息的公共場所。在本設計的基礎上稍加擴充,就可以滿足實際應用的需要。
需要完整的資料可以加入我的紛傳圈子,里面有資源壓縮包的百度網盤下載地址及提取碼。