版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)字錄音機(jī)設(shè)計(jì)目 錄1、課程設(shè)計(jì)的目的.32、課程設(shè)計(jì)的方案論證.73、設(shè)計(jì)的結(jié)果與分析.184、心得體會(huì).185、參考文獻(xiàn).19數(shù)字錄音機(jī)設(shè)計(jì)1課程設(shè)計(jì)的目的1.1目的(1)進(jìn)一步加深對(duì)微機(jī)系統(tǒng)的理解和認(rèn)識(shí),提高微機(jī)系統(tǒng)的應(yīng)用水平。(2)進(jìn)一步學(xué)習(xí)和掌握匯編語(yǔ)言程序的編寫(xiě)和應(yīng)用的方法,通過(guò)較大規(guī)模程序的編寫(xiě),提高編寫(xiě)匯編語(yǔ)言程序的水平和學(xué)習(xí)程序調(diào)試方法。(3)進(jìn)一步熟悉接口,DAC0832、ADC0809及定時(shí)計(jì)數(shù)器等芯片的使用。1.2內(nèi)容與要求(1)設(shè)計(jì)一個(gè)聲音錄放系統(tǒng),通過(guò)傳感器及ADC0809以每秒5000次的速率采集語(yǔ)言信號(hào),錄音12秒后,再以同樣的速率將語(yǔ)音數(shù)據(jù)通過(guò)DAC0832送
2、出至喇叭發(fā)聲(放音)。(2)畫(huà)出系統(tǒng)的硬件連接圖。(3)畫(huà)出程序流程圖并編寫(xiě)程序?qū)崿F(xiàn)上述功能。1.3各芯片工作原理及功能簡(jiǎn)介(1)ADC0809 ADC0809是CMOS工藝制成的雙列直插式8位A/D轉(zhuǎn)換芯片,內(nèi)部采用逐次逼近原理,單極性,量程為0+5V。片內(nèi)部有8路模擬開(kāi)關(guān),可控制選擇輸入8個(gè)模擬量之中的一個(gè),并帶有三態(tài)輸出鎖存緩沖器,可直接與CPU總線連接,不需要外部鎖存器,是應(yīng)用較廣泛的一種A/D轉(zhuǎn)換芯片。ADC0809內(nèi)部結(jié)構(gòu)ADC0809內(nèi)部由兩部分電路組成:第一部分:8路模擬通道選擇開(kāi)關(guān),地址鎖存器和譯碼器。第二部分:比較器、8位逐次逼近寄存器SAR、8位開(kāi)關(guān)樹(shù)型D/A轉(zhuǎn)換電路、控
3、制邏輯、三態(tài)輸出緩沖鎖存器。工作原理:由ADDA、ADDB、ADDC及ALE選擇8個(gè)模擬量之一,并通過(guò)通道選擇開(kāi)關(guān)加至比較器一端。由START信號(hào)啟動(dòng)A/D轉(zhuǎn)換開(kāi)始且SAR清0。在CLOCK的控制下,將SAR從高位逐次置1,并將每次置位后的SAR送D/A轉(zhuǎn)換器轉(zhuǎn)換成與SAR中數(shù)字量成正比的模擬量。DAC的輸出加至比較器的另一端與輸入的模擬電壓進(jìn)行比較,若Vi大于等于V0保留SAR中該位的1;若Vi小于V0則該位清0。經(jīng)過(guò)8次比較(8個(gè)CLOCK)后,SAR中的8位數(shù)字量即是結(jié)果。在OE有效時(shí),將SAR中的8位二進(jìn)制數(shù)輸出至鎖存器,并通過(guò)D7D0輸出,同時(shí)發(fā)出EOC轉(zhuǎn)換結(jié)束信號(hào)。ADC0809引
4、腳功能如下:IN0IN7 :8 路模擬輸入通道。D0D7 :8 位數(shù)字量輸出端。START : 啟動(dòng)轉(zhuǎn)換命令輸入端,由 1 0 時(shí)啟動(dòng) A/D 轉(zhuǎn)換,要求信號(hào)寬度 100nOE :輸出使能端,高電平有效ADDA 、ADDB 、ADDC : 地址輸入線,用于選通 8 路模擬輸入中的一路進(jìn)入 A/D 轉(zhuǎn)換。其中 ADDA 是 LSB 位,這三個(gè)引腳上所加電平的編碼為 000111 ,分別對(duì)應(yīng) IN 0 IN 7 ,例如,當(dāng) ADDC=0 , ADDB=1 , ADDA=1 時(shí),選中 IN 3 通道。ALE :地址鎖存允許信號(hào)。用于將 ADDAADDC 三條地址線送入地址鎖存器中。EOC :轉(zhuǎn)換結(jié)束
5、信號(hào)輸出。轉(zhuǎn)換完成時(shí), EOC 的正跳變可用于向 CPU 申請(qǐng)中斷,其高電平也可供 CPU 查詢。CLK :時(shí)鐘脈沖輸入端,要求時(shí)鐘頻率不高于 640KHZ 。REF(+)、REF(-):基準(zhǔn)電壓,一般與微機(jī)接口時(shí),REF(-)接 0V 或 -5V ,REF (+)接 +5V 或 0V 。(2)DAC0832DAC0832是用COMS工藝制成的雙列直插式8位D/A轉(zhuǎn)換芯片,內(nèi)部采用T型電阻網(wǎng)絡(luò),數(shù)字輸入有輸入寄存器和DAC寄存器兩級(jí)緩沖,可以雙緩沖、單緩沖或直接輸入方式連接。片選信號(hào):輸入低電平有效,與ILE相配合,可對(duì)寫(xiě)信號(hào) 是否有效起到控制作用。ILE允許鎖存信號(hào):輸入高電平有效。輸入鎖存
6、器的鎖存信號(hào) 由ILE, , 的邏輯組合產(chǎn)生。當(dāng)ILE為高電平、 為低電平、 輸入負(fù)脈沖時(shí),在 端產(chǎn)生正脈沖。當(dāng) 為高電平時(shí),輸入鎖存器的狀態(tài)隨著數(shù)據(jù)輸入線的狀態(tài)變化, 的負(fù)跳變將數(shù)據(jù)線上的信息打入輸入鎖存器。 寫(xiě)信號(hào)1:輸入低電平有效。當(dāng) , ,ILE均為有效時(shí),可將數(shù)據(jù)寫(xiě)入8位輸入鎖存器。寫(xiě)信號(hào)2:輸入低電平有效。當(dāng)其有效時(shí),在傳送控制信號(hào) 的作用下,可將鎖存在輸入鎖存器的8位數(shù)據(jù)送到DAC寄存器。數(shù)據(jù)傳送控制信號(hào):輸入低電平有效。當(dāng) , 均有效時(shí),則在 端產(chǎn)生正脈沖。當(dāng) 為高電平時(shí),DAC寄存器的輸出和輸入鎖存器的狀態(tài)一致, 的負(fù)跳變將輸入鎖存器的內(nèi)容打入DAC寄存器?;鶞?zhǔn)電壓輸入端:可
7、在10 V范圍內(nèi)調(diào)節(jié)。DI7DI0:8位數(shù)字輸入量輸入端。Iout1:DAC的電流輸出1。當(dāng)DAC寄存器各位均為1時(shí),輸出電流最大;當(dāng)DAC寄存器各位均為0時(shí),輸出電流為0。Iout2 :DAC的電流輸出2。 與 的和為一常數(shù),一般單極性輸出時(shí) 接地,在雙極性輸出時(shí)接運(yùn)放。Rfb :反饋電阻引腳。在DAC0832芯片內(nèi)部有一個(gè)反饋電阻,可作為外部運(yùn)算放大電路的反饋電阻用。(3)可編程計(jì)數(shù)/定時(shí)接口芯片82538253內(nèi)部結(jié)構(gòu)數(shù)據(jù)總線緩沖器該緩沖器為 8 位雙向三態(tài)的緩沖器, 8 根數(shù)據(jù)線 D 0 D 7 可直接掛在 CPU 數(shù)據(jù)總線上。讀/寫(xiě)控制邏輯它是 8253 內(nèi)部操作的控制部分,它決定三
8、個(gè)計(jì)數(shù)器和控制字寄存器中哪一個(gè)能進(jìn)行工作,并控制內(nèi)部總線上數(shù)據(jù)傳送的方向。控制字寄存器接收從 CPU 來(lái)的控制字,并由控制字的 D7 、D6 位的編碼決定該控制字寫(xiě)入哪個(gè)計(jì)數(shù)器的控制寄存器,控制寄存器只能寫(xiě)入,不能讀出。計(jì)數(shù)器8253 有 3 個(gè)獨(dú)立的計(jì)數(shù)器通道,每個(gè)通道的結(jié)構(gòu)完全相同,如圖 10.2 所示。每一個(gè)通道有一個(gè) 16 位減法計(jì)數(shù)器;還有對(duì)應(yīng)的 16 位初值寄存器和輸出鎖存器。每個(gè)計(jì)數(shù)器都可以對(duì)其 CLK 輸入端輸入的脈沖按照二進(jìn)制或 BCD 碼從預(yù)置的初值開(kāi)始進(jìn)行減 1 計(jì)數(shù),當(dāng)減至 0 時(shí),從 OUT 端輸出一個(gè)信號(hào),計(jì)數(shù)的開(kāi)始由軟件啟動(dòng)或硬件門控信號(hào) GATE 控制。計(jì)數(shù)開(kāi)始
9、前寫(xiě)入的計(jì)數(shù)初值存于初值寄存器;計(jì)數(shù)過(guò)程中,減法計(jì)數(shù)器的值不斷遞減,而初值寄存器中的初值不變。輸出鎖存器則用于寫(xiě)入鎖存命令時(shí)鎖定當(dāng)前計(jì)數(shù)值。當(dāng) 8253 用作計(jì)數(shù)器時(shí),加在 CLK 引腳上脈沖的間隔可以是不相等的;當(dāng)它用作定時(shí)器時(shí),則在 CLK 引腳應(yīng)輸入精確的時(shí)鐘脈沖, 8253 所能實(shí)現(xiàn)的定時(shí)時(shí)間,取決于計(jì)數(shù)脈沖的頻率和計(jì)數(shù)器的初值。對(duì) 8253 來(lái)講,外部輸入到 CLK 引腳上的時(shí)鐘脈沖頻率不能大于 2MHZ ,否則需分頻后才能送到 CLK 端。(4)可編程并行I/O接口芯片8255A并行輸入/輸出端口A、B、C8255A 芯片具有 24 個(gè)可編程輸入輸出引腳,分成 3 個(gè) 8 位端口,
10、其中:端口 A 包含一個(gè) 8 位數(shù)據(jù)輸出鎖存 / 緩沖寄存器和一個(gè) 8 位數(shù)據(jù)輸入鎖存器;端口 B 包含一個(gè) 8 位數(shù)據(jù)輸入 / 輸出、鎖存 / 緩沖寄存器和一個(gè) 8 位數(shù)據(jù)輸入緩沖寄存器;端口 C 包含一個(gè)輸出鎖存 / 緩沖寄存器和一個(gè)輸入緩沖寄存器。必要時(shí)端口 C 可分成兩個(gè) 4 位端口,分別與端口 A 與端口 B 配合工作,通常將端口 A 和端口 B 定義為輸入 / 輸出的數(shù)據(jù)端口,而端口C可作為狀態(tài)或控制信息的傳送端口。A組和B組控制部件端口 A 與端口 C 的高 4 位 (PC 7 PC 4) 構(gòu)成 A 組,由 A 組控制部件實(shí)現(xiàn)控制功能,端口 B 與端口 C 的低 4 位( PC
11、3 PC 0 )構(gòu)成 B 組,由 B 組控制部件實(shí)現(xiàn)控制功能。它們各有一個(gè)控制單元,可接收來(lái)自讀 / 寫(xiě)控制部件的命令和 CPU 通過(guò)數(shù)據(jù)總線(D7D0)送來(lái)的控制字,并根據(jù)它們來(lái)定義各個(gè)端口的操作方式。數(shù)據(jù)總線緩沖器這是一個(gè)三態(tài)雙向 8 位數(shù)據(jù)緩沖器,它是 8255A 與 8086CPU 之間的數(shù)據(jù)接口, CPU輸入輸出的數(shù)據(jù),CPU輸出的控制字以及外設(shè)的狀態(tài)信息都是通過(guò)這個(gè)緩沖器進(jìn)行傳送。讀/寫(xiě)控制部件 這是 8255A 內(nèi)部完成讀 / 寫(xiě)控制功能的部件,它與 CPU 的地址總線及有關(guān)的控制信號(hào)相連,接收 CPU 的控制命令,并根據(jù)它們向片內(nèi)各功能部件發(fā)出操作命令(5)74LS138譯碼器
12、74LS138是3-8線二進(jìn)制譯碼器,它有3個(gè)輸入端,8個(gè)輸出端,輸出低電平有效。該器件3個(gè)輸入端A、B、C接受二進(jìn)制碼,其輸出端Y0Y7工8條譯碼輸出線。除此之外,還有3個(gè)使能控制端G、G2A、G2B,目的在于靈活應(yīng)用并組合各種電路。只有當(dāng)G=0,同時(shí)G2A +G2B=0時(shí),譯碼器工作,否則,譯碼器功能被禁止。2設(shè)計(jì)方案論證2.1總體設(shè)計(jì)思想根據(jù)設(shè)計(jì)要求,本次數(shù)字錄音機(jī)的匯編語(yǔ)言設(shè)計(jì)所需芯片有模數(shù)轉(zhuǎn)換芯片ADC0809、數(shù)模轉(zhuǎn)換芯片DAC0832、定時(shí)計(jì)數(shù)器8253、可編程并行I/O接口8355A及譯碼器74LS138。設(shè)計(jì)過(guò)程可簡(jiǎn)述為:利用傳感器和ADC0809采集語(yǔ)音數(shù)據(jù),以每秒5000
13、的速率采集IN0輸入的語(yǔ)音數(shù)據(jù)并存入內(nèi)存,共采集數(shù)據(jù)60000個(gè),即錄音12秒。DAC0832進(jìn)行數(shù)模轉(zhuǎn)換,以同樣的速率將數(shù)據(jù)送DAC0832使喇叭發(fā)聲。8253用作定時(shí),定時(shí)0.2ms,設(shè)置成方式0,計(jì)數(shù)初值為200。8253計(jì)數(shù)器0的OUT0與8255A的PA0連接,利用PA0查詢OUT0電平,如果為高點(diǎn)平則表示定時(shí)時(shí)間到。用譯碼器74LS138對(duì)地址線進(jìn)行譯碼以產(chǎn)生各接口芯片所需的信號(hào)。2.2硬件連接圖圖1 硬件連接圖2.3各芯片的作用及工作方式(1)ADC0809在本次設(shè)計(jì)中的作用及工作方式ADC0809作數(shù)據(jù)采集用,用來(lái)采集12秒的語(yǔ)音信號(hào)并保存到相應(yīng)的存儲(chǔ)單元。對(duì)ADC0809的8
14、個(gè)模擬通道,這里是用數(shù)據(jù)總線的低8位D2、D1、D0來(lái)控制ADC的通道選擇信號(hào)ADDC、ADDB、ADDA,以實(shí)現(xiàn)選擇其中之一模擬通道輸入。在本次設(shè)計(jì)中,初始值為000(D2=0、D1=0、D0=0),即選擇IN0通道進(jìn)行數(shù)據(jù)采集,然后使ADC0809的ALE、START有效,START和ALE信號(hào)通過(guò)CPU向選中的通道口執(zhí)行一條輸出指令,啟動(dòng)A/D轉(zhuǎn)換。轉(zhuǎn)換結(jié)束后,發(fā)出EOC信號(hào),當(dāng)EOC為高電平時(shí),可供CPU查詢,讀取每次采集的A/D轉(zhuǎn)換結(jié)果。當(dāng)CPU知道轉(zhuǎn)換已完成,執(zhí)行一條輸入指令使OE信號(hào)有效,此時(shí)輸出緩沖器被打開(kāi),數(shù)據(jù)送到數(shù)據(jù)總線。系統(tǒng)時(shí)鐘經(jīng)分頻后接到ADC0809芯片的時(shí)鐘引腳CL
15、K上。(2)DAC0832在本次設(shè)計(jì)中的作用及工作方式在本次設(shè)計(jì)中,我使用的DAC0832采用直通方式與CPU連接,從硬件圖中可以看出,該片DAC0832只有一個(gè)端口地址,即88H。DAC0832的ILE信號(hào)與+5V連在一起, 、WR1和WR2均接地,總是有效的,DAC0832的輸入寄存器和DAC寄存器均處于選通狀態(tài),只要CPU想88H端口執(zhí)行一條輸出指令,就會(huì)使XFER有效,CPU輸出繁榮數(shù)字量就會(huì)順利通過(guò)DAC0832的兩個(gè)寄存器,然后進(jìn)行D/A轉(zhuǎn)換,在運(yùn)算放大器的輸出端得到轉(zhuǎn)換結(jié)果。(3)8253、8255A在本次設(shè)計(jì)中的作用及工作方式8253在本次設(shè)計(jì)中用作定時(shí),工作于方式0,與825
16、5A連接使用完成定時(shí)操作。8255A采用工作方式0進(jìn)行輸入操作,工作方式0是8255A個(gè)端口的基本輸入輸出方式,CPU可從指定端口輸入信息,也可向指定端口輸出信息。當(dāng)8253寫(xiě)入方式0控制字后,計(jì)數(shù)輸出端OUT0立即變?yōu)榈碗娖?,并且在?jì)數(shù)過(guò)程中一直保持低電平,當(dāng)計(jì)數(shù)完成時(shí),OUT0輸出變?yōu)楦唠娖健?253計(jì)數(shù)器0的OUT0與8255A的PA0連接,因此可通過(guò)查詢PA0是否為1,判斷計(jì)數(shù)是否完成。計(jì)數(shù)完成,則表示定時(shí)時(shí)間到。(4)74LS138在本次設(shè)計(jì)中的作用譯碼器74LS138對(duì)地址線進(jìn)行譯碼以產(chǎn)生各接口芯片所需的信號(hào)2.4流程圖開(kāi)始8253、8255A初始化顯示錄音提示信息等待鍵盤輸入有鍵
17、按下嗎?調(diào)用錄音子程序顯示錄音提示信息等待鍵盤輸入序有鍵按下嗎?調(diào)用收音子程序是空格嗎?返回DOSNYNNYY圖2 主程序流程圖開(kāi)始置數(shù)據(jù)區(qū)首地址至D1置循環(huán)初值CX=60000啟動(dòng)A/D轉(zhuǎn)換測(cè)試轉(zhuǎn)換是否結(jié)束?讀EOC狀態(tài)讀取轉(zhuǎn)換結(jié)果存數(shù)據(jù)區(qū)尋址下一單元序延時(shí)0.2ms循環(huán)結(jié)束嗎?結(jié)束DOSNYNY 圖3 錄音子程序流程圖開(kāi)始置數(shù)據(jù)區(qū)首地址至D1置循環(huán)初值CX=60000從數(shù)據(jù)區(qū)取數(shù)據(jù)尋址DACS1加1延時(shí)0.2ms循環(huán)結(jié)束嗎?子程序返回DOSNY發(fā)送到DAC進(jìn)行D/A轉(zhuǎn)換并輸出 圖4 放音子程序流程圖 設(shè)置8253為方式0計(jì)數(shù)200查詢8255A的A口PA0為1嗎?子程序返回DOSNY圖5
18、延時(shí)子程序2.5具體實(shí)現(xiàn)方法實(shí)現(xiàn)該聲音錄放系統(tǒng)功能的程序可以分為以下四個(gè)部分:(1)主程序主程序的主要任務(wù)是對(duì)8253、8255A進(jìn)行初始化,實(shí)現(xiàn)錄、放音的功能調(diào)用。8253初始化設(shè)置8253在程序中設(shè)置成方式0,計(jì)數(shù)200,定時(shí)0.2ms 8253工作方式控制字:10000000B,即10H;選擇通道0,方式0,只讀寫(xiě)的、低8位設(shè)8253輸入時(shí)鐘信號(hào)的頻率為 1MHZ計(jì)數(shù)初值=0.2 ms/0.001ms=200控制字端口地址為:81H計(jì)數(shù)器0端口地址為:80H8255A初始化設(shè)置8255A控制字:10010000B,即90H;方式0,A口輸入控制字端口地址為:85HA口地址為:84H調(diào)用錄
19、、放音子程序首先DOS功能調(diào)用,顯示錄音提示信息,然后BIOS功能調(diào)用,讀鍵盤緩沖區(qū)字符,等待鍵盤輸入,若無(wú)鍵按下,繼續(xù)等待;有鍵按下,則調(diào)用錄音子程序,錄音12秒。清除鍵盤緩沖區(qū)后,再進(jìn)行放音子程序的調(diào)用。(2)A/D錄放音子程序根據(jù)設(shè)計(jì)要求,ADC0809要以每秒5000的速率采集語(yǔ)音數(shù)據(jù),錄音12秒,因此共需采集500012=60000個(gè)數(shù)據(jù),計(jì)數(shù)器CX=60000。選擇IN0通道進(jìn)行數(shù)據(jù)采集(D2=0、D1=0、D0=0),尋址A/D轉(zhuǎn)換啟動(dòng)端口地址,CPU向IN0通道執(zhí)行一條輸出指令,啟動(dòng)一次A/D轉(zhuǎn)換。尋址EOC狀態(tài)端口地址,讀取EOC狀態(tài),測(cè)試轉(zhuǎn)換是否結(jié)束,未完則繼續(xù)等待,轉(zhuǎn)換完
20、成后,則尋址ADC0809轉(zhuǎn)換結(jié)果端口,CPU執(zhí)行一條輸入指令,取A/D轉(zhuǎn)換結(jié)果。A/D轉(zhuǎn)換啟動(dòng)端口地址:8CH轉(zhuǎn)換結(jié)果端口地址:90HEOC狀態(tài)端口地址:94H(3)D/A放音子程序置數(shù)據(jù)區(qū)首址至SI,計(jì)數(shù)器CX=60000。從數(shù)據(jù)區(qū)取數(shù)據(jù),尋址DAC端口地址,CPU執(zhí)行一條輸出指令,進(jìn)行D/A轉(zhuǎn)換。DAC端口地址為:88H(4)延時(shí)子程序DELAY是延時(shí)0.2 ms的子程序 將8253計(jì)數(shù)器0的OUT0輸入到8255A端口,測(cè)試PA0是否為1,若不為1,則表示8253未計(jì)數(shù)完,繼續(xù)查詢,如果為1,則表示8253計(jì)數(shù)完成,定時(shí)時(shí)間到。2.6課程設(shè)計(jì)的程序編寫(xiě)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,只讀寫(xiě)的、低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 ;讀鍵盤緩沖區(qū)字符,是否有鍵按下JZ WAIT ;無(wú)鍵按下,繼續(xù)等待CALL READ ;有鍵按下,調(diào)用錄音子程序MOV DX, OFFSET MESS2 MOV AH, 09HINT 21H ;顯示放音提示信息MOV AL, 07HMOV AH, 0CHINT 21H ;清除鍵盤緩沖區(qū)RE: MOV AH,01HINT 16H ;讀鍵盤緩沖區(qū)字符,是否有鍵按下JZ RE ;無(wú)鍵按下,繼續(xù)等待CALL PLY ;有
23、鍵按下,調(diào)用放音子程序CMP AL, 20H ;是空格嗎JZ RE ;不是,繼續(xù)循環(huán)MOV AH, 4CH ;是,子程序返回INT 21HREAD PROC NEARMOV DI, OFFSET BUF ;尋址數(shù)據(jù)區(qū)MOV CX,60000 ;裝入計(jì)數(shù)器CX=60000READ1: MOV AL,00H ;選擇IN0通道 MOV DX,8CH;DX指A/D轉(zhuǎn)換啟動(dòng)端口地址 OUT DX,AL;啟動(dòng)A/D轉(zhuǎn)換 MOV DX,94H;尋址EOC狀態(tài)端口地址READ2: IN AL, DX ;取EOC狀態(tài) TEST AL,80H ;測(cè)試轉(zhuǎn)換是否結(jié)束 JZ READ2 ;未完,則等待 MOV DX,
24、90H ;尋址數(shù)據(jù)端口 IN AL, DX ;取A/D轉(zhuǎn)換結(jié)果 MOV DI,AL ;存到數(shù)據(jù)區(qū) INC DI ;尋址下一單元 CALL DELAY ;延時(shí)0.2ms LOOP READ1 ;重復(fù)60000次RETREAD ENDPPLY PROC NEARMOV SI,OFFSET BUF ;尋址數(shù)據(jù)區(qū)MOV CX,60000 ;裝入計(jì)數(shù)器CX=60000PLY1: MOV AL, SI ;從數(shù)據(jù)區(qū)取數(shù)據(jù)MOV DX, 88H ;尋址DACOUT DX,AL ;發(fā)送到DACINC SI ;尋址下一單元CALL DELAY ;延時(shí)0.2msLOOP PLY1RETPLY ENDPDELAY P
25、ROC NEARMOV DX, 80H ;指向8253計(jì)數(shù)器0端口MOV AL, 200 OUT DX, AL ;寫(xiě)入計(jì)數(shù)初值200MOV DX, 84H ;指向8255A的A端口XX: IN AL,DX ;將計(jì)數(shù)器0的OUT0輸入到8255A的A口TEST AL,01H ;測(cè)試PA0=1?JZ XX ;不等于1,計(jì)數(shù)未完,繼續(xù)等待RET ;等于1,子程序返回DELAY ENDPCODE ENDSEND START3設(shè)計(jì)結(jié)果與分析3.1設(shè)計(jì)結(jié)果(1)用編輯程序建立.ASM源程序在DOS提示符下鍵入C:ASMEDIT PAN.ASM,編輯文件名為PAN.ASM的源文件。(2)用MASM程序把.A
26、SM文件轉(zhuǎn)換成.OBJ文件,輸入命令C:ASMMASM PAN,匯編成OBJ文件。(3)用LINK程序把.OBJ文件轉(zhuǎn)換成.EXE文件,匯編無(wú)錯(cuò)后,輸入C:ASMLINK PAN,將目標(biāo)文件生成可執(zhí)行程序。(4)在DOS下直接鍵入文件名運(yùn)行該程序。(5)用DEBUG程序調(diào)試、修改,輸入C:ASMDEBUG PAN.EXE,用單步、設(shè)置斷點(diǎn)等方式對(duì)程序進(jìn)行調(diào)試。利用命令T、G調(diào)試,實(shí)現(xiàn)了12s的錄音及放音。3.2分析在本實(shí)驗(yàn)中,充分利用學(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錄音功能、放音功能、重復(fù)放音功能。其中,提示信息為中文提示,清楚明了,達(dá)到設(shè)計(jì)要求。4設(shè)計(jì)體會(huì)在進(jìn)行這次微機(jī)原理及
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 汽車零部件物流承運(yùn)商管理辦法
- 城市綠地鋼結(jié)構(gòu)施工合同
- 國(guó)際旅游公證服務(wù)手冊(cè)
- 陵園管理公司會(huì)計(jì)招聘合同
- 專利權(quán)授權(quán)轉(zhuǎn)讓合同
- 武漢市地下水保護(hù)志愿者行動(dòng)
- 藝術(shù)學(xué)院學(xué)生公寓規(guī)章
- 食品加工廠生產(chǎn)主管聘用合同
- 臨時(shí)財(cái)務(wù)分析師合同模板
- 企業(yè)擴(kuò)張策略標(biāo)準(zhǔn)化指南
- 泌尿科一科一品匯報(bào)課件
- 2024年江西省三校生高職英語(yǔ)高考試卷
- 中國(guó)古代文學(xué)智慧樹(shù)知到期末考試答案章節(jié)答案2024年廣州大學(xué)
- 重慶市南岸區(qū)2022-2023學(xué)年五年級(jí)上學(xué)期期末語(yǔ)文試卷
- 現(xiàn)澆鋼筋混凝土整體式肋梁樓蓋結(jié)構(gòu)-課程設(shè)計(jì)
- 錦綸纖維研究報(bào)告-中國(guó)錦綸纖維行業(yè)競(jìng)爭(zhēng)格局分析及發(fā)展前景研究報(bào)告2020-2023年
- 浙江省舟山市2023-2024學(xué)年高二上學(xué)期1月期末檢測(cè)地理試題(解析版)
- 計(jì)算機(jī)安全弱口令風(fēng)險(xiǎn)
- 《寫(xiě)字樓招商方案》課件
- 服務(wù)器維保應(yīng)急預(yù)案
- 煙花爆竹經(jīng)營(yíng)
評(píng)論
0/150
提交評(píng)論