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