當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]基于ISDl420芯片,給出一種利用單片機(jī)89C51控制的語音編輯器,分析該系統(tǒng)的構(gòu)成、硬件方案、用戶界面以及軟件方案。首先給出整個(gè)系統(tǒng)的總體構(gòu)成以及框圖,同時(shí)給出一個(gè)硬件系統(tǒng)的設(shè)計(jì)方案和軟件流程,也給出了一個(gè)簡要的方法去實(shí)現(xiàn)用戶界面。語音編輯器具有分段、錄音、播放、組合播放等基本的語音編輯功能,具有MIC與線路錄音兩種模式,利用該方法設(shè)計(jì)的語音編輯器既可以單獨(dú)用來對音頻設(shè)備進(jìn)行語音編輯,也可以以模塊的形式加入到其他設(shè)備上。

0 引言
    在嵌入式系統(tǒng)飛速發(fā)展的今天,人們的身邊無時(shí)無刻不存在著嵌入式的產(chǎn)品。利用單片機(jī)和ISD1420芯片設(shè)計(jì)的語音編輯器可以方便地對播放的語音文件進(jìn)行分段播放、分段組合、以及分段錄音等功能。該語音編輯器可以用在測試儀以及其他產(chǎn)品上,也可以單獨(dú)用來控制語音播放設(shè)備。

1 系統(tǒng)構(gòu)成
    語音編輯器要具有分段錄音、分段播放、分段組合播放等基本的語音編輯功能及良好的用戶操作界面。
    系統(tǒng)設(shè)計(jì)主要圍繞用戶操作界面展開。在單片機(jī)控制下,對ISD1420進(jìn)行上述基本的語音編輯操作。其系統(tǒng)結(jié)構(gòu)如圖1所示。


    顯示器顯示用戶在對系統(tǒng)進(jìn)行操作時(shí)的相關(guān)信息。如,分段地址、錄放音提示、分段組合操作提示等等,以直觀地指示用戶操作。
    鍵盤 圍繞語音編輯功能,系統(tǒng)應(yīng)為用戶提供一個(gè)友好的操作界面,以使用戶方便靈活地使用本系統(tǒng)。
    單片機(jī) 作為系統(tǒng)的控制核心,從鍵盤接受用戶命令,以控制系統(tǒng)顯示及語音電路工作。
    ISD1420是一種錄音數(shù)據(jù)永久保存、高保真、低耗電、適用于同單片機(jī)接口的新一代語音器件,是系統(tǒng)功能實(shí)現(xiàn)的核心。在單片機(jī)控制下實(shí)現(xiàn)了題目要求的所有功能。

2 硬件方案
2.1 顯示部分

    在分段錄音和放音過程中,系統(tǒng)應(yīng)該為用戶提供段地址顯示,以為其指示當(dāng)前正在操作的那個(gè)段,段地址為兩位。在這些操作中,系統(tǒng)還應(yīng)該提供操作指示,如提示開始、進(jìn)行中、結(jié)束等。系統(tǒng)設(shè)置一位數(shù)碼管,以閃爍、字符等形式提示用戶操作。系統(tǒng)選擇3位LED七段數(shù)碼管,已基本滿足操作提示的需求,如圖2所示。3位LED七段數(shù)碼管采用靜態(tài)顯示方式,其顯示穩(wěn)定,程序簡單,電路實(shí)現(xiàn)也不復(fù)雜。它的顯示數(shù)據(jù)由8位D觸發(fā)器74LS374鎖存輸出,驅(qū)動數(shù)碼管顯示。8位D觸發(fā)器的輸入采用總線連接。其鎖存控制由單片機(jī)的寫命令WR,加上地址信息進(jìn)行;其地址分配為FE00H,F(xiàn)D00H,F(xiàn)B00H。


2.2 鍵盤
    鍵盤是人機(jī)的主要界面,所有用戶命令都是由它向單片機(jī)發(fā)出的。首先進(jìn)行交互設(shè)計(jì),根據(jù)功能要求設(shè)置功能鍵,包括錄音、放音、組合、分段等按鍵,其操作使用方法見用戶使用手冊。
    對段地址,系統(tǒng)需要O~9的按鍵,以保證用戶能夠?qū)ぶ稩SD1420的所有段。系統(tǒng)總共由14個(gè)鍵構(gòu)成。
    為滿足系統(tǒng)結(jié)構(gòu)的簡單起見,系統(tǒng)采用與鍵盤單獨(dú)接口。系統(tǒng)利用P1口與鍵盤陣列連接。其中,低4位作為單片機(jī)的鍵盤列掃描輸入;高4位作為單片機(jī)的鍵盤行掃描輸出。
    系統(tǒng)采用中斷方式管理鍵盤,使系統(tǒng)能夠?qū)崟r(shí)地響應(yīng)用戶操作。鍵盤陣列的4列線,連接到4與門的輸入。4與門的輸出連接單片機(jī)INTl,為低有效。平時(shí)沒有按鍵按下時(shí),4與門連接的上拉電阻使與門的輸出為高電平,無中斷產(chǎn)生。這時(shí)程序從列輸入的是1111。
    在掃描鍵盤時(shí),程序首先讓行掃描輸出0000,這樣,在這4行中的14個(gè)鍵,只要有一個(gè)鍵按下,與門都能輸出低電平而產(chǎn)生中斷。程序可通過鍵盤中斷服務(wù)程序具體確定是那一個(gè)鍵按下,如圖3所示。它的具體方法是,依次向各行(P1.7~P0.0)輸出0,程序就能從列端口讀出對應(yīng)按鍵所在位置的列編碼(P1.3~P0.O)。如表1所示。這樣程序就能得到低4位與高4位的掃描值,得到對應(yīng)鍵盤的編碼值。

 


2.3 ISDl420
    與顯示器一起采用總線連接,段地址單片機(jī)通過74LS374鎖存后,再輸入到ISDl420,74LS374鎖存控制信號構(gòu)成同顯示器,由單片機(jī)的WR加上地址信號組合構(gòu)成。它的地址分配為7FOOH。單片機(jī)通過一條輸出指令完成語音電路的段地址輸出,以控制語音電路分段操作,如圖4所示。


    系統(tǒng)控制芯片的PLAYE端口,平時(shí)為高電平,當(dāng)出現(xiàn)下降沿時(shí)開始錄音。
    信號EOM是語音段結(jié)束標(biāo)志,當(dāng)錄音結(jié)束,若存儲器沒完,ISD1420會自動為其加上EOM標(biāo)志符,表示該段錄音結(jié)束。放音時(shí),當(dāng)遇到EOM標(biāo)志符,EOM信號會由高電平輸出一個(gè)低脈沖。該信號連至單片機(jī)的T1/P3.5引腳,使單片機(jī)能夠及時(shí)知道該語音段結(jié)束,以便控制下一步操作。
2.4 單片機(jī)
    這里選擇的89C51具有40個(gè)I/O口。系統(tǒng)不能采用簡單的最小系統(tǒng)連接,由上述可知,它無法滿足該系統(tǒng)的需求。該設(shè)計(jì)可利用它的開放總線連接更多的設(shè)備。
    該設(shè)計(jì)將3個(gè)數(shù)碼管和語音芯片通過總線方式接入系統(tǒng)。低位地址不用,所以不用進(jìn)行低8位的地址擴(kuò)展。選擇A8,A9,A10分別作為3個(gè)數(shù)碼低電平的有效地址信號,再與單片機(jī)的WR信號組合。以構(gòu)成帶地址信息的寫控制信號。這樣,程序便可像訪問存儲器一樣訪問這些端口,其地址為:FE00H,F(xiàn)D00H,F(xiàn)B00H。
    語音芯片也是采用這種方式進(jìn)入系統(tǒng)的,其地址是7F00H。這種方式既可使電路簡單,也可使操作簡單。P1口作為系統(tǒng)的鍵盤掃描接口,連接如前述,這里不再贅述。

3 用戶界面
    用戶界面如下:
    鍵盤:0~9、[錄音]、[放音]、[組合]、[分段]。
    顯示:3位7段數(shù)碼管。段號2位,以確定錄音、放音位置;計(jì)數(shù)器1位,9~O減l計(jì)數(shù)。
    指令格式:<參數(shù)表><命令>。
    四個(gè)主要功能為:
    (1)分段
    操作:分段數(shù)+[分段]
    (2)錄音
    操作:欲錄音段號+[錄音]
    顯示:當(dāng)按下[錄音]時(shí),欲錄音段號閃3下后,計(jì)數(shù)顯示9;錄音開始,計(jì)數(shù)器減l,直到O,錄音結(jié)束。
    (3)回放
    操作:欲放音段號+[放音]4)、組合放音:功能用于檢查組合放音效果。
    操作:段號i+[組合]+段號j+[組合]+…+段號n+[組合]+[放音]
    顯示:在組合時(shí),顯示段號,閃爍,按下[組合]后顯示消失,再重復(fù);組合放音時(shí),顯示當(dāng)前放音段號;計(jì)數(shù)器先顯示組合段總數(shù),每放完一段減1,直到O。

4 軟件方案
    內(nèi)存分配如下:顯示緩沖為3個(gè)單元,第一、二單元用于存放段號,第三單元用于存放計(jì)數(shù)器值。組合段緩沖為一個(gè)單元,為一個(gè)放音段地址??紤]單片機(jī)的存儲容量與系統(tǒng)成本。設(shè)計(jì)考慮10個(gè)單元,F(xiàn)F為組合結(jié)束標(biāo)志。當(dāng)?shù)谝粏卧扔贔F時(shí),為緩沖器空,ISD1420的段地址從該緩沖區(qū)取出。軟件流程圖如圖5所示。


    為方便起見,系統(tǒng)采用平均分段管理方式。根據(jù)ISDl420語音芯片器件使用手冊可知,最多可分為160個(gè)段。其中,O~159為分段使用的有效地址。系統(tǒng)按1 s四個(gè)字的語速算,對于20 s的存儲空間來說,最多不能超過80個(gè)段,該時(shí)段空間最小為1個(gè)字。其分段范圍為1<分段數(shù)<80,在這個(gè)前提下,用戶可根據(jù)實(shí)際需求來分段,段號為O~79。在執(zhí)行[分段]命令時(shí),要將地址間隔計(jì)算出來,以便段號與語音芯片地址映射。地址間隔存于專用地址間隔單元spacing中。分段寄存器seg_num:存放執(zhí)行[分段]命令后的分段數(shù)。用戶進(jìn)行錄音、放音的段號,程序必須驗(yàn)證在此范圍方可執(zhí)行,否則提示錯(cuò)誤信息“E”。系統(tǒng)默認(rèn)分段數(shù)seg_num為40,spacing為4,分段確定后,段地址可以由下式計(jì)算:
    分段地址=seg_num×spacing
    地址間隔=160/seg_num
    暫存器temp:系統(tǒng)預(yù)留一個(gè)單元。用來以二進(jìn)制數(shù)方式存放段號。以temp_sign為暫存器標(biāo)志,用于指示按鍵輸入,其等于0時(shí),段號只有1位;等于1時(shí),段號有2位。前次數(shù)字鍵是十位,當(dāng)前數(shù)字鍵是個(gè)位。如果是兩位數(shù),程序要對這兩位二一十進(jìn)制數(shù)進(jìn)行計(jì)算,轉(zhuǎn)換成二進(jìn)制數(shù),即BCD十位×10+BCD個(gè)位。存入temp。當(dāng)執(zhí)行錄音、放音、分段操作時(shí),程序從temp取參數(shù),計(jì)算段地址。用戶在輸入段號時(shí),如果出現(xiàn)錯(cuò)誤,可重新輸入。第一次輸入的段號,將被第二次輸入的段號覆蓋。
    組合段緩沖ally_buf:系統(tǒng)預(yù)留1O個(gè)單元,只有執(zhí)行組合放音時(shí)才用。組合是所有段中任意選擇10個(gè)段構(gòu)成的隊(duì)列。系統(tǒng)用ally_point-er作為入隊(duì)地址指針,以ally_out作為出隊(duì)地址指針。組合放音時(shí),在該指針指示下,依次將錄音段從緩沖區(qū)中取出播放,以構(gòu)成短語,直到ally_out=ally_pointer。程序在沒有執(zhí)行[組合]功能時(shí),保持ally_pointer=O;當(dāng)用戶按下[組合]鍵時(shí),程序應(yīng)將暫存器temp的內(nèi)容傳入ally_buf中,并修改ally_pointer。在執(zhí)行[放音]時(shí),程序首先檢查ally_pointer是否等于0,是,執(zhí)行temp的段放音;否則。執(zhí)行ally_buf的段放音,直到FF標(biāo)志。用戶指令單元dictate;存放用戶指令。主程序從這里識別用戶命令,并執(zhí)行命令。命令標(biāo)志sign_dic:其等于O時(shí),當(dāng)前按鍵為數(shù)字鍵。等于1時(shí),當(dāng)前按鍵為命令鍵。命令與數(shù)字的識別:當(dāng)鍵盤碼大于7F時(shí),為數(shù)字按鍵,否則為命令按鍵。七段顯示:O~9,E為錯(cuò)誤提示。這里采用共陰極7段數(shù)碼管,如圖6所示。


    出口如下:
    temp為對應(yīng)段號的二進(jìn)制數(shù)。可以直接計(jì)算段地址,最大范圍,小于分段數(shù)seg_num。
    sign_dic等于1時(shí),請求執(zhí)行dictate中的命令。
    dictate為命令代碼。

5 結(jié)語
    按照該方法設(shè)計(jì)的語音編輯器可行性強(qiáng),操作簡單,界面清晰,在實(shí)際的生活中,該語音編輯器經(jīng)過改進(jìn)后可以很方便地應(yīng)用到MP3,DVD,錄音筆等音頻設(shè)備中,同時(shí)也可以用到遠(yuǎn)程語音控制中。與其他的相比,該語音編輯器具有價(jià)格更低廉,可單獨(dú)作為器件來實(shí)現(xiàn),因此具有一定的實(shí)用價(jià)值。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉