已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
數(shù)字化語音存儲與回放系統(tǒng)的設(shè)計班級電信1202姓名吳建亮學(xué)號2012030902241、設(shè)計題目設(shè)計一個數(shù)字語音存儲與回放系統(tǒng),其系統(tǒng)框圖如圖圖11所示。設(shè)計要求如下語音錄放時間60S;語音輸出功率05W,回放語音質(zhì)量良好;設(shè)置“錄音”、“放音”鍵,能顯示錄放時間;采用語音壓縮算法,在不增加存儲器容量的基礎(chǔ)上增加錄放時間。麥克風(fēng)語音輸入通道ADC喇叭語音輸出通道DAC微控置器存儲器圖11數(shù)字化語音存儲與回放系統(tǒng)框圖2、方案設(shè)計數(shù)字化語音存儲與回放系統(tǒng)的基本原理語音的存儲與回放系統(tǒng)將語音信號轉(zhuǎn)化為電信號,經(jīng)放大、濾波處理后通過A/D轉(zhuǎn)換器轉(zhuǎn)化為數(shù)字信號,然后將數(shù)字化的語音信號存放在大容量的存儲器中;回放時,從存儲器中取出數(shù)字化的語音信號,經(jīng)D/A轉(zhuǎn)化器轉(zhuǎn)化為模擬信號,經(jīng)濾波放大后驅(qū)動揚聲器發(fā)出聲音。如圖21所示為以C8051F360為核心的語音存儲與回放系統(tǒng)原理框圖。麥克風(fēng)前置放大器帶通濾波器C8051F360ADC0IDA0帶通濾波器功率放大器喇叭鍵盤和顯示外部存儲器圖21語音存儲回放系統(tǒng)原理框圖3、模擬子系統(tǒng)設(shè)計1語音輸入通道電路的設(shè)計在語音存儲與回放系統(tǒng)中,通過麥克風(fēng)將聲音信號轉(zhuǎn)化為電信號。麥克風(fēng)內(nèi)部含有一個電容元件和場效應(yīng)管構(gòu)成的內(nèi)部前置放大器。電容隨機械振動發(fā)生變化,從而產(chǎn)生與聲波成比例的變化電壓。麥克風(fēng)在使用時需要通過一個電阻R1連接到電源對其進行偏置。R1的阻值決定了麥克風(fēng)的輸出電阻和增益,通常在110K之間。麥克風(fēng)輸出的電信號比較微弱,信號增值在120MV之間。前置放大器就是對麥克風(fēng)輸出的語音信號進行放大一邊對其進一步處理。前置放大電路有兩種設(shè)計方案。一種方案是針對雙麥克風(fēng)設(shè)計的前置放大器,由一級差分放大器和一級增益可調(diào)反向放大器組成的設(shè)計方案。本次系統(tǒng)設(shè)計中,為了是器材簡單,使用了后一種。語音存儲與回放系統(tǒng)中,模擬量輸入通道和輸出通道均需要帶通濾波器。帶通濾波器的通帶范圍為300HZ3。4KHZ,主要實現(xiàn)的功能如下(1)保證300HZ3。4KHZ的語音信號不失真的通過濾波器。(2)濾除帶通外的低頻信號,減少工頻等分量的干擾,減小噪聲影響。(3)濾除帶通外的告辭諧波信號,減少因8KHZ采樣率引起的混疊失真,根據(jù)實際情況,該上限頻率在27KHZ左右。根據(jù)上述條件設(shè)計的語音輸入通道如圖31所示。圖31語音輸入通道2語音輸出通道設(shè)計當語音回放是,語音信號從C8051F360單片機的IDA0輸出。IDA0輸出的語音心哈既包含了直流分量,也包含了由于最小分辨電壓產(chǎn)生的高頻噪聲。因此在語言輸出通道應(yīng)設(shè)置帶通濾波電路。為了能提供05W的功率輸出,語音信號還要經(jīng)過功放電路進行功率放大。為了簡化電路設(shè)計,語音輸出通道選用了濾波和功放二合一的設(shè)計方案,其原理圖如圖32所示。圖32語音輸出通道電路原理圖四、大容量存儲接口設(shè)計M25P16與C8051F360單片機的接口如圖41所示。通過交叉開關(guān)將4線制SPI總線配置到P31、P32、P33、P34引腳上,分別與M25P16的時鐘輸入端C、數(shù)據(jù)輸出端Q、數(shù)據(jù)輸入端D和片選信號相連。圖41中的為寫保護SW引腳,用于防止芯片內(nèi)某些區(qū)域的數(shù)據(jù)被擦除或修改,當接高電平時,寫保護功能無效。M25P16的引腳為保持信號,低電平時用于暫停芯片的串HOL行通信。SCKP31MISOP32MOSIP33NSSP34CQDVCCSHOLDVSSWC8051F360M25P165V圖41C8051單片機和M25P16的接口五、系統(tǒng)軟件設(shè)計語音存儲回放系統(tǒng)軟件的基本功能是通過按鍵控制系統(tǒng)實現(xiàn)錄音和放音。錄音時,采集語音信號并將采集的數(shù)據(jù)存入M25P16中,放音時,從M25P16中讀取數(shù)據(jù)送入DAC,系統(tǒng)分為以下幾個框架(1)人機接口的功能設(shè)計;(2)鍵盤處理程序設(shè)計;(3)M25P16的讀寫方案設(shè)計;(4)A/D和D/A轉(zhuǎn)換器的控制;(5)擦除、錄音和放音及時;(6)C8051F360單片機內(nèi)部資源的使用;在語音存儲與回放系統(tǒng)中,需要使用C8051F360單片機的ADC0、IDA0、SP10、定時器T0、定時器T1、定時器T2等資源,因此,在主程序的初始化程序中,需要對這些內(nèi)部資源初始化。根據(jù)上述分析。語音存儲回放系統(tǒng)的軟件由主程序、鍵盤中斷服務(wù)程序、ADC0中斷服務(wù)程序、定時器T1中斷服務(wù)程序、定時器T2中斷服務(wù)程序組成。主程序流程圖51所示。在主程序中完成初始化然后循環(huán)檢測有無按鍵輸入,并根據(jù)鍵值做相應(yīng)的處理。中斷程序如圖52、圖53和圖54所示。詳細的程序請見附件。C8051F360和M25P16初始化開始禁止ADC0,禁止T1、T2中斷顯示初始界面鍵有效標志1清鍵有效標志顯示“正在錄音”允許ADC0,禁止T1中斷M25P16地址初始化秒寄存器清零允許定時器T2中斷顯示“正在擦除”秒寄存器清零允許定時器T2中斷調(diào)用M25P16擦除子程序禁止ADC0,禁止中T1、T2斷顯示初始界面顯示“正在放音”禁止ADC0,允許T1中斷M25P16地址初始化秒寄存器清零允許定時器T2中斷根據(jù)鍵值散轉(zhuǎn)“擦除”鍵”放音“鍵“錄音”鍵NY圖51主程序流程圖中斷入口中斷返回清T2中斷標志軟件計數(shù)器加1秒寄存器加11S時間到顯示時間軟件計數(shù)器清零NY圖52T2中斷服務(wù)程序中斷入口中斷返回清中斷標志將A/D轉(zhuǎn)換值寫入M25P16M25P16地址加1顯示”錄音結(jié)束“地址200000HNY禁止ADC0,禁止T2中斷圖53ADC0中斷服務(wù)程序中斷入口中斷返回從M26P16讀1字節(jié)數(shù)據(jù)到IDA0HM25P16地址加1顯示”放音結(jié)束“地址200000HY禁止T1、T2中斷N圖54T1中斷服務(wù)程序4、系統(tǒng)調(diào)試1單片機部分的調(diào)試單片機部分的調(diào)試主要是對系統(tǒng)部分進行調(diào)試,將EC5仿真器將單片機最小系統(tǒng)與PC機相連,采用C8051F單片機的集成開發(fā)環(huán)境KEILC51進行調(diào)試,主要步驟如下(1)調(diào)試鍵盤顯示程序;(2)測試單片機對M25P16讀寫是否正常;(3)測試C8051F360單片機的A/D和D/A轉(zhuǎn)換器;2模擬部分的調(diào)試(1)麥克風(fēng)和前置放大器的調(diào)試;(2)帶通濾波器的調(diào)試;(3)音頻功放電路的調(diào)試;3聯(lián)機調(diào)試將語音輸入通道的輸出與單片機P20相連,單片機IDA0的輸出與語言輸出通道相連,將音頻功放電路與05W,8喇叭相連。5、實驗總結(jié)本次實驗較為系統(tǒng)的設(shè)計和調(diào)試了基于80C51F360的數(shù)字語音存儲回放系統(tǒng),了解和掌握了外部RAM和單片機的SPI通信方法,更深一步了解了定時器和ADC0中斷。通過整個系統(tǒng)的設(shè)計,發(fā)現(xiàn),容易出錯的地方往往不是程序代碼語法或者輸入錯誤,而是系統(tǒng)邏輯問題,因此在以后的系統(tǒng)設(shè)計中,要重視邏輯的建立,在做系統(tǒng)之前,首先要畫出沒有挑剔的程序流程圖,因為這是系統(tǒng)的思想路徑,只有有了明確正確的路徑,才能踏踏實實的編寫程序,同時也會發(fā)現(xiàn),以前恐懼的幾百行代碼已經(jīng)變得多么易于理解了。附件/INCLUDEDEFINEUCHARUNSIGNEDCHARDEFINEUINTUNSIGNEDINTDEFINEULONGUNSIGNEDLONGTYPEDEFUNIONADDRESSULONGADDRLONGUCHARADDRBYTE4ADDRESSDEFINECS10X4000/外部擴展片選地址1DEFINECS20X8000/外部擴展片選地址2DEFINELEDENCS0XC004/LCD模塊背光控制片選信號DEFINEWCOMADDR0XC008/寫命令寄存器的地址DEFINEWDATADDR0XC009/寫數(shù)據(jù)寄存器的地址DEFINERCOMADDR0XC00A/讀命令寄存器的地址DEFINERDATADDR0XC00B/讀數(shù)據(jù)寄存器的地址DEFINEKEYCS0XC00C/讀鍵盤的地址UINTCOUNT/軟件計數(shù)器UINTTEMPUCHARBBB/存放鍵值UCHARKEYCODE/LCD模塊背光控制字,最低位為0時關(guān)LED背光,最低位為1時開啟LED背光,UCHARLEDCON0X00BITKEYSIGN0ULONGADDR0X00VOIDOSCINITVOID/振蕩器初始化VOIDPORTIOINITVOID/端口初始化VOIDXRAMINITVOID/VOIDSMBINITVOID/I2C總線初始化VOIDUARTINITVOID/異步串口通信接口初始化VOIDDACINITVOID/D/A轉(zhuǎn)化器初始化VOIDADCINITVOID/A/D初始化VOIDINT0INITVOID/外部中斷初始化VOIDTIMERINITVOID/定時器初始化VOIDPCAINITVOID/PCA初始化VOIDINTERRUPTSINITVOID/中斷系統(tǒng)初始化VOIDINITDEVICEVOIDVOIDSPIINITVOID/SPI初始化VOIDLEDEN/開背光VOIDCHECKLCD/檢查LCD是否空閑子程序VOIDWRITECOMUCHARN/LCD寫指令子程序VOIDWRITEDATAUCHARM/LCD寫數(shù)據(jù)子程序VOIDINSITILCD/LCDVOIDDISPHANUCHARA,UCHARM,UCHARK/LCD初始化子程序VOIDFLASH_INIT/存儲器初始化VOIDERASE_ALL/存儲器擦輸VOIDWR_FLASHULONGADDR,UCHARDATA_BYTE/寫一字節(jié)UCHARREAD_FLASHULONGADDR/讀一字節(jié)/主函數(shù)/VOIDMAININITDEVICEFLASH_INITINSITILCDLEDENDISPHAN“擦去“,0X80,0X04DISPHAN“K1“,0X90,0X02DISPHAN“錄音“,0X83,0X04DISPHAN“K2“,0X93,0X02DISPHAN“放音“,0X86,0X04DISPHAN“K3“,0X96,0X02WHILE1IFKEYSIGN1KEYSIGN0SWITCHKEYCODECASE0X01COUNT0TEMP0INSITILCDLEDENDISPHAN“擦寫中“,0X92,0X06TR21ERASE_ALLTR20INSITILCDLEDENDISPHAN“擦除“,0X80,0X04DISPHAN“K1“,0X90,0X02DISPHAN“錄音“,0X83,0X04DISPHAN“K2“,0X93,0X02DISPHAN“放音“,0X86,0X04DISPHAN“K3“,0X96,0X02BREAKCASE0X02COUNT0TEMP0ADDR0X000000TR01TR21INSITILCDLEDENDISPHAN“錄音中“,0X92,0X06BREAKCASE0X03COUNT0TEMP0ADDR0X000000TR21TR11IDA0CN0XF2INSITILCDLEDENDISPHAN“放音中“,0X92,0X06BREAK/鍵盤中斷讀取程序/VOIDREADKEYINTERRUPT0UCHARXDATAADDRADDRKEYCSKEYCODEADDRKEYCODEKEYSIGN1/定時器1中斷函數(shù)/VOIDTIMER1INTERRUPT3UCHARAIFADDR0X0FFFFFAREAD_FLASHADDRIDA0L0X00IDA0HAADDRELSETR10TR20IDA0CN0X72INSITILCDLEDENDISPHAN“擦除“,0X80,0X04DISPHAN“K1“,0X90,0X02DISPHAN“錄音“,0X83,0X04DISPHAN“K2“,0X93,0X02DISPHAN“放音“,0X86,0X04DISPHAN“K3“,0X96,0X02RETURN/定時器2中斷函數(shù)/VOIDTIMER2INTERRUPT5/TF2H0TEMPIFTEMP100UCHARB“000S“INTATEMP0COUNTACOUNTB2A100AA/10B1A100AA/10B0A100DISPHANB,0X98,0X04RETURNVOIDADCINTERRUPT10/ADC0中斷函數(shù)UCHARAIFADDR0X0FFFFFAD0INT0AADC0HWR_FLASHADDR,AADDRELSETR00TR20AD0INT0INSITILCDLEDENDISPHAN“擦除“,0X80,0X04DISPHAN“K1“,0X90,0X02DISPHAN“錄音“,0X83,0X04DISPHAN“K2“,0X93,0X02DISPHAN“放音“,0X86,0X04DISPHAN“K3“,0X98,0X02RETURNVOIDOSCINITVOID/內(nèi)部振蕩器初始化SFRPAGE0X0F/選擇特殊功能寄存器頁地址OSCICLOSCICL4OSCICN0XC2/允許內(nèi)部振蕩器,頻率除2作為SYSCLK12MHZCLKSEL0X00/選擇內(nèi)部振蕩器SFRPAGE0X00VOIDPORTIOINITVOID/I/O初始化SFRPAGE0X0FP0MDIN0XE7/P03、P04模擬量輸入P0MDOUT0X83/P00、P01、P07推拉式輸出P0SKIP0XF9/P01、P02不被交叉開關(guān)跳過P1MDIN0XFF/P1設(shè)置為數(shù)字量輸入P1MDOUT0XFF/P1設(shè)置為推拉式輸出P1SKIP0XFF/P1被交叉開關(guān)跳過P2MDIN0XFE/P20模擬P2MDOUT0XFF/P2P2SKIP0XFFP3MDIN0XFF/P3設(shè)置為數(shù)字量輸入P3MDOUT0XFF/P3設(shè)置為推拉式輸出P3SKIP0X00P4MDOUT0XFF/P4設(shè)為推拉式輸出XBR00X03/SPI接到端口XBR10XC0/禁止弱上拉,交叉開關(guān)允許SFRPAGE0X00RETURNVOIDSPIINITVOIDSPI0CFG0X40SPI0CN0X09SPI0CKR0X00VOIDXRAMINITVOID/外部數(shù)據(jù)儲存器初始化SFRPAGE0X0FEMI0CF0X07/引腳復(fù)用方式SFRPAGE0X00RETURNVOIDSMBINITVOID/I2C總線初始化SMB0CF0XC1/定時器T1溢出作為時鐘RETURNVOIDUARTINITVOID/異步串口通信接口初始化SCON00X00/10位UARTRETURNVOIDDACINITVOID/D/A轉(zhuǎn)化器初始化IDA0CN0XF2/IDA0使能,寫IDA0H觸發(fā)DAC輸出更新,2MA滿度輸出RETURNVOIDADCINITVOID/A/D初始化REF0CN0X08/選擇VDD作為電壓基準AMX0P0X08/正端接P0AMX0N0X1F/負端接地ADC0CF0X2C/左對齊,轉(zhuǎn)換時鐘2MHZADC0CN0X81RETURNVOIDINT0INITVOID/外部中斷初始化IT01CF0X05/選擇P05為INT0IT01/INT0下降沿觸發(fā)RETURNVOIDTIMERINITVOID/定時器初始化TMOD0X22/T0T1方式28位自動重裝CKCON0X00/系統(tǒng)時鐘12分頻TL00X83/0125MSTH00X83TL10X83/0125MSTH10X83TMR2CN0X00/16位自動重裝,系統(tǒng)時鐘12分頻TMR2RLL0XF0/10MSTMR2RLH0XD8TR00/定時器0,1,2禁止TR10TR20RETURNVOIDPCAINITVOID/PCA初始化PCA0CN0X40/允許PCA計數(shù)器/定時器PCA0MD0X00/禁止看門狗定時器RETURNVOIDINTERRUPTSINITVOID/中斷系統(tǒng)初始化IE00/清INT0中斷標志EX01PX00ET00ET11ET21EIE10X08/允許ADC中斷/ES01EA1RETURNVOIDINITDEVICEVOIDOSCINITPORTIOINITXRAMINIT/SMBINIT/UARTINITDACINITINT0INITTIMERINITPCAINITSPIINITADCINIT/FLASH_INITINTERRUPTSINITRETURN/FUNCTION檢查LCD是否空閑子程序/VOIDCHECKLCDUCHARTEMP0X00UCHARXDATAADDRWHILE1ADDRRCOMADDRTEMPADDRTEMPIFTEMP0X00BREAK/FUNCTIONLCD寫指令子程序/VOIDWRITECOMUCHARNUCHARXDATAADDRCHECKLCDADDRWCOMADDRADDRN/FUNCTIONLCD寫數(shù)據(jù)子程序/VOIDWRITEDATAUCHARMUCHARXDATAADDRCHECKLCDADDRWDATADDRADDRM/FUNCTIONLCD初始化子程序/VOIDINSITILCDWRITECOM0X30/設(shè)為基本指令集WRITECOM0X01/清屏WRITECOM0X0C/開整體顯示/漢字顯示子程序函數(shù)功能在指定位置顯示指定長度的字符串入口參數(shù)A是字符串M表示顯示的起始地址,K表示字符串長度/VOIDDISPHANUCHARA,UCHARM,UCHARKUCHARDAT,I,J,LENGTHLENGTHK/2WRITECOMMFORI0ILENGTHIJ2IDATAJ/WRITEDATADATDATAJ1/WRITEDATADAT/LCD背光使能/VOIDLEDENUCHARXDATAADDRADDRLEDENCSADDR0X01RETURN/M25P16初始化/VOIDFLASH_INITUCHARMEN_STATUS0X01NSSMD00SPI0DAT0X06WHILESPIF1SPIF0NSSMD01NSSMD00SPI0DAT0X01WHILESPIF1SPIF0SPI0DAT0X00WHILESPIF1SPIF0NSSMD01NSSMD00SPI0DAT0X05WHILESPIF1SPIF0WHILEMEN_STATUS0X01SPI0DAT0XFFWHILESPIF1SPIF0MEN_STATUSSPI0DATNSSMD01/M25P16整片擦除/VOIDERASE_A
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 3D神經(jīng)內(nèi)鏡在視神經(jīng)管減壓術(shù)中的應(yīng)用效果
- 3D打印輔助下兒童神經(jīng)母細胞瘤放療劑量保護策略
- 2025年建陽法院招聘備考題庫技術(shù)人員1名完整參考答案詳解
- 寧波市軌道交通物產(chǎn)置業(yè)有限公司下屬項目公司2025年度社會招聘備考題庫有答案詳解
- 2025年正在報名中備考題庫貴陽市第六醫(yī)院康復(fù)醫(yī)師招聘備考題庫有答案詳解
- 2025年政和縣教育緊缺急需學(xué)科教師專項招聘備考題庫(四)及1套完整答案詳解
- 2025年錫林郭勒盟油礦醫(yī)院招聘3人備考題庫含答案詳解
- 2025年南昌動物園招聘會計備考題庫有答案詳解
- 2025年江西省鷹潭產(chǎn)融私募基金管理有限公司投資經(jīng)理招聘備考題庫及答案詳解參考
- 2025年邯山區(qū)黨群系統(tǒng)事業(yè)單位公開招聘(統(tǒng)一招聘)工作人員備考題庫完整參考答案詳解
- 【1例心肌梗塞患者的PCI術(shù)后護理探究7800字(論文)】
- 電工培訓(xùn)觸電急救課件
- 小型混凝土攪拌機畢業(yè)設(shè)計
- 小學(xué)數(shù)學(xué)主題圖
- 天津泰達股權(quán)激勵的案例分析
- 臥床病人的護理即翻身技巧課件
- 智能信報箱系統(tǒng)施工方案
- 嚴歌苓作品:霜降
- 西爾斯懷孕百科(升級版)
- 樓梯工程量計算表(模板、砼計算)
- 孔型設(shè)計的基本知識
評論
0/150
提交評論