![](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/5/22/21ab473a-4f06-4993-82bb-a05ead8c0980/21ab473a-4f06-4993-82bb-a05ead8c0980pic.jpg)
![微機(jī)原理課程設(shè)計(jì)--應(yīng)用8255a和8位ad變換器實(shí)現(xiàn)多路數(shù)據(jù)的采集_第1頁(yè)](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/5/22/21ab473a-4f06-4993-82bb-a05ead8c0980/21ab473a-4f06-4993-82bb-a05ead8c09801.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 信息科學(xué)與工程學(xué)院</b></p><p><b> 自動(dòng)化系</b></p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 課程名稱: 微機(jī)原理及應(yīng)用課程設(shè)計(jì) </p><p> 班 級(jí): 自動(dòng)化
2、1003班 </p><p> 姓 名: </p><p> 學(xué) 號(hào): </p><p> 指導(dǎo)教師: </p><p><b> 二○一三年元月
3、八日</b></p><p> 應(yīng)用8255A和8位A/D變換器實(shí)現(xiàn)多路數(shù)據(jù)的采集</p><p><b> 一、設(shè)計(jì)目的</b></p><p> 鞏固“微機(jī)原理”課程學(xué)過(guò)的知識(shí),加強(qiáng)理論與實(shí)踐的聯(lián)系。通過(guò)本課程設(shè)計(jì),初步了解微機(jī)系統(tǒng)的硬件設(shè)備,學(xué)會(huì)8086系列編程指令的基本功能。</p><p>&
4、lt;b> 二、設(shè)計(jì)任務(wù)</b></p><p> 采用8086系列CPU構(gòu)建控制系統(tǒng),在IBM PC系統(tǒng)機(jī)的擴(kuò)充槽上,利用8255A和8位ADC0809模數(shù)變換器實(shí)現(xiàn)數(shù)據(jù)采集系統(tǒng),并編寫程序完成多路數(shù)據(jù)的采集工作。</p><p><b> 三、設(shè)計(jì)要求</b></p><p> ?。?)系統(tǒng)的基本原理及畫出硬件原理圖
5、,并加以說(shuō)明。</p><p> ?。?)畫出程序流程圖。</p><p> ?。?)編寫應(yīng)用程序,并注釋。</p><p> ?。?)A/D變換器通過(guò)8255A與計(jì)算機(jī)總線相連,完成數(shù)據(jù)的讀?。幌到y(tǒng)中通過(guò)8259A可編程中斷控制器,向8086申請(qǐng)中斷。</p><p> 四、系統(tǒng)總體設(shè)計(jì)框架</p><p> 本
6、設(shè)計(jì)采用A\D轉(zhuǎn)換器ADC0809, 把外界模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),通過(guò)并行接口8255連接到IBM—PC擴(kuò)展槽。從鍵盤輸入數(shù)碼選擇A/D轉(zhuǎn)換的通道,從顯示器上得到轉(zhuǎn)換成的數(shù)字量。</p><p> 五、相關(guān)工作原理說(shuō)明</p><p> 1、A/D轉(zhuǎn)換的原理</p><p> 在我們所測(cè)控的信號(hào)中均是連續(xù)變化的物理量,通常需要用計(jì)算機(jī)對(duì)這些信號(hào)進(jìn)行處理,則需
7、要將其轉(zhuǎn)換成數(shù)字量,A/D轉(zhuǎn)換器就是為了將連續(xù)變化的模擬量轉(zhuǎn)換成計(jì)算機(jī)能接受的數(shù)字量。</p><p> 根據(jù)A/D轉(zhuǎn)換器的工作原理,常用的A/D轉(zhuǎn)換器可分為兩種,雙積分式A/D轉(zhuǎn)換器和逐次逼近式A/D轉(zhuǎn)換器。</p><p> ?。?)雙積分A/D轉(zhuǎn)換器工作原理</p><p> 雙積分A/D轉(zhuǎn)換器由電子開(kāi)關(guān),積分器,比較器,計(jì)數(shù)器和控制邏輯等部分組成,所謂雙
8、積分就是進(jìn)行一次A/D轉(zhuǎn)換需要兩次積分。雙積分A/D轉(zhuǎn)換器采用間接測(cè)量的方法,它將被測(cè)電壓轉(zhuǎn)換成時(shí)間常數(shù)T,輸入電壓越大反向積分時(shí)間越長(zhǎng),用高頻標(biāo)準(zhǔn)脈沖計(jì)數(shù)測(cè)此時(shí)間,即可得到相應(yīng)于輸入電壓的數(shù)字量。</p><p> 特點(diǎn):可以有效的消除干擾和電源噪聲,轉(zhuǎn)換精度高,但是轉(zhuǎn)換速度慢。</p><p> ?。?)逐次逼近型A/D轉(zhuǎn)換器</p><p> 逐次逼近型A
9、/D轉(zhuǎn)換器由D/A轉(zhuǎn)換環(huán)節(jié),比較環(huán)節(jié)和控制邏輯等幾部分組成。圖示是逐次逼近型A/D轉(zhuǎn)換器的電路原理圖,其轉(zhuǎn)換原理為:A/D轉(zhuǎn)換器將一待轉(zhuǎn)換的模擬輸入電壓Ui與一個(gè)預(yù)先設(shè)定的電壓Ui(預(yù)定的電壓由逐次逼近型A/D轉(zhuǎn)換器中的D/A輸出獲得)電壓相比較,根據(jù)預(yù)設(shè)的電壓Ui是大于還是小于待轉(zhuǎn)換成的模擬輸入電壓Uin來(lái)決定當(dāng)前轉(zhuǎn)換的數(shù)字量是“0” 還是“1”,據(jù)此逐位比較,以便使轉(zhuǎn)換結(jié)果(相應(yīng)的數(shù)字量)逐漸與模擬輸入電壓相對(duì)應(yīng)的數(shù)字量接近。<
10、;/p><p> “預(yù)設(shè)的電壓”值的算發(fā)如下:使逐次逼近型A/D轉(zhuǎn)換器中的D/A的各位二進(jìn)制數(shù)從最高位起依次置1,每變化一位就得到一個(gè)預(yù)設(shè)的電壓Ui并使之與待轉(zhuǎn)換的模擬輸入電壓Ui進(jìn)行比較,若模擬輸入電壓Ui小于預(yù)設(shè)的電壓Ui,則使比較器中相應(yīng)的位為0,若模擬輸入電壓Ui大于預(yù)設(shè)的電壓Ui,則使比較器中相應(yīng)的輸出位為1,無(wú)論哪鐘情況,均應(yīng)繼續(xù)比較下一位,直到最低位為止,此時(shí)逐次逼近型A/D轉(zhuǎn)換器中的D/A的數(shù)字輸入
11、即為對(duì)應(yīng)模擬輸入信號(hào)的數(shù)字量,將此數(shù)字量輸出就完成了A/D的轉(zhuǎn)換過(guò)程。</p><p> 特點(diǎn):逐次逼近式的屬于直接式A/D轉(zhuǎn)換器,轉(zhuǎn)換精度高,速度高,價(jià)格適中,是目前種類最多,應(yīng)用最廣的A/D轉(zhuǎn)換器,典型的8位模數(shù)轉(zhuǎn)換器有ADC0809。</p><p> 2.ADC0809芯片</p><p> ADC0809是逐位逼近型8位單片A/D轉(zhuǎn)換器件。片內(nèi)含8路
12、模擬開(kāi)關(guān),可允許8個(gè)模擬量輸入,最大不可調(diào)誤差小于±1LSB,典型時(shí)鐘頻率為640kHz,每通道的轉(zhuǎn)換時(shí)間約為100μs。ADC0809沒(méi)有內(nèi)部時(shí)鐘,必須由外部提供,其范圍為10~1280kHz。片內(nèi)帶有三態(tài)輸出緩沖器,因此可直接與系統(tǒng)總線相連。它的轉(zhuǎn)換精度和轉(zhuǎn)換時(shí)間都不是很高,但其性價(jià)比有較明顯優(yōu)勢(shì)。</p><p><b> 外部引腳</b></p><p
13、> ADC0809共有28根引腳。如圖所示:</p><p> D0~D7:8位轉(zhuǎn)換結(jié)果輸出端。三態(tài)輸出,D7是最高位,D0是最低位。</p><p> IN0~IN7:8個(gè)通道的模擬量輸入端。可輸入0~5V待轉(zhuǎn)換的模擬電壓。</p><p> A、B、C:通道選擇端。當(dāng)CBA=000時(shí),IN0輸入;當(dāng)CBA=111時(shí),IN7輸入。</p>
14、<p> ALE:地址鎖存信號(hào)輸入端。該信號(hào)在上升沿處把A、B、C的狀態(tài)鎖存到內(nèi)部的多路開(kāi)關(guān)地址鎖存器中,從而選通8路模擬信號(hào)中的某一路。 </p><p> ALE:通道地址說(shuō)村信號(hào)。將三位地址線ADDA、ADDB、ADDC進(jìn)行鎖存,上升延有效。</p><p> START:?jiǎn)?dòng)信號(hào)輸入,下降延有效。</p><p> EOC:轉(zhuǎn)換結(jié)束狀
15、態(tài)信號(hào),用來(lái)申請(qǐng)中斷。當(dāng)該引腳輸出低電平時(shí)表示正在轉(zhuǎn)換,輸出高電平則表示一次轉(zhuǎn)換已經(jīng)結(jié)束。</p><p> OE:讀允許信號(hào),高電平有效,有效期間,CPU將轉(zhuǎn)換后的數(shù)字量讀入。</p><p><b> CLK:時(shí)鐘信號(hào)。</b></p><p> REF(+),REF(-):參考電壓輸入端。</p><p>
16、 Vcc:5V電源輸入。</p><p><b> GND:地線。</b></p><p><b> (2)內(nèi)部結(jié)構(gòu)</b></p><p> ADC0809內(nèi)部由3部分組成:</p><p> 模擬輸入選擇部分:包括一個(gè)8路模擬開(kāi)關(guān)和地址鎖存器譯碼電路。輸入的三位通道地址信號(hào)由鎖存器鎖存,
17、經(jīng)譯碼電路譯碼后控制模擬開(kāi)關(guān)選擇相應(yīng)的模擬輸入。</p><p> 轉(zhuǎn)換器部分:包括比較器,8位D/A轉(zhuǎn)換器,逐位逼近寄存器以及控制邏輯電路等。</p><p> 輸出部分:包括一個(gè)8位三態(tài)輸出緩沖器。</p><p><b> ?。?)工作過(guò)程</b></p><p> 首先CPU發(fā)出三位通道地址信號(hào)C,B,A;
18、</p><p> 其次,在通道地址信號(hào)有效期間,使ALE引腳上產(chǎn)生一個(gè)由低到高的電平變化,即脈沖上跳延,它將輸入的三位通道地址所存到內(nèi)部地址鎖存器;</p><p> 接著給START引腳加上一個(gè)由高到低變化的電平,啟動(dòng)A/D變換;</p><p> 再次,在變換開(kāi)始后,EOC引腳呈現(xiàn)低電平,一旦變換結(jié)束,EOC又重新變?yōu)楦唠娖剑?lt;/p>&l
19、t;p> 最后,CPU再檢測(cè)到EOC變高后,輸出一個(gè)正脈沖到OE端,將轉(zhuǎn)換結(jié)果取走。</p><p> ?。?)A/D轉(zhuǎn)換器的位數(shù)決定著信號(hào)采集的精度和分辨率。</p><p> 對(duì)于8通道的輸入信號(hào),要求分辨率為0.5%。8位的A/D轉(zhuǎn)換器,</p><p><b> 其精度為:</b></p><p>
20、 輸入為0~5V時(shí),分辨率為</p><p> —A/D轉(zhuǎn)換器的滿量程值</p><p><b> —ADC二進(jìn)制位數(shù)</b></p><p><b> 量化誤差為</b></p><p> 3.并行接口芯片8255</p><p> 8255是可編程I/O口擴(kuò)展芯
21、片。對(duì)8255輸入不同的指令可改變I/O口的工作方式。8255與單片機(jī)系統(tǒng)連接方式簡(jiǎn)單,工作方式由程序設(shè)定。</p><p> 8255內(nèi)部有4個(gè)寄存器:分別為寄存器A、B、C和控制寄存器。A、B、C寄存器的數(shù)據(jù)就是引腳PA7~PA0、PB7~PB0、PC7~PC0上輸入或輸出的數(shù)據(jù)。而控制寄存器的數(shù)據(jù)則表明PA、PB、PC的工作方式。通過(guò)CS、A0、A1、RD和WR對(duì)4個(gè)寄存器進(jìn)行操作。 </p>
22、<p> 1)CS為低電平時(shí)選通8255;</p><p> 2)A1、A0為地址選通;</p><p> 3)RD和WR為讀、寫信號(hào):RD為低、WR為高時(shí)為讀方式,RD為高、WR為低時(shí)為寫方式。</p><p> 4)D0~D7為數(shù)據(jù)口。</p><p> 向控制寄存器寫入不同的數(shù)據(jù)可以使8255工作在三種不同的方式
23、下。這里只介紹應(yīng)用最多的方式0。方式0下8255的PA、PB及PC口上半部分(PC7~PC4)和下半部分(PC3~PC0)中任何一個(gè)端口都可以設(shè)定為輸入或輸出,PC口還可以進(jìn)行位操作。</p><p> RESET:復(fù)位輸入線,當(dāng)該輸入端外于高電平時(shí),所有內(nèi)部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成輸入方式。 </p><p> CS:片選信號(hào)線,當(dāng)這個(gè)輸入引腳為低電平時(shí)
24、,表示芯片被選中,允許8255與CPU進(jìn)行通訊。 </p><p> RD:讀信號(hào)線,當(dāng)這個(gè)輸入引腳為低電平時(shí),允許8255通過(guò)數(shù)據(jù)總線向CPU發(fā)送數(shù)據(jù)或狀態(tài)信息,即CPU從8255讀取信息或數(shù)據(jù)。 </p><p> WR:寫入信號(hào),當(dāng)這個(gè)輸入引腳為低電平時(shí),允許CPU將數(shù)據(jù)或控制字寫8255。 </p><p> D0~D7:三態(tài)雙向數(shù)據(jù)總線,8255與C
25、PU數(shù)據(jù)傳送的通道,當(dāng)CPU 執(zhí)行輸入輸出指令時(shí),通過(guò)它實(shí)現(xiàn)8位數(shù)據(jù)的讀/寫操作,控制字和狀態(tài)信息也通過(guò)數(shù)據(jù)總線傳送。 </p><p> PA0~PA7:端口A輸入輸出線,一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器, 一個(gè)8位的數(shù)據(jù)輸入鎖存器。 </p><p> PB0~PB7:端口B輸入輸出線,一個(gè)8位的I/O鎖存器, 一個(gè)8位的輸入輸出緩沖器。 </p><p>
26、 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)輸入端口。</p><p> 8255方式0是基本輸入/輸出方式,A、B、C三個(gè)口中任何一個(gè)口都可提供簡(jiǎn)單的輸入和輸出操作,不需要應(yīng)答聯(lián)絡(luò)信號(hào),即可用于無(wú)條件傳送的場(chǎng)合,
27、也可以用作查詢方式傳送。當(dāng)采用查詢方式傳送時(shí),原則上可用A、B和C三個(gè)口的任一位充當(dāng)查詢信號(hào),但通常都是選用C口充當(dāng)查詢信號(hào),這和C口的編程有關(guān)。通常把C口的4位(高4位或低4位)規(guī)定為輸出口,用以輸出一些控制信號(hào),把C口的另4位規(guī)定為輸人口,用以輸入外設(shè)的狀態(tài)。</p><p> 方式1是一種選通輸人偷出方式,A口和B口均可工作在這種方式。方式1可作為查詢式傳送方式,此時(shí)握手聯(lián)絡(luò)信號(hào),C口要用6位(分成兩個(gè)3
28、位)分別作為A口和B口的應(yīng)答聯(lián)絡(luò)信號(hào)。方式1也可用作中斷方式,此時(shí)要寫對(duì)應(yīng)的C口的按位置位字,打開(kāi)中斷。</p><p> 方式2是A口獨(dú)有的雙向傳送方式,一般使用中斷傳送方式。</p><p> 4.PC/XT總線擴(kuò)展槽</p><p> PC/XT總線擴(kuò)展槽是PC系列機(jī)的擴(kuò)充插槽在系統(tǒng)板上,一般共5個(gè)或8個(gè)。它實(shí)際上是系統(tǒng)總線的擴(kuò)充和經(jīng)過(guò)重新驅(qū)動(dòng),也稱I/
29、O通道。引腳有62條引線,用雙列插槽引腳連接,分A面和B面,規(guī)定又成為IBM—PC總線標(biāo)準(zhǔn)。IBM-PC擴(kuò)展總線圖及各引腳定義如下:</p><p> 在本設(shè)計(jì)中用到了以下引腳,并作出功能說(shuō)明:</p><p> A1~A9:D7~D0與ADC0809的八根數(shù)據(jù)線相連,當(dāng)中斷允許信號(hào)發(fā)出,由這八根線進(jìn)行數(shù)據(jù)讀取。</p><p> A23~A28:A8~A0與
30、74LS138相連,其輸出通過(guò)或門電路控制ADC0809的START,EOC,OE三個(gè)引腳。</p><p> BO1,B31:GND接地。</p><p> B13,B14:讀寫信號(hào)控制線。低電平有效。</p><p> B20:CLK時(shí)鐘脈沖信號(hào)。周期為210ns的時(shí)鐘輸出信號(hào),頻率為4.77MHZ,一個(gè)周期內(nèi)高電平持續(xù)70ns,低電平持續(xù)140ns。&l
31、t;/p><p> B04:IQR2中斷請(qǐng)求輸入信號(hào)。</p><p><b> 5.8086簡(jiǎn)介</b></p><p> Intel 8086是一個(gè)由Intel于1978年所設(shè)計(jì)的16位微處理器芯片,是x86架構(gòu)的鼻祖。8086擁有四個(gè)16位的通用寄存器,也能夠當(dāng)作八個(gè)8位寄存器來(lái)存取,以及四個(gè)16位索引寄存器(包含了堆棧指標(biāo))。資料寄存
32、器通常由指令隱含地使用,針對(duì)暫存值需要復(fù)雜的寄存器配置。它提供64K 8 位元的輸出輸入(或32K 16 位元),以及固定的向量中斷。大部分的指令只能夠存取一個(gè)內(nèi)存位址,所以其中一個(gè)操作數(shù)必須是一個(gè)寄存器。運(yùn)算結(jié)果會(huì)儲(chǔ)存在操作數(shù)中的一個(gè)。</p><p> Intel 8086有四個(gè)內(nèi)存區(qū)段(segment) 寄存器,可以從索引寄存器來(lái)設(shè)定。區(qū)段寄存器可以讓 CPU 利用特殊的方式存取1 MB內(nèi)存。8086 把
33、段地址左移 4 位然后把它加上偏移地址。大部分的人都認(rèn)為這是一個(gè)很不好的設(shè)計(jì),因?yàn)檫@樣的結(jié)果是會(huì)讓各分段有重疊。盡管這樣對(duì)組合語(yǔ)言而言大部分被接受(也甚至有用),可以完全地控制分段,,使在編程中使用指針 (如C 編程語(yǔ)言) 變得困難。它導(dǎo)致指針的高效率表示變得困難,且有可能產(chǎn)生兩個(gè)指向同一個(gè)地方的指針擁有不同的地址。更壞的是,這種方式產(chǎn)生要讓內(nèi)存擴(kuò)充到大于 1 MB 的困難。而 8086 的尋址方式改變讓內(nèi)存擴(kuò)充較有效率。 </p
34、><p> 8086處理器的時(shí)鐘頻率介于4.77MHz(在原先的IBM PC)和10 MHz之間。 8086 沒(méi)有包含浮點(diǎn)指令部分(FPU),但是可以通過(guò)外接數(shù)學(xué)輔助處理器來(lái)增強(qiáng)浮點(diǎn)計(jì)算能力。</p><p><b> 七段數(shù)碼管</b></p><p> 發(fā)光二極管顯示器LED是微型計(jì)算機(jī)應(yīng)用系統(tǒng)中常用的輸出裝置。七段LED顯示器內(nèi)部由7個(gè)
35、發(fā)光二極管和1個(gè)原點(diǎn)發(fā)光二極管組成(如圖6所示)。根據(jù)各管的亮暗程度組合成16進(jìn)制數(shù),小數(shù)點(diǎn)和少數(shù)字符。常用的七段LED的管腳排列如下圖所示。發(fā)光二極管顯示器led根據(jù)內(nèi)部發(fā)光二極管的接線形式可分為共陽(yáng)極型和共陰極型。</p><p><b> 七段數(shù)碼管引腳圖</b></p><p> 當(dāng)為共陰型時(shí),公共極低電平,段碼高電平的段亮,低則滅;而共陽(yáng)型則反之。實(shí)驗(yàn)中
36、我們采用的是共陽(yáng)極型的接法。共陽(yáng)極型的七段數(shù)碼表字形編碼如下表所示</p><p><b> 七、功能實(shí)現(xiàn)</b></p><p><b> 電路圖</b></p><p><b> 2.程序流程圖</b></p><p><b> 3.程序源代碼</b
37、></p><p> DATA SEGMENT</p><p> DATA1 DW 10 DUP(?) ;定義DATA1為字型 </p><p><b> MAX DW ?</b></p><p><b> MIN DW ?</b></p><p>
38、 TAB DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;0~9的段碼(字形碼) </p><p><b> DATA ENDS</b></p><p> CODE SEGMENT</p><p> ASSUME CS:
39、CODE,DS:DATA</p><p> ADDR_0809 EQU 8000H ;AD0809端口地址</p><p> PROC_A EQU 0FF28H</p><p> PROC_B EQU 0FF29H</p><p> PROC_C EQU 0FF2AH</p><p>
40、; PROC_CTL EQU 0FF2BH</p><p><b> ORG 1100H</b></p><p><b> START0:</b></p><p> MOV CX,10 ;采集10次數(shù)</p><p><b> MOV BX,0</b>
41、;</p><p> MOV DI,OFFSET DATA1;把DATA1的首地址賦給DI</p><p> LP1: ;采集數(shù)據(jù),進(jìn)行A/D轉(zhuǎn)換 </p><p> CALL AD0809</p><p> XOR AH,AH ;高位清零</p&
42、gt;<p> ADD BX,AX ;BX=BX+AX,求采集數(shù)據(jù)之和</p><p> MOV [DI],AX ;DI存儲(chǔ)10個(gè)數(shù)據(jù)</p><p> INC DI ;DATA1為字型</p><p><b> INC DI </b></p><
43、p><b> LOOP LP1</b></p><p> MOV SI, OFFSET DATA1</p><p> MOV AL,[SI]</p><p> MOV CX,9 ;比較9次 </p><p><b> P1:</b></p>&
44、lt;p><b> INC SI</b></p><p><b> INC SI</b></p><p> CMP AL,[SI]</p><p><b> JAE NEXT</b></p><p> MOV AL,[SI]</p><p&
45、gt;<b> NEXT:</b></p><p><b> LOOP P1</b></p><p> MOV AH,00H</p><p> MOV MAX,AX ;求出最大值</p><p> MOV SI, OFFSET DATA1</p>
46、<p> MOV AL,[SI]</p><p><b> MOV CX,9</b></p><p><b> P2:</b></p><p><b> INC SI</b></p><p><b> INC SI</b></p&
47、gt;<p> CMP AL,[SI]</p><p><b> JBE CONT</b></p><p> MOV AL,[SI]</p><p><b> CONT:</b></p><p><b> LOOP P2</b></p>&
48、lt;p> MOV AH,00H</p><p> MOV MIN,AX ;求出最小值</p><p> XOR AH,AH ;采集10個(gè)數(shù)據(jù) </p><p><b> MOV AX,BX</b></p><p> MOV DX,MAX</p>&l
49、t;p> SUB AX,DX ;減去最大值</p><p> MOV DX,MIN</p><p> SUB AX,DX ;減去最小值</p><p><b> MOV BL,8</b></p><p> DIV BL ;求剩余8位數(shù)的平均值
50、</p><p><b> XOR AH,AH</b></p><p> MOV BL,50 ;A/D的輸出結(jié)果經(jīng)過(guò)運(yùn)算法則 </p><p><b> DIV BL</b></p><p> MOV BH,AL ;BH為整數(shù)部分 </p>
51、<p> CMP AH,5 ;AH為小數(shù)部分</p><p> JAE LP3 ;大于等于5時(shí)跳轉(zhuǎn)</p><p> MOV AH,0 ;小于5時(shí)置零</p><p> JMP LP4 ;無(wú)條件轉(zhuǎn)移</p><p><b> L
52、P3:</b></p><p><b> MOV BL,5</b></p><p><b> MOV AL,AH</b></p><p><b> XOR AH,AH</b></p><p><b> DIV BL</b></p
53、><p> MOV AH,AL ;十進(jìn)制小數(shù)</p><p><b> LP4:</b></p><p> MOV AL,BH ;十進(jìn)制整數(shù)</p><p> MOV CH,AH </p><p> LEA BX,TAB ;裝入有效地址</p>&l
54、t;p><b> MOV AH,0</b></p><p> ADD BX,AX ;得到整數(shù)的段碼字節(jié)</p><p> MOV AL,[BX] ;整數(shù)段碼顯示</p><p> MOV CL,AL ;完成整數(shù)部分換碼 </p><p><b>
55、 MOV AL,CH</b></p><p> LEA BX,TAB</p><p><b> MOV AH,0</b></p><p><b> ADD BX,AX</b></p><p> MOV AL,[BX]</p><p> MOV CH,A
56、L ;完成小數(shù)部分換碼 </p><p> MOV BH,CH ;換碼后小數(shù)</p><p> MOV BL,CL ;換碼后整數(shù) </p><p> AND BL,7FH ;得到整數(shù)和小數(shù)點(diǎn)的段碼 </p><p> MOV AL,80H ;8255控制字 ,方式0工作</p&
57、gt;<p> MOV DX,PROC_CTL</p><p><b> OUT DX,AL</b></p><p> MOV SI,05FH ;實(shí)現(xiàn)循環(huán)顯示 </p><p><b> LP:</b></p><p> MOV AL,BH ;顯示小數(shù)部分
58、 </p><p> MOV DX,PROC_A</p><p><b> OUT DX,AL</b></p><p> MOV AL,0FEH</p><p> MOV DX,PROC_B</p><p><b> OUT DX,AL</b></p>
59、<p> MOV CX,0FFH ;延時(shí) </p><p><b> DELAY1:</b></p><p> LOOP DELAY1</p><p> MOV AL,BL ;顯示整數(shù)部分 </p><p> MOV DX,PROC_A</p><p>&
60、lt;b> OUT DX,AL</b></p><p> MOV AL,0FDH</p><p> MOV DX,PROC_B</p><p><b> OUT DX,AL</b></p><p> MOV CX,0FFH ;延時(shí) </p><p><
61、;b> DELAY2:</b></p><p> LOOP DELAY2</p><p> DEC SI ;減1</p><p><b> JNZ LP</b></p><p> JMP START0 ;實(shí)現(xiàn)連續(xù)采集不同的模擬量 </p><
62、;p> ADC0809 PROC NEAR;A/D轉(zhuǎn)換 </p><p><b> PUSH CX</b></p><p> MOV AL,00H</p><p> MOV DX,ADDR_0809</p><p><b> OUT DX,AL</b></p>
63、<p> MOV CX,0500H</p><p> DELAY: LOOP DELAY;延時(shí),等待A/D轉(zhuǎn)換完成</p><p> MOV DX,ADDR_0809</p><p><b> IN AL,DX</b></p><p><b> POP CX</b>&
64、lt;/p><p><b> RET</b></p><p> AD0809 ENDP </p><p><b> CODE ENDS</b></p><p> END START0</p><p><b> 總結(jié)</b></p>&
65、lt;p> 此次課程設(shè)計(jì)題目的思路很清晰,但是實(shí)際操作過(guò)程卻遇到了不少麻煩,首先編寫各個(gè)部分程序,再結(jié)合起來(lái),編譯找錯(cuò)誤并改正,再調(diào)試運(yùn)行,沒(méi)有達(dá)到正確顯示的目的,于是不斷地找原因重新修改代碼,直到最后有了正確的結(jié)果。</p><p> 在這一個(gè)多星期的微機(jī)課程設(shè)計(jì)里,我不斷找資料解決問(wèn)題,回顧了本學(xué)期所學(xué)的內(nèi)容,給了我一個(gè)很好的機(jī)會(huì)將所學(xué)內(nèi)容綜合應(yīng)用實(shí)踐,溫固而知新,對(duì)未來(lái)的學(xué)習(xí)也有很大幫助。在設(shè)計(jì)中
66、發(fā)現(xiàn)的一些不足的地方也讓我不斷找問(wèn)題的根源,不斷學(xué)習(xí)改進(jìn),最終得到正確的結(jié)果。</p><p> 在實(shí)訓(xùn)中還鍛煉了我其他方面的能力,提高了我的綜合素質(zhì)。它鍛煉了我做項(xiàng)目的能力,提高了獨(dú)立思考問(wèn)題、自己動(dòng)手操作的能力,在編寫調(diào)試運(yùn)行程序的過(guò)程中,復(fù)習(xí)了以前學(xué)習(xí)過(guò)的知識(shí),并掌握了一些應(yīng)用知識(shí)的技巧。</p><p> 這次課程設(shè)計(jì)對(duì)于我們有很大的幫助,通過(guò)課程設(shè)計(jì),我更加深入地理解了,微機(jī)
67、原理課程上講到的各種芯片的功能,以及引腳的作用,同時(shí)加深了對(duì)于主要芯片的應(yīng)用的認(rèn)識(shí),同時(shí)在試驗(yàn)室的環(huán)境里熟悉了匯編程序的編寫過(guò)程和運(yùn)行過(guò)程,最后還提高了自己的動(dòng)手能力。</p><p><b> 參考文獻(xiàn)</b></p><p> [1]朱定華,微機(jī)原理、匯編與接口技術(shù),清華大學(xué)出版社,2005</p><p> [2]李干林,李升.微機(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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 微機(jī)原理課程設(shè)計(jì)(用8255a實(shí)現(xiàn)4位十進(jìn)制計(jì)算器)
- 微機(jī)課程設(shè)計(jì)設(shè)計(jì)-應(yīng)用8255a實(shí)現(xiàn)交通燈控制
- 多路數(shù)據(jù)采集系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)---多路數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
- 8多路數(shù)據(jù)采集控制系統(tǒng)課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)---應(yīng)用8255a實(shí)現(xiàn)交通燈控制設(shè)計(jì)
- 多路數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于fpga的多路數(shù)據(jù)采集器設(shè)計(jì)
- eda課程設(shè)計(jì)-- 多路數(shù)據(jù)選擇器、奇偶檢驗(yàn)器
- 微機(jī)原理課程設(shè)計(jì)報(bào)告--數(shù)據(jù)采集顯示系統(tǒng)
- 微機(jī)原理課程設(shè)計(jì)--數(shù)據(jù)采集系統(tǒng)(查詢法)
- 多路數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)方案
- 多路數(shù)據(jù)采集系統(tǒng)pcb
- 基于fpga的多路數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
- 單路數(shù)據(jù)采集系統(tǒng)課程設(shè)計(jì)報(bào)告
- 多路數(shù)據(jù)采集系統(tǒng).XLS
- 智能儀器課程設(shè)計(jì)--基于at89c52的多路數(shù)據(jù)采集系統(tǒng)
- 多路數(shù)據(jù)采集系統(tǒng).XLS
- 實(shí)用多路數(shù)據(jù)采集系統(tǒng)
- 多路數(shù)據(jù)采集系統(tǒng)畢業(yè)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論