數字錄音機設計_第1頁
數字錄音機設計_第2頁
數字錄音機設計_第3頁
數字錄音機設計_第4頁
數字錄音機設計_第5頁
已閱讀5頁,還剩14頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、數字錄音機設計目 錄1、課程設計的目的.32、課程設計的方案論證.73、設計的結果與分析.184、心得體會.185、參考文獻.19數字錄音機設計1課程設計的目的1.1目的(1)進一步加深對微機系統的理解和認識,提高微機系統的應用水平。(2)進一步學習和掌握匯編語言程序的編寫和應用的方法,通過較大規模程序的編寫,提高編寫匯編語言程序的水平和學習程序調試方法。(3)進一步熟悉接口,DAC0832、ADC0809及定時計數器等芯片的使用。1.2內容與要求(1)設計一個聲音錄放系統,通過傳感器及ADC0809以每秒5000次的速率采集語言信號,錄音12秒后,再以同樣的速率將語音數據通過DAC0832送

2、出至喇叭發聲(放音)。(2)畫出系統的硬件連接圖。(3)畫出程序流程圖并編寫程序實現上述功能。1.3各芯片工作原理及功能簡介(1)ADC0809 ADC0809是CMOS工藝制成的雙列直插式8位A/D轉換芯片,內部采用逐次逼近原理,單極性,量程為0+5V。片內部有8路模擬開關,可控制選擇輸入8個模擬量之中的一個,并帶有三態輸出鎖存緩沖器,可直接與CPU總線連接,不需要外部鎖存器,是應用較廣泛的一種A/D轉換芯片。ADC0809內部結構ADC0809內部由兩部分電路組成:第一部分:8路模擬通道選擇開關,地址鎖存器和譯碼器。第二部分:比較器、8位逐次逼近寄存器SAR、8位開關樹型D/A轉換電路、控

3、制邏輯、三態輸出緩沖鎖存器。工作原理:由ADDA、ADDB、ADDC及ALE選擇8個模擬量之一,并通過通道選擇開關加至比較器一端。由START信號啟動A/D轉換開始且SAR清0。在CLOCK的控制下,將SAR從高位逐次置1,并將每次置位后的SAR送D/A轉換器轉換成與SAR中數字量成正比的模擬量。DAC的輸出加至比較器的另一端與輸入的模擬電壓進行比較,若Vi大于等于V0保留SAR中該位的1;若Vi小于V0則該位清0。經過8次比較(8個CLOCK)后,SAR中的8位數字量即是結果。在OE有效時,將SAR中的8位二進制數輸出至鎖存器,并通過D7D0輸出,同時發出EOC轉換結束信號。ADC0809引

4、腳功能如下:IN0IN7 :8 路模擬輸入通道。D0D7 :8 位數字量輸出端。START : 啟動轉換命令輸入端,由 1 0 時啟動 A/D 轉換,要求信號寬度 100nOE :輸出使能端,高電平有效ADDA 、ADDB 、ADDC : 地址輸入線,用于選通 8 路模擬輸入中的一路進入 A/D 轉換。其中 ADDA 是 LSB 位,這三個引腳上所加電平的編碼為 000111 ,分別對應 IN 0 IN 7 ,例如,當 ADDC=0 , ADDB=1 , ADDA=1 時,選中 IN 3 通道。ALE :地址鎖存允許信號。用于將 ADDAADDC 三條地址線送入地址鎖存器中。EOC :轉換結束

5、信號輸出。轉換完成時, EOC 的正跳變可用于向 CPU 申請中斷,其高電平也可供 CPU 查詢。CLK :時鐘脈沖輸入端,要求時鐘頻率不高于 640KHZ 。REF(+)、REF(-):基準電壓,一般與微機接口時,REF(-)接 0V 或 -5V ,REF (+)接 +5V 或 0V 。(2)DAC0832DAC0832是用COMS工藝制成的雙列直插式8位D/A轉換芯片,內部采用T型電阻網絡,數字輸入有輸入寄存器和DAC寄存器兩級緩沖,可以雙緩沖、單緩沖或直接輸入方式連接。片選信號:輸入低電平有效,與ILE相配合,可對寫信號 是否有效起到控制作用。ILE允許鎖存信號:輸入高電平有效。輸入鎖存

6、器的鎖存信號 由ILE, , 的邏輯組合產生。當ILE為高電平、 為低電平、 輸入負脈沖時,在 端產生正脈沖。當 為高電平時,輸入鎖存器的狀態隨著數據輸入線的狀態變化, 的負跳變將數據線上的信息打入輸入鎖存器。 寫信號1:輸入低電平有效。當 , ,ILE均為有效時,可將數據寫入8位輸入鎖存器。寫信號2:輸入低電平有效。當其有效時,在傳送控制信號 的作用下,可將鎖存在輸入鎖存器的8位數據送到DAC寄存器。數據傳送控制信號:輸入低電平有效。當 , 均有效時,則在 端產生正脈沖。當 為高電平時,DAC寄存器的輸出和輸入鎖存器的狀態一致, 的負跳變將輸入鎖存器的內容打入DAC寄存器。基準電壓輸入端:可

7、在10 V范圍內調節。DI7DI0:8位數字輸入量輸入端。Iout1:DAC的電流輸出1。當DAC寄存器各位均為1時,輸出電流最大;當DAC寄存器各位均為0時,輸出電流為0。Iout2 :DAC的電流輸出2。 與 的和為一常數,一般單極性輸出時 接地,在雙極性輸出時接運放。Rfb :反饋電阻引腳。在DAC0832芯片內部有一個反饋電阻,可作為外部運算放大電路的反饋電阻用。(3)可編程計數/定時接口芯片82538253內部結構數據總線緩沖器該緩沖器為 8 位雙向三態的緩沖器, 8 根數據線 D 0 D 7 可直接掛在 CPU 數據總線上。讀/寫控制邏輯它是 8253 內部操作的控制部分,它決定三

8、個計數器和控制字寄存器中哪一個能進行工作,并控制內部總線上數據傳送的方向。控制字寄存器接收從 CPU 來的控制字,并由控制字的 D7 、D6 位的編碼決定該控制字寫入哪個計數器的控制寄存器,控制寄存器只能寫入,不能讀出。計數器8253 有 3 個獨立的計數器通道,每個通道的結構完全相同,如圖 10.2 所示。每一個通道有一個 16 位減法計數器;還有對應的 16 位初值寄存器和輸出鎖存器。每個計數器都可以對其 CLK 輸入端輸入的脈沖按照二進制或 BCD 碼從預置的初值開始進行減 1 計數,當減至 0 時,從 OUT 端輸出一個信號,計數的開始由軟件啟動或硬件門控信號 GATE 控制。計數開始

9、前寫入的計數初值存于初值寄存器;計數過程中,減法計數器的值不斷遞減,而初值寄存器中的初值不變。輸出鎖存器則用于寫入鎖存命令時鎖定當前計數值。當 8253 用作計數器時,加在 CLK 引腳上脈沖的間隔可以是不相等的;當它用作定時器時,則在 CLK 引腳應輸入精確的時鐘脈沖, 8253 所能實現的定時時間,取決于計數脈沖的頻率和計數器的初值。對 8253 來講,外部輸入到 CLK 引腳上的時鐘脈沖頻率不能大于 2MHZ ,否則需分頻后才能送到 CLK 端。(4)可編程并行I/O接口芯片8255A并行輸入/輸出端口A、B、C8255A 芯片具有 24 個可編程輸入輸出引腳,分成 3 個 8 位端口,

10、其中:端口 A 包含一個 8 位數據輸出鎖存 / 緩沖寄存器和一個 8 位數據輸入鎖存器;端口 B 包含一個 8 位數據輸入 / 輸出、鎖存 / 緩沖寄存器和一個 8 位數據輸入緩沖寄存器;端口 C 包含一個輸出鎖存 / 緩沖寄存器和一個輸入緩沖寄存器。必要時端口 C 可分成兩個 4 位端口,分別與端口 A 與端口 B 配合工作,通常將端口 A 和端口 B 定義為輸入 / 輸出的數據端口,而端口C可作為狀態或控制信息的傳送端口。A組和B組控制部件端口 A 與端口 C 的高 4 位 (PC 7 PC 4) 構成 A 組,由 A 組控制部件實現控制功能,端口 B 與端口 C 的低 4 位( PC

11、3 PC 0 )構成 B 組,由 B 組控制部件實現控制功能。它們各有一個控制單元,可接收來自讀 / 寫控制部件的命令和 CPU 通過數據總線(D7D0)送來的控制字,并根據它們來定義各個端口的操作方式。數據總線緩沖器這是一個三態雙向 8 位數據緩沖器,它是 8255A 與 8086CPU 之間的數據接口, CPU輸入輸出的數據,CPU輸出的控制字以及外設的狀態信息都是通過這個緩沖器進行傳送。讀/寫控制部件 這是 8255A 內部完成讀 / 寫控制功能的部件,它與 CPU 的地址總線及有關的控制信號相連,接收 CPU 的控制命令,并根據它們向片內各功能部件發出操作命令(5)74LS138譯碼器

12、74LS138是3-8線二進制譯碼器,它有3個輸入端,8個輸出端,輸出低電平有效。該器件3個輸入端A、B、C接受二進制碼,其輸出端Y0Y7工8條譯碼輸出線。除此之外,還有3個使能控制端G、G2A、G2B,目的在于靈活應用并組合各種電路。只有當G=0,同時G2A +G2B=0時,譯碼器工作,否則,譯碼器功能被禁止。2設計方案論證2.1總體設計思想根據設計要求,本次數字錄音機的匯編語言設計所需芯片有模數轉換芯片ADC0809、數模轉換芯片DAC0832、定時計數器8253、可編程并行I/O接口8355A及譯碼器74LS138。設計過程可簡述為:利用傳感器和ADC0809采集語音數據,以每秒5000

13、的速率采集IN0輸入的語音數據并存入內存,共采集數據60000個,即錄音12秒。DAC0832進行數模轉換,以同樣的速率將數據送DAC0832使喇叭發聲。8253用作定時,定時0.2ms,設置成方式0,計數初值為200。8253計數器0的OUT0與8255A的PA0連接,利用PA0查詢OUT0電平,如果為高點平則表示定時時間到。用譯碼器74LS138對地址線進行譯碼以產生各接口芯片所需的信號。2.2硬件連接圖圖1 硬件連接圖2.3各芯片的作用及工作方式(1)ADC0809在本次設計中的作用及工作方式ADC0809作數據采集用,用來采集12秒的語音信號并保存到相應的存儲單元。對ADC0809的8

14、個模擬通道,這里是用數據總線的低8位D2、D1、D0來控制ADC的通道選擇信號ADDC、ADDB、ADDA,以實現選擇其中之一模擬通道輸入。在本次設計中,初始值為000(D2=0、D1=0、D0=0),即選擇IN0通道進行數據采集,然后使ADC0809的ALE、START有效,START和ALE信號通過CPU向選中的通道口執行一條輸出指令,啟動A/D轉換。轉換結束后,發出EOC信號,當EOC為高電平時,可供CPU查詢,讀取每次采集的A/D轉換結果。當CPU知道轉換已完成,執行一條輸入指令使OE信號有效,此時輸出緩沖器被打開,數據送到數據總線。系統時鐘經分頻后接到ADC0809芯片的時鐘引腳CL

15、K上。(2)DAC0832在本次設計中的作用及工作方式在本次設計中,我使用的DAC0832采用直通方式與CPU連接,從硬件圖中可以看出,該片DAC0832只有一個端口地址,即88H。DAC0832的ILE信號與+5V連在一起, 、WR1和WR2均接地,總是有效的,DAC0832的輸入寄存器和DAC寄存器均處于選通狀態,只要CPU想88H端口執行一條輸出指令,就會使XFER有效,CPU輸出繁榮數字量就會順利通過DAC0832的兩個寄存器,然后進行D/A轉換,在運算放大器的輸出端得到轉換結果。(3)8253、8255A在本次設計中的作用及工作方式8253在本次設計中用作定時,工作于方式0,與825

16、5A連接使用完成定時操作。8255A采用工作方式0進行輸入操作,工作方式0是8255A個端口的基本輸入輸出方式,CPU可從指定端口輸入信息,也可向指定端口輸出信息。當8253寫入方式0控制字后,計數輸出端OUT0立即變為低電平,并且在計數過程中一直保持低電平,當計數完成時,OUT0輸出變為高電平。8253計數器0的OUT0與8255A的PA0連接,因此可通過查詢PA0是否為1,判斷計數是否完成。計數完成,則表示定時時間到。(4)74LS138在本次設計中的作用譯碼器74LS138對地址線進行譯碼以產生各接口芯片所需的信號2.4流程圖開始8253、8255A初始化顯示錄音提示信息等待鍵盤輸入有鍵

17、按下嗎?調用錄音子程序顯示錄音提示信息等待鍵盤輸入序有鍵按下嗎?調用收音子程序是空格嗎?返回DOSNYNNYY圖2 主程序流程圖開始置數據區首地址至D1置循環初值CX=60000啟動A/D轉換測試轉換是否結束?讀EOC狀態讀取轉換結果存數據區尋址下一單元序延時0.2ms循環結束嗎?結束DOSNYNY 圖3 錄音子程序流程圖開始置數據區首地址至D1置循環初值CX=60000從數據區取數據尋址DACS1加1延時0.2ms循環結束嗎?子程序返回DOSNY發送到DAC進行D/A轉換并輸出 圖4 放音子程序流程圖 設置8253為方式0計數200查詢8255A的A口PA0為1嗎?子程序返回DOSNY圖5

18、延時子程序2.5具體實現方法實現該聲音錄放系統功能的程序可以分為以下四個部分:(1)主程序主程序的主要任務是對8253、8255A進行初始化,實現錄、放音的功能調用。8253初始化設置8253在程序中設置成方式0,計數200,定時0.2ms 8253工作方式控制字:10000000B,即10H;選擇通道0,方式0,只讀寫的、低8位設8253輸入時鐘信號的頻率為 1MHZ計數初值=0.2 ms/0.001ms=200控制字端口地址為:81H計數器0端口地址為:80H8255A初始化設置8255A控制字:10010000B,即90H;方式0,A口輸入控制字端口地址為:85HA口地址為:84H調用錄

19、、放音子程序首先DOS功能調用,顯示錄音提示信息,然后BIOS功能調用,讀鍵盤緩沖區字符,等待鍵盤輸入,若無鍵按下,繼續等待;有鍵按下,則調用錄音子程序,錄音12秒。清除鍵盤緩沖區后,再進行放音子程序的調用。(2)A/D錄放音子程序根據設計要求,ADC0809要以每秒5000的速率采集語音數據,錄音12秒,因此共需采集500012=60000個數據,計數器CX=60000。選擇IN0通道進行數據采集(D2=0、D1=0、D0=0),尋址A/D轉換啟動端口地址,CPU向IN0通道執行一條輸出指令,啟動一次A/D轉換。尋址EOC狀態端口地址,讀取EOC狀態,測試轉換是否結束,未完則繼續等待,轉換完

20、成后,則尋址ADC0809轉換結果端口,CPU執行一條輸入指令,取A/D轉換結果。A/D轉換啟動端口地址:8CH轉換結果端口地址:90HEOC狀態端口地址:94H(3)D/A放音子程序置數據區首址至SI,計數器CX=60000。從數據區取數據,尋址DAC端口地址,CPU執行一條輸出指令,進行D/A轉換。DAC端口地址為:88H(4)延時子程序DELAY是延時0.2 ms的子程序 將8253計數器0的OUT0輸入到8255A端口,測試PA0是否為1,若不為1,則表示8253未計數完,繼續查詢,如果為1,則表示8253計數完成,定時時間到。2.6課程設計的程序編寫NAME EXAMPLE DATA

21、 SEGMENTBUF DB 60000 DUP(?)MESS1 DBNOW READAY TO RACORD,0DH,0AH,$MESS2 DB NOW PLAY THE RECORDING!, 0DH,0AH, $DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV DX,81H ;指向8253控制口 MOV AL,10H ;控制字:選擇通道0,方式0,只讀寫的、低8位 OUT DX, AL ;送控制字 MOV DX, 85H ;指向8255A控制口 MOV AL, 90H ;控制字:方式0,A口輸入 OUT DX, AL MOV AX

22、, DATA MOV DS, AX MOV DX, OFFSET MESS1MOV AH,09HINT 21H ;顯示錄音提示信息 WAIT: MOV AH,01H INT 16H ;讀鍵盤緩沖區字符,是否有鍵按下JZ WAIT ;無鍵按下,繼續等待CALL READ ;有鍵按下,調用錄音子程序MOV DX, OFFSET MESS2 MOV AH, 09HINT 21H ;顯示放音提示信息MOV AL, 07HMOV AH, 0CHINT 21H ;清除鍵盤緩沖區RE: MOV AH,01HINT 16H ;讀鍵盤緩沖區字符,是否有鍵按下JZ RE ;無鍵按下,繼續等待CALL PLY ;有

23、鍵按下,調用放音子程序CMP AL, 20H ;是空格嗎JZ RE ;不是,繼續循環MOV AH, 4CH ;是,子程序返回INT 21HREAD PROC NEARMOV DI, OFFSET BUF ;尋址數據區MOV CX,60000 ;裝入計數器CX=60000READ1: MOV AL,00H ;選擇IN0通道 MOV DX,8CH;DX指A/D轉換啟動端口地址 OUT DX,AL;啟動A/D轉換 MOV DX,94H;尋址EOC狀態端口地址READ2: IN AL, DX ;取EOC狀態 TEST AL,80H ;測試轉換是否結束 JZ READ2 ;未完,則等待 MOV DX,

24、90H ;尋址數據端口 IN AL, DX ;取A/D轉換結果 MOV DI,AL ;存到數據區 INC DI ;尋址下一單元 CALL DELAY ;延時0.2ms LOOP READ1 ;重復60000次RETREAD ENDPPLY PROC NEARMOV SI,OFFSET BUF ;尋址數據區MOV CX,60000 ;裝入計數器CX=60000PLY1: MOV AL, SI ;從數據區取數據MOV DX, 88H ;尋址DACOUT DX,AL ;發送到DACINC SI ;尋址下一單元CALL DELAY ;延時0.2msLOOP PLY1RETPLY ENDPDELAY P

25、ROC NEARMOV DX, 80H ;指向8253計數器0端口MOV AL, 200 OUT DX, AL ;寫入計數初值200MOV DX, 84H ;指向8255A的A端口XX: IN AL,DX ;將計數器0的OUT0輸入到8255A的A口TEST AL,01H ;測試PA0=1?JZ XX ;不等于1,計數未完,繼續等待RET ;等于1,子程序返回DELAY ENDPCODE ENDSEND START3設計結果與分析3.1設計結果(1)用編輯程序建立.ASM源程序在DOS提示符下鍵入C:ASMEDIT PAN.ASM,編輯文件名為PAN.ASM的源文件。(2)用MASM程序把.A

26、SM文件轉換成.OBJ文件,輸入命令C:ASMMASM PAN,匯編成OBJ文件。(3)用LINK程序把.OBJ文件轉換成.EXE文件,匯編無錯后,輸入C:ASMLINK PAN,將目標文件生成可執行程序。(4)在DOS下直接鍵入文件名運行該程序。(5)用DEBUG程序調試、修改,輸入C:ASMDEBUG PAN.EXE,用單步、設置斷點等方式對程序進行調試。利用命令T、G調試,實現了12s的錄音及放音。3.2分析在本實驗中,充分利用學過的匯編語言程序設計能力,在了解了數字錄音技術的基本原理后,通過對A/D轉換器與D/A轉換器的使用,以及利用8253和8255芯片實現延時功能,成功完成了數字錄音機的設計。測試實驗結果時,實現功能有12s錄音功能、放音功能、重復放音功能。其中,提示信息為中文提示,清楚明了,達到設計要求。4設計體會在進行這次微機原理及

溫馨提示

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

評論

0/150

提交評論