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

下載本文檔

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

文檔簡介

微機(jī)原理及接口技術(shù)課程設(shè)計(jì)書學(xué)院:信息與通信工程學(xué)院專業(yè):測控技術(shù)與儀器班級:xxx學(xué)號:xxx姓名:xxx指導(dǎo)教師:xxx目錄1、TOC\o"1-3"\h\u27190摘要 2147992、總體方案設(shè)計(jì) 2137362.1設(shè)計(jì)目的 2140462.2設(shè)計(jì)任務(wù)與要求 2304432.3設(shè)計(jì)方案 3178913、硬件原理圖設(shè)計(jì)設(shè)計(jì) 3238263.1總設(shè)計(jì)圖說明 3140623.2各子硬件圖說明 4 140623.2.1原理圖所用芯片介紹 47787各子硬件電路說明 9290714、程序設(shè)計(jì) 13240144.1程序流程圖 14238264.2程序設(shè)計(jì)說明 14153815、課程設(shè)計(jì)收獲與心得體會 176、7787參考文獻(xiàn) 187、20211附錄 19一、摘要本次課程設(shè)計(jì),主要是了解可編程外圍芯片8255的工作原理,以及學(xué)會對ADC0809和8255芯片的應(yīng)用和設(shè)計(jì)技術(shù)。對微型計(jì)算機(jī)根本的系統(tǒng)結(jié)構(gòu)、對微型計(jì)算機(jī)硬軟件的工作原理有個整體的認(rèn)識。學(xué)習(xí)和掌握計(jì)算機(jī)中常用接口電路的應(yīng)用和設(shè)計(jì)技術(shù),充分認(rèn)識理論知識對應(yīng)用技術(shù)的指導(dǎo)性作用,進(jìn)一步加強(qiáng)理論知識與應(yīng)用相結(jié)合的實(shí)踐和鍛煉。通過這次設(shè)計(jì)實(shí)踐能夠進(jìn)一步加深對專業(yè)知識和理論知識學(xué)習(xí)的認(rèn)識和理解,使自己的設(shè)計(jì)水平和對所學(xué)的知識的應(yīng)用能力以及分析問題解決問題的能力得到全面提高。二、總體設(shè)計(jì)方案2.1設(shè)計(jì)目的1)進(jìn)一步建立微機(jī)系統(tǒng)的概念,加深對系統(tǒng)的理解和認(rèn)識,培養(yǎng)學(xué)生應(yīng)用微型計(jì)算機(jī)解決實(shí)際問題的能力;2)進(jìn)一步學(xué)習(xí)和掌握匯編語言程序的編寫和應(yīng)用的方法,通過較大規(guī)模程序的編寫,提高編寫匯編語言程序的水平和學(xué)習(xí)程序調(diào)試方法。3)進(jìn)一步熟悉微機(jī)最小系統(tǒng)的構(gòu)成及常用接口芯片的使用,提高系統(tǒng)設(shè)計(jì)的能力。2.2設(shè)計(jì)任務(wù)和要求設(shè)計(jì)內(nèi)容:以8088cpu為核心設(shè)計(jì)一個采集系統(tǒng),系統(tǒng)可以實(shí)現(xiàn)一路模擬電壓信號進(jìn)行采集,該電壓信號的電壓范圍是0~255mv,選用adc0809作為AD轉(zhuǎn)換器,系統(tǒng)中有三位LED顯示器顯示所采集到電壓的毫伏數(shù)。設(shè)計(jì)要求:1)畫出電路原理圖,說明工作原理編寫一個實(shí)現(xiàn)對輸入模擬電壓進(jìn)行轉(zhuǎn)換并在LED顯示器顯示當(dāng)前采集數(shù)據(jù)的數(shù)字量程序2.3設(shè)計(jì)方案數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì),要求使用微型計(jì)算機(jī)的最小系統(tǒng),且具有1路的輸入,輸入信號在0—255mV,而且采用數(shù)碼管顯示輸入〔顯示10進(jìn)制的結(jié)果〕。因此我們采用以下的設(shè)計(jì)方案:ADC0809是將各種被測的量轉(zhuǎn)換成為模擬量〔電壓〕作為輸入,經(jīng)過一級放大器的放大,將電壓放大至AD轉(zhuǎn)換模塊,可以識別的范圍,在將AD轉(zhuǎn)換的輸出,用數(shù)碼管顯示出來〔顯示的結(jié)果為10進(jìn)制數(shù)〕,且將AD轉(zhuǎn)換的輸出接入到并行接口8255,再將并口的輸出接入的系統(tǒng)的總線,也就是對并口8255的相應(yīng)的輸入進(jìn)行存儲。當(dāng)完成存儲之后將會CPU將存儲的數(shù)據(jù)再通過8255顯示在數(shù)碼管上,這個流程一直循環(huán)。三、硬件原理圖設(shè)計(jì)設(shè)計(jì)3.1總硬件設(shè)計(jì)圖說明本設(shè)計(jì)以8088為核心,以存儲器、總線、接口電路、外設(shè)為要素構(gòu)成了一個最小系統(tǒng)。其中存儲器用到了2764和6264芯片,2764是EPRAM,用來存儲數(shù)據(jù)。6264是ROM芯片,用來存儲程序。接口電路采用8255芯片,這時一個可編程并行接口,采集電壓信號采用了ADC0809,這是一個逐位逼近型8位單片A/D轉(zhuǎn)換芯片,8088的三大總線利用8282鎖存器鎖存信號,外設(shè)是三個數(shù)碼管電路,顯示電壓信號,另外8088與0809的時鐘信號由8282來提供??傆布O(shè)計(jì)圖見附錄。3.2各子硬件圖說明首先介紹原理圖所用到的芯片:〔1〕、80888088是一個Intel以8086為根底的微處理器,擁有16位元暫存器和8位元外部資料總線。引腳功能略〔2〕、82558255是一個可編程并行接口芯片,管腳如圖1、8255的主要引腳功能CS:芯片選擇信號線,當(dāng)這個輸入引腳為低電平時,即/CS=0時,表示芯片被選中,允許8255與CPU進(jìn)行通訊;/CS=1時,8255無法與CPU做數(shù)據(jù)傳輸.RD:讀信號線,當(dāng)這個輸入引腳為低電平時,即/RD=0且/CS=0時,允許8255通過數(shù)據(jù)總線向CPU發(fā)送數(shù)據(jù)或狀態(tài)信息,即CPU從8255讀取信息或數(shù)據(jù)。WR:寫入信號,當(dāng)這個輸入引腳為低電平時,即/WR=0且/CS=0時,允許CPU將數(shù)據(jù)或控制字寫入8255。A0,A1:地址選擇線,用來選擇8255的PA口,PB口,PC口和控制存放器.〔3〕、ADC0809ADC0809是美國國家半導(dǎo)體公司生產(chǎn)的CMOS工藝8通道,8位逐次逼近式A/D轉(zhuǎn)換器。1、主要引腳功能:ALE:地址鎖存允許信號,輸入,高電平有效。START:A/D轉(zhuǎn)換啟動脈沖輸入端,輸入一個正脈沖〔至少100ns寬〕使其啟動〔脈沖上升沿使0809復(fù)位,下降沿啟動A/D轉(zhuǎn)換〕。EOC:A/D轉(zhuǎn)換結(jié)束信號,輸出,當(dāng)A/D轉(zhuǎn)換結(jié)束時,此端輸出一個高電平〔轉(zhuǎn)換期間一直為低電平〕。OE:數(shù)據(jù)輸出允許信號,輸入,高電平有效。當(dāng)A/D轉(zhuǎn)換結(jié)束時,此端輸入一個高電平,才能翻開輸出三態(tài)門,輸出數(shù)字量。2、ADC0809的工作過程首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比擬器。START上升沿將逐次逼近存放器復(fù)位。下降沿啟動A/D轉(zhuǎn)換,之后EOC輸出信號變低,指示轉(zhuǎn)換正在進(jìn)行。直到A/D轉(zhuǎn)換完成,EOC變?yōu)楦唠娖?,指示A/D轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個信號可用作中斷申請。當(dāng)OE輸入高電平時,輸出三態(tài)門翻開,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。轉(zhuǎn)換數(shù)據(jù)的傳送A/D轉(zhuǎn)換后得到的數(shù)據(jù)應(yīng)及時傳送給單片機(jī)進(jìn)行處理。數(shù)據(jù)傳送的關(guān)鍵問題是如何確認(rèn)A/D轉(zhuǎn)換的完成,因?yàn)橹挥写_認(rèn)完成后,才能進(jìn)行傳送。(4)、8282

圖3_4是地址鎖存器8282芯片的管腳功能和真值表。8282有8位信號輸入管腳DI7~DI0和8位三態(tài)信號輸出管腳DO7~DO0;OE#為輸出允許信號,低電平有效;STB是鎖存信號。下降沿有效?!?〕、8284時鐘發(fā)生器8284是為8086/8088設(shè)計(jì)的時鐘發(fā)生器/驅(qū)動器。在8284中,除具有時鐘信號產(chǎn)生電路外,還有RESET復(fù)位信號和READY準(zhǔn)備就緒信號同步控制電路。這些電路分別向8086/8088系統(tǒng)提供時鐘信號CLK,以及被CLK同步的復(fù)位信號RESET和準(zhǔn)備就緒信號READY。如圖-3所示〔6〕、6264Intel6264的容量為8KB,是28引腳雙列直插式芯片,采用CMOS工藝制造1、主要引腳功能:OE〔outputenable〕:讀出允許信號,輸入,低電平有效。WE〔writeenable〕:寫允許信號,輸入,低電平有效。CS〔chipenable〕:片選信號1,輸入,在讀/寫方式時為低電平。CS2〔chipenable〕:片選信號2,輸入,在讀/寫方式時為高電平。2、6264的工作過程Intel6264的操作方式由,CE1,CE2的共同作用決定①寫入:當(dāng)和為低電平,且和CE2為高電平時,數(shù)據(jù)輸入緩沖器翻開,數(shù)據(jù)由數(shù)據(jù)線D7~D0寫入被選中的存儲單元。②讀出:當(dāng)和為低電平,且和CE2為高電平時,數(shù)據(jù)輸出緩沖器選通,被選中單元的數(shù)據(jù)送到數(shù)據(jù)線D7~D0上。③保持:當(dāng)為高電平,CE2為任意時,芯片未被選中,處于保持狀態(tài),數(shù)據(jù)線呈現(xiàn)高阻狀態(tài)。〔7〕、27642764是8K*8字節(jié)的紫外線镲除、電可編程只讀存儲器。1、2764主要引腳的含義:OE:輸出允許信號。低電平有效。當(dāng)該信號為0時,芯片中的數(shù)據(jù)可由D0~D7端輸出。CE:選片信號。低電平有效。當(dāng)該信號為0時表示選中此芯片。PGM:編程脈沖輸入端。對EPROM編程時,在該端加上編程脈沖。讀操作時該信號為1。、8286〔引腳圖如下〕8286具有兩組對稱的數(shù)據(jù)引線A7~A0和B7~B0,為雙向的輸入/輸出線,三態(tài)。OE#是輸出允許信號,輸入,低電平有效。當(dāng)OE#為高電平時,A7~A0和B7~B0輸出高阻。T端那么控制數(shù)據(jù)傳送方向,T=1,表示數(shù)據(jù)從A流向B,T=0,表示數(shù)據(jù)從B流向A。因此,只需將8086的數(shù)據(jù)線連接8286的A組端口,8086的數(shù)據(jù)使能連接8286的OE#,8086的數(shù)據(jù)發(fā)送/接收控制DT/R#連接8286的數(shù)據(jù)傳送方向控制端T,便實(shí)現(xiàn)了8086和數(shù)據(jù)驅(qū)動器的連接。、各子硬件電路說明:首先給各個芯片分配的地址RAM276470000H~71FFFHROM62643E000H~3FFFFH8255AA口00378HB口00379HC口0037AH控制字0037BH一、存儲器這是存儲器電路,其中6264存儲程序,2764存儲數(shù)據(jù),這在程序里定義,它們的地址分別為3E000H~3FFFFH,70000H~71FFFH。當(dāng)程序從cpu里寫入6264時,/WR變?yōu)榈碗娖?,?264的/WE有效,允許寫入數(shù)據(jù)。當(dāng)cpu執(zhí)行程序時從6264中讀出數(shù)據(jù),將使/RD有效,即/OE有效,這樣CPU才能讀出數(shù)據(jù)。2764與此類似。接口電路與外設(shè)接口電路采用8255,adc0809從外面讀取電壓值,處理完后從D0~D7送出數(shù)據(jù),0809采用脈沖啟動的方式,將START和EOC取反連接在一起,當(dāng)轉(zhuǎn)換結(jié)束后下一輪轉(zhuǎn)換馬上開始,這樣就實(shí)現(xiàn)了一直采集數(shù)據(jù)的功能。我們只讀一路端口的值,所以將ADD、ADDB、ADDC都置為0,這樣從IN0讀取數(shù)據(jù)。為了不影響信號的輸入,將其他輸入口接地。根據(jù)0809的指標(biāo),可知道其量化間隔為delta=Vmax/(2n-1)=2.5V/(256-1)=1mv,Vmax是參考最大電壓,我們設(shè)為2.5V,這樣就有當(dāng)輸入255mv時,輸出就為11111111,將這值從8255的PA口輸入,整個0809的工作過程就是這樣。下面說明8255的工作過程:我們設(shè)置8255的PA口為輸入,PB口為輸出,PC口為輸入。D0~D7接CPU的數(shù)據(jù)總線,PB口接數(shù)碼管的段選,PC口的PC5~PC7接數(shù)碼管的位選。8255不斷讀入數(shù)據(jù),將數(shù)據(jù)從D0~D7輸出,將其存儲在存儲器中,并通過CPU進(jìn)行數(shù)據(jù)處理,同時將處理完的數(shù)據(jù)通過PB口送給數(shù)碼管,同時PC5~PC7送位選信號,動態(tài)掃描,利用數(shù)碼管的字形編碼,將值顯示出來。這是一個不斷刷新的電路,只要0809有讀取新數(shù)據(jù),那么數(shù)碼管就能立刻變化,顯示新的數(shù)據(jù)。CPU模塊我們通過8282鎖存器將8088的地址信息鎖存,利用8286將8088的數(shù)據(jù)信息鎖存。其工作過程如下:系統(tǒng)需要獨(dú)立的地址總線,并在整個總線周期維持地址有效。需外加地址鎖存器來存儲地址,20位地址要三片鎖存器。鎖存器由ALE信號來控制,即ALE作為鎖存器的輸入控制信號,控制地址的寫入。除地址外,BHE#信號也要存入外接的地址鎖存器。

注意ALE是高電平有效,必須和鎖存器的控制信號的電平相一致〔1〕、地址總線形成。將8086的20位地址和BHE#信號分為3組,和3片8282的DI7~DI0連接,CPU的地址鎖存使能ALE與8282的STB端相連。在ALE的下降沿時,對地址信號進(jìn)行鎖存。

地址鎖存器8282相當(dāng)于8個D觸發(fā)器。從真值表可以看出,當(dāng)OE#為高,DO7~DO0為高阻狀態(tài)。當(dāng)OE#為低STB為高時,8282的輸出等于輸入,8282的輸出信號DO7~DO0與輸入信號DI7~DI0相等。當(dāng)STB由高變低,信號被鎖存。OE#為高電平時,8282的輸出為高阻態(tài),OE#為低,DO7~DO0有效。

以其中的第一個8282為例,不難看出,只要將8282的DI7~DI0與8086CPU的AD7~AD0相連,鎖存號STB與CPU的ALE端相連。就可實(shí)現(xiàn)地址鎖存的功能。而輸出允許信號OE#為什么直接接地?因?yàn)镺E#直接接地表示輸出允許地址信號一直有效〔無高阻態(tài)〕,在不帶DMA的單處理器系統(tǒng)中,完全可以這樣處理。與此類似,第二、第三個鎖存器的連接根本相同。

地址A與數(shù)據(jù)D的復(fù)用〔片〕總線信號作為鎖存器的輸入,由ALE控制輸入,輸出為直通方式,鎖存器輸出為地址信號。

ALE信號僅在新地址輸出期間有效,使新地址輸入鎖存器,從而從復(fù)用總線上別離出地址信號;由于鎖存器輸出為直通方式,使地址信號期延長到整個總線周期?!?〕、數(shù)據(jù)總線的形成。OE#是輸出允許信號,或稱三態(tài)控制信號,低電平有效。A到B表示數(shù)據(jù)從CPU傳送到系統(tǒng)其他設(shè)備,是數(shù)據(jù)寫的數(shù)據(jù)流向,B到A是數(shù)據(jù)從系統(tǒng)的其他設(shè)備傳送到CPU,是數(shù)據(jù)讀的數(shù)據(jù)流向。而CPU的數(shù)據(jù)發(fā)送/接收控制DT/R#=1時,正好是數(shù)據(jù)發(fā)送〔寫〕狀態(tài),DT/R#=0時,是數(shù)據(jù)接收〔讀〕狀態(tài),所以可以將DT/R#直接和8286的T相連。8286的輸出使能OE#端那么必須由CPU的DEN#控制。在前面我們已經(jīng)提到了,在CPU的存儲器訪問周期、I/O訪問周期以及中斷響應(yīng)周期DEN#輸出低電平,即輸出有效信號。使能8286允許數(shù)據(jù)通過,完成數(shù)據(jù)的傳輸。8286不能象8282那樣,將OE#直接接地。當(dāng)G=0時,由DIR決定數(shù)據(jù)驅(qū)動的方向;當(dāng)G=1時總線高阻。由DEN信號翻開收發(fā)器,由DT/R#信號選擇收發(fā)器的驅(qū)動方向〔3〕、系統(tǒng)控制信號的形成。注意在最小方式下,由M/IO#、RD#、WR#的組合來決定進(jìn)行什么操作;系統(tǒng)的其它信號直接來自CPU:M/IO#RD#WR#操作101讀存儲器110寫存儲器001讀外設(shè)010寫外設(shè)四、程序設(shè)計(jì)開始1、程序流程圖開始初始化初始化8255ADC0809轉(zhuǎn)換完一次ADC0809轉(zhuǎn)換完一次8255不斷從PA口讀入轉(zhuǎn)換完的數(shù)據(jù)8255不斷從PA口讀入轉(zhuǎn)換完的數(shù)據(jù)將數(shù)據(jù)存儲,然后處理將數(shù)據(jù)存儲,然后處理處理完后將數(shù)據(jù)送到處理完后將數(shù)據(jù)送到PB口,同時PC口高四位送出控制位選信號馬上讀取新一組數(shù)據(jù)馬上讀取新一組數(shù)據(jù)數(shù)碼管顯示數(shù)碼管顯示程序設(shè)計(jì)如下:DATASEGMENTORG70000H;數(shù)據(jù)段在70000H中,數(shù)據(jù)存儲在以此開始的單元中DATA1DB64DUP(?)LEDDB0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;定義一個共陽極數(shù)碼管編碼0~9ENDSDATACODESEGMENTORG3E000H;定義代碼段在3E000H開始的單元ASSUMECS:CODE,DA:DATAINTI_8255:PROCNEAR;8255初始化子程序MOVDX,37BH;將8255的控制字地址送到DX中MOVAL,91H;根據(jù)實(shí)際要求,控制字為10010001B,并送給ALOUTDX,AL;將此控制字信息輸出8255的控制存放器中INTI_8255EDNP;8255初始化子程序結(jié)束START:;主程序開始MOVAX,DATAMOVDS,AXMOVAX,SEGDATA1;將變量DATA1的首地址存入AX中MOVDS,AXMOVSI,OFFSETDATA1;將變量DATA1的偏移地址送到SI中CALLINTI_8255;調(diào)用8255初始化程序MOVCX,0AGAIN:MOVDX,37AHOUTDX,CXMOVAX,00000110BOUTDX,AX;給ALE送一個上升沿NOP;等待MOVAX,0OUTDX,AX;給START送一個下降沿,讓轉(zhuǎn)換開始,以后轉(zhuǎn)換開始信號就靠EOCMOVDX,37AH ;將PC口得地址送到DXMOVAX,00000100BOUTDX,AX ;將PC2=1送到OE口MOVDX,378HINAL,DX ;讀入轉(zhuǎn)換結(jié)束MOV[SI],AL ;將轉(zhuǎn)換的結(jié)果存入DATA1單元中MOVAX,DATA1XIANSHI:;顯示局部MOVBX,OFFSETLED;將LED的偏移地址送到BXMOVDX,379H;將數(shù)據(jù)從存儲器內(nèi)讀回,送到PB口DIV100;處理數(shù)據(jù),將數(shù)值除完后取百位存入AL中XLATLED;將值換成數(shù)碼管的字符碼OUTDX,ALMOVDX,37AHOUTDX,10H;位選,顯示百位 LOP:LOOPLOP;等待MOVDX,379H;以下類似DIV100MOVAX,AH;將值除以100后取余數(shù)再除以10取其值DIV10XLATLEDOUTDX,AL;顯示十位MOVDX,37AH

溫馨提示

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

評論

0/150

提交評論