版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
大學學士學位論文 PAGE32PAGE33目錄緒論 1第1章語音合成技術(shù)概述 21.1語音信號 21.1.1語音有關(guān)的術(shù)語概念 21.1.2語音信號的采樣頻率 21.2語音的數(shù)字合成方法 21.2.1波形存儲法 21.2.2參數(shù)合成法 31.2.3規(guī)則合成法 31.3語音記錄與語音庫的建立 41.3.1語音記錄 41.3.2語音庫的建立 41.4語音輸出與語音庫的調(diào)取 51.4.1語音輸出 51.4.2語音庫的調(diào)取 5第2章8031單片機功能簡介 62.18031單片機的組成及結(jié)構(gòu) 62.1.18031單片機的基本組成 62.1.28031單片機處理器及內(nèi)部結(jié)構(gòu) 62.28031單片機的引腳功能 72.3CPU時序 92.48031單片機的指令系統(tǒng) 92.58031的中斷系統(tǒng) 102.5.1中斷的定義 102.5.2中斷系統(tǒng) 102.5.3中斷響應 11第3章語音芯片TC8830AF的基礎(chǔ)知識和外圍電路 123.1語音芯片TC8830AF簡介 123.2引腳功能 133.3操作原理 143.3.1如何完成命令的寫入 143.3.2TC8830AF語音芯片11種命令簡要說明 143.3.3TC8830AF語音芯片狀態(tài)寄存器簡介 153.3.4聲音再生的有關(guān)流程框圖 163.3.5標記索引方式下的操作 163.4TC8830AF語音合成芯片的外圍電路 18第4章語音報時系統(tǒng)的設(shè)計 194.1語音報時系統(tǒng)的總體設(shè)計思想及工作原理 194.2語音報時系統(tǒng)的硬件設(shè)計 194.2.1硬件的模塊化設(shè)計 194.2.2語音報時系統(tǒng)的硬件總體設(shè)計 214.3語音報時系統(tǒng)的軟件設(shè)計 244.3.1語音錄制系統(tǒng)的軟件設(shè)計 244.3.2語音報時系統(tǒng)的軟件設(shè)計 25設(shè)計小結(jié) 331系統(tǒng)評價 332體會 33致謝 34參考文獻 35附錄源程序清單 36緒論隨著現(xiàn)代社會電子技術(shù)的發(fā)展和生產(chǎn)生活實際的需求,語音合成電路的應用將日益廣泛。尤其用在智能儀器儀表上,能使設(shè)備的功能增強,給使用者帶來極大方便。在許多不便于直接目測的場合,將檢測結(jié)果用語音輸出,實現(xiàn)以耳聽代替目測,會收到很好的效果。目前,市場上已有許多語音合成芯片供選擇、開發(fā)應用,如ISD4002、TMS3477、YYH16、T6668和TC8830AF等都具有較強的記錄功能,可以應用于許多語音專用系統(tǒng)。本次設(shè)計選用高級語音處理器TC8830AF語音合成芯片,這種語音芯片是由東芝公司推出的使用自適應增量δ調(diào)制(ADM)方式的大規(guī)模集成電路,連接EPROM27256固化語音數(shù)據(jù),外圍配置揚聲器和放大器組成的音頻電路。單片機8031給出語音存放的地址信號和控制信號可實現(xiàn)語音的錄制和放音,達到報時的目的。本課題在具體設(shè)計前詳細介紹了語音合成的基本原理,敘述了三種語音合成的方法:波形存儲法,分析合成方式以及規(guī)則合成方式,并對波形存儲方式及其分類做了詳細敘述。了解基本原理之后,就進入了設(shè)計部分。本課題既詳細介紹了TC8830AF語音芯片的特點、結(jié)構(gòu)、基本工作原理及其外圍電路,同時又對8031微處理器的結(jié)構(gòu)和基本原理做了簡要的敘述,并且在此原理及特性基礎(chǔ)上進行語音報時系統(tǒng)的硬件及軟件設(shè)計。
第1章語音合成技術(shù)概述1.1語音信號1.1.1語音有關(guān)的術(shù)語概念(1)語音由人的聲道發(fā)出的聲音,主要由共振峰確定其頻率特性。(2)發(fā)音所謂發(fā)音是指出語音的基本生理過程。語聲波形是一種聲壓波。語音主要是由于聲帶振動而發(fā)出的聲能。(3)聲道聲道是一根從聲門延伸到嘴唇的非均勻截面的聲管,它的形狀變化是時間的函數(shù)。(4)共振峰由一些語音引起聲道共振,組成一個音響共鳴系統(tǒng)。聲道管的諧振頻率和聲道的形狀與大小有關(guān),每種形狀都有一種或一套共振峰頻率作為特征。(5)滑音是一種中間形式,即發(fā)音時,從某個音素A變化到另一個音素B時,便產(chǎn)生一種從A的固有發(fā)音形式轉(zhuǎn)向B的固有發(fā)音形式的中間發(fā)音形式。1.1.2語音信號的采樣頻率香農(nóng)采樣定理表明,語音信號的采樣頻率是語音所必需的頻帶寬度的2倍以上。例如,要保持最高頻率為5kHz帶寬的頻譜,采樣頻率最低必須為10kHz。人的耳朵可聽到頻率為20Hz-20kHz的聲音。在處理連續(xù)語音時,我們可以根據(jù)前后的信息進行估計與識別的處理,所以用8kHz就足以勝任了。對語音信號進行采樣的頻率叫做采樣頻率,將采樣頻率f乘以語音信號采樣值的編碼位數(shù)m,即f×m,就得到了表征語音合成芯片的一個重要參數(shù)指標——比特率。f×m,就是存儲1秒鐘的語音信息所必需的位數(shù),其數(shù)值與傳輸語音信號的線路所必需的頻帶寬度有關(guān)系。1.2語音的數(shù)字合成方法1.2.1波形存儲法波形存儲法是一種相對簡單的語音合成技術(shù)。其基本思想和作法是:首先由人講一些單詞、詞組或短語,在內(nèi)存中建立特別的詞匯語音庫,然后就可以在今后的處理過程中,將相應的數(shù)字量調(diào)取出來。在建立詞匯語音庫的過程中,將特定的單詞、詞組或短語的聲波波形通過轉(zhuǎn)變成數(shù)字信號而存入存儲單元中。圖1.1所示為波形存儲法的過程示意圖。預處理。將含有所需單詞、句的話音由聲轉(zhuǎn)電信號預處理。將含有所需單詞、句的話音由聲轉(zhuǎn)電信號采樣獲得語音信號的數(shù)字表示建立所要求的語音庫存儲器待合成內(nèi)容計算機根據(jù)詞匯表結(jié)構(gòu),按一定規(guī)則獲取語音數(shù)據(jù)組織邏輯語音合成裝置功放揚聲器圖1.1波形存儲法過程示意圖1.2.2參數(shù)合成法參數(shù)合成法也稱為分析合成法,是一種比較復雜的方法,它是基于分析與模擬人的發(fā)音器官,以便尋求并建立描述過程??梢杂泄舱穹濉㈩l譜包絡和聲道濾波三種方式來提取語音信息,因此這種方法不是直接利用人發(fā)出的聲音,而是從人的語音中提取與語音參數(shù)有關(guān)的特征參數(shù)。最常用的方法是提取PARCOR系數(shù)(偏自相關(guān)系數(shù))和LPC系數(shù)(線性預測系數(shù))。在合成過程中,通過相應數(shù)學模型的計算去人工控制這些參數(shù)的合成。實現(xiàn)合成的方法,則因線性預測系數(shù)、語音共振峰等而各不相同。利用這種方法,信息量可壓縮到1200—9600bps。另外,所提取出的PARCOR系數(shù)也好,LPC系數(shù)也好,都是將數(shù)據(jù)存放入計算機內(nèi)存中,當要合成某個語音時,就去調(diào)用已存儲在相應的內(nèi)存單元中的系數(shù),通過有關(guān)運算還原出數(shù)字語音,以便最終獲取聲音。不過,這種方式也受內(nèi)存容量的限制,所能合成的詞匯數(shù)也是有限的。圖1.2所示是用參數(shù)合成法實現(xiàn)的語音輸出系統(tǒng)原理示意圖。CPUCPU存儲器I/O接口電路通信接口語音合成部分專用存儲器控制接口電路語音合成器總線上位機揚聲器圖1.2用參數(shù)合成法的裝置框圖1.2.3規(guī)則合成法規(guī)則合成法以音素法為例,它將每個發(fā)音的音素(對應具有固定或一定范圍的頻率)所表示的語音信號存儲起來,拼音時隨時取用。這種以最小單位進行的方法,實現(xiàn)起來挺麻煩,而且更復雜困難。1.3語音記錄與語音庫的建立語音合成是語音模擬信號經(jīng)過采樣,在計算機內(nèi)存中反映為一個數(shù)字序列;而當這一數(shù)字序列最終輸出時,為一特定語音的過程。那么這一數(shù)字序列就是表征一定意義的語音詞匯,將有關(guān)這些數(shù)字序列存儲起來,就是創(chuàng)建語音庫的過程。1.3.1語音記錄語音的產(chǎn)生是語聲經(jīng)過話筒,靠振膜接受聲波振動,并轉(zhuǎn)變?yōu)殡娦盘?。話筒分動圈式、駐極體電容式等類型,關(guān)于這兩種類型的話筒分別敘述如下:動圈式它是依靠振膜的機械振動帶動置于磁場中的線圈振動,從而引起磁場的變化,在線圈上產(chǎn)生變化的電信號。話筒內(nèi)部線圈與振膜直接相連,振膜的振動帶動線圈的振動,將聲能變成機械能,并由機械能轉(zhuǎn)為電能的形式。駐極體電容式這種話筒時利用永久性帶有電荷的塑料薄膜做振膜,不受外部電場和磁場的影響。當受到聲波的作用后,振膜產(chǎn)生振動,引起電級之間電場的變化,而后將這種固定電級之間的變化轉(zhuǎn)變?yōu)殡娦盘枴.斣捦矊⒙暡ㄞD(zhuǎn)化為電能后,再經(jīng)模/數(shù)轉(zhuǎn)換,便可得到數(shù)字表征的語聲信號,通過分析或處理再由存儲器存儲這些數(shù)字序列,便將語音以數(shù)字表征的形式記錄下來。1.3.2語音庫的建立在波形語音合成方式里,我們得到的是語音的數(shù)字編碼形式,記載的數(shù)字編碼如一一得以復原,則可復述原先所記錄的語音。由于語音發(fā)出的過程是以時間為基本軸的,這勢必會造成停頓時間過長的缺點,以至于浪費內(nèi)存,為此,需要根據(jù)時間軸來進行錄音編輯。關(guān)于編輯的基本思想是這樣的:第一,將所需的字、詞或句通過話筒輸入,并由語音合成芯片轉(zhuǎn)換成數(shù)字量保存在存儲器中;第二,由計算機控制存儲器內(nèi)容得以復原后與時間有關(guān),因此需要反復調(diào)整時間,以決定某一字、詞或句子在一個存儲器里所處的以時間為軸的具體位置,或者確定在存儲器中的地址。在參數(shù)合成法或規(guī)則合成法里,我們需要的字、詞或語句將表征為一系列參數(shù)。建立語音庫時應記錄語音信號的抽象表示形式,即以各種參數(shù)描述的有關(guān)字、詞或句子的表示方式。因為各個參數(shù)針對一定字、詞或句子都是具有聯(lián)系意義的,彼此相輔而成,因此關(guān)于這二種方式的語音庫建立可以按照如下形式進行:第一,由磁帶式錄音機錄制字、詞或句,并盡可能將有關(guān)語聲之間因發(fā)音受阻礙或停頓消除,然后進行分析、計算處理,取得參數(shù)編碼,再由該類語音合成芯片的專用語音存儲器來存儲參數(shù),或交由計算機來管理。第二,基于波形編碼方式的輸出結(jié)果,即通過波形編碼方式獲取有關(guān)語音庫后,再由計算機控制,以便將這種語音庫轉(zhuǎn)變?yōu)橛闪硪粎?shù)表示的語音庫。1.4語音輸出與語音庫的調(diào)取語音輸出有很多種轉(zhuǎn)換形式,但都可以歸納為采用波形編碼形式的數(shù)字編碼進行解譯的過程,也可以說是用波形合成法或規(guī)則合成法各參數(shù)控制輸出的過程。輸出的最終形式是將語音通過揚聲器得以傳播出去。1.4.1語音輸出語音輸出是將電形式轉(zhuǎn)換為聲形式的過程。揚聲器是實現(xiàn)這一最終語音合成結(jié)果的工具。電信號變換為聲信號,也就是電信號變換為空氣壓力的變化(即聲波),其變換根據(jù)是置于磁路中的音圈里通過電流時產(chǎn)生力的現(xiàn)象,力的方向隨電流的方向而變化。音圈與振膜相連接,振膜的重量要輕,并且要具有壓縮空氣的足夠的面積。音圈的振動導致了振膜的振動,于是,最終的聲波便從電信號方式轉(zhuǎn)變出來。1.4.2語音庫的調(diào)取計算機在建立語音庫是主要是按時間軸和內(nèi)存地址兩種方式來確定字、詞或句子在語音庫中的位置,在語音庫調(diào)取數(shù)據(jù)時,在語音庫之外重新開辟一內(nèi)存暫存區(qū)域,將有關(guān)語音庫中的數(shù)據(jù)按照輸出語音的先后順序安排進入暫存單元,然后一一從內(nèi)存中調(diào)取。
第2章8031單片機功能簡介2.18031單片機的組成及結(jié)構(gòu)2.1.18031單片機的基本組成8031單片機是目前國內(nèi)廣泛應用的單片機之一,它是在一塊芯片上集成了CPU、ROM、RAM、定時器/計數(shù)器和多種功能的I/O端口等一臺計算機所需要的基本功能部件。8031內(nèi)部包含了下列幾個部件:(1)一個8位CPU;(2)一個片內(nèi)振蕩器及時鐘電路;(3)4K字節(jié)程序存儲器;(4)128字節(jié)數(shù)據(jù)存儲器;(5)兩個16位可編程定時器/計數(shù)器;(6)一個可編程全雙工串行口;(7)四個8位可編程并行I/O端口;(8)64K字節(jié)外部數(shù)據(jù)存儲器和64K字節(jié)程序存儲器擴展控制電路;(9)五個中斷源,兩個優(yōu)先級嵌套中斷結(jié)構(gòu)。以上各部分通過總線相連接。2.1.28031單片機處理器及內(nèi)部結(jié)構(gòu)8031單片機處理器及內(nèi)部結(jié)構(gòu)與一般微處理器相比,除了增加接口部分外,基本結(jié)構(gòu)是相似的,但也有明顯不同的地方,例如8031的數(shù)據(jù)指針DPTR是專門為指示存儲器地址而設(shè)置的寄存器。(1)運算器運算器的功能是進行算術(shù)運算和邏輯運算,可以實現(xiàn)對半字節(jié)、字節(jié)等數(shù)據(jù)進行操作。8031單片機的運算器還包括一個布爾處理器,專門用來進行位操作。(2)程序計數(shù)器PC8031單片機的程序計數(shù)器PC用來存放即將要執(zhí)行的指令的地址,共16位。可對64K字節(jié)的程序存儲器直接尋址。若系統(tǒng)的程序存儲器在片外,執(zhí)行指令時,PC的低8位經(jīng)P0口送出,PC的高8位由P2口送出。PC是決定執(zhí)行順序的關(guān)鍵性寄存器,是任何一個微處理器都不可缺少的。(3)指令寄存器指令寄存器用于存放指令代碼。CPU執(zhí)行指令時,從程序存儲器中讀取指令代碼送入指令寄存器,經(jīng)譯碼后由定時和控制電路發(fā)出相應的控制信號,完成指令的功能。(4)工作寄存器區(qū)通用工作寄存器相當于CPU內(nèi)部的小容量存儲器,用來存放參加運算的數(shù)據(jù)、中間數(shù)據(jù)或地址。(5)專用寄存器區(qū)專用寄存器區(qū)也可稱為特殊功能寄存器區(qū)。8031單片機的CPU根據(jù)程序的需要訪問有關(guān)的專用寄存器,從而正確地發(fā)出各種控制命令,完成指令規(guī)定的操作。(6)堆棧8031單片機的堆棧安排在內(nèi)部RAM中,它的位置通過堆棧指針SP來設(shè)置,其深度可達128字節(jié)。(7)標志寄存器標志寄存器是用來存放ALU運算結(jié)果的各種特征。程序在執(zhí)行過程中經(jīng)常需要根據(jù)這些標志來決定下一步應當如何操作。2.28031單片機的引腳功能8031單片機采用40引腳的雙列直插封裝方式。圖2.1為8031單片機的引腳圖。140140239338437536635734833980313210311130122913281427152616251724182319222021P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST/VpdRXD/P3.0TXD/P3.1/INT0/P3.2/INT1/P3.3T0/P3.4T1/P3.5/WR/P3.6/RD/P3.7XTAL2XTAL1VSSVCCP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7/EA/VPPALE//PROG/PSENP2.7/A15P2.6/A14P2.5/A13P2.4/A12P2.3/A11P2.2/A10P2.1/A9P2.0/A8圖2.18031單片機的引腳圖40條引腳的功能簡要說明如下:1.主電源引腳VCC和VSS(1)VCC(40)。正常操作時接+5V電源。(2)VSS(20)。接地。2.外接晶體引腳XTAL1和XTAL2(1)XTAL1(19)。接外部晶體和微調(diào)電容的一個引腳。(2)XTAL2(18)。接外部晶體和微調(diào)電容的另一個引腳。3.控制或其他電源復用引腳RST/Vpd、ALE//PROG、/PSEN和/EA/VPP(1)RST/Vpd(9)。當振蕩器工作時,在此引腳上出現(xiàn)兩個機器周期以上的高電平將使單片機復位。當VCC掉電期間,此引腳可接上備用電源,由Vpd向內(nèi)部RAM提供備用電源,以保持內(nèi)部RAM中的數(shù)據(jù)。(2)ALE//PROG(30)。當訪問外部存儲器時,地址所存允許ALE信號的輸出用于鎖存低8位地址信息。即使不訪問外部存儲器,ALE端仍以不變的頻率周期性地發(fā)出正脈沖信號。但是要注意的是,每當訪問外部數(shù)據(jù)存儲器時,將少發(fā)出一個ALE信號。因此假若要將ALE信號直接作為時鐘信號,那么程序中必須不出現(xiàn)訪問外部數(shù)據(jù)存儲器的指令,否則就不能將ALE作為時鐘信號。ALE端可以驅(qū)動8個LSTTL電路。對于EPROM型單片機,在EPROM編程期間,此引腳用于輸入編程脈沖信號(/PROG)。(3)/PSEN(29)。該端輸出外部程序存儲器讀選通信號。當CPU從外部程序存儲器取指令(或數(shù)據(jù))期間,在12個振蕩周期內(nèi)將會出現(xiàn)2次/PSEN信號。但是如果CPU執(zhí)行的是一條訪問外部數(shù)據(jù)存儲器指令,那么在執(zhí)行這條指令所需的24個振蕩周期內(nèi)將會少發(fā)出2個/PSEN信號。CPU在訪問內(nèi)部程序存儲器時,/PSEN端不會產(chǎn)生有效的/PSEN信號。/PSEN端同樣可以驅(qū)動8個LSTTL電路。(4)/EA/Vpp(31)。訪問外部程序存儲器控制端。當/EA端保持高電平時,單片機復位后訪問內(nèi)部程序存儲器。當/EA端保持低電平時,則只訪問外部程序存儲器4.輸入/輸出引腳(1)P0.0~P0.7(39~32)。P0是一個8位漏極開路型雙向I/O口。在訪問外部存儲器時可作為地址/數(shù)據(jù)分時復用總線使用。當P0作為地址/數(shù)據(jù)分時復用總線使用時,在訪問存儲器期間它能激活內(nèi)部的上拉電阻。P0能以吸收電流的方式驅(qū)動8個LSTTL電路。(2)P1.0~P1.7(1~8)。P1是一個內(nèi)部帶上拉電阻的8位準雙向I/O口。在對EPROM型單片機編程和驗證程序時,它接收低8位地址。P1能驅(qū)動4個LSTTL電路。(3)P2.0~P2.7(21~28)。P2是一個內(nèi)部帶上拉電阻的8位準雙向I/O口。在訪問外部存儲器時,它送出高8位地址。在對EPROM型單片機編程和驗證程序期間,它接收高8位地址。P2可以驅(qū)動4個LSTTL電路。(4)P3.0~P3.7(10~17)。P3是一個內(nèi)部帶上拉電阻的8位準雙向I/O口。P3能驅(qū)動4個LSTTL電路。P3每個引腳分別具有第二功能,如表2.1所示。表2.1P3口線的第二功能口線第二功能P3.0RXD(串行口輸入)P3.1TXD(串行口輸出)P3.2/INT0(外部中斷0外部輸入)P3.3/INT1(外部中斷1外部輸出)P3.4T0(定時器/計數(shù)器0外部輸入)P3.5T1(定時器/計數(shù)器1外部輸入)P3.6/WR(外部數(shù)據(jù)存儲器寫選通)P3.7/RD(外部數(shù)據(jù)存儲器讀選通)2.3CPU時序CPU實質(zhì)上就是一個復雜的同步時序電路,所有的工作都是在時鐘信號控制下進行的。每執(zhí)行一條指令,CPU的控制器都要發(fā)出一系列特定的控制信號,這些控制信號在時間上的相互關(guān)系問題就是CPU的時序。CPU發(fā)出的控制信號一般分成兩類,一類是用于計算機內(nèi)部的,這類信號非常多,用戶并不直接接觸這些信號;另一類信號是通過控制總線送到片外的,在使用計算機時,用戶必須接觸到這些信號。單片機的指令由字節(jié)組成,而在討論單片機的時序時,則以機器周期作為單位。在一個機器周期中,單片機可以完成某種規(guī)定的操作。8031單片機的每個機器周期包含6個狀態(tài)周期。由于每個狀態(tài)周期包含2個節(jié)拍,因此一個機器周期包含12個振蕩周期,若采用12MHz的晶體振蕩器,則每個機器周期恰為1us。每條指令都由一個或幾個機器周期組成,執(zhí)行一條指令的時間稱為指令周期。在8031單片機系統(tǒng)中,有單周期指令、雙周期指令和四周期指令。每一條指令的執(zhí)行都可以包括取指和執(zhí)行兩個階段。在取指階段,CPU從內(nèi)部和外部ROM中取出指令操作碼及操作數(shù),然后再執(zhí)行這條指令對于絕大部分指令在整個指令的取址和執(zhí)行過程中,ALE信號是周期性的信號。每出現(xiàn)一次ALE信號,CPU就進行一次取指操作。不同的指令,由于其字節(jié)數(shù)和周期數(shù)不同,所以具體的取指和執(zhí)行時序也有所不同。對于8031系統(tǒng)來說,有單字節(jié)單周期指令,雙字節(jié)單周期指令、單字節(jié)雙周期指令、雙字節(jié)雙周期指令、三字節(jié)雙周期指令以及單字節(jié)四周期指令。一般情況下每個機器周期將會出現(xiàn)兩次ALE信號。2.48031單片機的指令系統(tǒng)指令是CPU執(zhí)行某種操作的命令。一臺計算機所能執(zhí)行的全部指令的集合稱為這個CPU的指令系統(tǒng)。8031匯編語言指令由操作碼字段和操作數(shù)字段兩部分組成。操作碼字段指示了計算機所要執(zhí)行的操作,由2~5個英文字母表示。操作數(shù)字段指出了參與操作的數(shù)據(jù)來源和操作結(jié)果存放的目的單元。操作數(shù)字段又分為目的操作數(shù)和源操作數(shù)兩部分。操作數(shù)可以是一個常數(shù),或者是一個數(shù)據(jù)所在的空間地址,即在執(zhí)行指令時可以從指定的地址空間取出操作數(shù)。操作碼和操作數(shù)都有對應的二進制代碼,指令代碼由若干字節(jié)組成。對于不同的指令,指令的字節(jié)數(shù)不同。8031單片機的指令系統(tǒng)具有255種操作代碼,一共構(gòu)造出111種指令,指令系統(tǒng)功能很強,可分為下面5類:(1)數(shù)據(jù)傳送類(28條)(2)算術(shù)操作類(24條)(3)邏輯操作類(25條)(4)控制轉(zhuǎn)移類(17條)(5)布爾變量操作類(17條)2.58031的中斷系統(tǒng)2.5.1中斷的定義中斷就是指由于外部或內(nèi)部事件而改變原來CPU正在執(zhí)行指令順序的一種工作機制。它是CPU和外設(shè)之間交換信息的一種方式,在引入中斷技術(shù)之后,解決了CPU和外設(shè)之間的速度配合問題,提高了CPU的工作效率和計算機處理故障的能力。中斷機制涉及到三個內(nèi)容:中斷源、中斷控制和中斷響應。中斷源是指引起中斷的事件;中斷控制是指中斷的允許/禁止、優(yōu)先和嵌套等處理方式;中斷響應是指確定中斷入口、保護現(xiàn)場、進行中斷服務、恢復現(xiàn)場和中斷返回等過程。2.5.2中斷系統(tǒng)1.中斷系統(tǒng)的組成能夠?qū)崿F(xiàn)中斷功能的部件稱為中斷系統(tǒng)。8031單片機的中斷系統(tǒng)由中斷源、中斷控制電路和中斷入口地址電路等部分組成。中斷系統(tǒng)涉及到的4個寄存器是:定時器/計數(shù)器控制寄存器、串行口控制寄存器、中斷允許寄存器和中斷優(yōu)先級寄存器。2.中斷源8031單片機中有三類中斷源:兩個外部中斷、兩個定時器/計數(shù)器中斷和一個串行口中斷。這些中斷源提出中斷請求后會在專用寄存器中設(shè)置相應的中斷標志。各中斷源提出中斷請求的過程說明如下:(1)外部中斷外部中斷源是通過兩個外部引腳/INT0、/INT1引入的。/INT0為外部中斷0請求信號,/INT1為外部中斷1請求信號。(2)定時器/計數(shù)器中斷定時器/計數(shù)器的中斷源是由其溢出位引入的。當定時器/計數(shù)器到達設(shè)定的時間或檢測到設(shè)定的計數(shù)脈沖后,其溢出位置位。定時器/計數(shù)器的計數(shù)脈沖由外部引腳T0和T1引入時,定時器/計數(shù)器就變?yōu)橛嫈?shù)器。(3)串行口中斷串行口發(fā)送完一幀串行數(shù)據(jù)或接受到一幀串行數(shù)據(jù)后,都會發(fā)出中斷請求。專用寄存器SCON中的TI和RI為串行中斷請求標志位。3.中斷系統(tǒng)的功能中斷系統(tǒng)即中斷管理系統(tǒng),指能夠?qū)崿F(xiàn)中斷功能的那部分硬件電路和軟件程序。中斷系統(tǒng)功能一般有下面幾種:(1)對于中斷申請的開放和屏蔽管理;(2)進行中斷優(yōu)先級排隊;(3)實現(xiàn)中斷嵌套;(4)響應中斷;(5)中斷返回。2.5.3中斷響應1.中斷請求信號的檢測8031的中斷請求信號是由中斷標志、中斷允許標志和中斷優(yōu)先標志經(jīng)邏輯而得到。CPU工作時,在每個機器周期中都會去查詢中斷請求信號。2.中斷請求的響應條件8031單片機的CPU在檢測到有效的中斷請求信號同時,還必須同時滿足下列三個條件才能在下一個周期響應中斷:(1)無同級或更高級的中斷在服務;(2)現(xiàn)行的機器周期是指令的最后一個周期;(3)當前正執(zhí)行的指令不是中斷返回指令或訪問IP、IE寄存器等與中斷有關(guān)的指令。如果滿足響應條件,CPU就在下一機器周期中響應中斷,完成兩個工作:一是將中斷點的地址即程序計數(shù)器PC的內(nèi)容推入堆棧;二是根據(jù)中斷的不同來源,將程序的執(zhí)行轉(zhuǎn)到相應的中斷服務程序入口。3.中斷響應的過程CPU響應中斷的過程可分為設(shè)置標志、保護斷點、選擇中斷入口、進行中斷服務和中斷返回五個部分。(1)設(shè)置標志響應中斷后,由硬件自動設(shè)置與中斷有關(guān)的標志。(2)保護斷點中斷的斷點保護是由硬件自動實現(xiàn)的,當CPU響應中斷后,硬件把當前PC寄存器的內(nèi)容壓入堆棧。(3)選擇中斷入口根據(jù)不同的中斷源,選擇不同的中斷入口地址送入PC,從而轉(zhuǎn)入相應的中斷服務程序。(4)進行中斷服務由于各中斷入口地址間隔較近,通??砂才乓粭l絕對轉(zhuǎn)移指令,跳轉(zhuǎn)到相應的中斷服務程序。中斷服務程序通常還要考慮現(xiàn)場的保護和恢復。不同的中斷請求會有不同的中斷服務要求,中斷服務程序也各不相同。(5)中斷返回中斷服務程序最后執(zhí)行中斷返回指令RETI,標志著中斷響應的結(jié)束。
第3章語音芯片TC8830AF的基礎(chǔ)知識和外圍電路3.1語音芯片TC8830AF簡介 1.芯片特點TC8830AF語音合成芯片是一種采取CMOS工藝,內(nèi)建ADM調(diào)制方式的單芯片語音錄制與再生的專用集成器件。它采用靜態(tài)RAM作為存儲器件,只要外圍配置一個由話筒、揚聲器、放大器等組成的音頻電路,那么一個具有錄音與聲音再生的語音處理系統(tǒng)便建立起來了。下面是TC8830AF的一些主要特點:(1)聲音數(shù)據(jù)的存取選用靜態(tài)RAM,可外接4片64K位或者4片256K位的SRAM芯片;(2)通過外部電路可以將外接存儲器容量擴大至8M位;(3)連接話筒極其方便,并有11種命令供使用;(4)在手動操作工作模式下,聲音的錄制與再生最多為16段;(5)提供四種比特率:32kbps、16kbps、11kbps、8kbps供選擇一種使用;(6)使用四片256k位SRAM存儲器,以及選擇16kbps比特率,錄音/放音時間達64秒左右;(7)錄制時片內(nèi)有話筒放大器,放音時片內(nèi)有頻帶濾波器;(8)自適應增量δ調(diào)制方式ADM;(9)CMOS工藝;(10)片載陶瓷振蕩電路;(11)單一正電源供電,電壓為+5V;(12)可方便地將語音數(shù)據(jù)固化在EPROM中;(13)內(nèi)載10位D/A轉(zhuǎn)換器、電壓跟隨器輸出;(14)具有CPU、手動兩種操作使用方式供選用。另外,還具有DMA及最小功耗維持工作方式;(15)67腳扁平封裝。2.結(jié)構(gòu)與組成TC8830AF語音合成芯片的內(nèi)部結(jié)構(gòu)由以下部分組成:地址計數(shù)器20位的地址計數(shù)器用以指定外部靜態(tài)RAM的地址,并且在聲音錄制和再生時,其累加增以8為一個單位。在CPU控制下,該地址計數(shù)器的值能夠通過命令予以設(shè)置或讀出。停止地址寄存器20位的停止地址寄存器用以指示聲音錄音/再生過程停止時的地址。在CPU控制下,該值能夠通過命令進行設(shè)定,但其值不能讀出。地址比較器當?shù)刂酚嫈?shù)器的內(nèi)容與停止地址寄存器中的內(nèi)容相一致時,地址計數(shù)器停止計數(shù)。而地址比較器是完成這一功能的檢測核心。變址寄存器在標記索引模式下,變址寄存器用于指示在SRAM中的索引區(qū)的地址。用戶不能隨意讀取,但CPU管理下可以既讀又變更。狀態(tài)寄存器TC8830AF的狀態(tài)寄存器為四位,它用于指示TC8830AF的狀態(tài)。在CPU控制下,當/RD端給定低電平時,TC8830AF就在P0~P3這四根數(shù)據(jù)總線上反映狀態(tài)寄存器的四位內(nèi)容。CPU接口CPU接口電路用于連接外部的微處理器。SRAM接口該接口電路用于外接SRAM。話筒放大器TC8830AF的MICCOUT端的輸出被加壓偏置到Vref附近,并且能夠被直接引向ADI端。帶通濾波器TC8830AF芯片上具有第一級高通濾波器和第二級低通濾波器。ADM分析/合成電路A/D轉(zhuǎn)換器與電壓跟隨器時序發(fā)生控制電路3.2引腳功能6766656463626160595857565515425335245155064974884794610TC8830AF45114412431342144115401639173818371936203521342223242526272829303133FLOUTNCTESTD7NCD6NCD5NCD4NCNCD3D2D1D0A14A13A12VSS1A11A10A9A8A7A6ADDA5A4A3A2A1P0P1P2P3PH0PH1PH2PH3/RD/WRALER//W256KXOUTXINSTBY/CE4/CE3/CE2/CE1/CEA0FILINDAOADIMICOUTC2VSS2VDDC1MICINVREFCPUM/ACLEOS圖3.1TC8830AF引腳圖TC8830AF語音合成芯片采用67腳薄形扁平封裝,其引腳圖如圖3.1所示。按引腳圖所示序號排列順序?qū)C8830AF各引腳說明如下:(1)TC8830AF使用SRAM,與存儲器的連線一般來說一一對應即可;(2)STBY端決定是否進入低功耗維持狀態(tài);(3)與CPU接口的數(shù)據(jù)線為4位;(4)TC8830AF命令有11條,格式是半個字節(jié),4位的;(5)TC8830AF有DMA方式;(6)TC8830AF有錄放達63段的二種操作模式,即在手動操作工作模式下的自動段模式,以及在CPU操作工作模式下的標記索引模式;(7)可讀寫語音數(shù)據(jù)存儲器。3.3操作原理3.3.1如何完成命令的寫入TC8830AF命令的寫入可由以下幾個步驟來完成。步驟一,利用/RD脈沖,讀取TC8830AF的狀態(tài),并且檢驗BUSY標志位;步驟二,如果BUSY位不是處于“忙”狀態(tài),則在P0—P3端設(shè)置好命令,并且利用/WR脈沖寫入一個命令;步驟三,對于3個半字節(jié)的命令,這時可寫入第2個半字節(jié),再寫第3個半字節(jié)。3.3.2TC8830AF語音芯片11種命令簡要說明(1)NOP(半個字節(jié)命令)在聲音錄制等待狀態(tài)下,該命令設(shè)置進入聲音再生等待狀態(tài)。另外,該命令還用于復位狀態(tài)寄存器中的OVR標志位等等。(2)START(半個字節(jié)命令)該命令用于啟動錄制或再生過程,在直接模式,通過地址計數(shù)器顯示出地址值。該命令還用于設(shè)置狀態(tài)寄存器中的EOS標志位。(3)STOP(半個字節(jié)命令)在聲音錄制過程中,執(zhí)行該命令時,錄制過程停止,地址計數(shù)器的值被寫入SRAM存儲器的索引區(qū),作為停止地址。另外,該命令還用于復位狀態(tài)寄存器中的EOS標志。對于再生過程,該命令需執(zhí)行兩次,再生才停止,同時狀態(tài)寄存器中的EOS標志復位。(4)ADLD1(6個半個字節(jié)命令)在地址計數(shù)器中設(shè)置5個連續(xù)的半字節(jié)數(shù)據(jù)構(gòu)成20位的地址值,并復位地址比較觸發(fā)器。另外,該命令可設(shè)置進入聲音再生等待狀態(tài)。(5)ADLD2(6個半個字節(jié)命令)在停止地址寄存器中設(shè)置5個連續(xù)的半字節(jié)數(shù)據(jù)構(gòu)成20位的地址值,并復位地址比較觸發(fā)器。ADLD2設(shè)置的20位地址值必須大于ADLD1的20位地址值,即停止地址要大于起始地址。另外,該命令可設(shè)置進入聲音再生等待狀態(tài)。(6)CNDT(2個半個字節(jié)命令)該命令用于定義比特率,連續(xù)的那半個字節(jié)還用于允許/禁止地址溢出探測器。另外,該命令還可用來設(shè)置進入聲音再生等待狀態(tài)。(7)LABEL(3個半個字節(jié)命令)該命令通過連續(xù)的2個半字節(jié)的數(shù)據(jù)定義段號啟動聲音的錄制/再生。在聲音錄制守候狀態(tài)下加上該命令,地址計數(shù)器的內(nèi)容將被寫入到SRAM存儲器的索引區(qū)域,同時啟動聲音的錄制。在聲音再生等待狀態(tài)下,加上該命令,并讀取了啟動地址和停止地址后,便啟動聲音的再生。(8)ADRD(半個字節(jié)命令)讀取地址計數(shù)器的內(nèi)容,一次讀取其中的四位碼元,經(jīng)5次連續(xù)訪問后,按內(nèi)地址值的低位到高位,順序獲取到20位的地址計數(shù)器內(nèi)容。在此讀入過程期間,狀態(tài)寄存器的內(nèi)容不能被讀??;并且在沒有5次連續(xù)的訪問,即未讀出20位地址值之前,也不接受下一個命令。另外,該命令還可用于設(shè)置進入聲音再生守候狀態(tài)。(9)REC(半個字節(jié)命令)該命令用于將聲音再生等待狀態(tài)切換進入聲音錄制等待狀態(tài)。(10)DTRD(3個半個字節(jié)命令)該命令通過2個連續(xù)的讀訪問過程,從SRAM存儲器中讀出8位數(shù)據(jù)。該地址值由地址計數(shù)器指示。在這個讀周期期間,不會訪問狀態(tài)存儲器的內(nèi)容,地址計數(shù)器也不會加1。另外,該命令還用來設(shè)置進入聲音再生等待狀態(tài)。(11)DTWR(3個半個字節(jié)命令)該命令通過2個連續(xù)的半字節(jié)數(shù)據(jù)而寫入SRAM存儲器中一個8位的數(shù)據(jù),該SRAM地址值由地址計數(shù)器決定,此時地址計數(shù)器不會加1。另外,該命令還用于設(shè)置進入聲音再生等待狀態(tài)。在聲音錄制/再生過程中,上述的11條指令,只有STOP命令有效。3.3.3TC8830AF語音芯片狀態(tài)寄存器簡介狀態(tài)寄存器由四位組成,在CPU操作工作模式下,當/RD端被設(shè)為低電平時,狀態(tài)寄存器的四位數(shù)據(jù)在P0—P3端口輸出,它反映了TC8830AF的工作狀態(tài)。狀態(tài)寄存器的每一位標志位說明見表3.1。表3.1狀態(tài)寄存器位情況端口名稱P3P2P1P0狀態(tài)寄存器—OVRBUSYEOS可見,四位狀態(tài)寄存器中僅有三位狀態(tài)標志位,下面對這三位分別介紹。(1)OVR溢出標志該位指示錄制過程的結(jié)束。在錄制過程,一旦地址計數(shù)器超過SRAM存儲器的最大地址,OVR溢出標志置“1”。該OVR溢出標志由NOP指令來復位。(2)BUSY忙標志該位指示TC8830AF處于何種狀態(tài),即該位為“1”時,表明TC8830AF正處于復位狀態(tài)或進行內(nèi)部命令的處理過程,在BUSY標志位置“1”后,此時不要從微處理器發(fā)出任何命令給TC8830AF,如果發(fā)出命令,那么內(nèi)部狀態(tài)將是不確定的,然而當發(fā)出ADLD1、ADLD2或LABEL命令時,未輸入要求的數(shù)據(jù),那么BUSY標志位將不能得到復位,BUSY標志位在該命令執(zhí)行完畢仍然為“1”,難以進行以后的處理或完成要求的操作。(3)EOS標志位在聲音錄制或再生的等待過程中,該位置“1”,也就是說,該位指示著錄制/再生的工作情況。當聲音錄制或再生啟動后,該位清位“0”,以表示等待狀態(tài)的結(jié)束。該標志位對應TC8830AF的EOS端口的電平情況,即該位為“1”,EOS端口呈現(xiàn)高電平;為“03.3.4聲音再生的有關(guān)流程框圖圖3.2是利用標記索引方式下的再生過程流程示意圖。由于標記索引方式實質(zhì)上是依據(jù)時間軸,由TC8830AF自動定義指定段的起始地址和終止地址,只要我們利用SRAM寫入的形式,可以作出對該指定段再生內(nèi)容的轉(zhuǎn)移。入口入口NOP命令輸出CNDT命令輸出LABEL命令輸出EOS=0?EOS=1?繼續(xù)下一段?N出口放音等待狀態(tài)選擇比特率YNNYY在比特率情況下選擇段。當命令處理終止后,TC8830AF便啟動聲音的放聲檢查/EOS標志位或EOS端,看放聲啟動否檢查/EOS標志位或EOS端,看放聲結(jié)束否決定是否繼續(xù)進行下一段的放聲圖3.2標記索引方式下的再生流程框圖3.3.5標記索引方式下的操作CPU操作工作模式下,標記索引方式是其兩種具體模式下的一種。在標記索引方式下,每一指定段的起始地址和終止地址被自動寫入SRAM存儲器的索引區(qū)中。圖3.3是有關(guān)存儲器在標記索引方式下的映象圖。RAM1RAM1變址區(qū)數(shù)據(jù)區(qū)0000H00FFH1FFFH3FFFH5FFFHRAM1RAM2RAM3RAM47FFFH64kSRAM變址區(qū)數(shù)據(jù)區(qū)00000H000FFH07FFFH0FFFFH17FFFH1FFFFHRAM1RAM1RAM2RAM3RAM4256kSRAM圖3.3標記索引方式下的存儲器映象圖在標記索引方式下,TC8830AF與SRAM存儲器的有關(guān)操作如下:1.錄音(1)隨著啟動信號的輸入,變址寄存器尋址SRAM存儲器中的專用索引區(qū)域;(2)地址計數(shù)器的值是根據(jù)變址寄存器提供的地址寫入到SRAM存儲器的索引區(qū)域的。上述索引區(qū)域為00000H—000FFH;(3)地址計數(shù)器尋址SRAM存儲器的數(shù)據(jù)區(qū)域,即00100H以后的聲音數(shù)據(jù)存儲區(qū);(4)通過ADM分析電路,聲音信號經(jīng)分析,即得到錄制;聲音的數(shù)字序列被寫入SRAM存儲器的數(shù)據(jù)存儲區(qū)予以保存;(5)地址計數(shù)器自動計數(shù),然后重復步驟(3)和(4),以獲得所需的連續(xù)聲音數(shù)據(jù),一個周期為1個比特率;(6)如果輸入一個停止信號,變址寄存器尋址SRAM存儲器中的索引區(qū)域;(7)地址計數(shù)器的值,根據(jù)變址寄存器提供的地址被寫入SRAM存儲器的索引區(qū)域中;(8)地址計數(shù)器的計數(shù)值加1后,錄制便告完成。2.聲音的再生TC8830AF的聲音再生步驟如下:(1)輸入啟動信號后,TC8830AF內(nèi)的變址寄存器尋址SRAM存儲器的索引區(qū)域;(2)TC8830AF的地址計數(shù)器、停止地址寄存器和有關(guān)其它單元從索引區(qū)里取出再生段的啟動地址、停止地址和比特率等要素;(3)地址計數(shù)器尋址SRAM存儲器的聲音數(shù)據(jù)區(qū);(4)聲音數(shù)據(jù)送入ADM分析和合成電路,使聲音得以合成;(5)地址計數(shù)器計數(shù)值遞增,以獲取所需再生的聲音的數(shù)據(jù);(6)地址計數(shù)器的值與停止地址寄存器中已裝入的結(jié)束地址值相比較,如果兩者相一致,聲音再生便停止,同時地址計數(shù)器指示到結(jié)束地址加1的新地址上;如果不一致,則重復步驟(3)、(4)、(5)、(6),以獲得一個有效的聲音再生。3.4TC8830AF語音合成芯片的外圍電路TC8830AF可以使用EPROM、SRAM、ROM、E2PROM,一般直接與TC8830AF相連,可以連接四片64k位或256k位的存儲器。當決定了外圍存儲器容量后,TC8830AF端的256k端應根據(jù)實際使用情況決定接電平的高低。在CPU控制下的標記索引模式下,SRAM存儲器的訪問時間最大為200ns。TC8830AF接可達4片存儲器,對于選擇使用的外接存儲器芯片數(shù)目是依靠其提供的地址線來自動完成的。在連接二片或兩片以上存儲器芯片時,TC8830AF的/CE1端必須與第一片存儲器的選通端/CE端相連,TC8830AF的/CE2端則與第二片存儲器的/CE端相連,其余類推。TC8830AF與存儲器的連接是一一對應的并行關(guān)系。
第4章語音報時系統(tǒng)的設(shè)計根據(jù)任務書的要求,基于語音合成芯片TC8830AF的語音報時系統(tǒng)應具有的功能有:能夠24小時在LED顯示器上顯示當前時間,并且可通過鍵盤設(shè)置時間,24小時實時報時,在整點半點時自動報時,時間精度為秒。4.1語音報時系統(tǒng)的總體設(shè)計思想及工作原理本語音報時系統(tǒng)的建立分為兩個步驟:首先是錄制本語音報時系統(tǒng)所需要的語音數(shù)據(jù)即語音庫的建立,其次是運行系統(tǒng)的建立。本語音報時系統(tǒng)的總體設(shè)計思想為:使用8031作為整個系統(tǒng)的CPU,利用外擴程序存儲器的8031單片機自身的定時器/計數(shù)器來實現(xiàn)時間的計數(shù);通過外接8155來擴展8031的I/O口,通過8155的I/O口來外接4*3的鍵盤和6位8段LED顯示器,利用這些設(shè)備來實現(xiàn)時間數(shù)據(jù)的采集與顯示;利用8031對TC8830AF的控制來實現(xiàn)語音庫的建立和語音報時,在語音庫建立時,須將TC8830AF連接一個256K位的SRAM65256作為語音存儲器,錄音完畢后把SRAM65256中的語音數(shù)據(jù)固化到EPROM27256中,系統(tǒng)運行時用EPROM27256替代SRAM65256連接到TC8830AF上作為語音庫以供放音時使用,這樣系統(tǒng)運行時就不怕掉電造成語音庫的丟失。本語音報時系統(tǒng)的工作原理為:系統(tǒng)加電運行后,自動顯示初始時間為00點00分00秒,這時需要設(shè)置時間,通過按鍵盤上的*號鍵進入設(shè)置時間模式,然后通過按鍵盤上的數(shù)字鍵來輸入時間,按時、分、秒的十位、個位的順序鍵入。設(shè)置完后,系統(tǒng)顯示設(shè)置后的時間,并開始正常運行。顯示器每秒鐘更新一次顯示,即顯示當前時間。系統(tǒng)運行的任何時刻都可以響應按鍵,若掃描到有#號鍵按下,則播報當前時間;若掃描到有*號鍵按下,則進入時間設(shè)置狀態(tài),且按時、分、秒的順序來接受鍵盤輸入的數(shù)據(jù);若沒有*號鍵按下,而掃描到有數(shù)字鍵按下,則不予響應。系統(tǒng)運行期間,當?shù)竭_半點或整點時,系統(tǒng)自動報時。4.2語音報時系統(tǒng)的硬件設(shè)計4.2.1硬件的模塊化設(shè)計1.單片機8031程序存儲器的外擴模塊由于8031單片機具有集成度高、功能強、編程靈活、指令豐富、運算速度快、體積小等優(yōu)點,并且它的外圍接口芯片也非常完善,所以本系統(tǒng)采用它作為控制系統(tǒng)的核心是合理的。由于8031無內(nèi)部程序存儲器,故選用容量為2K的EPROM2716作為其外擴程序存儲器。8031的P0口作為地址/數(shù)據(jù)分時復用總線,故需74LS373地址鎖存器來鎖存低8位地址。由于使用的是外部程序存儲器,故需將/EA端置為低電平,使CPU只訪問外部程序存儲器。CPU的取指過程如下:首先從P0口(低8位)、P2口(高8位,這里只需連3根)送出地址信息,與此同時從ALE引腳送出地址鎖存允許信號,該信號送至74LS373的使能端,在ALE信號消失時,將P0口送出的低8位地址信息鎖存到74LS373的輸出端。由于74LS373的輸出允許/OE接地,因此低8位地址一直被允許輸出,這樣,由74LS373輸出的低8位地址和P2口送出的高8位地址,確定了對外部程序存儲器的尋址單元。當ALE信號消失后,P0口就由輸出方式變?yōu)檩斎敕绞郊锤】諣顟B(tài),等待從程序存儲器中讀出指令。緊接著CPU送出外部程序存儲器讀選通信號/PSEN,該信號送到了2716的/OE和/CE端,即輸出允許和片選端。這樣CPU就從2716被選中的單元中讀取了相應的指令,從而完成了取指。2.8031與TC8830AF的連接及TC8830AF與語音數(shù)據(jù)庫的連接模塊此模塊中,在語音錄制時和語音報時系統(tǒng)運行這兩個階段,8031與TC8830AF的連接是相同的,而TC8830AF與語音數(shù)據(jù)庫的連接是不一樣的。語音錄制時,因為要對存儲器進行寫操作,故必須使用SRAM。另考慮到用8kbps的速率錄制本系統(tǒng)所需的語音,256K位的容量足以存儲此語音報時系統(tǒng)的數(shù)據(jù),所以選用SRAM65256芯片作為語音數(shù)據(jù)庫。在系統(tǒng)運行期間,TC8830AF連接的是EPROM27256,考慮到系統(tǒng)運行時萬一掉電,SRAM中的數(shù)據(jù)可能會丟失,所以語音錄制完后,需將SRAM中的語音數(shù)據(jù)固化到EPROM中,以保證掉電后數(shù)據(jù)不會丟失。下面介紹8031與TC8830AF的連接。TC8830AF的P0-P3與8031的P0.0-P0.3相連,作為8031與TC8830AF之間的命令和狀態(tài)的雙向數(shù)據(jù)直接總線。另外,8031的P1.0與TC8830AF的復位段/ACL相連,在錄音時,需要復位;在放音時,禁止復位。8031的P1.1、P1.2分別與TC8830AF的/RD、/WR相連,用于8031控制TC8830AF的讀寫選通。8031的P1.3與TC8830AF的STBY相連,用于設(shè)置進入守候狀態(tài),錄音和放音時應設(shè)為低電平。8031的P1.5與TC8830AF的/CE的端相連,用于選通TC8830AF。TC8830AF的CPUM固定為高電平,即令其工作在CPU操作模式下,端口256K也接高電平,因為該系統(tǒng)選用的是256K位的語音存儲器。語音的錄制是通過8031來控制TC8830AF,對SRAM65256進行寫操作,從而建立語音庫。TC8830AF的A0-A14地址線與65256的A0-A14對應相連,TC8830AF的數(shù)據(jù)線D0-D7對應相連;TC8830AF的/CE1端與65256的/CS端相連,片選65256;TC8830AF的R/W端與65256的/WE直接相連,同時通過反相器連接到65256的/OE端。語音報時系統(tǒng)的報時,是通過8031對TC8830AF的控制對EPROM27256進行讀操作,讓TC8830AF在半點整點報時,或是響應鍵盤的#號鍵,播報當前時間。TC8830AF的地址線、數(shù)據(jù)線引腳分別于EPROM27256的地址、數(shù)據(jù)線引腳相連,TC8830AF的/CE連接EPROM的/CE片選端。TC8830AF的R/W端通過反相器74LS04連接到EPROM的/OE端,來控制EPROM的讀選通。3.8031外擴8155連接4*3鍵盤和LED顯示器模塊為實現(xiàn)本語音報時系統(tǒng)的時間設(shè)置功能和時間顯示功能,必須加上外設(shè)鍵盤和顯示器。8031自身的I/O有限,而連接鍵盤和顯示器需要的I/O接口比較多,故本系統(tǒng)通過外接8155作為8031的擴展I/O口。8155的地址數(shù)據(jù)總線AD0-AD7與8031的P0口相連;8155的RESET端與8031的P1.7相連,用來控制8155的復位;8155的IO/M端和/CE端分別連接8031的P2.6和P2.7,通過P2.6來決定8155是作為I/O口還是存儲器;8155的/WR和/RD端分別與8031的/WR和/RD端相連,從而控制8155的讀寫選通;8155的ALE端和8031的ALE/PROG端相連,用以鎖存8155的地址信息、片選信號和I/O信號。由于本系統(tǒng)需要設(shè)置時間,還要具有實時報時功能,從而需要有十個數(shù)字鍵和兩個功能鍵,故使用4*3的鍵盤。同時由于鍵盤操作的頻率比較小,所以通過外部中斷來掃描鍵盤。在鍵盤的列線上連接電阻及正電源使無鍵閉合時列線列線總保持在高電平,三列線上的電平通過連個與門及一個同或門然后接到8031的外部中斷/INT0。這三個門電路的作用是控制一行中同時有多個鍵按下的情況。當無鍵或一行有多個按下時,/INT0為高電平。任意一鍵按下時,/INT0變?yōu)榈碗娖?,這時CPU響應中斷并執(zhí)行中斷服務程序。鍵盤的行線通過二極管連接到8155的A口,作為輸出線;鍵盤的列線連接到8155的C口,作為輸入線。二極管的作用是控制一列由多個鍵按下時只能掃描一行。8155與LED顯示器的連接,由于LED需要的接口比較多,故需要加上74LS138譯碼器來實現(xiàn)對LED顯示器的片選,7447譯碼/驅(qū)動器來驅(qū)動LED的段選擇。PB口用來連接LED顯示器,PB0-PB3與7447的A-D相連,PB4-PB6與74LS138的A-C相連。LED顯示器用的是共陽極的,而74LS138輸出的是低電平,故加三極管對其片選進行反相驅(qū)動。74LS138的Y0-Y5分別連接在6個LED的片選端相連的三極管的基極,用來片選LED顯示器。三極管的發(fā)射極接高電平,集電極與LED的片選端相連。7447譯碼/驅(qū)動器的a-g與每個LED的前7段分別相連,只有第二個和第四個LED的“.”斷設(shè)為低電平,以讓其一直導通顯示。4.2.2語音報時系統(tǒng)的硬件總體設(shè)計1.語音錄制系統(tǒng)的硬件總體設(shè)計語音報時系統(tǒng)首先需要建立報時所需的語音庫,所以先要設(shè)計語音錄制系統(tǒng)。將模塊1(8031程序存儲器的外擴模塊)和模塊2(TC8830AF與語音數(shù)據(jù)庫的連接模塊)這兩個模塊組合起來,就構(gòu)成了語音錄制系統(tǒng)。圖4.1為語音錄制系統(tǒng)的硬件設(shè)計圖。如圖4.1所示,在8031的P1.6上連接一個單刀雙擲開關(guān),用來控制每段錄音的開始與結(jié)束。本系統(tǒng)采用的是標記索引方式下的錄音,若要開始錄音,則將開關(guān)打到低電平,一段錄完后將開關(guān)擲向高電平,若要進行下一段的錄音則再將開關(guān)打到低電平。2.語音報時系統(tǒng)的硬件總體設(shè)計語音報時系統(tǒng)的硬件設(shè)計,就是將模塊1(8031程序存儲器的外擴模塊)、模塊2(TC8830AF與語音數(shù)據(jù)庫的連接模塊)以及模塊3(8031外擴8155連接4*3鍵盤和LED顯示器模塊)這三個模塊組合起來構(gòu)成的。圖4.2為基于TC8830AF的語音報時系統(tǒng)的總體硬件圖。在語音錄制好后,再將SRAM65256中的內(nèi)容固化到EPROM27256中,同時將程序存儲器EPROM2716的內(nèi)容換成系統(tǒng)運行時的程序。如圖4.2所示,此語音報時系統(tǒng)的硬件設(shè)計中,模塊1中的8031外擴程序存儲器用來實現(xiàn)本系統(tǒng)的核心控制功能,首先是完成時間的計數(shù),其次是響應鍵盤的輸入,送出顯示器所需的數(shù)據(jù),最后是控制語音報時。模塊2實現(xiàn)的功能是語音報時。模塊3的功能是時間的顯示與設(shè)置,以及實時報時。綜合考察本設(shè)計所用的器件較合理,本系統(tǒng)能夠?qū)崿F(xiàn)所要求的功能,而且本系統(tǒng)也是可實現(xiàn)的,即本系統(tǒng)是可行的。
圖4.1語音錄制系統(tǒng)的硬件設(shè)計圖
圖4.2語音報時系統(tǒng)的總體硬件圖
4.3語音報時系統(tǒng)的軟件設(shè)計軟件設(shè)計和硬件設(shè)計一樣也分為兩個步驟。首先是語音錄制系統(tǒng)的軟件設(shè)計,其次是語音報時系統(tǒng)的軟件設(shè)計。4.3.1語音錄制系統(tǒng)的軟件設(shè)計1.語音錄制系統(tǒng)的設(shè)計思想本語音報時系統(tǒng)的語音庫包括:“零”、“一”、“二”、“三”、“四”、“五”、“六”、“七”、“八”、“九”、“十”、“點”、“分”、“秒”、“現(xiàn)在是北京時間”。本錄音系統(tǒng)的軟件設(shè)計思想為:通過8031對TC8830AF進行控制,使其工作在CPU工作模式的標志索引方式下,一段一段地將語音錄制到SRAM65256中。根據(jù)TC8830AF的標記索引方式下的工作原理,語音錄制后,數(shù)據(jù)在SRAM中的格式為:00H-0FFH為索引數(shù)據(jù)的存儲區(qū)域,從100H開始為語音數(shù)據(jù)的存儲區(qū)域。本錄音系統(tǒng)在標記索引方式下錄音后,每一段在SRAM索引區(qū)域的地址及段的內(nèi)容如下:00H-03H:段0起始地址存儲語音:“零”04H-07H:段1起始地址存儲語音:“一”08H-0BH:段2起始地址存儲語音:“二”0CH-0FH:段3起始地址存儲語音:“三”10H-13H:段4起始地址存儲語音:“四”14H-17H:段5起始地址存儲語音:“五”18H-1BH:段6起始地址存儲語音:“六”1CH-1FH:段7起始地址存儲語音:“七”20H-23H:段8起始地址存儲語音:“八”24H-27H:段9起始地址存儲語音:“九”28H-2BH:段10起始地址存儲語音:“十2CH-2FH:段11起始地址存儲語音:“點”30H-33H:段12起始地址存儲語音:“分”34H-37H:段13起始地址存儲語音:“秒”38H-3BH:段14起始地址存儲語音:“現(xiàn)在是北京時間”3CH-3FH:段14結(jié)束地址2.錄音系統(tǒng)的程序設(shè)計說明如圖4.3所示為錄音程序的流程圖。由圖看出其流程為:首先定義中斷入口,在TC8830AF的命令寫入延時用到了定時器0;其次選中TC8830AF,復位STBY禁止TC8830AF進入守候狀態(tài),再復位TC8830AF;然后定義語音錄制的比特率,用REC命令使TC8830AF進入錄制等待狀態(tài);這樣就可以人為的控制每一段錄音的開始與結(jié)束。如圖4.1所示,將開關(guān)打在低電平端,開始錄音;打在高電平端,停止錄音。開始開始設(shè)置中斷入口選中TC8830AF,復位STBY及/ACLCNDT命令定義比特率REC命令進入錄音等待狀態(tài)是否準備好錄音EOS=0?EOS=1?停止錄制?所有段錄完?結(jié)束YLABEL命令寫入段序號并開始錄音NNYYSTOP命令停止該段的錄制YNNYNNNN圖4.3錄音程序流程圖4.3.2語音報時系統(tǒng)的軟件設(shè)計1.語音報時系統(tǒng)的軟件設(shè)計思想首先介紹軟件設(shè)計的思想:首先初始化8031的內(nèi)存,設(shè)定中斷入口,設(shè)定啟動8031定時器/計數(shù)器,并以時間顯示程序作為主程序;利用定時器/計數(shù)器0的中斷來實現(xiàn)時間的計數(shù),并在中斷服務時判斷是否為半點或整點;通過外部中斷0來響應鍵盤的輸入,有鍵按下時,進行鍵盤掃描。系統(tǒng)的軟件設(shè)計分為主要的五大模塊:初始化程序模塊、主程序模塊、定時器0的中斷服務程序模塊、外部中斷0的中斷服務程序模塊、語音報時模塊。本系統(tǒng)中8031的內(nèi)部RAM的分配如下:30H:時的十位LED顯示存儲地址31H:時的個位LED顯示存儲地址32H:分的十位LED顯示存儲地址33H:分的個位LED顯示存儲地址34H:秒的十位LED顯示存儲地址35H:秒的個位LED顯示存儲地址36H:秒計數(shù)器CL_S的存儲地址37H:分計數(shù)器CL_M的存儲地址38H:時計數(shù)器CL_H的存儲地址40H:鍵盤掃描程序中,存儲鍵值計數(shù)器的地址41H:重置時間時,存儲當前應重置的LED地址的寄存器地址位尋址區(qū)中:22H:*號鍵的標志位23H:#號鍵的標志位2.各模塊程序設(shè)計說明(1)初始化程序模塊系統(tǒng)的初始化主要包括:設(shè)置中斷入口;定義定時器T0的定時初值和時分秒計數(shù)器的地址;設(shè)置堆棧的首址;將顯示器緩沖器的各單元清0;清除中斷允許IE;8031外部中斷0的初始化:設(shè)置/INT0為低電平有效,開外部中斷0,并設(shè)為低優(yōu)先級;8031定時器T0的中斷初始化:主要包括定義工作組寄存器為組1,設(shè)置T0的工作方式為方式1,設(shè)置定時初值為3CB0H,時分秒計數(shù)器全部清0,設(shè)置1s所需定時累加的次數(shù)為20次,開定時器T0的中斷,設(shè)置為高優(yōu)先級,并啟動定時器;最后打開中斷總允許位EA,跳轉(zhuǎn)到主程序。初始化程序的流程圖如圖4.4所示。開始開始設(shè)置中斷入口定義定時器T0的定時初值定義時分秒的計數(shù)器的地址設(shè)置堆棧的首地址將顯示緩沖器清0,即30-35H清0將顯示緩沖器的首地址放入41H中IE清0,禁止所有中斷調(diào)用外部中斷0的初始化程序調(diào)用定時器0中斷的初始化程序打開總允許位EA跳轉(zhuǎn)到主程序圖4.4初始化程序流程圖(2)顯示主程序模塊主程序以顯示程序為主線,在系統(tǒng)初始化以后(包括中斷初始化和8155的初始化),進入顯示程序,并循環(huán)顯示。此系統(tǒng)有兩個中斷,定時器的中斷每隔50ms產(chǎn)生一次,外部中斷0是隨機產(chǎn)生的。當中斷產(chǎn)生時,暫停執(zhí)行主程序,轉(zhuǎn)而執(zhí)行相應的中斷服務程序,服務程序執(zhí)行完畢后返回主程序。主程序流程圖如圖4.5所示。顯示程序的功能就是將顯示緩沖器中的內(nèi)容輸出到LED數(shù)碼管上顯示出來。顯示程序的具體實現(xiàn)見附錄中的程序清單。開始選中8155并復位8155開始選中8155并復位8155令8155工作在I/O口方式定義8155的A、B口輸出,C口輸入設(shè)置工作組寄存器為組0調(diào)用顯示程序(3)定時器0的中斷服務程序模塊系統(tǒng)初始化時設(shè)置T0為每50ms中斷一次,中斷20次計時1s,然后改變時分秒計數(shù)器的值,每1s鐘設(shè)置一次#號鍵的標志位,即將其置1,從而控制1s內(nèi)只響應一次#號鍵的報時;每秒更新一次顯示器;若分計數(shù)器的值到達30,即到達半點,或是時計數(shù)器的值改變了,即到達整點時,調(diào)用報時程序。定時中斷服務程序模塊的流程圖如圖4.6所示。圖中的時分秒轉(zhuǎn)換程序,就是將時分秒計數(shù)器的值更新到顯示器的緩沖器中。(4)外部中斷0的中斷服務程序模塊鍵盤安排為(PA3,PC0)01H,(PA3,PC1)02H,(PA3,PC2)03H;(PA2,PC0)04H,(PA2,PC1)05H,(PA2,PC2)06H;(PA1,PC0)07H,(PA1,PC1)08H,(PA1,PC2)09H;(PA0,PC0)#號鍵,(PA0,PC1)00H,(PA0,PC2)*號鍵。其中有兩個功能鍵即#號鍵和#號鍵。#號鍵的功能是報時,*號鍵的功能是設(shè)置時間。當系統(tǒng)響應外部中斷后,首先是關(guān)外部中斷,隨后進行鍵盤掃描,掃描完畢打開中斷。鍵盤掃描程序的流程是:首先逐行進行掃描,檢測是否有鍵按下,若有鍵按下,則掃描鍵所在的列,并進行鍵值的計算。最后進入鍵值功能判斷程序,判斷該鍵是數(shù)字鍵還是功能鍵,然后執(zhí)行相應的程序。外部中斷0的中斷服務程序的流程圖如圖4.7所示。鍵值功能判斷程序的流程是:若檢測到*號鍵,將顯示緩沖器清0,進入時間的設(shè)置,并將*號鍵標志位置1,以響應輸入的數(shù)字鍵;若檢測到#號鍵,先判斷*號鍵標志位是否為1,是則清除*號鍵標志,并調(diào)用時分秒轉(zhuǎn)換程序,以恢復顯示時間,否則直接判斷#號鍵標志位是否為1,則清除#號鍵標志位并且系統(tǒng)調(diào)用報時程序;若#號鍵標志為0,即一秒鐘內(nèi)已響應過該鍵,則忽略此鍵,已保證不會過于頻繁地報時;若判斷為數(shù)字鍵,則先判斷*號鍵標志是否為1,不是則忽略此鍵,是將輸入的數(shù)字存入顯示緩沖器,且按時、分、秒的十位、個位順序逐一存儲,存儲前要檢查該數(shù)字是否超過時間的范圍。如小時的十位只能小于等于2;分、秒的十位都要小于6,若是超出范圍系統(tǒng)應不予顯示,需要重新輸入該位的數(shù)字。當6位數(shù)據(jù)都已經(jīng)存入顯示緩沖器,則改變時分秒計數(shù)器的值,即成功設(shè)置時間。鍵值功能判斷程序流程圖如圖4.8所示。入口入口保護現(xiàn)場設(shè)置工作組寄存器為組1IS中斷次數(shù)R7減1R7=0?IS中斷次數(shù)R7重置為14H秒計數(shù)器加1,#鍵標志置1秒計數(shù)=60?秒計數(shù)器清0,分計數(shù)器加1分計數(shù)=30?分計數(shù)=60?分計數(shù)器清0,時計數(shù)器加1時計數(shù)=24?時計數(shù)器清0調(diào)用報時程序調(diào)用時分秒轉(zhuǎn)換程序恢復現(xiàn)場中斷返回NNNYNNYYY圖4.6定時中斷服務程序模塊流程圖入口入口保護現(xiàn)場并關(guān)外部中斷0設(shè)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 招標意向合同模板
- 安徽省鼎尖教育2024-2025學年高一上學期11月期中考試物理試題(無答案)
- 大班安全牙齒磕掉了怎辦
- 地攤火鍋采購合同模板
- 新車掛牌租賃合同范例
- 成品面料采購合同模板
- 影視公司聘用營銷合同模板
- 投錢占股合同范例
- 拖款合同范例范例
- 攝影公司購銷合同范例
- 2023年中國建筑第八工程局有限公司招聘考試真題
- 2024年湖北省公務員考試《行測》真題及答案解析
- 醫(yī)院感染現(xiàn)患率調(diào)查方案
- 湖北省十堰市第二中學2024-2025學年七年級上學期期中考試語文試題(含答案)
- 兄妹4人繼承房產(chǎn)協(xié)議書范文
- 上海市市轄區(qū)(2024年-2025年小學五年級語文)部編版期中考試(下學期)試卷及答案
- GB/T 44692.2-2024危險化學品企業(yè)設(shè)備完整性第2部分:技術(shù)實施指南
- 學位英語4000詞(開放大學)
- 護理病侵入性肺曲霉菌病案臨床病例呼吸科
- 項目式學習在小學英語教學中的應用與研究
- 期中測試卷(試題)-2024-2025學年數(shù)學六年級上冊北師大版
評論
0/150
提交評論