基于單片機(jī)的語音存儲(chǔ)和播放系統(tǒng)設(shè)計(jì)(共36頁)_第1頁
基于單片機(jī)的語音存儲(chǔ)和播放系統(tǒng)設(shè)計(jì)(共36頁)_第2頁
基于單片機(jī)的語音存儲(chǔ)和播放系統(tǒng)設(shè)計(jì)(共36頁)_第3頁
基于單片機(jī)的語音存儲(chǔ)和播放系統(tǒng)設(shè)計(jì)(共36頁)_第4頁
基于單片機(jī)的語音存儲(chǔ)和播放系統(tǒng)設(shè)計(jì)(共36頁)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上基于單片機(jī)的語音存儲(chǔ)和播放系統(tǒng)設(shè)計(jì)摘要在常見的電子產(chǎn)品或自動(dòng)控制設(shè)備中,如果加入語音功能即能極大地提高人機(jī)界面的友好性,方便用戶操作。在許多場(chǎng)合需要語音存儲(chǔ)與語音播放技術(shù)和單片機(jī)結(jié)合在一起。常規(guī)的模擬化語音處理系統(tǒng)能實(shí)現(xiàn)語音的存儲(chǔ)與回放功能,但效果不佳。本設(shè)計(jì)選用功能強(qiáng)大的單片機(jī)STC89C52作為主動(dòng)器件,采用數(shù)碼語音芯片ISD4004作為系統(tǒng)的語音存儲(chǔ)和播放芯片,選用LCD1602作為系統(tǒng)的顯示模塊,并同時(shí)采用掃描按鍵的方式實(shí)現(xiàn)系統(tǒng)的各類參數(shù)的調(diào)整。從而實(shí)現(xiàn)了一個(gè)完整的基于單片機(jī)的語音存儲(chǔ)和播放系統(tǒng)的設(shè)計(jì)。本文首先對(duì)系統(tǒng)中用到的單片機(jī)和語音芯片以及現(xiàn)實(shí)模塊進(jìn)行了方

2、案分析論證,從而提出了系統(tǒng)的整體功能框架,然后分別對(duì)系統(tǒng)的各個(gè)功能模塊進(jìn)行了硬件電路設(shè)計(jì)和軟件設(shè)計(jì),最后對(duì)本設(shè)計(jì)進(jìn)行了總結(jié)與展望。關(guān)鍵詞:STC89C52 ISD4004 語音存儲(chǔ) 語音播放Design of Voice Storage and Playback System Based on MicrocontrollerAbstractIn common electronic products or automatic control equipment , if adding voice capabilities that can greatly improve the friendly

3、 man-machine interface, user-friendly operation. On many occasions the need to store voice combined with voice playback technology and Microcontroller. Conventional analog of voice processing systems to achieve storage and playback of voice , but to little avail.The design features a powerful microc

4、ontroller STC89C52 chosen as the active devices, the use of digital voice chip ISD4004 chip as voice storage and playback system, as the system of choice LCD1602 display module, and also be achieved by scanning the keys to adjust the various parameters of the system. In order to achieve a complete M

5、icrocontroller design based voice storage and playback system. Firstly, the system used in the Microcontroller and voice chip and realistic analysis module of the demonstration program, which made the overall framework of the system function, and then separately for each module system's hardware

6、 design and software design, the final design of the a summary and outlook.KEYWORDS:STC89C52 ISD4004 Voice Storage Voice playback目錄第1章 緒論在常見的電子產(chǎn)品或自動(dòng)控制設(shè)備中,如果加入語音功能即能極大地提高人機(jī)界面的友好性,方便用戶操作。目前語音服務(wù)行業(yè)越來越廣泛,如電腦語音鐘、語音型數(shù)字萬用表、手機(jī)話費(fèi)查詢系統(tǒng)、排隊(duì)機(jī)、監(jiān)控系統(tǒng)語音報(bào)警以及公共汽車報(bào)站器等。在許多應(yīng)用場(chǎng)合,設(shè)計(jì)者需要將語音系統(tǒng)和單片機(jī)結(jié)合在一起1。單片機(jī)具有體積小、功耗低、控制功能強(qiáng)、擴(kuò)展靈活、

7、微型化和使用方便等優(yōu)點(diǎn)。現(xiàn)代人類生活中所有的幾乎每件電子和機(jī)械產(chǎn)品中都會(huì)集成有單片機(jī),單片機(jī)可以說是世界上數(shù)量最多的計(jì)算機(jī)2。手機(jī)、電話、計(jì)算器、家用電器、電子玩具、掌上電腦以及鼠標(biāo)等電腦配件中都配有單片機(jī)。而個(gè)人電腦中也會(huì)有為數(shù)不少的單片機(jī)在工作。可以說,單片機(jī)能夠在語音功能的實(shí)現(xiàn)應(yīng)用中發(fā)揮重大的作用。近年來,語音信號(hào)處理技術(shù)研究的突飛猛進(jìn),為數(shù)字語音存儲(chǔ)和播放系統(tǒng)提供了新的發(fā)展空間。對(duì)語音的采集、處理從以前簡(jiǎn)單的波形編碼轉(zhuǎn)變?yōu)閰?shù)編碼、壓縮,從而大大減少了存儲(chǔ)的數(shù)據(jù)3。目前比較典型的語音器件有美國(guó)的ISD公司生產(chǎn)的ISD系列語音芯片。ISD系列語音芯片采用模擬數(shù)據(jù)在半導(dǎo)體存儲(chǔ)器直接存儲(chǔ)的專

8、利技術(shù),即將模擬語音數(shù)據(jù)直接寫入到單個(gè)存儲(chǔ)單元,不需經(jīng)過A/D或D/A裝換,因此能夠較好的真實(shí)再現(xiàn)語音的自然效果,避免了一般固體語音電路因?yàn)榱炕蛪嚎s所造成的量化噪聲和失真現(xiàn)象4。本設(shè)計(jì)選用功能強(qiáng)大的單片機(jī)STC89C52作為主動(dòng)器件,采用數(shù)碼語音芯片ISD4004作為系統(tǒng)的語音存儲(chǔ)和播放芯片,選用LCD1602作為系統(tǒng)的顯示模塊,并同時(shí)采用掃描按鍵的方式實(shí)現(xiàn)系統(tǒng)的各類參數(shù)的調(diào)整。從而實(shí)現(xiàn)了一個(gè)完整的基于單片機(jī)的語音存儲(chǔ)和播放系統(tǒng)的設(shè)計(jì)。本文首先對(duì)系統(tǒng)中用到的單片機(jī)和語音芯片以及現(xiàn)實(shí)模塊進(jìn)行了方案分析論證,從而提出了系統(tǒng)的整體功能框架,然后分別對(duì)系統(tǒng)的各個(gè)功能模塊進(jìn)行了硬件電路設(shè)計(jì)和軟件設(shè)計(jì),

9、最后對(duì)本設(shè)計(jì)進(jìn)行了總結(jié)與展望。第2章 系統(tǒng)總體方案論證2.1 系統(tǒng)設(shè)計(jì)方案選擇根據(jù)設(shè)計(jì)要求可知,本系統(tǒng)的功能模塊大致可分為主控模塊、顯示模塊、語音模塊、系統(tǒng)電源模塊以及系統(tǒng)參數(shù)設(shè)置模塊。顯示模塊實(shí)時(shí)的顯示語音播報(bào)信息,語音模塊實(shí)現(xiàn)語音的存儲(chǔ)和播放功能,系統(tǒng)參數(shù)設(shè)置模塊主要輔助上述模塊實(shí)現(xiàn)各自功能,系統(tǒng)電源模塊為系統(tǒng)提供工作電源,主控模塊主要負(fù)責(zé)協(xié)調(diào)所有功能模塊一起協(xié)同工作。各個(gè)模塊的具體方案選擇如下。2.1.1 主控模塊的方案選擇方案(一):選用AT89C52作為系統(tǒng)的主控芯片,AT89C52芯片內(nèi)部集成了8K的Flash,外加8K的ROM存儲(chǔ)空間,具有存儲(chǔ)空間較大,且存取速度快的優(yōu)點(diǎn),同時(shí)兼

10、容所有MCS-51系列單片機(jī)。但是AT89C52不能實(shí)現(xiàn)ISP在線編程的功能,這樣就使得整個(gè)開發(fā)調(diào)試過程顯得繁瑣,且開發(fā)效率低,同時(shí)在調(diào)試過程中需要對(duì)芯片多次的插拔,很容易對(duì)芯片造成損壞5。方案(二):選用STC89C52作為系統(tǒng)的主控芯片,STC89C52片內(nèi)集成了64K的Flash存儲(chǔ)空間,存儲(chǔ)空間極大,且存儲(chǔ)速度快。STC89C52具備AT89C52具備的所有功能。最為重要的是STC89C52提供ISP在線編程的功能,這樣就使得整個(gè)開發(fā)過程變得高校便捷,在調(diào)試過程中不用多次的插拔芯片,對(duì)芯片也能起到很好的保護(hù)作用6。綜上所述,再考慮到本系統(tǒng)設(shè)計(jì)的多功能萬年歷需要實(shí)現(xiàn)眾多的功能,初步估計(jì)系

11、統(tǒng)程序可達(dá)40K左右,且需要反復(fù)調(diào)試實(shí)現(xiàn)設(shè)計(jì)要求的所以功能。故選用方案二,選用STC89C52作為系統(tǒng)的主控芯片。2.1.2 顯示模塊的方案選擇方案(一):采用LED動(dòng)態(tài)掃描的方式實(shí)現(xiàn)系統(tǒng)的顯示功能,LED數(shù)碼管價(jià)格低廉,特別適用于顯示數(shù)字,LED數(shù)碼管與單片機(jī)連接電路簡(jiǎn)單,但是隨著LED數(shù)碼管位數(shù)的增加,占用單片機(jī)IO端口資源也越來越多。方案(二):采用點(diǎn)陣式數(shù)碼管的方式實(shí)現(xiàn)系統(tǒng)的顯示功能,點(diǎn)陣式數(shù)碼管采用8*8的發(fā)光二極管組成顯示區(qū)域,特別適用于顯示各類文字信息,且價(jià)格相對(duì)高昂,如果僅僅用來主要顯示數(shù)字信息顯得浪費(fèi)。方案(三):選用LCD1602液晶模塊實(shí)現(xiàn)系統(tǒng)的顯示功能,LCD1602顯

12、示區(qū)域大,且能方便的顯示各類數(shù)字,文字,圖形信號(hào),功能強(qiáng)大,且與單片機(jī)接口電路簡(jiǎn)單。綜上所述,考慮到本設(shè)計(jì)中顯示部分主要用于顯示數(shù)字信息,而且顯示內(nèi)容較多,故選用第三種方案作為系統(tǒng)的顯示方案。2.1.3 語音模塊的方案選擇方案(一):采用單片機(jī)編寫鬧鐘程序配合蜂鳴器的方式實(shí)現(xiàn)系統(tǒng)的語音報(bào)時(shí)功能。這種方式能減少系統(tǒng)芯片的使用,降低系統(tǒng)的整體功耗,但是因?yàn)橄到y(tǒng)內(nèi)部的時(shí)間延遲問題,采用這種方式會(huì)對(duì)系統(tǒng)的整體效果產(chǎn)生嚴(yán)重的影響。方案(二):采用專用的語音芯片實(shí)現(xiàn)系統(tǒng)的語音報(bào)時(shí)功能。選用美國(guó)ISD公司出品的ISD4004,該芯片具有連接電路簡(jiǎn)單、功耗極低、抗干擾能力強(qiáng)等眾多優(yōu)點(diǎn)7。綜上所述,本系統(tǒng)的語音

13、模塊選用第二種方案,采用專用的語音芯片ISD4004實(shí)現(xiàn)系統(tǒng)的語音報(bào)時(shí)功能。2.2 系統(tǒng)總體方案設(shè)計(jì)綜上所述,本設(shè)計(jì)選用STC89C52單片機(jī)為核心控制器件。顯示模塊選用LCD1602,可一次性顯示16*2個(gè)字符,完全能滿足系統(tǒng)的需求。語音芯片選用美國(guó)ISD公司出品的ISD4002,該芯片具有連接電路簡(jiǎn)單、功耗極低、抗干擾能力強(qiáng)等眾多優(yōu)點(diǎn)。同時(shí)本設(shè)計(jì)采用按鍵實(shí)現(xiàn)系統(tǒng)參數(shù)調(diào)整的功能。系統(tǒng)總體功能框圖如圖2.1所示。圖2.1 系統(tǒng)總體功能框圖第3章 系統(tǒng)硬件電路設(shè)計(jì)3.1 主控模塊電路設(shè)計(jì)3.1.1 STC89C52單片機(jī)簡(jiǎn)介本設(shè)計(jì)選用的主控芯片STC89C52是STC公司生產(chǎn)的一個(gè)基于51內(nèi)核的

14、8位單片機(jī)。STC89C52是一個(gè)低電壓,高性能CMOS 8位單片機(jī),片內(nèi)置通用8位中央處理器,同時(shí)在片內(nèi)集成了Flash閃存存儲(chǔ)器單元,正因?yàn)閷?shí)現(xiàn)了上述的諸多功能部分,STC89C52單片機(jī)以其強(qiáng)大的功能優(yōu)勢(shì),能較好的適用于各類復(fù)雜的控制應(yīng)用場(chǎng)合。STC89C52系列單片機(jī)都采用40腳的封裝形式,在其40個(gè)引腳中包含了32個(gè)通用的輸入輸出端口,能靈活配置在各種控制場(chǎng)合;還包含了2個(gè)外部中斷端口,能實(shí)現(xiàn)各控制系統(tǒng)的中斷處理過程;同時(shí)還包括了3個(gè)16位的定時(shí)器(計(jì)數(shù)器),能實(shí)現(xiàn)各種精確的定時(shí)計(jì)數(shù)功能;2個(gè)全雙工通信端口,能實(shí)現(xiàn)全雙工通信;以及包含了2個(gè)讀寫端口8。其將通用的微處理器和Flash存

15、儲(chǔ)器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲(chǔ)器可有效地降低開發(fā)成本。其引腳圖如圖3.1示。圖3.1 STC89C52引腳分布圖3.1.2 STC89C52最小系統(tǒng)電路設(shè)計(jì)能讓單片機(jī)正常工作的最簡(jiǎn)單單元硬件電路,即稱為單片機(jī)最小系統(tǒng)電路。一般來說,單片機(jī)最小系統(tǒng)包括晶振電路、電源電路、復(fù)位電路、程序下載(電平轉(zhuǎn)換)電路等基本電路。3.1.2.1 晶振電路單片機(jī)都是在系統(tǒng)時(shí)鐘脈沖的驅(qū)動(dòng)下進(jìn)行工作的,因此產(chǎn)生時(shí)鐘脈沖的晶振電路是單片機(jī)最小系統(tǒng)中不可或缺的部分。51系列的單片機(jī)內(nèi)部都集成了一個(gè)振蕩電路,在搭建單片機(jī)晶振電路時(shí),只需在單片機(jī)外部接入一個(gè)振蕩晶體作為系統(tǒng)振蕩源,此振蕩源就能和單片機(jī)內(nèi)部

16、的振蕩電路構(gòu)成一個(gè)能夠產(chǎn)生時(shí)鐘脈沖信號(hào)的晶振電路,單片機(jī)的工作速率都是由晶振電路的頻率決定的。單片機(jī)晶振電路圖如圖3.2所示。圖3.2 晶振電路圖電路中的兩個(gè)跨接在石英晶體兩端的兩個(gè)電容 C1,C2主要起到協(xié)助振蕩器起振和微調(diào)振蕩頻率的作用,其取值范圍一般為10-33pF,在本設(shè)計(jì)中電容C1、C2均取值33pF。本設(shè)計(jì)中的外部石英晶體選取頻率為12MHZ,故系統(tǒng)時(shí)候周期為1/12µs。3.1.2.2 復(fù)位電路如圖3.1所示,51系列單片機(jī)的第9腳是單片機(jī)的復(fù)位端口,只要通過此復(fù)位端口向單片機(jī)內(nèi)部連續(xù)輸入4個(gè)機(jī)器周期的復(fù)位信號(hào)就可實(shí)現(xiàn)單片機(jī)的復(fù)位,單片在成功接收到復(fù)位信號(hào)后,即控制單片

17、機(jī)的各個(gè)端口狀態(tài)都回復(fù)到初始化狀態(tài)。單片機(jī)復(fù)位電路圖如圖3.3所示。圖3.3 復(fù)位電路圖電解電容C2、電阻R3構(gòu)成復(fù)位電路。51系列單片機(jī)的復(fù)位電平均為高電平,因此只要在單片機(jī)的復(fù)位引腳加上高電平,單片機(jī)即處于復(fù)位狀態(tài)。在系統(tǒng)上電后,電容C2開始其緩慢的充電過程,同時(shí)單片機(jī)的復(fù)位引腳的電平慢慢的由高電平向低電平轉(zhuǎn)換,電容C2完成充電過程后,單片機(jī)的復(fù)位引腳則處于穩(wěn)定的低電平狀態(tài),至此單片機(jī)的整個(gè)上電復(fù)位過程進(jìn)行完畢,單片機(jī)上電復(fù)位的時(shí)間由電容容值與電阻阻值共同決定。3.2 顯示模塊電路設(shè)計(jì)液晶顯示模塊LCD1602已廣泛應(yīng)用在各類電子產(chǎn)品中,在電子產(chǎn)品中使用LCD1602主要用于顯示特殊符號(hào)、

18、各種類型的數(shù)字以及圖形。LCD1602液晶顯示模塊具有超低功耗、較小體積、可顯示各類不同的內(nèi)容等優(yōu)點(diǎn)。LCD1602液晶顯示模塊可以同時(shí)顯示2行字符,每行包括16個(gè)字符,單片機(jī)可通過LCD1602的三個(gè)控制端口(RS、R/W、EN)實(shí)現(xiàn)對(duì)LCD1602的控制,LCD1602的工作電壓為5V,同時(shí)具有字符對(duì)比度調(diào)節(jié)和背光功能。LCD1602液晶顯示模塊已廣泛應(yīng)用于測(cè)試儀表、計(jì)算器、家用電子產(chǎn)品中。LCD1602主要技術(shù)參數(shù)如下:l 顯示容量為16*2個(gè)字符;l 芯片工作電壓為1.4-5.5V;l 工作電流為2.0mA(5.0V);l 模塊最佳工作電壓為5.0V;l 字符尺寸為36.5*81mm。

19、其引腳功能說明如表3.1所示:表3.1 LCD1602引腳接口說明表引腳序號(hào)引腳符號(hào)引腳說明引腳序號(hào)引腳符號(hào)引腳說明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號(hào)14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極LCD1602時(shí)序圖如圖3.4所示。圖3.4 LCD1602讀寫時(shí)序圖LCD1602液晶顯示模塊和單片機(jī)的連接電路圖如圖3.5所示。圖3.5 LCD1602液晶顯示模塊連接電路圖3.3 語音模塊電路設(shè)計(jì)本設(shè)計(jì)的語音模塊選用專用語音芯片ISD4004。ISD4004

20、是美國(guó)ISD公司生產(chǎn)的采用直接模擬技術(shù)的語音芯片,該芯片采用EEPROM存儲(chǔ)方法將模擬語音數(shù)據(jù)直接寫入半導(dǎo)體存儲(chǔ)單元中,具有音質(zhì)自然、可反復(fù)錄放、抗干擾、低功耗等許多優(yōu)點(diǎn)。ISD4004語音芯片的基本技術(shù)指標(biāo)如下:l 工作電源:+5V;l 工作電流:15mA;l 待機(jī)電流:0.5uA;l 信噪比:S/N=43dB;l 錄音時(shí)間長(zhǎng)度:20s;l 可分段數(shù):160段;l 每段時(shí)間長(zhǎng)度:20s/160段=0.125s/段;l 錄放次數(shù):10萬次以上ISD4004引腳分布圖如圖3.6所示。圖3.6 ISD4004引腳分布圖ISD4004引腳功能描述表如表3.2所示。表3.2 ISD4004引腳功能描述

21、圖引腳序號(hào)引腳名稱引腳功能說明1-6、9、10A0-A7芯片地址端引腳12、13GNDD、GNDA電源地信號(hào)14、15SP+、SP-喇叭輸出16、28VCCA、VCCD電源信號(hào)17MIC話筒輸入18MIC REF話筒參考19AGC自動(dòng)增益控制20ANAIN模擬輸入21ANAOUT模擬輸出23PLAYL電平觸發(fā)放音24PLAYE邊沿觸發(fā)放音25RECLED錄音指示26XCLK外部時(shí)鐘27REC錄音ISD4004與主控單片機(jī)STC89C52的連接電路圖如圖3.7所示。圖3.7 ISD4004與STC89C52連接電路圖如上圖所示,主控單片機(jī)通過REC(錄音)、PLAYL(電平觸發(fā)錄音)、PLAYE

22、(邊沿觸發(fā)錄音)三根控制信號(hào)實(shí)現(xiàn)對(duì)ISD4004的控制,可選擇電平觸發(fā)錄音或者邊沿觸發(fā)錄音方式,通過向ISD4004的地址信號(hào)端口A0-A7輸入操作模式選擇信號(hào),選擇ISD4004的操作模式,ISD4004則通過MIC(話筒輸入)和MIC REF(話筒參考)實(shí)現(xiàn)話筒的輸入,通過SP+和SP-實(shí)現(xiàn)喇叭輸出,從而實(shí)現(xiàn)系統(tǒng)語音報(bào)時(shí)的功能9。ISD4004內(nèi)置了很多操作模式,如表3.3所示,這樣使得用最少的外圍器件可實(shí)現(xiàn)最多的功能。表3.3 ISD4004的操作模式表A7A6A5A4A3A2A1A0模式功能可組合使用的模式11X00X01A0信息檢索A411X00X10A1刪除EOMA3、A411X0

23、1X00A3循環(huán)A111X10X00A4連續(xù)尋址A0、A1ISD4004的操作模式介紹如下:A0(信息檢索):快速跳過信息而不必知道其確切的地址。當(dāng)控制器輸入一個(gè)低脈沖,內(nèi)部地址計(jì)數(shù)器就跳到下一條信息。此模式僅用于放音,通常與A4同時(shí)使用。A1(EOM刪除):是分段信息變成一條信息,僅在信息最后留一個(gè)EOM標(biāo)志。這個(gè)模式完成后,錄入的所有信息就作為一條連續(xù)的信息。A3(信息循環(huán)):循環(huán)重放位于存儲(chǔ)空間起始處的那條信息。如果一條信息完全占滿存儲(chǔ)空間,那么循環(huán)就從頭至尾進(jìn)行。A4(連續(xù)尋址):正常操作中,重放遇到EOM標(biāo)志時(shí),地址計(jì)數(shù)器會(huì)復(fù)位。A4模式禁止地址計(jì)數(shù)器復(fù)位,使得信息可連續(xù)錄入或重放。

24、當(dāng)芯片既不是錄音也不是放音時(shí),將A4短暫拉低可使地址計(jì)數(shù)器復(fù)位為0。A2、A5兩種模式暫時(shí)未使用。3.4 系統(tǒng)參數(shù)設(shè)置電路設(shè)計(jì)本設(shè)計(jì)實(shí)現(xiàn)的語音存儲(chǔ)和播放系統(tǒng)可以實(shí)現(xiàn)對(duì)存儲(chǔ)和播放內(nèi)容進(jìn)行調(diào)整,以及對(duì)播放時(shí)間和速度等進(jìn)行調(diào)整,在本次設(shè)計(jì)中,采用了11個(gè)按鍵來完成這些功能。其電路圖如圖3.8所示。圖3.8 系統(tǒng)參數(shù)設(shè)置電路圖3.5 系統(tǒng)電源電路設(shè)計(jì)本系統(tǒng)中的各個(gè)功能模塊的供電電源都是+5v,即系統(tǒng)的電源可直接由上位機(jī)的USB端口提供,并通過濾波電路,同時(shí)設(shè)置了系統(tǒng)的上電指示燈,系統(tǒng)電源電路圖如圖3.9所示。圖3.9 系統(tǒng)電源電路圖第4章 系統(tǒng)軟件設(shè)計(jì) 4.1 主程序流程圖設(shè)計(jì)本設(shè)計(jì)是基于單片機(jī)的語音

25、存儲(chǔ)和播放系統(tǒng),其主要功能是通過單片機(jī)對(duì)語音芯片ISD4004的控制字的寫入實(shí)現(xiàn)。本系統(tǒng)的主程序流程圖如圖4.1所示。圖4.1 系統(tǒng)主程序流程圖系統(tǒng)首先進(jìn)行初始化,然后通過按鍵將系統(tǒng)狀態(tài)設(shè)置為錄音狀態(tài),接著掃描按鍵判斷是否有錄音鍵按下,若有錄音鍵按下,則控制LCD1602顯示系統(tǒng)狀態(tài),并延時(shí)去抖動(dòng),接著開始錄用;若沒有錄音鍵按下,則接著判斷是否有播放鍵按下,若有播放鍵按下,則控制LCD1602顯示系統(tǒng)狀態(tài),并開始播放。4.2 子程序流程圖設(shè)計(jì)4.2.1 錄音子程序錄音子程序流程圖如圖4.2所示。圖4.2 錄音子程序流程圖系統(tǒng)首先將ISD4004的CE端至零,則進(jìn)入錄音狀態(tài),然后掃描錄音按鍵是否

26、松開,若錄音鍵松開,則表示錄音結(jié)束,保存錄音;若錄音鍵沒有松開,則表示錄音沒有結(jié)束,繼續(xù)錄音,繼續(xù)錄音按鍵是否松開。4.2.2 播放子程序播放子程序流程圖如圖4.3所示。圖4.3 播放子程序流程圖系統(tǒng)首先將ISD4004的CE端至零,則進(jìn)入播放狀態(tài),然后判斷播放結(jié)束信號(hào)EOM是否為零,若EOM為零,則表示播放結(jié)束,若EOM不為零,則表示播放未結(jié)束,繼續(xù)判斷EOM是否為零。致謝時(shí)光荏苒,仿佛為期四年的大學(xué)生涯在轉(zhuǎn)眼間就消失了,剛剛進(jìn)入大學(xué)校園報(bào)道的場(chǎng)景都還歷歷在目,大學(xué)四年的時(shí)間就在這樣的不經(jīng)意中溜走。回憶大學(xué)四年的學(xué)習(xí)生涯有太多的人和事值得回憶與感謝。四年前懵懵懂懂的我義無返顧的選擇的電子相關(guān)

27、的專業(yè)。在大學(xué)四年的學(xué)習(xí)期間在任課老師的悉心教導(dǎo)下學(xué)到了不少電子專業(yè)的基礎(chǔ)知識(shí),在增長(zhǎng)了自身見識(shí)的同時(shí)也豐富了自己的視野。但是“紙上得來終覺淺”,由于平時(shí)一心關(guān)注書本上的知識(shí),不太注重平時(shí)實(shí)踐動(dòng)手能力的鍛煉,使得在此次畢業(yè)設(shè)計(jì)中遇到了不少的麻煩,但都在指導(dǎo)老師的精心指導(dǎo)下以及同學(xué)們的幫助下成功的解決了所遇到的困難,并從中學(xué)到了不少專業(yè)知識(shí)。在此我要向我的畢業(yè)設(shè)計(jì)指導(dǎo)老師致以最誠(chéng)摯的感謝,我的畢業(yè)設(shè)計(jì)都是在指導(dǎo)老師的精心指導(dǎo)和悉心關(guān)心下完成的,從課題的選擇到最后論文的截稿,每一個(gè)過程都飽含了指導(dǎo)老師的辛勤汗水,指導(dǎo)老師不但教會(huì)了我一些我以前不曾掌握的專業(yè)知識(shí),同時(shí)指導(dǎo)老師的嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,實(shí)事求

28、是的處事態(tài)度,精益求精的科研精神都深深的感染了我,在完成畢業(yè)設(shè)計(jì)的同時(shí),讓我學(xué)會(huì)了很多做人做事的方式方法。衷心的感謝我的畢業(yè)設(shè)計(jì)指導(dǎo)老師!其次在此我要感謝在大學(xué)四年默默幫過過我的同學(xué)、朋友和老師,在你們的幫助下,我才能順順利利的完成我的大學(xué)階段的學(xué)習(xí)。最后,我要感謝一直培養(yǎng)我成人的父母,是你們無私的愛與包容才使我快樂的長(zhǎng)大成人,感謝你們對(duì)我無私的愛與奉獻(xiàn)!參考文獻(xiàn)1鄭建光,金碧波,章皓.基于8051單片機(jī)語音控制系統(tǒng)的實(shí)現(xiàn)J. 自動(dòng)化與儀器儀表,2006(2):39-41、58.2王洪生.基于單片機(jī)的語音播放遙控嵌入式系統(tǒng)的實(shí)現(xiàn)J. 科技信息,2010(4):197.3李景,李慧.基于單片機(jī)的

29、語音報(bào)價(jià)系統(tǒng)設(shè)計(jì)J.儀表技術(shù),2010(10):37-39.4史先桂.單片機(jī)在公交車智能報(bào)站系統(tǒng)中的應(yīng)用J.電腦知識(shí)與技術(shù),2011,11(7):8297-8300.5陳青.大容量可擴(kuò)展語音播放系統(tǒng)設(shè)計(jì)J.電子世界,2013(2):136-138.6曾鵬,林躦,朱曉燕. 16位單片機(jī)的語音信號(hào)處理技術(shù)的研究J. 湖北工學(xué)院學(xué)報(bào),2003,4(2):16-18.7章立文,王琦.基于SPCE061A 單片機(jī)的音樂播放系統(tǒng)J.產(chǎn)業(yè)與科技論壇,2011(10):98-99.8屠澄軼.基于凌陽單片機(jī)的通用型語音控制系統(tǒng)J.現(xiàn)代電子技術(shù),2010(22):68-70.9陸煒,朱紅.一種單片機(jī)語音錄入和播放

30、系統(tǒng)設(shè)計(jì)J.實(shí)驗(yàn)科學(xué)與技術(shù),2008,4(4):154-156.附錄1.系統(tǒng)原理圖2C語言源程序/*= 1602液晶顯示驅(qū)動(dòng)程序 = 參數(shù)定義示例: #define LCD_Data P1 sbit LCD_RW=P20; sbit LCD_RS=P21; sbit LCD_E=P22; 程序調(diào)用說明: 1) 使用前需先調(diào)用 LCD_Init() 對(duì)LCD進(jìn)行初始化 2) 輸出字符使用 LCD_PutStr(字符串,輸出位置) 輸出數(shù)字使用 LCD_PutNum(數(shù)字,輸出位置) 注: 1) 輸出位置為031間的整數(shù),為-1時(shí)表示先清屏 2) 函數(shù)返回值為一整形數(shù),表示當(dāng)前光標(biāo)所在位置 3)

31、此兩個(gè)函數(shù)支持以下轉(zhuǎn)義字符: n 換行 b 退格 輸出 ' 輸出 ' " 輸出 " 調(diào)用示例: =*/ #include <REG51.H>#include "LCD1602.H"#include "ISD4004.H"#define uchar unsigned char#define uint unsigned intsbit KEY_REC=P24;sbit KEY_PLAY=P23;sbit KEY_STOP=P22;sbit KEY1=P10;sbit KEY2=P11;sbit KEY3=P12

32、;sbit KEY4=P13;sbit KEY5=P14;sbit KEY6=P15;sbit KEY7=P16;sbit KEY8=P17;unsigned char i=0,sec_count=0,play_count=0;unsigned char num=0;unsigned int sec_addr=0,play_addr=0;uchar datasoute=0,m=0,n=0,sec=0,dis_number=0;uchar key_num=0xff;uchar record_flag=0;uchar play_flag=0;uint code address=0,300,600,

33、900,1200,1500,1800,2100;void record(unsigned int address)play4004(2398);/while(_int=1); /等待一段放音完畢的 EOM 中斷信號(hào)/delayms(1000); /放音到末尾不能馬上再次操作語音芯片,否則芯片會(huì)掉電,這里延時(shí)等一下。/*/record4004(address); sec = 0;while(_int=1)&&(KEY_STOP=1) /存儲(chǔ)地址換行標(biāo)志if(_rac = 0) /4004總共2400行,每行175Ms的高電平,25Ms的低電平delayms(30); dataso

34、ute+; if(datasoute >= 5) /200ms一次,5次表示錄音1Sdatasoute = 0;sec+;m = sec /10;n = sec %10;stopmode(); /停止powerdown(); /掉電 /記錄本次錄音所占的行數(shù)(也就是本次錄音有多大) void play(unsigned int address)play4004(address);delayms(1000); uchar Key_Scan(void)uchar key_num=0xff;if(KEY_REC=0) /KEY_REC鍵按下delayms(10);/按鍵防抖動(dòng)if(KEY_RE

35、C=0) while(KEY_REC = 0);record_flag=1;play_flag=0; if(KEY_PLAY=0) /KEY_REC鍵按下delayms(10);/按鍵防抖動(dòng)if(KEY_PLAY=0) while(KEY_PLAY = 0);record_flag=0;play_flag=1; if(KEY_STOP=0) /STOP是停止復(fù)位功能delayms(10);if(KEY_STOP=0)while(KEY_STOP = 0); stopmode(); /停止powerdown(); /掉電m=0;n=0;if(KEY1=0) /STOP是停止復(fù)位功能delayms

36、(10);if(KEY1=0)while(KEY1 = 0); key_num=1;if(KEY2=0) /STOP是停止復(fù)位功能delayms(10);if(KEY2=0)while(KEY2 = 0); key_num=2;if(KEY3=0) /STOP是停止復(fù)位功能delayms(10);if(KEY3=0)while(KEY3 = 0); key_num=3;if(KEY4=0) /STOP是停止復(fù)位功能delayms(10);if(KEY4=0)while(KEY4= 0); key_num=4;if(KEY5=0) /STOP是停止復(fù)位功能delayms(10);if(KEY5=

37、0)while(KEY5 = 0); key_num=5;if(KEY6=0) /STOP是停止復(fù)位功能delayms(10);if(KEY6=0)while(KEY6= 0); key_num=6;if(KEY7=0) /STOP是停止復(fù)位功能delayms(10);if(KEY7=0)while(KEY7= 0); key_num=7;if(KEY8=0) /STOP是停止復(fù)位功能delayms(10);if(KEY8=0)while(KEY8= 0); key_num=8;return key_num;void main(void) int p; delay_lcd(400); LCD_

38、Init(); p=LCD_PutStr("Welcome use this",-1); stopmode(); /停止powerdown(); /掉電while(1)key_num=Key_Scan();if(play_flag=1)LCD_PutStr(" play ",18);switch(key_num)case 1:LCD_PutNum(1,26);play(address0);break;case 2:LCD_PutNum(2,26);play(address1);break;case 3:LCD_PutNum(3,26);play(addr

39、ess2);break;case 4:LCD_PutNum(4,26);play(address3);break;case 5:LCD_PutNum(5,26);play(address4);break;case 6:LCD_PutNum(6,26);play(address5);break;case 7:LCD_PutNum(7,26);play(address6);break;case 8:LCD_PutNum(8,26);play(address7);break;default:break;if(record_flag=1)LCD_PutStr("record ",1

40、8);switch(key_num)case 1:LCD_PutNum(1,26);record(address0);break;case 2:LCD_PutNum(2,26);record(address1);break;case 3:LCD_PutNum(3,26);record(address2);break;case 4:LCD_PutNum(4,26);record(address3);break;case 5:LCD_PutNum(5,26);record(address4);break;case 6:LCD_PutNum(6,26);record(address5);break;

41、case 7:LCD_PutNum(7,26);record(address6);break;case 8:LCD_PutNum(8,26);record(address7);break;default:break; /ISD4004語音芯片C51驅(qū)動(dòng)程序源代碼#include "reg51.h"#include "intrins.h"#include "ISD4004.H"#define uchar unsigned char#define uint unsigned int /*ISD4004驅(qū)動(dòng)程序*void delay(uns

42、igned int i) /延時(shí)程序while(i-);*/void delayms(unsigned int time) /延遲n毫秒 unsigned int i,j;for(i=time;i>0;i-)for(j=125;j>0;j-);void stopmode() /停止unsigned char m,i,j;_cs=1;_sclk=0;_cs=0;m=0x30;for(i=0;i<8;i+)m=_cror_(m,1);j=m<<1;_mosi=CY;_sclk=0;_sclk=1;_cs=1;void powerdown() /下電unsigned c

43、har m,i,j;_cs=1;_sclk=0;_cs=0;m=0x10;for(i=0;i<8;i+)m=_cror_(m,1);j=m<<1;_mosi=CY;_sclk=0;_sclk=1;_cs=1;void powerup() unsigned char m,i,j;_cs=1;_sclk=0;_cs=0;m=0x20;for(i=0;i<8;i+)m=_cror_(m,1);j=m<<1;_mosi=CY;_sclk=0;_sclk=1;_cs=1;void record4004(unsigned int address) unsigned ch

44、ar i,m,j;unsigned int datasoute=0;powerup();delayms(50);powerup();delayms(50);delayms(50);_cs=1;_sclk=0;m=0xa0;_cs=0;for(i=0;i<16;i+)address=_iror_(address,1);datasoute=address<<1;_mosi=CY;_sclk=0;_sclk=1;for(i=0;i<8;i+)m=_cror_(m,1);j=m<<1;_mosi=CY;_sclk=0;_sclk=1;_cs=1;/*從此地址+1繼續(xù)

45、錄音,能充分利用儲(chǔ)存空間/缺點(diǎn)是不按你地址來錄了,所以此時(shí)我把它屏蔽_sclk=0;m=0xb0;_cs=0;for(i=0;i<8;i+)m=_cror_(m,1);j=m<<1;_mosi=CY;_sclk=0;_sclk=1;_cs=1;datasoute=0; */*while(_int=1) /存儲(chǔ)地址換行標(biāo)志if(_rac) delay(20000); datasoute+; /記錄本次錄音所占的行數(shù)(也就是本次錄音有多大)/ 在這里應(yīng)該加上自己的程序,就是錄音退出程序*/while end;void play4004(unsigned int address)

46、/放音程序unsigned char i,m,j;unsigned int datasoute;uchar play_count=0;uchar sec_count=0;powerup();_cs=1;_sclk=0;_cs=0;m=0xe0;for(i=0;i<16;i+)address=_iror_(address,1);datasoute=address<<1;_sclk=0;_mosi=CY;_sclk=1;for(i=0;i<8;i+)m=_cror_(m,1);j=m<<1;_sclk=0;_mosi=CY;_sclk=1;_cs=1;/*從下個(gè)

47、地址繼續(xù)放音/加此就不能從指定地址放音了,所以此次我把它屏蔽_sclk=0;m=0xf0;_cs=0;for(i=0;i<8;i+)m=_cror_(m,1);j=m<<1; _sclk=0; _mosi=CY; _sclk=1;_cs=1;*/#include <REG51.H>#include "LCD1602.H"#include <intrins.h> /delay_lcd(延遲毫秒數(shù)) void delay_lcd(unsigned int ms) unsigned int Temp; while(ms-)Temp=82;

48、while(Temp-); /寫數(shù)據(jù) void WriteDataLCD(unsigned char WDLCD) ReadStatusLCD(); /檢測(cè)忙 LCD_Data = WDLCD; LCD_RS = 1; LCD_RW = 0; LCD_E = 0; /若晶振速度太高可以在這后加小的延時(shí) LCD_E = 0; /延時(shí) LCD_E = 1; /寫指令 void WriteCommandLCD(unsigned char WCLCD,BuysC) /BuysC為0時(shí)忽略忙檢測(cè) if (BuysC) ReadStatusLCD(); /根據(jù)需要檢測(cè)忙 LCD_Data = WCLCD; LCD_RS = 0; LCD_RW = 0; LCD_E = 0; LCD_E = 0; LCD_E = 1; /讀狀態(tài) unsigned char ReadStatusLCD(void) LCD_Data = 0xFF; LCD_RS = 0; LCD_RW = 1; LCD_E = 0; LCD_E = 0; LCD_E = 1; _nop_(); _nop_(); _nop_(); _nop_(); while (LCD_Data & 0x80); /檢測(cè)忙信號(hào) return(LCD_Data); /按指定位置顯示一個(gè)字符 void Dis

溫馨提示

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

評(píng)論

0/150

提交評(píng)論