基于ISD4004的語音錄放系統(tǒng)設(shè)計_第1頁
基于ISD4004的語音錄放系統(tǒng)設(shè)計_第2頁
基于ISD4004的語音錄放系統(tǒng)設(shè)計_第3頁
基于ISD4004的語音錄放系統(tǒng)設(shè)計_第4頁
基于ISD4004的語音錄放系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩100頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

本科畢業(yè)設(shè)計(2012屆)題目語音錄放系統(tǒng)的設(shè)計學(xué)院專業(yè)班級學(xué)號學(xué)生姓名指導(dǎo)教師完成日期摘要本論文主要實現(xiàn)語音錄放系統(tǒng)的設(shè)計。語音錄放系統(tǒng)主要包括單片機控制模塊、語音采集模塊、語音處理模塊、信號放大模塊,其中單片機控制模塊是整個系統(tǒng)設(shè)計的關(guān)鍵。在語音的錄放過程中,單片機通過SPI通信方式與語音模塊進行通訊,來實現(xiàn)語音的錄音與播放。由于每段錄音都對應(yīng)著不同的地址,因此在播放錄音時,需要發(fā)送需要播放的地址即可播放。語音錄放系統(tǒng)的信號處理過程主要包括語音的采集、信號的放大和語音的濾波。語音經(jīng)過駐極體傳感器,即麥克風(fēng),把聲波信號轉(zhuǎn)換成電信號。傳感器采集的電信號進過放大電路,放大一定倍數(shù),經(jīng)濾波、耦合之后送至語音模塊。語音模塊對連續(xù)變化的語音信號進行采樣,抽取其中的語音信號電平,直接存儲在語音芯片ISD4004中,因此使得語音自然真實。當(dāng)語音播放時,需要在語音芯片的輸出段加一個帶通濾波器,以濾除音頻帶寬以外的信號,從而減少雜音的干擾。STC89C52單片機的程序,使用keil編譯程序進行設(shè)計和調(diào)試完成,其主要功能是控制語音模塊,以及液晶顯示模塊。關(guān)鍵詞:微控制器;錄音放音;ISD4004;ABSTRACTThemainaimofthispaperistorealizethefunctionofvoicerecordingandplaybacksystem.Thekeytotheoverallsystemdesignofthevoicerecordingsystemwhichincludesasingle-chipcontrolmodule,voiceacquisitionmodule,voiceprocessingmodule,signalamplificationmodule,isMCUcontrolmodule.Inthevoiceplaybackprocess,themicrocontrollercommunicatesthroughSPIcommunicationvoicemodule,thusrealizingvoicerecordingandplayback.Eachrecordingcorrespondstoadifferentaddress,sothemicrocontrollerjustneedtosendtheaddressoftherecordingtobeplayedforplayback.Thesignalprocessingofthevoicerecordingsystemincludesspeechacquisition,signalamplificationandvoicefilter.Acousticsignalisconvertedintoelectricalsignalsthroughelectretssensor,whichisalsocalledmicrophone.Thesensorsignalswillbeamplifiedafterflowthroughtheamplifyingcircuit.Finallyitwillbesendtovoicemoduleafterfiltering,coupling.Continuousacousticsignalissampledbythevoicemodule,whichtakesoneofthevoicesignallevel,directlystoresitinthevoicechipISD4004,andmakesspeechnaturalandtrue.Whentherecordingisplayedweneedaband-passfilterinthevoicechipoutputsection,tofilteroutthesignaloutsidetheaudiobandwidththerebyreducingnoise.ThecodesoftheMicrocontrollerSTC89C52isdesignedandtestedbyusingkeilcompiler,whosemainfunctionistocontrolthevoicemoduleandLCDmodule.Keywords:Microprocessor;VoiceRecordingandplaying;ISD4004目錄1引言 引言 從20世紀30年代初到50年代初,有聲電影主要應(yīng)用光學(xué)錄音方法。雖然在有聲電影初期曾使用過唱片配音的方法,光學(xué)錄音是以感光材料為媒介記錄聲音的方法。但用這種方法錄制的影片為數(shù)不多,時間很短。光學(xué)錄音進入電影領(lǐng)域后,在世界范圍內(nèi)掀起了從無聲電影轉(zhuǎn)入有聲電影的高潮,推動了電影事業(yè)的大發(fā)展。40年代末50年代初磁性錄音也進入了電影領(lǐng)域,但大量拷貝仍以光學(xué)錄音為主;80年代磁性錄音和光學(xué)錄音兩種方法并用。 隨著經(jīng)濟快速發(fā)展,人民生活水平的不斷提高,現(xiàn)在的人已近離不開音樂,而且對聽覺要求越來越高。計算機技術(shù)和數(shù)字電子的發(fā)展,現(xiàn)在的語音系統(tǒng)有了重大的飛躍,由以前的體積較大單放機、復(fù)讀機發(fā)展到了音質(zhì)較好、體積小、容量大的MP3、MP4、手機,可以說語音技術(shù)已經(jīng)相當(dāng)成熟了。 傳統(tǒng)的磁帶語音錄放系統(tǒng)因其體積大,使用不便,在電子與信息處理的使用中受到很多限制。體積小巧,功耗低的數(shù)字化語音存儲與回放系統(tǒng)將完全代替它。自80年代以來,美、日等國的數(shù)字語音技術(shù)的研究工作進入了應(yīng)用階段,相繼研制的大規(guī)模集成電路語音芯片已近供應(yīng)市場,并不斷推出新的產(chǎn)品。數(shù)字語音技術(shù)的應(yīng)用領(lǐng)域十分廣泛,首先是數(shù)字通信系統(tǒng)。當(dāng)通過數(shù)字通信系統(tǒng)傳送語音信號時,語音數(shù)字化技術(shù)就是必不可少了。發(fā)送端實際上即為語音編碼,接受端為語音合成。在我們的日常生活中,數(shù)字化語音存儲于回放技術(shù)得到了廣泛的應(yīng)用,諸如公交車報站器,采訪筆,MP3播放器,手機等,使得產(chǎn)品的功能強大,淘汰了磁帶錄音的傳統(tǒng)方式,方便了人們的生活,推動了社會進步。2概述2.1語音錄放系統(tǒng)概述 語音錄放系統(tǒng)的工作原理是單片機通過SPI通信模式,來控制語音芯片ISD4004的錄音與播放。此系統(tǒng)一般包括單片機控制模塊、語音的采集模塊,語音的放大模塊、語音處理模塊、濾波模塊、功率放大模塊和顯示模塊。如圖2-1所示,駐極式傳感器把自然界的連續(xù)的聲波信號轉(zhuǎn)化成連續(xù)變化的電信號,由于轉(zhuǎn)換的電信號比較弱,故須經(jīng)過放大電路,放大信號。信號傳遞至語音芯片,語音芯片對連續(xù)的電信號進行采樣,沒有經(jīng)過A/D轉(zhuǎn)換,直接存儲在內(nèi)部的flash中[3]。連續(xù)的聲波信號連續(xù)的聲波信號連續(xù)的電信號連續(xù)的電信號濾波處理濾波處理電信號放大電信號放大圖2-1語音信號處理過程語音的存儲可以采用數(shù)字式的,也可以采用模擬式。采用數(shù)字式的,需要把連續(xù)采樣的語音信號轉(zhuǎn)換成數(shù)字信號,即A/D轉(zhuǎn)換,但在此過程需要遵循奈奎斯特采樣定律。還有一種就是把采用的模擬信號直接存儲在帶有flash的存儲器中,本系統(tǒng)采用直接存儲的方式,ISD4004語音芯片是美國ISD公司制造的一種新款的語音芯片,芯片采用多電平直接模擬量存儲技術(shù),每個采樣值直接存儲在片內(nèi)閃存flash中,因此能夠非常真實、自然地再現(xiàn)語音、音樂、音調(diào)和效果音,避免了一般固體錄音電路因量化和壓縮造成的量化噪音和“金屬音”[4]。 語音的錄放系統(tǒng)的應(yīng)用十分廣泛,可以應(yīng)用于通訊設(shè)備、智能儀表、治安報亭、語音報站、語音講解、語音記錄、語音復(fù)讀、智能玩具等領(lǐng)域。本課題的研究,是其他語音錄放方面課題研究的基礎(chǔ),因此具有很好實踐意義。2.2本設(shè)計方案的論證2.2.1系統(tǒng)的單片機選擇論證一方面在本系統(tǒng)中,單片機與ISD4004是采用SPI的通信模式,即高速同步串行口,是一種標(biāo)準的四線同步雙向串行總線。占用端口資源少,單片機只需模擬SPI通信協(xié)議即可控制語音芯片的錄放功能,因此占用單片機內(nèi)部資源少。另一方面,在大學(xué)期間學(xué)習(xí)51單片機是學(xué)習(xí)其他單片機的基礎(chǔ),因此深入地把51單片機十分有必要。2.2.2系統(tǒng)的液晶選擇 為了實現(xiàn)更多的功能,本系統(tǒng)加入其他外圍的硬件設(shè)備,需要以菜單的形式選擇功能。系統(tǒng)擴展有兩個可選擇的液晶顯示LCD1602和LCD12864,最終采用LCD1602液晶顯示器,原因是其體積小,功耗低,具有背光功能,采用通用接口芯片,兼容性高。2.2.3系統(tǒng)的濾波電路的選擇 考慮到實用性,帶負載能力要比較強,要滿足輸入阻抗應(yīng)足夠高,輸出阻抗應(yīng)夠小;要滿足阻帶衰減頻率-40db/10倍頻程,有兩種考慮方案:一種是用一階濾波器進行級聯(lián),另一種直接采用二階濾波器。本系統(tǒng)中采用第二種??紤]到電路的穩(wěn)定性及增益AV=10,應(yīng)采用有源濾波器。集成有源濾波器有如下優(yōu)點:1、在制作截止頻率或中心頻率較低的濾波器時,可以做到體積小、重量輕、成本低;2、由于采用集成電路,所以受環(huán)境條件(如機械振動、溫度、濕度、化學(xué)因素等)的影響??;3、受電磁干擾的影響??;4、由于采用集成電路,可避免各濾波節(jié)之間的負載效應(yīng)而使濾波器的設(shè)計和計算大簡。2.3研發(fā)方向和技術(shù)關(guān)鍵 研發(fā)方向:本系統(tǒng)主要設(shè)計一個語音錄放系統(tǒng),實現(xiàn)播放錄音中任意段語音。在實際生活中,本系統(tǒng)可以應(yīng)用在汽車倒車系統(tǒng)、家庭安防系統(tǒng)、公交車報站以及醫(yī)院的病房室等應(yīng)用之中。 技術(shù)關(guān)鍵:理解ISD4004語音芯片操作功能的時序圖,內(nèi)部地址構(gòu)架,以及與單片機之間的SPI通信模式。 2.4主要技術(shù)指標(biāo)用51單片機和語音芯片ISD4004來實現(xiàn)一個語音錄放系統(tǒng)。實現(xiàn)錄音,存儲和放音操作,能錄放50以上中文字,并能錄放隨意組合。放音時能夠清晰、穩(wěn)定。 3硬件設(shè)計3.1硬件的總體設(shè)計語音錄放系統(tǒng)主要是通過單片機來控制語音芯片ISD4004來實現(xiàn)語音的錄放的功能。在錄音模式下,語音信號,即聲波信號,通過麥克風(fēng),將其轉(zhuǎn)換成電信號。但此時的電信號很微弱,需要經(jīng)放大電路,放大語音信號。由于電路中可能存在高頻分量,信號經(jīng)過帶通濾波器,以濾除語音頻帶以外的噪聲。最后,ISD4004采樣得到的語音信號相對“干凈”。在語音播放的模式下,單片機向ISD4004發(fā)送播放的地址和語音播放指令后,便可以播放相應(yīng)段的語音。為了使播放的語音依然“干凈”,本系統(tǒng)依然設(shè)置了一個濾波電路。[2]由于ISD4004不能驅(qū)動一塊喇叭,需要在濾波電路添加一個功率放大電路,在本系統(tǒng)中,采用的是LM386語音驅(qū)動電路[9]。如圖3-1所示,系統(tǒng)的總體結(jié)構(gòu)框圖。圖3-1系統(tǒng)的總體結(jié)構(gòu)框圖麥克風(fēng)麥克風(fēng)濾波電路放大電路ISD4004語音電路喇叭PC機單片機濾波電路放大電路1602液晶DS18B20溫度傳感器3.2駐極體傳聲器效應(yīng)晶體管的柵極上,柵極與源極之間接有一個二極管,如圖3-2所示。當(dāng)駐極體膜片本身帶有電荷,表面電荷地電量為Q,板極間地電容量為C,則在極頭上產(chǎn)生地電壓U=Q/C,當(dāng)受到振動或受到氣流地摩擦?xí)r,由于振動使兩極板間的距離改變,即電容C改變,而電量Q不變,就會引起電壓的變化,電壓變化的大小,反映了外界聲壓的強弱,這種電壓變化頻率反映了外界聲音的頻率,這就是駐極體傳聲器地工作原理。圖3-2駐極體工作動態(tài)原理圖3.3信號放大電路由于駐極體轉(zhuǎn)換的電信號只有毫伏級的,應(yīng)該需要將其放大。本系統(tǒng)采用基本共射極放大電路。如圖3-3所示,輸入與輸出回路各接了一個電容,稱為耦合電容,起連接作用,C1連接輸入的語音信號與放大電路,C4連接放大電路與負載,如該電路稱為阻容耦合共射極放大電路。圖3-3阻容耦合共射極放大電路該電路可以等效為直流與交流通路:由于電容有隔直流的作用,即對直流相當(dāng)于開路,因此,MIC產(chǎn)生的信號源及負載對電路的直流狀態(tài)(即Q點)不產(chǎn)生影響。由此可以畫出放大電路的直流通路與交流通路,分別如圖3-4與3-5所示。對一定頻率范圍內(nèi)的交流信號而言,C1和C4呈現(xiàn)的容抗很小,可以近似認為短路。另外,電源VCC內(nèi)阻很小,對交流信號也可視為短路[5]。由電壓增益的定義得式(3-1):(3-1)由上公式計算得出,前級放大電路的放大倍數(shù)是4.6倍,麥克風(fēng)電信號的幅值約為5mV,放大后的信號幅值約為23mV。圖3-4直流通路圖3-5交流通路3.4語音信號功率放大電路LM386是一種音頻集成功放,具有自身功耗低、電壓增益可調(diào)整、電源電壓范圍大、外接元件少和總諧波失真小等優(yōu)點,廣泛應(yīng)用于錄音機和收音機之中。它是美國國家半導(dǎo)體公司生產(chǎn)的音頻功率放大器,主要應(yīng)用于低電壓消費類產(chǎn)品。為使外圍元件最少,電壓增益內(nèi)置為20。輸入端以地位參考,同時輸出端被自動偏置到電源電壓的一半,在6V電源電壓下,它的靜態(tài)功耗僅為24mW,使得LM386特別適用于電池供電的場合。LM386的封裝形式有塑封8引線雙列直插式和貼片式。其雙列直插式封裝如圖3-6所示。 圖3-6LM386直插封裝語音芯片ISD4004輸出的電壓只有毫伏級,難以驅(qū)動揚聲器發(fā)聲。本系統(tǒng)采用采用LM386功率放大器,以提高揚聲器的驅(qū)動能力。有時喇叭放音會出現(xiàn)失真現(xiàn)象,這是可能是運放的增益過高所致,需要在1腳和8腳之間加一個10uF電容或串聯(lián)一個10K電位器調(diào)整一下。本系統(tǒng)的功率放大電路圖如圖3-7所示。圖中P2為10K的電位器,總的功率增益為34dB。圖3-7語音輸出級功率放大電路3.5ISD4004語音芯片介紹3.5.1芯片性能簡述和引腳圖ISD系列語音芯片是美國ISD公司推出的產(chǎn)品。該系列芯片采用多電平直接模擬存儲(ChipCorder)專利技術(shù),聲音不需要A/D轉(zhuǎn)換和壓縮,每個采樣直接存儲在片內(nèi)的閃爍存儲器中,避免了A/D轉(zhuǎn)換的誤差;能夠真實、自然地還原語音、音樂及效果聲;避免了一般固體錄音電路量化和壓縮造成的量化噪聲和金屬聲[7]。ISD4000系列采用CMOS技術(shù),內(nèi)含晶體振蕩器、防混疊濾波器、平滑濾波器、自動靜噪、音頻功率放大器及高密度多電平閃爍存儲陣列等,只需要很少的外圍器件即可構(gòu)成一個完整的語音錄放系統(tǒng)。它的操作命令通過串行通信接口(SPI)或Microwire送入;采樣頻率可為4.0Hz、5.3Hz、6.4Hz、8.0Hz,頻率越低,錄放時間越長,但音質(zhì)會有所下降;片內(nèi)信息存于閃爍存儲器中,可在斷電情況下保存100年(典型值),反復(fù)錄音10萬次;器件工作電壓3V,工作電流25~30mA,音質(zhì)好,適用于移動電話及其他便攜式電子產(chǎn)品[8]。本設(shè)計使用的芯片型號為ISD4004-08,單片錄放時間為8分鐘。其芯片的引腳圖如圖3-8所示。圖3-8ISD4004語音芯片引腳圖3.5.2ISD4004芯片主要引腳描述(1)電源:(VCCA,VCCD)為使噪聲最小,芯片的模擬和數(shù)字電路使用不同的電源總線,并且分別引到外封裝的不同管腳上,模擬和數(shù)字電源端最好分別走線,盡可能在靠近供電端處相連,而去耦電容應(yīng)盡量靠近器件。(2)地線:(VSSA,VSSD)芯片內(nèi)部的模擬和數(shù)字電路也使用不同的地線。(3)同相模擬輸入(ANAIN+)這是錄音信號的同相輸入端。輸入放大器可用單端或差分驅(qū)動。單端輸入時,信號由耦合電容輸入,最大幅度為峰峰值32mV,耦合電容和本端的3KΩ電阻輸入阻抗決定了芯片頻帶的低端截止頻率。差分驅(qū)動時,信號最大幅度為峰峰值16mV,為ISD33000系列相同。(4)反相模擬輸入(ANAIN-)差分驅(qū)動時,這是錄音信號的反相輸入端。信號通過耦合電容輸入,最大幅度為峰峰值16mV音頻輸出(AUDOUT)提供音頻輸出,可驅(qū)動5KΩ的負載。(5)片選(SS)此端為低,即向該ISD4004芯片發(fā)送指令,兩條指令之間為高電平。(6)串行輸入(MOSI),此端為串行輸入端,主控制器應(yīng)在串行時鐘上升沿之前半個周期將數(shù)據(jù)放到本端,供ISD輸入。(7)串行輸出(MISO)ISD的串行輸出端。ISD未選中時,本端呈高阻態(tài)。(8)串行時鐘(SCLK)ISD的時鐘輸入端,由主控制器產(chǎn)生,用于同步MOSI和MISO的數(shù)據(jù)傳輸。數(shù)據(jù)在SCLK上升沿鎖存到ISD,在下降沿移出ISD。(9)中斷(/INT)本端為漏極開路輸出。ISD在任何操作(包括快進)中檢測到EOM或OVF時,本端變低并保持。中斷狀態(tài)在下一個SPI周期開始時清除。中斷狀態(tài)也可用RINT指令讀取。OVF標(biāo)志指示ISD的錄、放操作已到達存儲器的末尾。EOM標(biāo)志只在放音中檢測到內(nèi)部的EOM標(biāo)志時,此狀態(tài)位才置1。(10)行地址時鐘(RAC)漏極開路輸出。每個RAC周期表示ISD存儲器的操作進行了一行(ISD4004系列中的存貯器共2400行)。該信號175ms保持高電平,低電平為25ms。快進模式下,RAC的218.75μs是高電平,31.25μs為低電平。(11)外部時鐘(XCLK)本端內(nèi)部有下拉元件。芯片內(nèi)部的采樣時鐘在出廠前已調(diào)校,誤差在+1%內(nèi)。商業(yè)級芯片在整個溫度和電壓范圍內(nèi),頻率變化在+2.25%內(nèi)。工業(yè)級芯片在整個溫度和電壓范圍內(nèi),頻率變化在-6/+4%內(nèi),此時建議使用穩(wěn)壓電源。若要求更高精度,可從本端輸入外部時鐘(如前表所列)。由于內(nèi)部的防混淆及平滑濾波器已設(shè)定,故上述推薦的時鐘頻率不應(yīng)改變。輸入時鐘的占空比無關(guān)緊要,因內(nèi)部首先進行了分頻。在不外接地時鐘時,此端必須接地。(12)自動靜噪(AMCAP)當(dāng)錄音信號電平下降到內(nèi)部設(shè)定的某一閾值以下時,自動靜噪功能使信號衰弱,這樣有助于養(yǎng)活無信號(靜音)時的噪聲。通常本端對地接1uF的電容,構(gòu)成內(nèi)部信號電平峰值檢測電路的一部分。檢出的峰值電平與內(nèi)部設(shè)定的閾值作比較,決定自動靜噪功能的翻轉(zhuǎn)點。大信號時,自動靜噪電路不衰減,靜音時衰減6dB。1uF的電容也影響自動靜噪電路對信號幅度的響應(yīng)速度。本端接VCCA則禁止自動靜噪。[4]3.5.3SPI協(xié)議ISD4004工作于SPI串行接口。SPI協(xié)議是一個同步串行數(shù)據(jù)傳輸協(xié)議,協(xié)議假定微控制器的SPI移位寄存器在SCLK的下降沿動作。對ISD4004而言,在時鐘上升沿鎖存MOSI引腳數(shù)據(jù),而下降沿將數(shù)據(jù)送至MISO引腳,其時序圖如圖3-9所示。協(xié)議具體內(nèi)容如下:(1)所有串行數(shù)據(jù)傳輸開始于SS下降沿;

(2)SS在傳輸期間必須保持為低電平,在兩條指令之間保持為高電平;

(3)數(shù)據(jù)在時鐘上升沿移入,在下降沿移出;

(4)SS變低,輸入指令和地址之后,ISD才會開始錄放動作;

(5)指令格式是10位地址碼加6位控制碼;

(6)ISD的任何操作(含快進)如果遇到EOM或OVF則產(chǎn)生一個中斷,該中斷狀態(tài)在下一個SPI周期開始時被清除;

(7)使用讀指令會使中斷狀態(tài)為移出ISD的MISO引腳時,控制及地址數(shù)據(jù)也同步從MOSI移入;

(8)所有操作在運行位(RUN)置1時開始,置0時結(jié)束;(9)所有指令都在SS上升沿開始執(zhí)行。

圖3-9ISD4004-08SPI通信工作時序圖對于ISD4004而言,器件延時TPUD(8kHz采樣時,約為25ms)后才能開始操作;因此,用戶發(fā)完上電指令后,必須等待TPUD.才能發(fā)出一條操作指令。下面是典型的操作。其語音的錄放示意如圖3-10所示。

(1)發(fā)POWERUP命令;(2)等待TPUD(上電延時);發(fā)地址值為00的SFTPLAY命令;(3)發(fā)PLAY命令;

(4)器件會從00地址開始放音,當(dāng)出現(xiàn)EOM時,立即中斷,停止放音;(5)如果從00處錄音,則按以下時序;(6)發(fā)POWERUP命令;(7)等待TPUD(上電延時);(8)發(fā)POWERUP命令;

(9)等待2倍TPUD;(10)發(fā)地址值為00的SETREC命令;

(11)發(fā)REC命令;

(12)器件便從00地址開始錄音,一直到出現(xiàn)OVF(存儲器末尾)時,錄音停止。圖3-10語音錄放時序圖3.6濾波電路的設(shè)計與方案論證 濾波電路是一種能使用頻率信號通過而同時抑制無用頻率信號的電子裝置。工程上常用它來做信號處理、數(shù)據(jù)傳送和抑制干擾等。實際常用是模擬濾波器,這種濾波電路主要采用無源元件R、L和C組成,20世紀60年代以來,集成運放獲得了迅速發(fā)展,由它和R、C組成的有源濾波電路,具有不用電感、體積小、重量輕等優(yōu)點。此外,由于集成運放的開環(huán)增益和輸入阻抗均很高,輸出阻抗又低,構(gòu)成有源濾波電路后還具有一定的電壓放大和緩沖作用。但是,集成運放的帶寬有限,所以目前有源濾波電路的工作頻率難以做得很高,以及難以對功率信號進行濾波,這是它的不足之處[5]。 設(shè)計思路:一方面由于本設(shè)計是語音信號,信號的頻率范圍一般為300-3400HZ,帶寬的范圍一定,適合采用有源濾波電路。另一方面,考慮到實用性,帶負載能力要比較強,滿足輸入阻抗足夠高,輸出阻抗應(yīng)足夠小,且滿足阻帶衰減頻率-40db/10倍程。最后采用集成電路,可以避免各濾波之間的負載效應(yīng)而使濾波器的設(shè)計和計算大大簡化。綜上三點原因,本設(shè)計系統(tǒng)中的濾波電路采用二階有源濾波器。 濾波器分成四種濾波器,分別是:低通濾波器、帶通濾波器、帶阻濾波器、高通濾波器,它們的頻域示意圖如圖3-11所示。在本系統(tǒng)中,將采用帶通濾波器,圖3-11四種濾波器的示意圖 在設(shè)計帶通濾波器時,可以采用有源高通濾波電路和一個有源低通濾波電路串聯(lián)而成,其原理圖如圖3-12所示。圖3-12帶通濾波器的組成二階有源帶通濾波電路的傳遞函數(shù)[5]為式(3-2):(3-2)其中AVF為同相比例放大電路的電壓增益。 通過查表計算得,設(shè)計低通濾波器的截止頻率為3000Hz,高通濾波器的截止頻率為600Hz。帶通濾波器的原理圖如圖3-13所示。圖3-13帶通濾波器原理圖3.7基于matlab軟件對濾波前后語音的分析 語音錄放系統(tǒng)如果不加濾波電路,會發(fā)現(xiàn)播放的錄音中雜音很多,即語音的中其他成分很多。通過查資料發(fā)現(xiàn)產(chǎn)生的原因有以下幾點: (1)麥克風(fēng)的語音轉(zhuǎn)換特性存在問題,即將聲波信號轉(zhuǎn)換成電信的過程中,產(chǎn)生了高頻聲波的電信號。(2)功率放大電路在大信號下工作,所以不可避免會產(chǎn)生非線性失真,這種非線性失真使得語音中雜波成分增加。為了對語音進行前后分析對比,在本系統(tǒng)中,使用自己筆記本電腦自帶錄音機對播放的語音錄音。然后運用matlab軟件對語音讀取和FFT變換,對濾波前后的語音的時域與頻域分析比較,這樣可以比較直觀的觀察語音濾波前后變化。如圖3-14,濾波前后的語音的波形圖及頻譜圖,由下圖可以看出,語音的中一些高頻成分被濾除。圖3-14語音濾波前后的波形及頻譜圖3.8單片機與液晶顯示模塊3.8.1STC89C51單片機STC89C52是由深圳宏晶科技公司生產(chǎn)的與工業(yè)標(biāo)準的MCS-51指令集和輸出管腳相兼容的單片機。STC89C51單片機管腳如圖3-13所示,其主要功能特性表3-1所示。圖3-13單片機管腳表3-1STC89C52單片機主要功能STC89C52單片機主要特性兼容MCS51指令系統(tǒng)8K可反復(fù)擦寫FlashROM32個雙向I/O口256*8bit內(nèi)部RAM3個16位可編程定時/計數(shù)器中斷時鐘頻率0-24MHZ2個串行中斷可編程UART串行通道2個外部中斷6個中斷源2個讀寫中斷口線3級加密位低功耗空閑和掉電模式軟件設(shè)置睡眠和喚醒模式STC89C52引腳具體介紹如下:①主電源引腳(2根)VCC(Pin40):電源輸入,接+5V電源GND(Pin20):接地線②外接晶振引腳(2根)XTAL1(Pin19):片內(nèi)振蕩電路的輸入端XTAL2(Pin20):片內(nèi)振蕩電路的輸出端③控制引腳(4根)RST/VPP(Pin9):復(fù)位引腳,引腳上出現(xiàn)2個機器周期的高電平將使單片機復(fù)位。ALE/PROG(Pin30):地址鎖存允許信號PSEN(Pin29):外部存儲器讀選通信號EA/VPP(Pin31):程序存儲器的內(nèi)外部選通,接低電平從外部程序存儲器讀指令,如果接高電平則從內(nèi)部程序存儲器讀指令。④可編程輸入/輸出引腳(32根)STC89C52單片機有4組8位的可編程I/O口,分別位P0、P1、P2、P3口,每個口有8位(8根引腳),共32根。P0口(Pin39~Pin32):8位雙向I/O口線,名稱為P0.0~P0.7P1口(Pin1~Pin8):8位準雙向I/O口線,名稱為P1.0~P1.7P2口(Pin21~Pin28):8位準雙向I/O口線,名稱為P2.0~P2.7P3口(Pin10~Pin17):8位準雙向I/O口線,名稱為P3.0~P液晶顯示模塊介紹 1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊。LCD具有體積小,質(zhì)量輕,功耗低,信息顯示豐富等優(yōu)點,應(yīng)用十分廣泛。字符型LCD是由如干個5*7或5*11等點陣字符位組成。每一個點陣字符位都可以顯示一個字符。點陣字符位之間有一個空點距的間隔起到了字符間距和行距的作用。 圖3-14所示是16字*2行的LCD引腳圖,其接口引腳有16只,引腳功能如表3-2所列。圖3-141602液晶引腳圖表3-2字符型LCD顯示模塊接口電路引腳圖符號功能引腳號符號功能1VSS電源地6E使能信號2VDD電源正極7~14DB0~DB7數(shù)據(jù)0~73VL液晶顯示偏壓信號15BLA背光源正極4RS數(shù)據(jù)/命令選擇16BLK背光源負極5R/W讀/寫選擇 在表3-2中,VSS為電源地,VDD接5V正電源。VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼影”。使用時,一般在該引腳與地之間接一固定電阻或電位器。RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器,低電平時選擇指令寄存器。R/W為讀/寫信號線,高電平時進行讀操作,地電平時進行寫操作。E段位使能端,當(dāng)E段由高電平變成低電平時,液晶模塊執(zhí)行命令。DB0~DB7為8位雙向數(shù)據(jù)線。BLA、BLK用于帶背光的模塊,不帶背光的模塊這兩個引腳懸空不接。3.9通信方式3.9.1單片機與PC機之間的通信單片機與計算機的通信電路有串行通信和并行通信兩種。并行通信的主要特點:一是同時并行傳送的二進制數(shù)就是數(shù)據(jù)寬度;二是在計算機與外設(shè)間采用應(yīng)答式的聯(lián)絡(luò)信號來協(xié)調(diào)雙方的數(shù)據(jù)操作。傳送的數(shù)據(jù)位為1-128位,一般為8位,但是并行通信傳輸距離近,傳送方式單一,每次傳送一個字或一個字節(jié)。串行通信是指一個數(shù)據(jù)的所有位按一定的順序和方式,一位一位地通過串行輸入/輸出口進行傳送,由于串行通信是數(shù)據(jù)的逐位順序傳送,在進行串行通信時,只需一根傳輸線,傳送的數(shù)據(jù)位多且通信距離長。串行通信與并行通信相比,具有傳輸距離遠,接口電路與軟件編程簡單等優(yōu)點,所以本設(shè)計中采用串行通信。單片機與計算機的通信采用簡化三線的串行通信方式,即把單片機的發(fā)送端TXD直接和計算機的接收端RXD相連,單片機的接收端RXD直接和計算機的發(fā)送端TXD連接,但是單片機的+5VTTL信號電平與PC機的±10V信號電平不相容,所以必須進行電平轉(zhuǎn)換[6],本設(shè)計中采用MAXIM公司生產(chǎn)的MAX232芯片。MAX232芯片內(nèi)部有一個電源電壓變壓器,可以把輸入的+5V電源電壓變換為RS-232輸出電平所需的±10V電壓。所以,采用此芯片接口電路的串行通信系統(tǒng)只需要單一的+5V電源就可以了。此外,為了數(shù)據(jù)傳輸和指令下載方便,我們采用的是USB轉(zhuǎn)串口線。MAX232電路也非常方便,只需要外接4個0.1μF電容即可產(chǎn)生所需的電壓,輸出標(biāo)準的RS232接口信號,而且RS232芯片價格不貴。單片機與計算機的通信接口電路如圖3-15所示:圖3-15串口電路圖3.9.2單片機與ISD4004之間的通信 單片機ISD4004之間的通信采用串行外設(shè)接口(serialperipheralinterface,SPI)總線系統(tǒng)是一種同步串行外設(shè)接口,它可以使MCU與各種外圍設(shè)備以串行方式通信以交換信息。SPI總線系統(tǒng)可直接與各個廠家生產(chǎn)的多種標(biāo)準外圍器件直接接口,該接口一般使用4條線:串行時鐘線(SCK)、主機輸入/從機輸出數(shù)據(jù)線MISO、主機輸出/從機輸入數(shù)據(jù)線MOSI和低電平有效的從機選擇SS。由于SPI系統(tǒng)總線一共只需三四位數(shù)據(jù)線和控制,即可實現(xiàn)與具有SPI總線接口功能的各種I/0器進行接口,因此,采用SPI總線接口可以簡化電路設(shè)計,節(jié)省很多常規(guī)電路中的接口器件和I/O口線,提高設(shè)計的可靠性。由于51單片機不帶SPI串行總線接口,可以使用軟件來模擬SPI的操作,可以用P1口的P1.0~P1.3口模擬包括串行時鐘、數(shù)據(jù)輸入和數(shù)據(jù)輸出。對于不同的串行接口外圍芯片,它們的時鐘時序是不同的。對于在SCK的上升沿輸入(接收)數(shù)據(jù)和下降沿輸出(發(fā)送)數(shù)據(jù)的器件,一般應(yīng)將其串行時鐘輸出口P1.1的初始狀態(tài)設(shè)置為1,而在允許接口后再置P1.1為0。這樣,MCU在輸出1位SCK時鐘的同時,將使接口芯片串行左移,從而輸出1位數(shù)據(jù)至單片機的P1.3口,此后再置P1.1為1,使單片機從P1.0口,此后再置P1.1為1,是單片機從P1.0口輸出1位數(shù)據(jù)(先為高位)至串行接口芯片。至此,模擬1位數(shù)據(jù)輸入輸出便完成。此后再置P1.1為0,模擬下一位數(shù)據(jù)的輸入輸出,以此循環(huán)8次,即可完成一次通過SPI總線傳輸8位數(shù)據(jù)的操作。對于在SCK的下降沿輸入數(shù)據(jù)和上升沿輸出數(shù)據(jù)的器件,則應(yīng)該串行時鐘輸出的初始狀態(tài)為0,即在接口芯片允許時,先置P1.1,為1,以便外圍接口芯片輸出1位數(shù)據(jù),之后再置時鐘為0,使外圍接口芯片接收1位數(shù)據(jù),從而完成1位數(shù)據(jù)的傳送[1]。如圖3-16所示,51單片機與ISD4004接口電路。圖3-16單片機與ISD4004接口電路示意圖4軟件設(shè)計4.1總體方案 該系統(tǒng)的軟件部分包括語音程序,1602液晶顯示和按鍵控制三部分程序。語音程序主要包括驅(qū)動程序,1602液晶顯示部分包括顯示驅(qū)動程序,按鍵控制部分包括菜單的選擇,可以選擇錄音模式和放音模式。軟件設(shè)計采用的是Keiluvision2,C51編程。KeilC51是51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)上、可讀性、可維護性上有明顯的優(yōu)勢,因而易學(xué)易懂。KeilC51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解,在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。因此本系統(tǒng)采用C51編程語言。4.2程序流圖單片機上電后,系統(tǒng)默認進入放音模式。在放音模式下,可以選擇相應(yīng)段的語音,按下播放按鍵就可以播放語音。當(dāng)按下菜單選擇按鍵時,系統(tǒng)就會切換成錄音模式。在錄音模式下,可以通過按鍵來選擇,任意斷的語音進行錄音。再次按下菜單選擇的按鍵時,就會切換成放音模式。如圖4-1所示,系統(tǒng)的流程圖,圖4-2所示,錄放放音子程序。開始開始開機界面錄音模式溫度顯示是否播報溫度初始化各參數(shù)否是語音播報溫度進入電子時鐘模式是否播報時間語音播報時間是否圖4-1系統(tǒng)的軟件流程圖啟動錄音子程序啟動錄音子程序發(fā)送起始地址低八位發(fā)送ISD4004發(fā)送起始地址高八位發(fā)送ISD4004發(fā)送錄音指令啟動定時器T0計時發(fā)送停止指令結(jié)束啟動放音子程序發(fā)送起始地址低八位發(fā)送ISD4004發(fā)送起始地址高八位發(fā)送ISD4004發(fā)送放音指令等待外部中斷發(fā)送停止指令結(jié)束圖4-2錄放音子程序4.3模塊說明4.3.1ISD4004驅(qū)動程序(1)SPI串行發(fā)送函數(shù)/********以下是SPI串行發(fā)送函數(shù)********/voidspi_send(ucharisdx){ ucharisd_count; SS=0; //當(dāng)ss=0時,選中IS4004芯片,打開SPI通信端 SCLK=0; for(isd_count=0;isd_count<8;isd_count++)//先發(fā)低位再發(fā)高位,依次發(fā)送 { if((isdx&0x01)==1) MOSI=1;//主機輸出,從機輸入 else MOSI=0; isdx=isdx>>1;//8位數(shù)據(jù)右移一位 SCLK=1; delay(2); SCLK=0; delay(2); }} 單片機通過MOSI接口,通過串行的方式來發(fā)送八位數(shù)據(jù),數(shù)據(jù)在是時鐘的上升沿移入,下降沿移出。在判斷數(shù)據(jù)0或1的采用相與的方式,如果相與條件符合,則MOSI輸出1,,否則輸出0。(2)向ISD4004語音芯片發(fā)送上電和掉電指令/********以下是發(fā)送上電指令********/voidisd_powerup(void){ delay(10); SS=0; spi_send(0x20); SS=1; Delay_ms(50);}/********以下是發(fā)送掉電指令函數(shù)********/voidisd_poweroff(void){delay(10);spi_send(0x10);SS=1;Delay_ms(50);}閱讀ISD4004芯片手冊知,向語音芯片發(fā)送8位的指令,就能控制其上電與掉電,這應(yīng)用在錄放音的時序控制中。(3)錄放音函數(shù)/********以下是發(fā)送setplay(放音起始地址)指令函數(shù)********/voidisd_setplay(ucharadl,ucharadh){ Delay_ms(1); spi_send(adl);//發(fā)送放音起始地址低位 delay(2); spi_send(adh);//發(fā)送放音起始地址高位 delay(2); spi_send(0xe0);//發(fā)送setplay指令字節(jié) SS=1;}/********以下是發(fā)送setrec(錄音起始地址)指令函數(shù)********/voidisd_setrec(ucharadl,ucharadh){ Delay_ms(1); spi_send(adl);//發(fā)送放音起始地址低位 delay(2); spi_send(adh);//發(fā)送放音起始地址高位 delay(2); spi_send(0xa0);//發(fā)送setplay指令字節(jié) SS=1;}與ISD4002不同的是,ISD4004內(nèi)部地址是16位的,分為高位和地位兩部分,在發(fā)送地址時,要先發(fā)送地位地址,然后再發(fā)送高位地址。4.3.21602液晶底層驅(qū)動(1)LCD判忙程序/********以下是LCD忙碌檢查函數(shù)********/bitlcd_busy(){bitresult;LCD_RS=0;LCD_RW=1;LCD_EN=1;_nop_();_nop_();_nop_();_nop_();result=(bit)(P2&0x80);LCD_EN=0;returnresult;}當(dāng)模塊在接受指令前,單片機必須先確認模塊內(nèi)部是否處于忙綠狀態(tài),即讀取lcd_busy()標(biāo)志時result需為0,方可接受新的指令;如果在送出一個指令前不檢查result標(biāo)志位,或者延遲時間不夠長,會導(dǎo)致接收出錯。(2)寫指令、寫數(shù)據(jù)程序/********以下是寫指令寄存器IR函數(shù)********/voidlcd_wcmd(ucharcmd){while(lcd_busy());LCD_RS=0;LCD_RW=0;LCD_EN=0;_nop_();_nop_();P2=cmd;_nop_();_nop_();_nop_();_nop_();LCD_EN=1;_nop_();_nop_();_nop_();_nop_();LCD_EN=0;}/********以下是寫寄存器DR函數(shù)********/voidlcd_wdat(uchardat){while(lcd_busy());LCD_RS=1;LCD_RW=0;LCD_EN=0;P2=dat;_nop_();_nop_();_nop_();_nop_();LCD_EN=1;_nop_();_nop_();_nop_();_nop_();LCD_EN=0;} 閱讀LCD1602芯片手冊知,通過向1602控制端LCD_RS、LCD_RW和LCD_EN寫不同的狀態(tài),就可以選擇此時液晶是工作在寫指令模式下,還工作在寫數(shù)據(jù)的模式下。4.3.3菜單選擇程序/*****菜單處理函數(shù)*****/voidKey_process(){ if(K1==0) {Delay_ms(10); //若K1鍵按下,延時10ms,防抖動 if(K1==0) {while(!K1); //等待K1鍵釋放keystate++; //指向下一地址if(keystate>3)keystate=0; //模式1顯示開機主菜單、模式2顯示錄音模式、模式3顯示溫度與播報模式、模式4顯示時鐘與播報模式。 }}}4.3.4錄音函數(shù)voidRecorder(){EA=0; //錄音時關(guān)中斷if(K2==0) //等待K2鍵按下 {Delay_ms(10); //若K2鍵按下,延時10ms,防抖動 if(K2==0) { while(!K2); //等待K2鍵釋放 count++; //指向下一地址 if(count>8)count=1; //若錄完第8站,則返回到第1站 } } if(K3==0) { Delay_ms(10); if(K3==0) { while(!K3); //等待K3鍵釋放 count--; //指向下一地址if(count==0)count=8; //若錄完第1站,則返回到第8站 } } if(K4==0){Delay_ms(10);if(K4==0) {while(!K4); //等待K1鍵釋放isd_powerup(); //ISD上電 isd_poweroff(); //掉電 isd_powerup(); //上電Delay_ms(500); //延遲500ms錄音 isd_setrec(addl_tab[count-1],addh_tab[count-1]);//設(shè)置ISD低位和高位地址表 Delay_ms(100); isd_rec(); //發(fā)送rec指令 LED_flash(); //LED閃爍 LED=1;//關(guān)閉LED燈 count++; //指向下一地址 isd_stop(); //發(fā)送停止命令 if(count>8)count=1; //若錄完第8站,則返回到第1站}} EA=1; //錄音完畢打開中斷 } 本設(shè)計中,可以錄72段語音。在錄音模式下,通過按K2和K3按鍵就可以選擇性的錄音。如圖4-3所示,系統(tǒng)處于錄音模式下,正在錄第一段語音。圖4-3系統(tǒng)處于錄音模式下4.3.5放音函數(shù)/********以下是放音函數(shù)********/voidPlayer(){ ucharovflog; if(K2==0) { Delay_ms(10); //若K2鍵按下,延時10ms,防抖動 if(K2==0) {while(!K2); //等待K2鍵釋放 count++; //指向下一地址if(count>8)count=1; //若播放完第10站,則返回到第1站 } } if(K3==0) {Delay_ms(10); //若K3鍵按下,延時10ms,防抖動 if(K3==0) { while(!K3); //等待K3鍵釋放 count--; //指向上一地址 if(count<=0)count=8; //若已播放完第一站,則將其回到最后一站(第8站) } } if(K4==0)/********語音播放按鍵*********/ { Delay_ms(10); if(K4==0) { while(!K4); isd_powerup(); //ISD上電 isd_poweroff(); //掉電 isd_powerup(); //上電Delay_ms(200); //延遲500ms錄音 isd_setplay(addl_tab[count-1],addh_tab[count-1]);//設(shè)置ISD低位和高位地址表 isd_play(); //發(fā)送放音指令 LED=0; //開LED燈 delay(20); while(ISD_INT==1)//若放音完畢則中斷信號ISD_INT=0,若放音未完畢,等//待中斷信號{ if(K1==0){Delay_ms(10); if(K1==0){ isd_stop(); //發(fā)送停止命 break; } }} LED=1; //關(guān)LED燈 isd_stop(); //發(fā)送停止命令 if(ovflog=check_ovf())isd_poweroff();//檢查芯片是否溢出,如溢出則停止放音,芯片復(fù)位 } }} 在放音模式下,K2、K3按鍵選擇某一段放音,而K1按鍵則是立刻終止正在播放的語音。如圖4-4所示,系統(tǒng)正處于播放模式下。圖4-4所示系統(tǒng)處于放音模式下4.3.6播放方式選擇voidbofangxuanze(){ if(K2==0) { Delay_ms(10); if(K2==0) { while(!K2) ; moshi_num++; if(moshi_num>4)moshi_num=1; } } if(K3==0) { Delay_ms(10); if(K3==0) { while(!K3); moshi_num--; if(moshi_num<1)moshi_num=4; } }} 在播放方式的選擇模式下,可以數(shù)字1代表順序播放,數(shù)字2代表逆序播放,數(shù)字3代表奇數(shù)播放,數(shù)字4代表偶數(shù)播放。如圖4-5所示,系統(tǒng)處于播放方式選擇下。圖4-5系統(tǒng)處于播放方式選擇的模式5制作與調(diào)試5.1硬件電路的布線與焊接5.1.1總體特點該系統(tǒng)所涉及的各部分硬件電路,總體的特點是:(1)大部分的電容電阻采用貼片封裝,節(jié)約板材,減小成本;(2)為了檢錯方便電路采用分模塊制作,即單片機控制模塊與語音模塊;(3)在電路布局時,盡量合理安排空間,這樣可以減少跳線,從而美化硬件電路;(4)為了減小單片機控制模塊的面積大小,以及考慮到二次利用,本系統(tǒng)中的串口采用獨立制作;因此,應(yīng)合理布線,以降低焊接難度,降低出錯率,同時防止干擾。5.1.2Altiumdesigner軟件畫PCB 在本設(shè)計中,畫PCB要注意的一些地方。首先,在原理圖轉(zhuǎn)換成PCB之后,要不要急于連線,要把元器件的分裝擺放好,以減少跳線的麻煩。其次,元器件擺放好之后,接下去就是布線,布線時盡量不用自動布線,不要怕麻煩,要自己手動布線。在遵循一定的規(guī)則下,手動布線更加合理美觀。最后,線寬的設(shè)計比較重要,電源線和地線要盡量的寬點。 5.1.3焊接焊接前應(yīng)熟悉各芯片的引腳,焊接時參照電路圖,仔細地連接引腳。按照以下原則進行焊接:(1)先焊接各芯片的電源線和地線,這樣確保各芯片有正確的工作電壓;(2)同類的芯片應(yīng)順序焊接,在一片焊接并檢查好之后,其他的同類芯片便可以參照第一片進行焊接。這樣便可大大節(jié)省時間,也可降低出錯率。5.2調(diào)試 調(diào)試是一個重要環(huán)節(jié),其包括硬件調(diào)試和軟件調(diào)試。5.2.1硬件調(diào)試 在硬件調(diào)試方面總結(jié)一下心得體會:(1)制作完電路之后,先不要馬上上電,要用萬用表測量每一塊電路,確保每一根走線是聯(lián)通的。最后要確保電源的正負極性的是否連接在一起,這很重要,因為短接的可能造成電流過大,燒毀電路,需要硬件重新制版,這也是禁止發(fā)生的。(2)單片機的輸出端口,如果有接限流電阻,這個端口盡量不要作為其他控制端口。這是因為電流流過電阻,會有一部分的電壓落在電阻上,這樣本來應(yīng)該輸出高電平,結(jié)果輸出低電平,不能很好的控制其他器件。(3)硬件的制作盡量分模塊來做,這樣檢查更加容易方便。在本設(shè)計中分為單片機控制模塊、語音模塊、濾波模塊、還有下載程序的模塊。首先,把單片機模塊和下載器模塊調(diào)通,使得下載器能夠下載程序,單片機最小系統(tǒng)可以運行。其次,在測試語音模塊時候,在錄音模式下,使用示波器來檢測ISD4004語音的輸入端是否有語音波形。在放音模式下,同樣使用示波器,檢測語音芯片輸出端是否有語音波形。5.2.2軟件調(diào)試 下面是一些在編寫的軟件的過程中遇到的問題和解決方案:按鍵問題if(K1==0) {Delay_ms(10); //若K2鍵按下,延時10ms,防抖動 if(K1==0) {……} }在上面的程序中有一個問題,當(dāng)按鍵按下去之后會發(fā)現(xiàn)液晶顯示數(shù)字不停地跳動。這是因為缺少這樣一個語句,while(!K1);就是等待按鍵釋放。數(shù)值轉(zhuǎn)換中的問題disp_buf1[0]=count/10+0x30; //取十位count=count%10;disp_buf1[1]=count+0x30; //取個位 如果語句按照以上方式編寫,會發(fā)現(xiàn)十位不能顯示這是因為count是全局變量,單獨對count求余,就會改變count值,解決方法如下:disp_buf1[0]=count/10+0x30; //取十位disp_buf1[1]=count%10+0x30; //取個位液晶顯示的問題開始的時候,液晶顯示函數(shù)沒有放在程序的合適的位置,導(dǎo)致顯示不完全或者顯示有重疊的現(xiàn)象。解決的方案,啟用一個定時器,讓顯示的函數(shù)放在定時器的中斷里,實時地顯示,這樣就不會出現(xiàn)以上的問題。發(fā)送錄音指令要遵循ISD4004的時序每次的錄放音,需要先發(fā)送錄放音指令,然后再發(fā)送地址,只有嚴格遵循時序圖,才能使ISD4004正常工作。5.3系統(tǒng)的各個工作狀態(tài)下實物照片圖1、系統(tǒng)上電后開機界面如圖5-1所示圖5-1上電后開機界面2、按鍵K1選擇下一個狀態(tài),如圖5-2所示,系統(tǒng)處于錄音模式下,此時正在第一段語音錄音,K2、K3分別是選擇增加和減少Number值,來選擇第幾段語音錄音。圖5-2系統(tǒng)處于錄音模式下3、如圖5-3所示,系統(tǒng)處于溫度顯示的模式下。在此模式下,按下K4按鍵,就能播報當(dāng)前溫度。圖5-3系統(tǒng)處于溫度顯示模式下4、如圖5-4所示,系統(tǒng)處于電子時鐘的模式下。在此模式下,按下K4鍵,就可以語音播報當(dāng)前時間。圖5-4系統(tǒng)處于電子時鐘的模式下6.結(jié)論本畢業(yè)設(shè)計方案達到了任務(wù)書上的要求,實現(xiàn)了單片機控制控制ISD4004的語音功能,而且具有模式選擇功能。系統(tǒng)的主要特點如下:(1)PC通過USB轉(zhuǎn)串口來下載程序;(2)單片機通過模擬SPI通信方式與ISD4004之間進行通信;(3)單片機與1602液晶屏之間采用間接控制方式,首先給出1602液晶屏的驅(qū)動程序(寫數(shù)據(jù)、寫指令、讀數(shù)據(jù)),實現(xiàn)數(shù)據(jù)的實時更新等;(4)系統(tǒng)中設(shè)置的四個按鍵,分別實現(xiàn)菜單選擇、數(shù)值加和數(shù)值減功能,這樣增加了系統(tǒng)的靈活性,符合實際情況。本設(shè)計實現(xiàn)了畢業(yè)設(shè)計達到的技術(shù)指標(biāo),具有錄放功能,最長可以錄音8分鐘。設(shè)計中采用分段錄音的方式,可錄制52段語音,并在此基礎(chǔ)上,實現(xiàn)了語音播放溫度和語音時鐘的功能。進一步地,在日常生活中,可以應(yīng)用在家庭語音報警系統(tǒng)以及語音醫(yī)療[10]之中。由于時間,水平和經(jīng)驗有限,在濾波方面和液晶顯示等方面仍有不足之處,有改進的余地,如帶通濾波器帶寬可以做的更加準確,通頻帶更加穩(wěn)定。從收集相關(guān)資料,方案的確定,硬件的制作,軟件的編寫,到最后的調(diào)試,在這個過程中遇到很多大大小小的問題。比如說,在腐蝕板子的時候,如果腐蝕時間過長,板子上的黑線反而被腐蝕掉,這樣一來,整塊板子又要重新制作。

致謝自己隨便寫點。

參考文獻[1]高慧芳等.單片機原理及應(yīng)用技術(shù)[M].北京:科學(xué)出版社,2010.[2]宋戈,,黃鶴松,員玉良,蔣海峰.51單片機應(yīng)用開發(fā)范例大全[M],北京:人民郵電出版社,2010:P193-P205

[3]鄭鋒等.51單片機應(yīng)用系統(tǒng)典型模塊開發(fā)大全[M].北京:中國鐵道部出版社2010.[4]劉建清.輕松玩51單片機C語言[M].北京:北京航空航天大學(xué),2011:P378-P385[5]康華光.模擬電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2005:P119-P132[6]印黃燕.ARM系列單片機與PC機之間的串行通信[J].常州信息職業(yè)技術(shù)學(xué)院學(xué)報,2008,7(6):30-32

[7]劉超美,李紅萍,賈秀明.基于單片機的語音錄放系統(tǒng)設(shè)計[J].甘肅聯(lián)合大學(xué)學(xué)報:自然科學(xué)版,2008,22(3):67-69

[8]韓改寧,李永鋒.基于AT89C52單片機的語音錄放系統(tǒng)實現(xiàn)[J].成陽師范學(xué)院,2009,17(9):116-117

[9]許春冬,劉亦晴,劉鈞彬,楊萬青.一種嵌入式數(shù)字語音錄放系統(tǒng)的設(shè)計[J].電子元器件應(yīng)用,2010,12(12):41-43[10]楊易華吳效明岑人經(jīng).基于ISD4004的紅外遙控醫(yī)院語音播報系統(tǒng)的設(shè)計[J].研究論著,2009,30(10):16-19[11]WangZhenhai.ApplicationforRealizingVoiceRecordingUsingMCU[R].Shangdong:LinyiUniversity,2011.[12]JieZeng,MengZhang,GuilinLi,ShaohuaChen,andNanXiao.DevelopmentofMultilanguageSelectedAutomaticVoicePlayingSystemBasedonRFIDTechnology[R]Dalian:DalianJiaotongUniversity,2010.附錄1.系統(tǒng)單片機原理圖2.系統(tǒng)語音與串口模塊3.51單片機系統(tǒng)PCB圖4.語音模塊與串口PCB圖5.源程序1)主程序/******主程序主要包括4個模式,首先進入是開機界面,即模式0;模式1是錄音模式;模式2是顯示和播報溫度模式;模式3是顯示時鐘和播報模式。2012年5月23日答辯*******************************************/#include<reg52.h> //51單片機頭文件#include<intrins.h> //匯編函數(shù)指令#include"ISD4004_drive.h" //語音芯片驅(qū)動#include"LCD_drive.h" //液晶驅(qū)動#include"DS18B20_drive.h" //DS18B20驅(qū)動#defineucharunsignedchar#defineuintunsignedintsbitK1=P3^4; //K1鍵,模式選擇按鍵sbitK2=P3^5; //K2鍵,按下K2鍵,錄音或放音按鍵 ,count值加sbitK3=P3^6; //K3鍵,按下K3鍵,錄音或放音按鍵 ,count減少sbitK4=P3^7; //K4鍵,播放鍵uintkeystate; //模式的狀態(tài)ucharovflog; //溢出聲明bittemp_flag; //判斷DS18B20是否正常標(biāo)志位,正常時為1,不正常時為0uchartemp_comp; //用來存放測量溫度的整數(shù)部分uchardisp_buf[8]={0}; //顯示緩沖uchartemp_data[2]={0x00,0x00}; //用來存放溫度數(shù)據(jù)的高位和低位ucharhour=23,min=59,sec=45; //定義小時、分鐘和秒變量ucharcount_10ms; //定義10ms計數(shù)器ucharcodeline1_data[]="DS18B20OK"; //DS18B20正常時第1行顯示的信息ucharcodeline2_data[]="TEMP:"; //DS18B20正常時第2行顯示的信息ucharcodemenu1_error[]="DS18B20ERR"; //DS18B20出錯時第1行顯示的信息ucharcodemenu2_error[]="TEMP:"; //DS18B20出錯時第2行顯示的信息ucharcodeline3_data[]={"RecordingVoice"}; //定義第1行顯示的字符ucharcodeline4_data[]={"Num:"};ucharcodeline5_data[]={"WelcomeZangChuq"};ucharcodeline6_data[]={"GraduateDesign"};sbitBEEP=P1^0; //定義蜂鳴器bitK1_FLAG=0; //定義按鍵標(biāo)志位,當(dāng)按下K1鍵時,該位置1,K1鍵未按下時,該位為0。ucharcodeline1_data_time[]={"LCDClcok"}; //定義第1行顯示的字符ucharcodeline2_data_time[]={"****"}; //定義第2行顯示的字符uchardisp_buf_time[6]={0x00,0x00,0x00,0x00,0x00,0x00}; //定義顯示緩沖單元uchardisp_buf1[2]={0x00,0x00}; //定義顯示緩沖單元,并賦值ucharcodeaddh_tab[73]={00,00,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01, 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02, 03,03,03,03,03,03,03,03,03,03,03,03,03,03,03, 04,04,04,04,04,04,04,04,04,04,04,04,04,04,04, 05,05,05,05,05,05,05,05,05,05,05 };//ISD4004高位地址表ucharcodeaddl_tab[73]={00,22,00,07,14,21,28,35,42,49,56,63,70,77,84,91,98, 00,07,14,21,28,35,42,49,56,63,70,77,84,91,98, 00,07,14,21,28,35,42,49,56,63,70,77,84,91,98, 00,07,14,21,28,35,42,49,56,63,70,77,84,91,98, 00,07,14,21,28,35,42,49,56,63,70 };//ISD4004低位地址表ucharcount=1; //站計數(shù)器,初始為第1站

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論