2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩24頁(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、<p><b>  目 錄</b></p><p>  一、設(shè)計(jì)目的………………………………………1</p><p>  二、設(shè)計(jì)內(nèi)容及要求………………………………1</p><p>  三、具體設(shè)計(jì)過(guò)程…………………………………1</p><p>  1、總體設(shè)計(jì)思想………………………………………1</

2、p><p>  2、硬件連接圖…………………………………………1</p><p>  3、各芯片的作用及工作方式…………………………1</p><p>  4、各芯片工作原理及功能簡(jiǎn)介………………………3</p><p> ?。?)模數(shù)轉(zhuǎn)換器ADC0809………………………………………………3</p><p>  (2)數(shù)

3、模轉(zhuǎn)換器DAC0832………………………………………………5</p><p>  (3)可編程計(jì)數(shù)/定時(shí)接口芯片8253……………………………………8</p><p> ?。?)可編程并行I/O接口芯片8255A…………………………………10</p><p> ?。?)74LS138譯碼器……………………………………………………13</p><p

4、> ?。?)時(shí)鐘發(fā)生器8286……………………………………………………13</p><p> ?。?)地址鎖存器8282……………………………………………………13</p><p> ?。?)數(shù)據(jù)收發(fā)器8286……………………………………………………13</p><p>  (9)內(nèi)存6264……………………………………………………………13</p>

5、;<p>  5、流程圖………………………………………………13</p><p>  6、具體實(shí)現(xiàn)方法………………………………………16</p><p>  四、心得體會(huì)………………………………………17</p><p>  參考文獻(xiàn)……………………………………………19</p><p>  附錄1 總程序………………………

6、…………………………20</p><p>  附錄2 硬件連接圖</p><p><b>  一、設(shè)計(jì)目的</b></p><p>  1.進(jìn)一步加深對(duì)微機(jī)系統(tǒng)的理解和認(rèn)識(shí),提高微機(jī)系統(tǒng)的應(yīng)用水平。</p><p>  2.進(jìn)一步學(xué)習(xí)和掌握匯編語(yǔ)言程序的編寫(xiě)和應(yīng)用的方法,通過(guò)較大規(guī)模程序的編寫(xiě),提高編寫(xiě)匯編語(yǔ)言程序的

7、水平和學(xué)習(xí)程序調(diào)試方法。</p><p>  3.進(jìn)一步熟悉接口,DAC0832、ADC0809及定時(shí)計(jì)數(shù)器等芯片的使用。</p><p>  二、設(shè)計(jì)內(nèi)容及要求:</p><p>  1.設(shè)計(jì)一個(gè)聲音錄放系統(tǒng),通過(guò)傳感器及ADC0809以每秒5000次的速率采集語(yǔ)言信號(hào),錄音12秒后,再以同樣的速率將語(yǔ)音數(shù)據(jù)通過(guò)DAC0832送出至喇叭發(fā)聲(放音)。</p&

8、gt;<p>  2.用protel畫(huà)出系統(tǒng)的硬件連接圖。</p><p>  3.畫(huà)出程序流程圖并編寫(xiě)程序?qū)崿F(xiàn)上述功能。</p><p><b>  三、具體設(shè)計(jì)過(guò)程</b></p><p><b>  1.總體設(shè)計(jì)思想</b></p><p>  根據(jù)設(shè)計(jì)要求,本次數(shù)字錄音機(jī)的匯編

9、語(yǔ)言設(shè)計(jì)所需芯片有模數(shù)轉(zhuǎn)換芯片ADC0809、數(shù)模轉(zhuǎn)換芯片DAC0832、定時(shí)計(jì)數(shù)器8253、可編程并行I/O接口8255A及譯碼器74LS138。設(shè)計(jì)過(guò)程可簡(jiǎn)述為:利用傳感器和ADC0809采集語(yǔ)音數(shù)據(jù),以每秒5000的速率采集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。

10、8253計(jì)數(shù)器0的OUT0與8255A的PA0連接,利用PA0查詢OUT0電平,如果為高點(diǎn)平則表示定時(shí)時(shí)間到。用譯碼器74LS138對(duì)地址線進(jìn)行譯碼以產(chǎn)生各接口芯片所需的信號(hào)。</p><p>  2.硬件連接圖(見(jiàn)附錄)</p><p>  3.各芯片的作用及工作方式</p><p>  (1)ADC0809在本次設(shè)計(jì)中的作用及工作方式</p>&l

11、t;p>  ADC0809作數(shù)據(jù)采集用,用來(lái)采集12秒的語(yǔ)音信號(hào)并保存到相應(yīng)的存儲(chǔ)單元。對(duì)ADC0809的8個(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í)

12、行一條輸出指令,啟動(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í)鐘引腳CLK上。</p><p> ?。?)DAC0832在本次設(shè)計(jì)中的作用及工作方式</p><p>  在本次設(shè)計(jì)中,我使用

13、的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é)果。</p>

14、<p>  (3)8253、8255A在本次設(shè)計(jì)中的作用及工作方式</p><p>  8253在本次設(shè)計(jì)中用作定時(shí),工作于方式0,與8255A連接使用完成定時(shí)操作。8255A采用工作方式0進(jìn)行輸入操作,工作方式0是8255A個(gè)端口的基本輸入輸出方式,CPU可從指定端口輸入信息,也可向指定端口輸出信息。當(dāng)8253寫(xiě)入方式0控制字后,計(jì)數(shù)輸出端OUT0立即變?yōu)榈碗娖剑⑶以谟?jì)數(shù)過(guò)程中一直保持低電平,當(dāng)

15、計(jì)數(shù)完成時(shí),OUT0輸出變?yōu)楦唠娖健?253計(jì)數(shù)器0的OUT0與8255A的PA0連接,因此可通過(guò)查詢PA0是否為1,判斷計(jì)數(shù)是否完成。計(jì)數(shù)完成,則表示定時(shí)時(shí)間到。</p><p> ?。?)74LS138在本次設(shè)計(jì)中的作用</p><p>  譯碼器74LS138對(duì)地址線進(jìn)行譯碼以產(chǎn)生各接口芯片所需的信號(hào)</p><p>  各接口芯片端口地址分配如下: <

16、/p><p>  4.各芯片工作原理及功能簡(jiǎn)介</p><p> ?。?)模數(shù)轉(zhuǎn)換器ADC0809</p><p>  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)用較廣泛的

17、一種A/D轉(zhuǎn)換芯片。</p><p>  ①ADC0809內(nèi)部結(jié)構(gòu)</p><p>  ADC0809內(nèi)部由兩部分電路組成:</p><p>  第一部分:8路模擬通道選擇開(kāi)關(guān),地址鎖存器和譯碼器。</p><p>  第二部分:比較器、8位逐次逼近寄存器SAR、8位開(kāi)關(guān)樹(shù)型D/A轉(zhuǎn)換電路、控制邏輯、三態(tài)輸出緩沖鎖存器。</p>

18、<p>  工作原理:由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è)CLO

19、CK)后,SAR中的8位數(shù)字量即是結(jié)果。在OE有效時(shí),將SAR中的8位二進(jìn)制數(shù)輸出至鎖存器,并通過(guò)D7~D0輸出,同時(shí)發(fā)出EOC轉(zhuǎn)換結(jié)束信號(hào)。</p><p>  ADC0809內(nèi)部結(jié)構(gòu)框圖</p><p> ?、贏DC0809引腳功能如下:</p><p>  IN0~I(xiàn)N7 :8 路模擬輸入通道。</p><p>  D0~D7 :8 位

20、數(shù)字量輸出端。</p><p>  START : 啟動(dòng)轉(zhuǎn)換命令輸入端,由 1 → 0 時(shí)啟動(dòng) A/D 轉(zhuǎn)換,要求信號(hào)寬度 >100n</p><p>  OE :輸出使能端,高電平有效</p><p>  ADDA 、ADDB 、ADDC : 地址輸入線,用于選通 8 路模擬輸入中的一路進(jìn)入 A/D 轉(zhuǎn)換。其中 ADDA 是 LSB 位,這三個(gè)引腳上所加電平

21、的編碼為 000~111 ,分別對(duì)應(yīng) IN 0 ~I(xiàn)N 7 ,例如,當(dāng) ADDC=0 , ADDB=1 , ADDA=1 時(shí),選中 IN 3 通道。</p><p>  ALE :地址鎖存允許信號(hào)。用于將 ADDA~ADDC 三條地址線送入地址鎖存器中。</p><p>  EOC :轉(zhuǎn)換結(jié)束信號(hào)輸出。轉(zhuǎn)換完成時(shí), EOC 的正跳變可用于向 CPU 申請(qǐng)中斷,其高電平也可供 CPU 查詢。

22、</p><p>  CLK :時(shí)鐘脈沖輸入端,要求時(shí)鐘頻率不高于 640KHZ 。</p><p>  REF(+)、REF(-):基準(zhǔn)電壓,一般與微機(jī)接口時(shí),REF(-)接 0V 或 -5V ,REF (+)接 +5V 或 0V 。</p><p> ?。?)數(shù)模轉(zhuǎn)換器DAC0832</p><p>  DAC0832是用COMS工藝制成

23、的雙列直插式8位D/A轉(zhuǎn)換芯片,內(nèi)部采用T型電阻網(wǎng)絡(luò),數(shù)字輸入有輸入寄存器和DAC寄存器兩級(jí)緩沖,可以雙緩沖、單緩沖或直接輸入方式連接。</p><p>  DAC0832內(nèi)部結(jié)構(gòu)圖</p><p>  DAC0832引腳圖如圖2所示,各引腳功能如下:</p><p>  圖2 DAC0832引腳圖</p><p>  DI7~DI0:轉(zhuǎn)換數(shù)

24、據(jù)輸入</p><p> ?。浩x信號(hào)(輸入),低電平有效</p><p>  ILE:數(shù)據(jù)鎖存允許信號(hào)(輸入),高電平有效</p><p> ?。旱?寫(xiě)信號(hào)(輸入),低電平有效</p><p>  上述兩個(gè)信號(hào)控制輸入寄存器是數(shù)據(jù)直通方式還是數(shù)據(jù)鎖存方式;當(dāng)ILE=1和=0時(shí),為輸入寄存器直通方式;當(dāng)ILE=1和=1時(shí),為輸入寄存器鎖存方式

25、。</p><p>  :第2寫(xiě)信號(hào)(輸入),低電平有效</p><p> ?。簲?shù)據(jù)傳送控制信號(hào)(輸入),低電平有效</p><p>  上述兩個(gè)信號(hào)控制DAC寄存器是數(shù)據(jù)直通方式還是數(shù)據(jù)鎖存方式;當(dāng)=0和=0時(shí),為DAC寄存器直通方式;當(dāng)=1和=0時(shí),為DAC寄存器鎖存方式。</p><p>  Iout1:電流輸出1</p>

26、<p>  Iout2:電流輸出2</p><p>  DAC轉(zhuǎn)換器的特性之一是:Iout1+Iout2=常數(shù)。</p><p><b>  Rfb—反饋電阻端</b></p><p>  0832是電流輸出,為了取得電壓輸出,需在電壓輸出端接運(yùn)算放大器,Rfb即為運(yùn)算放大器的反饋電阻端。運(yùn)算放大器的接法如圖3所示。</p&g

27、t;<p>  Vref:基準(zhǔn)電壓,其電壓可正可負(fù),范圍-10V~+10V。</p><p><b>  DGND:數(shù)字地</b></p><p>  AGND:模擬地               

28、0;              </p><p>  DAC0832的三種工作方式</p><p><b> ?、僦蓖ǚ绞?lt;/b></p><p>  當(dāng) ILE 接高電平, 都接數(shù)字地時(shí), DAC 處于直通方式,

29、8 位數(shù)字量一旦到達(dá) D 0~D 7 輸入端,就立即加到 D/A 轉(zhuǎn)換器,被轉(zhuǎn)換成模擬量。在 D/A 實(shí)際連接中,要注意區(qū)分“模擬地”和“數(shù)字地”的連接,為了避免信號(hào)串?dāng)_,數(shù)字量部分只能連接到數(shù)字地,而模擬量部分只能連接到模擬地。這種方式可用于不采用微機(jī)的控制系統(tǒng)中。</p><p><b> ?、趩尉彌_方式</b></p><p>  單緩沖方式是將兩個(gè)鎖存器之一處

30、于直通狀態(tài),輸入數(shù)據(jù)中經(jīng)過(guò)一級(jí)緩沖送入 D/A 轉(zhuǎn)換器。如把 都接地,使寄存鎖存器 2 處于直通狀態(tài), ILE接 +5V , 接 CPU 系統(tǒng)總線的 信號(hào), 接端口地址譯碼信號(hào),這樣 CPU 可執(zhí)行一條 OUT 指令,使 和 有效,寫(xiě)入數(shù)據(jù)并立即啟動(dòng) D/A 轉(zhuǎn)換。 </p><p><b> ?、垭p緩沖方式</b></p><p>  即數(shù)據(jù)通過(guò)兩個(gè)寄存器鎖存后再送

31、入 D/A 轉(zhuǎn)換電路,執(zhí)行兩次寫(xiě)操作才能完成一次 D/A 轉(zhuǎn)換。這種方式可在 D/A 轉(zhuǎn)換的同時(shí),進(jìn)行下一個(gè)數(shù)據(jù)的輸入,可提高轉(zhuǎn)換速度。更為重要的是,這種方式特別適用于系統(tǒng)中含有 2 片及以上的 DAC0832 ,且要求同時(shí)輸出多個(gè)模擬量的場(chǎng)合。 </p><p> ?。?)可編程計(jì)數(shù)/定時(shí)接口芯片8253</p><p>  8253外部引腳結(jié)構(gòu)</p><p>

32、  8253各引腳的功能定義如下:  數(shù)據(jù)總線D0~D7:它們?yōu)槿龖B(tài)輸入/輸出線,用于將8253與系統(tǒng)數(shù)據(jù)總線相連,是8253與CPU接口數(shù)據(jù)線,供CPU向8253讀寫(xiě)數(shù)據(jù)、命令和狀態(tài)信息?! ∽x信號(hào)RD:它為輸入信號(hào),低電平有效。它由CPU發(fā)出,用于對(duì)8253寄存器讀操作。  寫(xiě)信號(hào)WR:它為輸入信號(hào),低電平有效。它由CPU發(fā)出,用于對(duì)8253寄存器寫(xiě)操作?! 〉刂纷g碼線A1A0:這兩根線接到系統(tǒng)地址總線的A1A0上。當(dāng)CS=

33、0,8253被選中時(shí),A1A0用于選擇8253內(nèi)部寄存器,以便對(duì)它們進(jìn)行讀寫(xiě)操作。8253內(nèi)部寄存器與地址碼A1A0的關(guān)系如表7-3所示?! r(shí)鐘信號(hào)CLK:CLK為輸入信號(hào)。3個(gè)計(jì)數(shù)器,各有一獨(dú)立的時(shí)鐘輸入信號(hào),分別為CLK0、CLK1、CLK2。時(shí)鐘信號(hào)的作用是在8253定時(shí)或計(jì)數(shù)工作時(shí),每輸入一個(gè)時(shí)鐘信號(hào)CLK,便使定時(shí)或計(jì)數(shù)值減1。它是計(jì)量的基本時(shí)鐘?! ¢T(mén)選通信號(hào)GATE:GATE信號(hào)為輸入信號(hào)。3個(gè)通道,每一個(gè)都有自己的

34、門(mén)選通信號(hào),分別為GATE0、GATE1、GATE2。GATE信號(hào)的作用是用來(lái)禁止、允許或開(kāi)始計(jì)數(shù)過(guò)程。對(duì)8253的6種不同</p><p><b>  8253的內(nèi)部結(jié)構(gòu)</b></p><p><b> ?、贁?shù)據(jù)總線緩沖器</b></p><p>  該緩沖器為 8 位雙向三態(tài)的緩沖器, 8 根數(shù)據(jù)線 D 0 ~D 7

35、 可直接掛在 CPU 數(shù)據(jù)總線上。</p><p> ?、?#160;   讀/寫(xiě)控制邏輯</p><p>  它是 8253 內(nèi)部操作的控制部分,它決定三個(gè)計(jì)數(shù)器和控制字寄存器中哪一個(gè)能進(jìn)行工作,并控制內(nèi)部總線上數(shù)據(jù)傳送的方向。</p><p><b> ?、劭刂谱旨拇嫫?lt;/b></p><p> 

36、 接收從 CPU 來(lái)的控制字,并由控制字的 D7 、D6 位的編碼決定該控制字寫(xiě)入哪個(gè)計(jì)數(shù)器的控制寄存器,控制寄存器只能寫(xiě)入,不能讀出。</p><p><b> ?、苡?jì)數(shù)器</b></p><p>  8253 有 3 個(gè)獨(dú)立的計(jì)數(shù)器通道,每個(gè)通道的結(jié)構(gòu)完全相同,如圖 10.2 所示。每一個(gè)通道有一個(gè) 16 位減法計(jì)數(shù)器;還有對(duì)應(yīng)的 16 位初值寄存器和輸出鎖存器。

37、每個(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)或硬件門(mén)控信號(hào) GATE 控制。計(jì)數(shù)開(kāi)始前寫(xiě)入的計(jì)數(shù)初值存于初值寄存器;計(jì)數(shù)過(guò)程中,減法計(jì)數(shù)器的值不斷遞減,而初值寄存器中的初值不變。輸出鎖存器則用于寫(xiě)入鎖存命令時(shí)鎖定當(dāng)前計(jì)數(shù)值。</p><p>  當(dāng) 8253 用作計(jì)數(shù)器時(shí),加在 CLK 引腳

38、上脈沖的間隔可以是不相等的;當(dāng)它用作定時(shí)器時(shí),則在 CLK 引腳應(yīng)輸入精確的時(shí)鐘脈沖, 8253 所能實(shí)現(xiàn)的定時(shí)時(shí)間,取決于計(jì)數(shù)脈沖的頻率和計(jì)數(shù)器的初值。</p><p>  對(duì) 8253 來(lái)講,外部輸入到 CLK 引腳上的時(shí)鐘脈沖頻率不能大于 2MHZ ,否則需分頻后才能送到 CLK 端。</p><p>  (4)可編程并行I/O接口芯片8255A</p><p&g

39、t;  8255A的外部引腳布局如圖所示。它有40根引腳,可分為與系統(tǒng)總線(如8086)連接的引腳和與外部設(shè)備連接的引腳。 </p><p><b>  8255A引腳圖</b></p><p>  8255A引腳功能說(shuō)明: RESET:復(fù)位輸入線,當(dāng)該輸入端外于高電平時(shí),所有內(nèi)部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成輸入方式。 PA0~PA7:端

40、口A輸入輸出線,一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器, 一個(gè)8位的數(shù)據(jù)輸入鎖存器。 PB0~PB7:端口B輸入輸出線,一個(gè)8位的I/O鎖存器, 一個(gè)8位的輸入輸出緩沖器。 PC0~PC7:端口C輸入輸出線,一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器, 一個(gè)8位的數(shù)據(jù)輸入緩沖器。端口C可以通過(guò)工作方式設(shè)定而分成2個(gè)4位的端口, 每個(gè)4位的端口包含一個(gè)4位的鎖存器,分別與端口A和端口B配合使用,可作為控制信號(hào)輸出或狀態(tài)信號(hào)輸入端口。CS:片選信號(hào)線

41、,當(dāng)這個(gè)輸入引腳為低電平時(shí),表示芯片被選中,允許8255與CPU進(jìn)行通訊。 RD:讀信號(hào)線,當(dāng)這個(gè)輸入引腳為低電平時(shí),允許8255通過(guò)數(shù)據(jù)總線向CPU發(fā)送數(shù)據(jù)或狀態(tài)信息,即CPU從8255讀取信息或數(shù)據(jù)。 WR:寫(xiě)入信號(hào),當(dāng)這個(gè)輸入引腳為低電平時(shí),允許CPU將數(shù)據(jù)或控制字寫(xiě)8255。 D0~D7:三態(tài)雙向數(shù)據(jù)總線,8255與CPU數(shù)據(jù)傳送的通道,當(dāng)CPU 執(zhí)行輸入輸出指令時(shí),通過(guò)它</p><p><

42、b>  8255A內(nèi)部結(jié)構(gòu)</b></p><p>  ①并行輸入/輸出端口A、B、C</p><p>  8255A 芯片具有 24 個(gè)可編程輸入輸出引腳,分成 3 個(gè) 8 位端口,其中:端口 A 包含一個(gè) 8 位數(shù)據(jù)輸出鎖存 / 緩沖寄存器和一個(gè) 8 位數(shù)據(jù)輸入鎖存器;端口 B 包含一個(gè) 8 位數(shù)據(jù)輸入 / 輸出、鎖存 / 緩沖寄存器和一個(gè) 8 位數(shù)據(jù)輸入緩沖寄存器;

43、端口 C 包含一個(gè)輸出鎖存 / 緩沖寄存器和一個(gè)輸入緩沖寄存器。必要時(shí)端口 C 可分成兩個(gè) 4 位端口,分別與端口 A 與端口 B 配合工作,通常將端口 A 和端口 B 定義為輸入 / 輸出的數(shù)據(jù)端口,而端口C可作為狀態(tài)或控制信息的傳送端口。</p><p> ?、贏組和B組控制部件</p><p>  端口 A 與端口 C 的高 4 位 (PC 7 ~ PC 4) 構(gòu)成 A 組,由 A

44、組控制部件實(shí)現(xiàn)控制功能,端口 B 與端口 C 的低 4 位( PC 3 ~ PC 0 )構(gòu)成 B 組,由 B 組控制部件實(shí)現(xiàn)控制功能。它們各有一個(gè)控制單元,可接收來(lái)自讀 / 寫(xiě)控制部件的命令和 CPU 通過(guò)數(shù)據(jù)總線(D7~D0)送來(lái)的控制字,并根據(jù)它們來(lái)定義各個(gè)端口的操作方式。</p><p>  ③     數(shù)據(jù)總線緩沖器</p><p>  這是

45、一個(gè)三態(tài)雙向 8 位數(shù)據(jù)緩沖器,它是 8255A 與 8086CPU 之間的數(shù)據(jù)接口, CPU輸入輸出的數(shù)據(jù),CPU輸出的控制字以及外設(shè)的狀態(tài)信息都是通過(guò)這個(gè)緩沖器進(jìn)行傳送。</p><p> ?、?#160;    讀/寫(xiě)控制部件</p><p>  這是 8255A 內(nèi)部完成讀 / 寫(xiě)控制功能的部件,它與 CPU 的地址總線及有關(guān)的控制信號(hào)相連,接收 CP

46、U 的控制命令,并根據(jù)它們向片內(nèi)各功能部件發(fā)出操作命令</p><p> ?。?)74LS138譯碼器</p><p>  74LS138是3-8線二進(jìn)制譯碼器,它有3個(gè)輸入端,8個(gè)輸出端,輸出低電平有效。該器件3個(gè)輸入端A、B、C接受二進(jìn)制碼,其輸出端Y0~Y7工8條譯碼輸出線。除此之外,還有3個(gè)使能控制端G、G2A、G2B,目的在于靈活應(yīng)用并組合各種電路。只有當(dāng)G=0,同時(shí)G2A +G

47、2B=0時(shí),譯碼器工作,否則,譯碼器功能被禁止。</p><p> ?。?)時(shí)鐘發(fā)生器8286</p><p>  產(chǎn)生8086所需的時(shí)鐘信號(hào),連接方式如硬件圖所示</p><p> ?。?)地址鎖存器8282,如硬件圖所示,采用直連方式</p><p> ?。?)數(shù)據(jù)收發(fā)器8286,如硬件圖所示,采用直連方式</p><

48、p> ?。?)內(nèi)存6264,如硬件圖所示,采用直連方式</p><p><b>  5.流程圖</b></p><p><b>  6.具體實(shí)現(xiàn)方法</b></p><p>  實(shí)現(xiàn)該聲音錄放系統(tǒng)功能的程序可以分為以下三個(gè)部分</p><p><b> ?。?)主程序</b&g

49、t;</p><p>  主程序的主要任務(wù)是對(duì)8253、8255A進(jìn)行初始化,實(shí)現(xiàn)錄、放音的功能調(diào)用。</p><p> ?、?253初始化設(shè)置</p><p>  8253在程序中設(shè)置成方式0,計(jì)數(shù)200,定時(shí)0.2ms</p><p>  8253工作方式控制字:10000000B,即10H;選擇通道0,方式0,只讀寫(xiě)的、低8位</

50、p><p>  設(shè)8253輸入時(shí)鐘信號(hào)的頻率為 1MHZ</p><p>  計(jì)數(shù)初值=0.2 ms/0.001ms=200</p><p>  控制字端口地址為:81H</p><p>  計(jì)數(shù)器0端口地址為:80H</p><p> ?、?255A初始化設(shè)置</p><p>  8255A控制字

51、:10010000B,即90H;方式0,A口輸入</p><p>  控制字端口地址為:85H</p><p><b>  A口地址為:84H</b></p><p> ?、壅{(diào)用錄、放音子程序</p><p>  首先DOS功能調(diào)用,顯示錄音提示信息,然后BIOS功能調(diào)用,讀鍵盤(pán)緩沖區(qū)字符,等待鍵盤(pán)輸入,若無(wú)鍵按下,繼續(xù)

52、等待;有鍵按下,則調(diào)用錄音子程序,錄音12秒。清除鍵盤(pán)緩沖區(qū)后,再進(jìn)行放音子程序的調(diào)用。</p><p> ?。?)A/D錄放音子程序</p><p>  根據(jù)設(shè)計(jì)要求,ADC0809要以每秒5000的速率采集語(yǔ)音數(shù)據(jù),錄音12秒,因此共需采集5000×12=60000個(gè)數(shù)據(jù),計(jì)數(shù)器CX=60000。</p><p>  選擇IN0通道進(jìn)行數(shù)據(jù)采集(D2=

53、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)換完成后,則尋址ADC0809轉(zhuǎn)換結(jié)果端口,CPU執(zhí)行一條輸入指令,取A/D轉(zhuǎn)換結(jié)果。</p><p>  A/D轉(zhuǎn)換啟動(dòng)端口地址:8CH</p><p>  轉(zhuǎn)換結(jié)果端口地址:90H</p>

54、<p>  EOC狀態(tài)端口地址:94H</p><p> ?。?)D/A放音子程序</p><p>  置數(shù)據(jù)區(qū)首址至SI,計(jì)數(shù)器CX=60000。從數(shù)據(jù)區(qū)取數(shù)據(jù),尋址DAC端口地址,CPU執(zhí)行一條輸出指令,進(jìn)行D/A轉(zhuǎn)換。</p><p>  DAC端口地址為:88H</p><p><b> ?。?)延時(shí)子程序<

55、;/b></p><p>  DELAY是延時(shí)0.2 ms的子程序</p><p>  將8253計(jì)數(shù)器0的OUT0輸入到8255A端口,測(cè)試PA0是否為1,若不為1,則表示8253未計(jì)數(shù)完,繼續(xù)查詢,如果為1,則表示8253計(jì)數(shù)完成,定時(shí)時(shí)間到。</p><p><b>  四、心得體會(huì)</b></p><p>

56、  在進(jìn)行這次微機(jī)原理及其應(yīng)用課程設(shè)計(jì)之前,我覺(jué)得利用匯編語(yǔ)言進(jìn)行較大規(guī)模程序的編寫(xiě)是非常困難的,但通過(guò)對(duì)這次課題數(shù)字錄音機(jī)的設(shè)計(jì)與編程,我不僅加深了對(duì)微機(jī)原理及接口技術(shù)的認(rèn)識(shí)和理解,還認(rèn)識(shí)到只要自己認(rèn)真對(duì)待,通過(guò)查閱資料,理解消化資料,編程并不是難事。</p><p>  剛拿到這個(gè)課題時(shí),我還十分擔(dān)心編不出程序,因?yàn)镈AC0832,ADC0839都是從未接觸過(guò)的芯片,設(shè)計(jì)要求中要通過(guò)傳感器及ADC0809采集

57、語(yǔ)音信號(hào),錄音12秒,再通過(guò)DAC0832送至喇叭放音,我感覺(jué)很抽象,以為程序一定會(huì)很復(fù)雜,但通過(guò)查閱資料,了解了數(shù)模轉(zhuǎn)換和模數(shù)轉(zhuǎn)換芯片的功能及應(yīng)用,我認(rèn)為這次的設(shè)計(jì)任務(wù)并不麻煩,但在編程中也遇到一些問(wèn)題,比如如何利用8253定時(shí)延時(shí),CPU與A/D、D/A轉(zhuǎn)換芯如何連接,在請(qǐng)教知道老師以后,問(wèn)題基本得以解決。我和同組人通過(guò)所獲得的資料及老師的提示,終于完成了編程任務(wù)。雖然不是很復(fù)雜龐大的程序,但我們依然很有成就感,因?yàn)槲覀冋嬲莆樟诉@

58、些知識(shí)。</p><p>  每次課程設(shè)計(jì),我都會(huì)認(rèn)真對(duì)待,因?yàn)檫@個(gè)是培養(yǎng)我們應(yīng)用能力的最佳機(jī)會(huì),也是對(duì)課本知識(shí)的進(jìn)一步深化與提高。通過(guò)這次課程設(shè)計(jì)我又收獲了不少新知識(shí),掌握了這次設(shè)計(jì)中所用到的芯片的工作原理功能及應(yīng)用,而且經(jīng)過(guò)這次設(shè)計(jì),我們的自學(xué)能力與獨(dú)立思考能力也得到了提高。</p><p><b>  參考文獻(xiàn)</b></p><p> 

59、 1.《微機(jī)原理與接口技術(shù)》         主編:彭楚武         湖南大學(xué)出版社</p><p>  2.《微機(jī)原理與接口技術(shù)實(shí)驗(yàn)指導(dǎo)》  主編:黃海萍、陳用昌   國(guó)防工業(yè)出版社</p>&

60、lt;p>  3.《微機(jī)原理應(yīng)用及實(shí)訓(xùn)》       主編:趙歡            高等教育出版社</p><p><b>  附錄1:總程序</b></p><p>  NAME 

61、;   EXAMPLE </p><p>  DATA    SEGMENT</p><p>  BUF     DB 60000 DUP(?)</p><p>  MESS1   DB‘NOW READAY TO RACORD’,0DH,0AH,‘$’&l

62、t;/p><p>  MESS2   DB ‘NOW PLAY THE RECORDING!’, 0DH,0AH, ‘$’</p><p>  DATA    ENDS</p><p>  CODE    SEGMENT</p><p>  ASSUME 

63、CS:CODE,DS:DATA</p><p><b>  START:  </b></p><p>  MOV DX,81H                ;指向8253控制口</p><

64、p>  MOV AL,10H                ;控制字:選擇通道0,方式0,只讀寫(xiě)的、低8位</p><p>  OUT DX, AL         &#

65、160;      ;送控制字</p><p>  MOV DX, 85H               ;指向8255A控制口</p><p>  MOV AL, 90H  

66、0;            ;控制字:方式0,A口輸入</p><p>  OUT DX, AL</p><p>  MOV AX, DATA</p><p>  MOV DS, AX   </p><p>  M

67、OV DX, OFFSET MESS1</p><p>  MOV AH,09H</p><p>  INT 21H                   ;顯示錄音提示信息 </p><p&g

68、t;  WAIT:   MOV AH,01H</p><p>  INT 16H                   ;讀鍵盤(pán)緩沖區(qū)字符,是否有鍵按下</p><p>  JZ  W

69、AIT                  ;無(wú)鍵按下,繼續(xù)等待</p><p>  CALL READ            

70、     ;有鍵按下,調(diào)用錄音子程序</p><p>  MOV DX, OFFSET MESS2</p><p>  MOV AH, 09H</p><p>  INT 21H             &#

71、160;     ;顯示放音提示信息</p><p>  MOV AL, 07H</p><p>  MOV AH, 0CH</p><p>  INT 21H             &

72、#160;      ;清除鍵盤(pán)緩沖區(qū)</p><p>  RE:     MOV AH,01H</p><p>  INT 16H              &

73、#160;     ;讀鍵盤(pán)緩沖區(qū)字符,是否有鍵按下</p><p>  JZ  RE                     ;無(wú)鍵按下,繼續(xù)等待</p>

74、;<p>  CALL   PLY                 ;有鍵按下,調(diào)用放音子程序</p><p>  CMP AL, 20H       

75、         ;是空格嗎</p><p>  JZ   RE                    ;不是,繼續(xù)循環(huán)<

76、;/p><p>  MOV AH, 4CH                ;是,子程序返回</p><p><b>  INT 21H</b></p><p>  READ PROC NEAR<

77、/p><p>  MOV DI, OFFSET BUF         ;尋址數(shù)據(jù)區(qū)</p><p>  MOV CX,60000               ;裝入計(jì)數(shù)器CX

78、=60000</p><p>  READ1:   MOV AL,00H                 ;選擇IN0通道</p><p>  MOV DX,8CH    

79、             ;DX指A/D轉(zhuǎn)換啟動(dòng)端口地址</p><p>  OUT DX,AL                

80、0; ;啟動(dòng)A/D轉(zhuǎn)換</p><p>  MOV DX,94H                 ;尋址EOC狀態(tài)端口地址</p><p>  READ2:   IN  AL, DX 

81、0;               ;取EOC狀態(tài)</p><p>  TEST AL,80H                ;

82、測(cè)試轉(zhuǎn)換是否結(jié)束</p><p>  JZ  READ2                  ;未完,則等待</p><p>  MOV  DX, 90H    &

83、#160;          ;尋址數(shù)據(jù)端口</p><p>  IN  AL,  DX                ;取A/D轉(zhuǎn)換結(jié)果</p>

84、;<p>  MOV [DI],AL                ;存到數(shù)據(jù)區(qū)</p><p>  INC  DI          

85、60;         ;尋址下一單元</p><p>  CALL DELAY                 ;延時(shí)0.2ms</p><p>  

86、LOOP READ1                 ;重復(fù)60000次</p><p><b>  RET</b></p><p><b>  READ ENDP</b></p&g

87、t;<p>  PLY PROC NEAR</p><p>  MOV SI,OFFSET  BUF          ;尋址數(shù)據(jù)區(qū)</p><p>  MOV CX,60000        &#

88、160;       ;裝入計(jì)數(shù)器CX=60000</p><p>  PLY1:   MOV AL, [SI]                 ;從數(shù)據(jù)區(qū)取數(shù)據(jù)</p&

89、gt;<p>  MOV DX, 88H                  ;尋址DAC</p><p>  OUT DX,AL        

90、0;           ;發(fā)送到DAC</p><p>  INC SI                    &

91、#160;  ;尋址下一單元</p><p>  CALL DELAY                   ;延時(shí)0.2ms</p><p>  LOOP  PLY1</p>&

92、lt;p><b>  RET</b></p><p><b>  PLY ENDP</b></p><p>  DELAY PROC NEAR</p><p>  MOV DX, 80H           

93、        ;指向8253計(jì)數(shù)器0端口</p><p>  MOV AL, 200                   </p><p>

94、  OUT DX, AL                    ;寫(xiě)入計(jì)數(shù)初值200</p><p>  MOV DX, 84H        &

95、#160;          ;指向8255A的A端口</p><p>  XX:     IN AL,DX               

96、;       ;將計(jì)數(shù)器0的OUT0輸入到8255A的A口</p><p>  TEST AL,01H                   ;測(cè)試PA0=1?</p&g

97、t;<p>  JZ  XX                        ;不等于1,計(jì)數(shù)未完,繼續(xù)等待</p><p>  RET  &#

98、160;                        ;等于1,子程序返回</p><p>  DELAY ENDP</p><p><b>  CO

溫馨提示

  • 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ù)僅提供信息存儲(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)論