微型計(jì)算機(jī)課程設(shè)計(jì)數(shù)據(jù)采集系統(tǒng)_第1頁(yè)
微型計(jì)算機(jī)課程設(shè)計(jì)數(shù)據(jù)采集系統(tǒng)_第2頁(yè)
微型計(jì)算機(jī)課程設(shè)計(jì)數(shù)據(jù)采集系統(tǒng)_第3頁(yè)
微型計(jì)算機(jī)課程設(shè)計(jì)數(shù)據(jù)采集系統(tǒng)_第4頁(yè)
微型計(jì)算機(jī)課程設(shè)計(jì)數(shù)據(jù)采集系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、課 程 設(shè) 計(jì) 任 務(wù) 書(shū)學(xué)院信息工程學(xué)院班級(jí)10通信一班姓名 王源藝設(shè) 計(jì) 起 止 日 期設(shè)計(jì)題目:數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)任務(wù)(主要技術(shù)參數(shù)):1.用聲傳感器,把代表語(yǔ)音的電信號(hào)送給ADC0809通道2(IN2);D/A轉(zhuǎn)換器的輸出端接喇叭。2.編程以每秒鐘5000次的速率采集IN2輸入的語(yǔ)音數(shù)據(jù)并存入內(nèi)存,共采集60000個(gè)數(shù)據(jù)(錄12秒),然后再以同樣的速率將數(shù)據(jù)送DAC0832使喇叭發(fā)聲(放音)。 指導(dǎo)教師評(píng)語(yǔ): 成績(jī): 簽字: 年 月 日課程設(shè)計(jì)說(shuō)明書(shū) NO.1數(shù)字錄音機(jī)1.課程設(shè)計(jì)的目的為了鞏固微型計(jì)算機(jī)技術(shù)課程學(xué)到的相關(guān)知識(shí),通過(guò)對(duì)本課程所學(xué)知識(shí)的綜合運(yùn)用,使學(xué)生融會(huì)貫通課程中所學(xué)的理

2、論知識(shí),加深對(duì)計(jì)算機(jī)系統(tǒng)各個(gè)部分的工作原理及相互聯(lián)系的認(rèn)識(shí),加深對(duì)接口的理解,清晰地建立計(jì)算機(jī)系統(tǒng)的概念,培養(yǎng)學(xué)生進(jìn)行微機(jī)應(yīng)用系統(tǒng)硬件和軟件開(kāi)發(fā)的實(shí)踐工作能力。2.設(shè)計(jì)方案論證2.1設(shè)計(jì)要求設(shè)計(jì)中使用了定時(shí)計(jì)數(shù)芯片Intel 8253、可編程并行接口Intel 8255,并實(shí)現(xiàn)了一下具體要求:(1) 用聲傳感器,把代表語(yǔ)音的電信號(hào)送給ADC0809通道2(IN2);D/A轉(zhuǎn)換器的輸出端接喇叭。(2) 編程以每秒鐘5000次的速率采集IN2輸入的語(yǔ)音數(shù)據(jù)并存入內(nèi)存,共采集60000個(gè)數(shù)據(jù)(錄12秒),然后再以同樣的速率將數(shù)據(jù)送DAC0832使喇叭發(fā)聲(放音)。2.2 系統(tǒng)原理 2.2.1 825

3、3的工作原理 8253內(nèi)部結(jié)構(gòu)如圖1所示,8253芯片有24條引腳如圖2所示,封裝在雙列直插式陶瓷管殼內(nèi)。 (1)數(shù)據(jù)總線緩沖器 數(shù)據(jù)總線緩沖器與系統(tǒng)總線連接,8位雙向,與CPU交換信息的通道。這是8253與CPU之間的數(shù)據(jù)接口,它由8位雙向三態(tài)緩沖存儲(chǔ)器構(gòu)成,是CPU與8253之間交換信息的必經(jīng)之路。 (2)讀/寫(xiě)控制 讀/寫(xiě)控制分別連接系統(tǒng)的IOR#和IOW#, 由CPU控制著訪問(wèn)8253的內(nèi)部通道。接收CPU送入的讀/寫(xiě)控制信號(hào), 并完成對(duì)芯片內(nèi)部各功能部件的控制功能, 因此, 它實(shí)際上是8253芯片內(nèi)部的控制器。A1A0:端口選擇信號(hào),由CPU輸入。8253內(nèi)部有3個(gè)獨(dú)立的通道和一個(gè)控

4、制字寄存器, 它們構(gòu)成8253芯片的4個(gè)端口,CPU可對(duì)3個(gè)通道進(jìn)行讀/寫(xiě)操作3對(duì)控制字寄存器進(jìn)行寫(xiě)操作。 這4個(gè)端口地址由最 沈 陽(yáng) 大 學(xué)課程設(shè)計(jì)說(shuō)明書(shū) NO2低2位地址碼A1A0來(lái)選擇。(3)控制寄存器存放CPU送來(lái)的控制字,控制字8253的工作方式有3個(gè),只占用一個(gè)地址,不能讀。(4)計(jì)數(shù)器i(i=0,1,2)8253內(nèi)部有三個(gè)計(jì)數(shù)器,分別成為計(jì)數(shù)器0、計(jì)數(shù)器1和計(jì)數(shù)器2,他們的機(jī)構(gòu)完全相同。每個(gè)計(jì)數(shù)器的輸入和輸出都決定于設(shè)置在控制寄存器中的控制字,互相之間工作完全獨(dú)立。每個(gè)計(jì)數(shù)器通過(guò)三個(gè)引腳和外部聯(lián)系,一個(gè)為時(shí)鐘輸入端CLK,一個(gè)為門(mén)控信號(hào)輸入端GATE,另一個(gè)為輸出端OUT。每個(gè)計(jì)

5、數(shù)通道內(nèi)含1個(gè)16位的初值寄存器、減1計(jì)數(shù)器和1個(gè)16位的(輸出)鎖存器。8253內(nèi)部包含3個(gè)功能完全相同的通道,每個(gè)通道內(nèi)部設(shè)有一個(gè)16位計(jì)數(shù)器,可進(jìn)行二進(jìn)制或十進(jìn)制(BCD碼)計(jì)數(shù)。采用二進(jìn)制計(jì)數(shù)時(shí), 寫(xiě)入的初值范圍為0000HFFFFH,最大計(jì)數(shù)值是0000H,代表65536。 采用BCD碼計(jì)數(shù)時(shí), 寫(xiě)入的初值范圍為00009999,最大計(jì)數(shù)值是0000,代表10000。與此計(jì)數(shù)器相對(duì)應(yīng), 每個(gè)通道內(nèi)設(shè)有一個(gè)16位計(jì)數(shù)值鎖存器。必要時(shí)可用來(lái)鎖存計(jì)數(shù)值。 當(dāng)某通道用作計(jì)數(shù)器時(shí),應(yīng)將要求計(jì)數(shù)的次數(shù)預(yù)置到該通道的計(jì)數(shù)器中、被計(jì)數(shù)的事件應(yīng)以脈沖方式從CLK端輸入, 每輸入一個(gè)計(jì)數(shù)脈沖,計(jì)數(shù)器內(nèi)容

6、減“1”,待計(jì)數(shù)值計(jì)到“0”。 OUT端將有輸出。表示計(jì)數(shù)次數(shù)到。當(dāng)某個(gè)通道用作定時(shí)器時(shí)。 由CLK輸入一定頻率的時(shí)鐘脈沖。根據(jù)要求定時(shí)的時(shí)間長(zhǎng)短確定所需的計(jì)數(shù)值。并預(yù)置到計(jì)數(shù)器中,每輸入一個(gè)時(shí)鐘脈沖,計(jì)數(shù)器內(nèi)容減“1”, 待計(jì)數(shù)值計(jì)到“0”。OUT將有輸出,表示定時(shí)時(shí)間到。允許從CLK輸入的時(shí)鐘頻在12MHz范圍內(nèi)。因此,任一通道作計(jì)數(shù)器用或作定時(shí)器用,其內(nèi)部操作完全相同,區(qū)別僅在于前者是由計(jì)數(shù)脈沖進(jìn)行減“1”計(jì)數(shù)。 而后者是內(nèi)時(shí)鐘脈沖進(jìn)行減“1”計(jì)數(shù)。作計(jì)數(shù)器時(shí), 要求計(jì)數(shù)的次數(shù)可直接作為計(jì)數(shù)器的初值預(yù)置到減“1”計(jì)數(shù)器中。作定時(shí)器時(shí), 計(jì)數(shù)器的初值即定時(shí)系數(shù)應(yīng)根據(jù)要求定時(shí)的時(shí)間進(jìn)行如下運(yùn)

7、算才能得到: 定時(shí)系數(shù)=需要定時(shí)的時(shí)間/時(shí)鐘脈沖周期 沈 陽(yáng) 大 學(xué) 課程設(shè)計(jì)說(shuō)明書(shū) NO.3 設(shè)置通道:向方式控制字寄存器端口寫(xiě)入方式選擇控制字,用于確定要設(shè)置的通道及工作方式; 計(jì)數(shù)/定時(shí):向通道寫(xiě)入計(jì)數(shù)值,啟動(dòng)計(jì)數(shù)操作; 讀取當(dāng)前的計(jì)數(shù)值:向指定通道讀取當(dāng)前計(jì)數(shù)器值時(shí),8253將計(jì)數(shù)器值存入鎖存器,從鎖存器向外提供當(dāng)前的計(jì)數(shù)器值,計(jì)數(shù)器則繼續(xù)作計(jì)數(shù)操作。 計(jì)數(shù)到:當(dāng)計(jì)數(shù)器減1為0時(shí),通過(guò)引腳OUTi向外輸出“到”的脈沖信號(hào)。 計(jì)數(shù)初值輸入存放在初值寄存器中,計(jì)數(shù)開(kāi)始或重裝入時(shí)被復(fù)制到計(jì)數(shù)器中。 鎖存器在非鎖存狀態(tài),其值隨計(jì)數(shù)器的變化而變化;一旦鎖存了計(jì)數(shù)器的當(dāng)前值,直到鎖存器值被讀取后才

8、能解除鎖存狀態(tài)圖1 8253內(nèi)部結(jié)構(gòu)圖 圖2 8253引腳圖 沈 陽(yáng) 大 學(xué) 課程設(shè)計(jì)說(shuō)明書(shū) NO.42.2.2 8255的工作原理(1) 8255的內(nèi)部結(jié)構(gòu)如圖3所示:數(shù)據(jù)總線緩沖器:這是一個(gè)雙向三態(tài)的8位數(shù)據(jù)緩沖器,它是8255A與微機(jī)系統(tǒng)數(shù)據(jù)總線的接口。輸入輸出的數(shù)據(jù)、CPU輸出的控制字以及CPU輸入的狀態(tài)信息都是通過(guò)這個(gè)緩沖器傳送的。三個(gè)端口A,B和C:A端口包含一個(gè)8位數(shù)據(jù)輸出鎖存器和緩沖器,一個(gè)8位數(shù)據(jù)輸入鎖存器。B端口包含一個(gè)8位數(shù)據(jù)輸入/輸出鎖存器和緩沖器,一個(gè)8位數(shù)據(jù)輸入緩沖器。C端口包含一個(gè)8位數(shù)據(jù)輸出鎖存器和緩沖器,一個(gè)8位數(shù)據(jù)輸入緩沖器。A組和B組控制電路:這是兩組根據(jù)

9、CPU輸出的控制字控制8255工作方式的電路,它們對(duì)于CPU而言,共用一個(gè)端口地址相同的控制字寄存器,接收CPU輸出的一字節(jié)方式控制字或?qū)口按位復(fù)位字命令。方式控制字的高5位決定A組的工作方式,低3位決定B組的工作方式。對(duì)C口按位復(fù)位命令字可對(duì)C口的每一位實(shí)現(xiàn)置位或復(fù)位。A組控制電路控制A口和C口上半部,B組控制電路控制B口和C口下半部。 讀寫(xiě)控制邏輯:用來(lái)控制把CPU輸出的控制字或數(shù)據(jù)送至相應(yīng)端口,也由它來(lái)控制把狀態(tài)信息或輸入數(shù)據(jù)通過(guò)相應(yīng)的端口送到CPU。 圖3 8255內(nèi)部結(jié)構(gòu)圖 沈 陽(yáng) 大 學(xué) 課程設(shè)計(jì)說(shuō)明書(shū) NO.5(2)8255的引腳信號(hào)分為數(shù)據(jù)線、地址線、讀/寫(xiě)控制線、輸入/輸出

10、端口線和電源線。7D0(data bus):三態(tài)、雙向數(shù)據(jù)線,與CPU數(shù)據(jù)總線連接,用來(lái)傳送數(shù)據(jù)。(chip select):片選信號(hào)線,低電平有效時(shí),芯片被選中。A1, A0(port address):地址線,用來(lái)選擇內(nèi)部端口。(read):讀出信號(hào)線,低電平有效時(shí),允許數(shù)據(jù)讀出。(write):寫(xiě)入信號(hào)線,低電平有效時(shí),允許數(shù)據(jù)寫(xiě)入。RESET(reset):復(fù)位信號(hào)線,高電平有效時(shí),將所有內(nèi)部寄存器(包括控制寄存器)清0。PA7PA0(port A):A口輸入/輸出信號(hào)線。PB7PB0(port B):B口輸入/輸出信號(hào)線。PC7PC0(port C):C口輸入/輸出信號(hào)線。VCC:5

11、V電源。 GND:電源地線。 (3)8255A的 工作方式:方式0-基本輸入輸出方式;方式1-選通輸入輸出方式;方式2-雙向選通輸入輸出方式。3.設(shè)計(jì)的過(guò)程與分析 3.1設(shè)計(jì)電路將聲傳感器接J2,把代表語(yǔ)音的電信號(hào)送給ADC0809通道2(IN2);D/A轉(zhuǎn)換器的輸出端J1接喇叭。電路如圖4所示: 沈 陽(yáng) 大 學(xué)課程設(shè)計(jì)說(shuō)明書(shū) NO.6 圖4 電路圖 編程以每秒鐘5000次的速率采集IN2輸入的語(yǔ)音數(shù)據(jù)并存入內(nèi)存,共采集60000個(gè)數(shù)據(jù)(錄12秒),然后再以同樣的速率將數(shù)據(jù)送DAC0832使喇叭發(fā)聲(放音)3.2總體設(shè)計(jì)方案流程圖(1)主程序流程圖如圖5所示(2)錄音部分流程圖如圖6所示(3)

12、放音部分流程圖如圖7所示(4)延時(shí)子程序流程圖如圖8所示 沈 陽(yáng) 大 學(xué)課程設(shè)計(jì)說(shuō)明書(shū) NO.7 圖5 主程序流程圖 沈 陽(yáng) 大 學(xué)課程設(shè)計(jì)說(shuō)明書(shū) NO.8 圖6 錄音部分流程圖 沈 陽(yáng) 大 學(xué)課程設(shè)計(jì)說(shuō)明書(shū) NO.9 圖7 放音部分流程圖 沈 陽(yáng) 大 學(xué) 課程設(shè)計(jì)說(shuō)明書(shū) NO.10 圖8 延時(shí)子程序流程圖 沈 陽(yáng) 大 學(xué) 課設(shè)計(jì)說(shuō)明書(shū) NO.113.3 程序清單及注釋Data segmentimport equ 0dd80h-280hio0809a  equ import+ 29ah; AD0809的地址io0832a   equ import+ 290h ;D

13、AC0832的入口地址io8253a  equ import+280h;8253的入口地址io8253c  equ import+283h;8253的控制字地址io8255a  equ import+288h;8255的入口地址io8255c  equ import+28bh;8255的控制字的地址word0 db 0dh,0ah,'按r鍵開(kāi)始錄音',0dh,0ah,24hword2 db 0DH,0AH,'按p鍵開(kāi)始放音', 0dh,0ah,24hword3 db 0DH,0AH,'按t鍵開(kāi)始重播,否則按任意鍵退

14、出', 0dh,0ah,24hbuf   db 60000  dup(?);開(kāi)辟內(nèi)存空間存放數(shù)據(jù)Data endsCode segmentAssume cs:code,ds:dataStart: Mov ax,data;Mov ds,ax;Mov ds,offset word0;顯示錄音提示  Mov ah,09h;Int 21hTest1:      Mov ah,1;等待鍵盤(pán)輸入Int 21hCmp al,rJnz test1;與r比較,若是則執(zhí)行下面的錄音,不是則等待 沈 陽(yáng) 大 學(xué) 課程設(shè)

15、計(jì)說(shuō)明書(shū) NO.12 Mov di,offset buf;定義緩沖區(qū)指針  Mov cx,60000Begin:      Mov dx, io0809a;ADC0809的地址 Out dx,al;啟動(dòng)一次A/D轉(zhuǎn)換器  Call  delay;調(diào)用延時(shí)子程序  In  al,dx;從端口讀入數(shù)據(jù)Mov di,al;將數(shù)據(jù)放入緩沖區(qū)中Inc  di      Loop begin ;循環(huán)裝入60000個(gè)數(shù)據(jù)  Mov dx,o

16、ffset word2;顯示放音提示  Mov ah,9      Int 21hTest2:      Mov ah,1Int 21hCmp al,pJnz test2;與p比較,若是則執(zhí)行放音,不是則等待Play: Mov di,offset buf;取緩沖區(qū)的入口地址Mov cx,60000Begin1:Mov dx,io0832a;DAC0832的入口地址 Mov al,di;將要轉(zhuǎn)換的數(shù)據(jù)從內(nèi)存中取出Out dx,al;將數(shù)據(jù)打入寄存器Call  dela

17、y;調(diào)用延時(shí)子程序 沈 陽(yáng) 大 學(xué) 課程設(shè)計(jì)說(shuō)明書(shū) NO.13Inc diLoop begin1      Mov  dx,offset word3;顯示循環(huán)放音提示  Mov ah,9      Int 21h      Mov ah,1      Int 21h      Cmp al,t   

18、   Jz  play;與t比較,若是則重新播放,不是則退出 Mov ah,4ch      Int 21h      Delay  proc near      Push dx;保存dx的內(nèi)容Mov dx,io8253c;8253的控制字地址Mov al,00010000b ;計(jì)數(shù)器0只讀低字節(jié)以方式0工作,二進(jìn)制計(jì)數(shù)Out dx,alMov dx,io8253a;8253的入口地址Mov al,200;

19、寫(xiě)入循環(huán)計(jì)數(shù)初值Out dx,alMov dx,io8255c;8255的控制字的地址Mov al,10010000b;D7=1控制字標(biāo)志位 ,D6D5=00 方式0 ,D4=1表示A口輸入Out dx,alMov dx,io8255a;8255的入口地址Check:In al,dx;將數(shù)據(jù)輸入alTest al,01;檢查PA0的狀態(tài)是否為高電平Jz check 沈 陽(yáng) 大 學(xué) 課程設(shè)計(jì)說(shuō)明書(shū) NO.14Pop dx;恢復(fù)dxMov dx,io8255a;8255的入口地址Check:In al,dx;將數(shù)據(jù)輸入alTest al,01;檢查PA0的狀態(tài)是否為高電平 Jz checkPop dx;恢復(fù)dx4設(shè)計(jì)體會(huì)在本次課程設(shè)計(jì)中,充分利用學(xué)過(guò)的匯編語(yǔ)言程序設(shè)計(jì)能力,在了解了數(shù)字錄音技術(shù)的基本原理后,通過(guò)對(duì)A/D轉(zhuǎn)換器與D/A轉(zhuǎn)換器的使用,以及利用8253和8255芯片實(shí)現(xiàn)延時(shí)功能,成功完成了數(shù)字錄音機(jī)的設(shè)計(jì)。測(cè)試實(shí)驗(yàn)結(jié)果時(shí),成功實(shí)現(xiàn)了12s的錄音及放音,達(dá)到設(shè)計(jì)要求。此次課設(shè)可以說(shuō)是獲益匪淺。通過(guò)查閱了很多資料,了解了許多匯編程序的思想,擴(kuò)展

溫馨提示

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

評(píng)論

0/150

提交評(píng)論