【正文】
h, 256字節(jié) RAM, 32 位 I/O 口線,看門(mén)狗定 時(shí)器, 2 個(gè)數(shù)據(jù)指針,三個(gè) 16 位 定時(shí)器 /計(jì)數(shù)器,一個(gè) 6 向量 2 級(jí)中斷結(jié)構(gòu),全雙工串行口, 片內(nèi)晶振及 時(shí)鐘電路 。因此數(shù)字語(yǔ)音信號(hào)處理是主要研究方向。對(duì)頻域分析處理,即對(duì)信號(hào)的頻率特性在頻譜中加以分析研究,這拓展了信號(hào)分析的范圍,是對(duì)不確定信號(hào)分析的主要方法。芯片設(shè)計(jì)是基于所有操作必須由微控制器控制 ,操作命令可通過(guò)串行通信接口 SPI 送入 。 1874 年電話的發(fā)展可以認(rèn)為是現(xiàn)代處理的開(kāi)端。同時(shí)通過(guò)設(shè)計(jì),提高學(xué)生綜合運(yùn)用模數(shù)電子技術(shù)、 Protel99SE 設(shè)計(jì)電子內(nèi)江師范學(xué)院本科畢業(yè) 設(shè)計(jì) 5 產(chǎn)品 ,KEIL C51 軟件編程 和查閱資料及撰寫(xiě)科技論文的能力。 keil工程建立 啟動(dòng) uVison3,點(diǎn)擊 “File New…” 在工程管理器的右側(cè)打開(kāi)一個(gè)新的文件輸入窗口,在這個(gè)窗口里輸入 一個(gè) 源程序,注意大小寫(xiě)及每行后的分號(hào),不要錯(cuò)輸及漏輸。 工 作電壓: ,最高不能超過(guò) 6V AUD 是一個(gè)單端電流輸出,而 AuxOut是一個(gè)單端電壓輸出。而放音指針則指向剛剛錄完的那段語(yǔ)音地址。 擦除操作:擦除操作分為單段擦除和全體擦除兩種擦除方式,區(qū)別如下: A) 單個(gè)擦除: 只有第一段或最后一段語(yǔ)音可以被單個(gè)擦除。 內(nèi)江師范學(xué)院本科畢業(yè) 設(shè)計(jì) 16 3 系統(tǒng)總體設(shè)計(jì) 硬件電路設(shè)計(jì) 本文的數(shù)字語(yǔ)音錄放系統(tǒng)所采用的是錄放時(shí)間為 26s 至 120s 的 ISD1760 語(yǔ)音芯片。 1760 的 SPI 指令格式依賴(lài)于命令的類(lèi)型,根據(jù)不同類(lèi)型的命令,指令可能是兩個(gè)字節(jié),也可能多達(dá) 7 個(gè)字節(jié)。第一和第二個(gè)數(shù)據(jù)字節(jié)的內(nèi)容取決于上一個(gè) SPI 命令。當(dāng)芯片準(zhǔn)備好接收第二個(gè)SPI 命令時(shí),在 SR1 中的 RDY 位將置 1。 uchar iScan。break。break。 while ((P2amp。 case 0x06:SetPLAY(1)。0x01)))。 Add_ST_L=(uchar)(Add_STamp。 Delayms(10)。 ISD_SendData(SET_ERASE)。 經(jīng)過(guò)這次畢業(yè)設(shè)計(jì),使我不論是從理論知識(shí)還是從實(shí)際操縱中都學(xué)到了不少知識(shí),我接觸到更多平時(shí)沒(méi)有接觸過(guò)的科學(xué)儀器設(shè)備、元器件,并且獲得了相關(guān)的儀器調(diào)試經(jīng)驗(yàn),同時(shí)也發(fā)現(xiàn)了自己在這方面的很多不足之處。 TH0=(6553650000)/256。 if ((P2amp。 // 鍵 4 case 0xdd: iScan=0x05。 // 鍵 c } P2=0xf7。 GetKey=ScanKeys()。break。 本學(xué)位論文成果是本人在內(nèi)江師范學(xué)院讀書(shū)期間在導(dǎo)師的指導(dǎo)下取得的,論文成果歸內(nèi)江師范學(xué)院所有,特此聲明。break。0xf0)!=0xf0)。 // 鍵 8 case 0xbb: iScan=0x09。 //鍵 a } P2=0xfd。 P2=0xf0。 1994 年第 5 期 內(nèi)江師范學(xué)院本科畢業(yè) 設(shè)計(jì) 34 附錄一 硬件原理圖 R1R2R3R51KC6C8C5S1S W P BS2S W P BS3S W P BS4S W P BS5S W P BS6S W P BS7S W P BR E C24P L A Y23E R A S E25F W D26V O L19FT22SS7S C L K6M O S I5M I S O4M I C +10M I C 11A na i n9R os c20AGC18R E S E T3LED2V c c d1V s s d28V c c a21V s s a8V c c p14V s s p116V s s p212S P +15S P 13A U D / A U X17I N T / R D Y27U1I S D 17 60M K 1R980kC 14D1LEDC9C 10C 11C210uC110uC310uC410uL S 18B T 1B A T T E R YV C CV C CV C CV C CV C CC 13P 1. 01P 1. 12P 1. 34P 1. 45P 1. 56P 1. 67P 1. 78R S T9P 3. 0/ R X D10P 3. 1/ T X D11P 3. 2/ I N T 012P 3. 3/ I N T 113P 3. 4/ T 014P 3. 5/ T 115P 3. 6/ W R16P 3. 7/ R D17X T A L 118X T A L 219GND20P 2. 021P 2. 122P 2. 223P 2. 324P 2. 425P 2. 526P 2. 627P 2. 728P S E N29A L E30EA31P 0. 732P 0. 633P 0. 534P 0. 435P 0. 336P 0. 237P 0. 138P 0. 039V C C40P 1. 23A1A T 89 S 52sss c l km os im i s oi nti ntm os im i s osss c l kY112MC 10 133PC 10 233PC 10 310UV D DR410KV D DV D DS8S W P B1 23 45 67 89 10J P 1H E A D E R 5X 2V D DP 15P 16P 17R S TR S TV D DP 15P 16P 17R61KR71KV D DC?C A P 內(nèi)江師范學(xué)院本科畢業(yè) 設(shè)計(jì) 35 內(nèi)江師范學(xué)院本科畢業(yè) 設(shè)計(jì) 36 附錄 二 主程序 include include include void KeyJudge(void)。 SS=1。 Add_ST_H=(uchar)(Add_ST8)。 //S10:S8 ISD_SendData(Add_ED_L)。 //if(SR0_L^0==1){system Err}CMD_Err==1 ClrInt()。 RdStatus()。 case 0x04:SetREC(3)。break。 內(nèi)江師范學(xué)院本科畢業(yè) 設(shè)計(jì) 27 scanValue=P2。break。當(dāng)?shù)刂分羔樦傅侥┑刂泛螅瑫?huì)自動(dòng)跳到 0x10。同理, SET_PLAY操作從起始地址播放語(yǔ)音信息,在結(jié)束地址停止播放。而 RD_STATUS, RD_PLAY_PNTR, RD_REC_PNTR 和 RD_APC 這些命令會(huì)在前兩個(gè)字節(jié)之后產(chǎn)生額外的信息(見(jiàn)下邊的細(xì)節(jié)說(shuō)明)。指令數(shù)據(jù)以數(shù)據(jù)隊(duì)列的形式從 MOSI 移入芯片,第一個(gè)移入的字節(jié)是命令字節(jié),這個(gè)字節(jié)決定了緊跟其后的 數(shù)據(jù)類(lèi)型。復(fù)位操作會(huì)將音量檔放 在默認(rèn)位置,即最大音量。當(dāng)下降沿來(lái)到 /FWD 端時(shí),快進(jìn)操作還要決定于芯片當(dāng)時(shí)的狀態(tài): A) 如果芯片在掉電狀態(tài)并且當(dāng)前播放指針的位置不在最后一段,那么指針會(huì)前進(jìn)一段,到達(dá)下一段語(yǔ)音處。不僅有錄、放功內(nèi)江師范學(xué)院本科畢業(yè) 設(shè)計(jì) 14 能,還有快進(jìn)、擦除、音量控制、直通放音和復(fù)位等功能。空閑時(shí),需要拉高 VSSA 8 1 模擬地 AnaIn 9 2 芯片錄音或直通時(shí),輔助的模擬 輸入。 可 處理多達(dá) 255 段以上信息 掉電保護(hù)方式下, RAM 內(nèi)容 被保存,振蕩器被凍結(jié), 單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。用單片機(jī)控制語(yǔ)音芯片設(shè) 計(jì)語(yǔ)音錄放系統(tǒng) ,該系統(tǒng)功能多,錄放音音質(zhì)好,外圍電路簡(jiǎn)單。 進(jìn)入 90 年代以來(lái),語(yǔ)音信號(hào)處理在實(shí)用化方面取得了許多實(shí)質(zhì)性的進(jìn)展。內(nèi)江師范學(xué)院本科畢業(yè) 設(shè)計(jì) 1 摘 要 用單片機(jī)控制語(yǔ)音芯片,再把單片機(jī)和語(yǔ)音芯片嵌入到通信設(shè)備,智能儀器, 娛樂(lè)設(shè)備, 治安報(bào)警及兒童玩具中,就可做成語(yǔ)音播放的機(jī)器。 一方面,對(duì)聲音語(yǔ)音學(xué)統(tǒng)計(jì)模型的研究逐漸深入,魯棒的語(yǔ)音識(shí)別、基于語(yǔ)音段的建模方法及隱馬爾可夫模型與人工神經(jīng)網(wǎng)絡(luò)的結(jié)合成為研究的熱點(diǎn)。 系統(tǒng)設(shè)計(jì)的目的 設(shè)計(jì)一個(gè)數(shù)字語(yǔ)音錄放系統(tǒng),可以應(yīng)用于通訊設(shè)備、娛樂(lè)設(shè)備、智能儀表、治安報(bào)亭、語(yǔ)音報(bào)站、報(bào)數(shù)報(bào)價(jià)、語(yǔ)音講解、語(yǔ)音記錄、語(yǔ)音復(fù)讀、教學(xué)儀器、智能玩具、電子禮品等領(lǐng)域。 AT89S52 單片機(jī) 主要 性能 參數(shù) 與 MCS51 單片機(jī)產(chǎn)品兼容; 8K 字節(jié)在系統(tǒng)可編程 Flash 存儲(chǔ)器; 1000 次擦寫(xiě)周期; 全靜態(tài)操作: 0Hz33MHz; 三級(jí)加密程序存儲(chǔ)器; 32 個(gè)可編程 I/O 口線; 三個(gè) 16 位定時(shí)器 /計(jì)數(shù)器; 八個(gè)中斷源; 全雙工 UART 串行通道; 低功耗空閑和掉電模式; 1掉電后中 斷可喚醒; 1看門(mén)狗定時(shí)器; 內(nèi)江師范學(xué)院本科畢業(yè) 設(shè)計(jì) 7 1雙數(shù)據(jù)指針; 1掉電標(biāo)識(shí)符 引腳功能說(shuō)明 圖 1 AT89S52 引腳圖 DIP 封裝 圖 2 AT89S52 引腳圖 PLCC 封裝 keil 開(kāi)發(fā)環(huán)境和建立工程 keil簡(jiǎn)介 Keil C51 是 美國(guó) Keil Software 公司出品的 51 系列兼容單片機(jī) C 語(yǔ)言軟件開(kāi)發(fā)系統(tǒng),與匯編相比, C 語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、 可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。 有 豐富多樣的工作狀態(tài)提示 需要一個(gè)交流耦合電容(典型值為 ),并且輸入信號(hào)的幅值不能超出 。這些功能僅僅通過(guò)按鍵就可完成 。 B) 如果芯片在掉電狀態(tài)并且當(dāng)前播放指針的位置在最后一段,那么指針會(huì)返回到第一段語(yǔ)音處。 FT 直通操作:將 /FT 管腳與 GND 短接,持續(xù)保持在低電平會(huì)啟動(dòng)直通模式。與此同時(shí),芯片狀態(tài)以及當(dāng)前行地址信息以數(shù)據(jù)隊(duì)列的方式通過(guò) MISO 被返給主機(jī)。 內(nèi)江師范學(xué)院本科畢業(yè) 設(shè)計(jì) 21 圖 8 MISO 數(shù)據(jù) 時(shí) 序 在輸出信息中,第一字節(jié)的狀態(tài)位提供了重要的信息,該信息標(biāo)明了上一個(gè) SPI 命令發(fā)送后的結(jié)果。 另外, SET_PLAY, SET_REC 和 SET_ERASE 命令有一個(gè)先入先出的緩存器,使得從一個(gè)存儲(chǔ)塊到下一個(gè)存儲(chǔ)塊之間實(shí)現(xiàn)無(wú)縫轉(zhuǎn)移。在此管理系統(tǒng)下錄音段之間是連續(xù)存放的,但首地址與末地址之間至少有一個(gè)空地址間隔來(lái)讓系統(tǒng)區(qū)分首末地址。 //鍵 2 case 0xbe: iScan=0x03。 switch (scanValue) { case 0xeb: iScan=0x07。 // 鍵 e case 0x77: iScan=0x0f。break。 DogReset()。 GetToneAdd(cNum, amp。 //E7:E0 結(jié)束地址 ISD_SendData(Add_ED_H)。 Add_ED_L=(uchar)(Add_EDamp。 Delayms(100)。 uchar ScanKeys(void)。 if ((P2amp。 scanValue=P2。break。//防止鍵按住不放 return iScan。 case 0x07:Set