微機(jī)測(cè)控系統(tǒng)實(shí)驗(yàn)報(bào)告_第1頁(yè)
微機(jī)測(cè)控系統(tǒng)實(shí)驗(yàn)報(bào)告_第2頁(yè)
微機(jī)測(cè)控系統(tǒng)實(shí)驗(yàn)報(bào)告_第3頁(yè)
微機(jī)測(cè)控系統(tǒng)實(shí)驗(yàn)報(bào)告_第4頁(yè)
微機(jī)測(cè)控系統(tǒng)實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩12頁(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、南京航空航天大學(xué)研究生實(shí)驗(yàn)報(bào)告課程名稱: 微機(jī)測(cè)控系統(tǒng)設(shè)計(jì) 設(shè)計(jì)專題: 數(shù)據(jù)采集與顯示系統(tǒng)設(shè)計(jì) 學(xué)生姓名: 班級(jí)學(xué)號(hào): 學(xué)科名稱: 測(cè)試計(jì)量技術(shù)與儀器 2016年3月26日第一部分 微機(jī)測(cè)控系統(tǒng)實(shí)驗(yàn)總體方案 1. 實(shí)驗(yàn)?zāi)康暮鸵螅?) 本實(shí)驗(yàn)?zāi)M用微機(jī)對(duì)某對(duì)象的測(cè)控過(guò)程,以及對(duì)測(cè)控信號(hào)的實(shí)時(shí)顯示;(2) 了解A/D芯片ADC0809轉(zhuǎn)換性能及編程;(3) 掌握8279工作原理和編程方法;(4) 用實(shí)驗(yàn)箱上的分壓電阻,模擬測(cè)試信號(hào)。信號(hào)電壓的變化范圍:05V。我們可以手動(dòng)調(diào)節(jié)分壓值,來(lái)模擬信號(hào)的變化。(5) 給定可調(diào)直流電壓在05V,經(jīng)過(guò)AD 轉(zhuǎn)換后,通過(guò)鍵盤(pán)控制在實(shí)驗(yàn)板的數(shù)碼管上顯示該電壓值的

2、大?。ㄊM(jìn)制);(6) 程序全速運(yùn)行后,數(shù)碼管顯示“P”字樣,表示程序準(zhǔn)備就緒;(7) 按下實(shí)驗(yàn)板上的“0”鍵,數(shù)碼管實(shí)時(shí)顯示采樣的電壓值大?。ㄐ?shù)點(diǎn)后兩位),采樣的時(shí)間自定。 例如:如果可調(diào)的直流電壓是2.15V,在數(shù)碼管上應(yīng)該顯示02.15U;(8) 按下實(shí)驗(yàn)板上的“1”鍵,程序暫停并凍結(jié)顯示的電壓值;(9) 如果再按下“0”鍵重新實(shí)時(shí)顯示電壓值,按下其他的鍵,顯示“error”。 2. 實(shí)驗(yàn)設(shè)計(jì)流程(1)手動(dòng)控制實(shí)驗(yàn)箱上的電位器,改變輸出的電壓值,利用ADC0809 采集并轉(zhuǎn)換,通過(guò)鍵盤(pán)接口8279實(shí)時(shí)顯示在兩位數(shù)碼管上;(2)通過(guò)ADC0809采集到的數(shù)值為16進(jìn)制,將其轉(zhuǎn)換為10進(jìn)制

3、再 實(shí)時(shí)顯示到數(shù)碼管上;(3)通過(guò)鍵盤(pán)控制數(shù)碼管實(shí)時(shí)顯示電壓值,按0鍵實(shí)時(shí)顯示AD轉(zhuǎn)換器采集的電壓值,按1鍵關(guān)閉AD轉(zhuǎn)換,顯示當(dāng)前電壓值,按其他鍵顯示error,若顯示的電壓值超過(guò)4V,提供一個(gè)報(bào)警燈。 3. 實(shí)驗(yàn)設(shè)備 ADEK5196ET單片機(jī)實(shí)驗(yàn)箱、一臺(tái)PC機(jī)、一塊宏晶STC單片機(jī)開(kāi)發(fā)板。ADEK5196ET可實(shí)現(xiàn)多種CPU的實(shí)驗(yàn)開(kāi)發(fā)系統(tǒng),既可進(jìn)行MCS-51系列微控制器實(shí)驗(yàn),又可進(jìn)行MCS-96系列微控制器實(shí)驗(yàn)。系統(tǒng)提供兩種工作方式,第一種工作方式:獨(dú)立運(yùn)行工作方式。無(wú)須任何設(shè)備,利用實(shí)驗(yàn)機(jī)上的監(jiān)控、小鍵盤(pán)和數(shù)碼管,自構(gòu)成一臺(tái)單板機(jī),獨(dú)立運(yùn)行。這種工作方式適合于PC機(jī)不足的情況。第二種工

4、作方式:串行監(jiān)控工作方式。通過(guò)RS-232連接PC機(jī),利用PC機(jī)串行發(fā)送實(shí)驗(yàn)程序和監(jiān)控命令動(dòng)態(tài)調(diào)試實(shí)驗(yàn)程序,含DOS/WINDOWS環(huán)境。 PC機(jī)里面預(yù)裝的集成開(kāi)發(fā)環(huán)境是LCA51ET軟件和Keil C51。LCA51ET軟件是集編輯、編譯/連接、加載、調(diào)試等為一體的集成開(kāi)發(fā)環(huán)境(IDE)。編輯器全面支持匯編、C51和PL/M51語(yǔ)言的語(yǔ)法。Keil C51是美國(guó)Keil Software公司出品的51系列兼容單片機(jī)C語(yǔ)言軟件開(kāi)發(fā)系統(tǒng),Keil提供了包括C編譯器、宏匯編、鏈接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開(kāi)發(fā)方案,通過(guò)一個(gè)集成開(kāi)發(fā)環(huán)境(Vision)將這些部分組合在一起。 單

5、片機(jī)開(kāi)發(fā)板使用的單片機(jī)是STC89C52,開(kāi)發(fā)板上集成了4x4按鍵,8位數(shù)碼管,一個(gè)電位器等資源,開(kāi)發(fā)板支持C語(yǔ)言和匯編語(yǔ)言,可以使用ISP_STC燒錄。 第二部分 系統(tǒng)硬件設(shè)計(jì)1. AD轉(zhuǎn)換接口模塊實(shí)驗(yàn)中我們使用的AD轉(zhuǎn)換器是ADC0809,用分壓器產(chǎn)生電壓的模擬信號(hào),模擬信號(hào)進(jìn)入AD轉(zhuǎn)換器輸出的數(shù)字信號(hào),輸出端接在單片機(jī)P1口,這樣P1口就可以輸出一個(gè)8位2進(jìn)制數(shù),也就是電壓值。具體硬件結(jié)構(gòu)如圖2.1所示。圖2.1 AD轉(zhuǎn)換模塊接口示意圖A/D轉(zhuǎn)換器大致有三類:一是雙積分A/D轉(zhuǎn)換器,優(yōu)點(diǎn)是精度高,抗干擾性好,價(jià)格便宜,但速度慢;二是逐次逼近法A/D轉(zhuǎn)換器,精度,速度,價(jià)格適中;三是并行A

6、/D轉(zhuǎn)換器,速度快,價(jià)格也昂貴。ADC0809是美國(guó)國(guó)家半導(dǎo)體公司生產(chǎn)的CMOS工藝8通道,8位逐次逼近式A/D模數(shù)轉(zhuǎn)換器。其內(nèi)部有一個(gè)8通道多路開(kāi)關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號(hào),只選通8路模擬輸入信號(hào)中的一個(gè)進(jìn)行A/D轉(zhuǎn)換,每采集一次一般需100us,基本滿足本實(shí)驗(yàn)實(shí)時(shí)采集的要求。它由8路模擬開(kāi)關(guān)、地址鎖存與譯碼器、比較器、8位開(kāi)關(guān)樹(shù)型A/D轉(zhuǎn)換器、逐次逼近寄存器、邏輯控制和定時(shí)電路組成。內(nèi)部結(jié)構(gòu)如圖2.2所示。圖2.2 ADC0809內(nèi)部結(jié)構(gòu)圖2. 鍵盤(pán)控制接口模塊實(shí)驗(yàn)中,我們通過(guò)一個(gè)8255可編程并行口進(jìn)行鍵盤(pán)掃描,讀取、顯示鍵值,其中8255的PA口做鍵盤(pán)輸入線,PB口作掃描線。

7、具體過(guò)程:按下實(shí)驗(yàn)板上的“0”鍵,數(shù)碼管實(shí)時(shí)顯示采樣的電壓值大?。ㄖ钡叫?shù)點(diǎn)后兩位),按下實(shí)驗(yàn)板上的1鍵,程序暫停并凍結(jié)顯示的電壓值,如果再按下0鍵重新實(shí)時(shí)顯示電壓值。按下其他的鍵,顯示“error”。讀取的數(shù)值是分壓電阻提供的電壓,是由P1口讀取的8位2進(jìn)制數(shù)。具體硬件設(shè)計(jì)如圖2.3所示。實(shí)驗(yàn)中使用的8255是Intel公司生產(chǎn)的可編程并行I/O接口芯片,有3個(gè)8位并行I/O口。具有3個(gè)通道3種工作方式的可編程并行接口芯片(40引腳),其各口功能可由軟件選擇,使用靈活,通用性強(qiáng)。8255可作為單片機(jī)與多種外設(shè)連接時(shí)的中間接口電路,極大的解決了89C51單片機(jī)接口有限的問(wèn)題。3. 數(shù)碼管顯示模

8、塊接口 顯示部分為八個(gè)LED數(shù)碼管,單片機(jī)通過(guò)8279可編程接口器件拓展控制八位數(shù)碼管。 多個(gè)LED 的顯示方式有兩種,分別是動(dòng)態(tài)顯示和靜態(tài)顯示。LED 顯示器在靜態(tài)顯示方式工作時(shí),每一位的共陽(yáng)極(采用共陽(yáng)極顯示)連接在一起并且接+5V,每位的段碼線分別與8位鎖存器一個(gè)輸出相連,每個(gè)LED 顯示器要顯示的字符一旦確定,相對(duì)應(yīng)的鎖存器鎖存的輸出量將會(huì)一直不變化,直到另一字符的段碼被送入為止。由于硬圖2.3 鍵盤(pán)接口模塊示意圖件資源的限制,實(shí)驗(yàn)中采用動(dòng)態(tài)顯示,此時(shí)只需將所有位段代碼線的相應(yīng)段全部并聯(lián)到一起,由一個(gè)可編程I/O口來(lái)控制,因?yàn)槊恳晃坏亩未a線都是并聯(lián)的,8 位I/O 口輸出的段碼值對(duì)8個(gè)

9、數(shù)碼管來(lái)說(shuō)都是一樣的。在一個(gè)時(shí)刻,只讓一位LED 的位選線處于選通狀態(tài),而其他LED 位選線都處于關(guān)閉狀態(tài),這個(gè)時(shí)候,段碼線上輸出應(yīng)該要顯示字符的段代碼值。下一時(shí)刻時(shí),只讓下一位的位選線處于選通狀態(tài),而其他各位的位選線處于關(guān)閉狀態(tài),在段碼線上輸出將要顯示字符的段碼,此時(shí),只有選通位在顯示相應(yīng)字符,而其他各位則是熄滅的。如此循環(huán)下去,就可以使各位LED 顯示出將要顯示的字符。雖然顯示的字符在不同時(shí)刻出現(xiàn),但是任一時(shí)刻,只有一位LED 顯示器顯示,其他的顯示器都是熄滅狀態(tài)。因?yàn)長(zhǎng)ED 顯示器有余暉和人眼有“視覺(jué)暫留”的現(xiàn)象,只要每位顯示器顯示的時(shí)間間隔夠短,就能夠造成“多位LED 同時(shí)亮”的假象,

10、這個(gè)樣子同時(shí)顯示的效果就達(dá)到了。具體硬件電路如圖2.4所示。綜上所述,具體硬件系統(tǒng)主要包括單片機(jī)、AD采集轉(zhuǎn)換模塊、鍵盤(pán)控制模塊、數(shù)碼管顯示模塊,基本結(jié)構(gòu)如圖2.5所示。圖2.4 LED顯示模塊圖2.5 硬件基本結(jié)構(gòu)示意圖 第三部分 系統(tǒng)軟件設(shè)計(jì)1. 系統(tǒng)軟件流程分析實(shí)驗(yàn)中,我們使用C51語(yǔ)言編程,主函數(shù)使用查詢方式。詳細(xì)流程圖如圖3.1所示。程序主函數(shù)是一個(gè)while(1)的循環(huán),不停查詢是否有鍵按下,如果有鍵按下,查詢鍵值。鍵盤(pán)輸入0時(shí),啟動(dòng)AD轉(zhuǎn)換,不停地讀取電壓值,送到數(shù)碼管顯示;輸入1,則關(guān)閉AD轉(zhuǎn)換,鎖定當(dāng)前電壓值,并輸出;按下其他鍵,輸出ERROR。圖3.1 系統(tǒng)軟件流程圖2.

11、實(shí)驗(yàn)具體程序分析 實(shí)驗(yàn)具體軟件如下所示。 /程序說(shuō)明:操作5排按鍵,1為顯示電位計(jì),2為凍結(jié)顯示(按下1恢復(fù)顯示電壓) ,按下其他鍵顯示error/程序開(kāi)始顯示全為P,只有按下1開(kāi)始進(jìn)入系統(tǒng)開(kāi)始顯示AD采集電壓值/按鍵2按下凍結(jié)顯示,解決辦法:進(jìn)入該操作不進(jìn)行AD采集,AD采集值為全局變量,但不更新時(shí)數(shù)碼管顯示值仍為上次采集值#include <reg52.h> /52和51系列單片機(jī)頭文件#include <intrins.h>#define uchar unsigned char#define uint unsigned int sbit key1=P34;sbit

12、 key2=P35;sbit key3=P36;/與AD采集的寫(xiě)位相同adwr,必須要采取措施避免干擾,利用flag1,0不能進(jìn)入keyscan,1可以sbit key4=P37;/與AD采集的讀位相同adrdsbit diola=P25;sbit dula=P26;/申明U1鎖存器的鎖存端sbit wela=P27;/申明U2鎖存器的鎖存端uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x73,0x3e,0x7b,0x31;/16為P,17為U,

13、18為e,19為ruchar code table1= /用來(lái)顯示帶小數(shù)點(diǎn)的數(shù)字0x6f,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0x73,0x3e,; /10為P,11為Uvoid delay(uint);uchar numt0,num;uint ADdata;uchar a,A1,A2,A2t,A3;uchar j,k,adval,flag1=1;uchar flagkey0=0,flagkey1=0,flagkey2=0,flagkey34=0,flagkey01=0;/主要用來(lái)表示按鍵按下的標(biāo)示1按下,0沒(méi)有按下,或被別的按鍵取代voi

14、d display() /顯示子函數(shù) flag1=1; /因?yàn)锳D和按鍵共用了P36和P37,必須要避免相互干擾 /flag1=1進(jìn)入按鍵掃描,進(jìn)入AD時(shí)flag1=0以避免進(jìn)入按鍵掃描 /進(jìn)入顯示時(shí)再次flag1=1使之可以進(jìn)入鍵盤(pán)掃描 P0=0xff; dula=1; P0=table0;/顯示1位 ,從開(kāi)發(fā)板左面數(shù) dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; delay(5); dula=1; P0=table1A1;/顯示2位 dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delay(5); dula=1;

15、P0=tableA2;/顯示3位 dula=0; P0=0xff; wela=1; P0=0xfb; wela=0; delay(5); dula=1; P0=tableA3;/顯示4位 dula=0; P0=0xff; wela=1; P0=0xf7; wela=0; delay(5); dula=1; P0=table17;/顯示5位 dula=0; P0=0xff; wela=1; P0=0xef; wela=0; delay(5);void display2() /用來(lái)顯示全P flag1=1; /因?yàn)锳D和按鍵共用了P36和P37,必須要避免相互干擾 /flag1=1進(jìn)入按鍵掃描,進(jìn)

16、入AD時(shí)flag1=0以避免進(jìn)入按鍵掃描 /進(jìn)入顯示時(shí)再次flag1=1使之可以進(jìn)入鍵盤(pán)掃描 P0=0xff; dula=1; P0=table16;/顯示1位 ,從開(kāi)發(fā)板左面數(shù) dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; delay(5); dula=1; P0=table16;/顯示2位 dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delay(5); dula=1; P0=table16;/顯示3位 dula=0; P0=0xff; wela=1; P0=0xfb; wela=0; delay(5); dula

17、=1; P0=table16;/顯示4位 dula=0; P0=0xff; wela=1; P0=0xf7; wela=0; delay(5); dula=1; P0=table16;/顯示5位 dula=0; P0=0xff; wela=1; P0=0xef; wela=0; delay(5);void display3() /用來(lái)顯示error flag1=1; /因?yàn)锳D和按鍵共用了P36和P37,必須要避免相互干擾 /flag1=1進(jìn)入按鍵掃描,進(jìn)入AD時(shí)flag1=0以避免進(jìn)入按鍵掃描 /進(jìn)入顯示時(shí)再次flag1=1使之可以進(jìn)入鍵盤(pán)掃描 P0=0xff; dula=1; P0=tab

18、le18;/顯示1位 ,從開(kāi)發(fā)板左面數(shù) dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; delay(5); dula=1; P0=table19;/顯示2位 dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delay(5); dula=1; P0=table19;/顯示3位 dula=0; P0=0xff; wela=1; P0=0xfb; wela=0; delay(5); dula=1; P0=table0;/顯示4位 dula=0; P0=0xff; wela=1; P0=0xf7; wela=0; delay(5)

19、; dula=1; P0=table19;/顯示5位 dula=0; P0=0xff; wela=1; P0=0xef; wela=0; delay(5);void delay(uint xms)uint i,j;for(i=xms;i>0;i-) /i=xms即延時(shí)約xms毫秒for(j=110;j>0;j-);void keyscan()if(key1=0&flag1=1)delay(10);if(key1=0&flag1=1) flagkey0=1;/可以進(jìn)入系統(tǒng)flagkey1=1;/表示按鍵1按下flagkey2=0; /當(dāng)按鍵1按下時(shí),234鍵效果清零,

20、此時(shí)只進(jìn)行按鍵1的任務(wù)flagkey34=0;while(!key1);/等待按鍵釋放if(key2=0&flag1=1)delay(10);if(key2=0&flag1=1) flagkey2=1;flagkey1=0;flagkey34=0;while(!key2);if(key3=0&flag1=1)delay(10);if(key3=0&flag1=1)flagkey34=1;flagkey1=0;flagkey2=0;while(!key3);if(key4=0&flag1=1)delay(10);if(key4=0&flag1=1)

21、flagkey34=1;flagkey1=0;flagkey2=0;while(!key4);void ADcaiji() flag1=0; wela=1; P0=0x7f; /選通ADCS wela=0; key3=1;/key3=adwr,AD寫(xiě)入(隨便寫(xiě)個(gè)什么都行,主要是為了啟動(dòng)AD轉(zhuǎn)換) _nop_(); key3=0;_nop_(); key3=1;P1=0xff;key4=1; /key4=adrd_nop_();key4=0;_nop_();adval=P1;key4=1; ADdata=adval; ADdata=ADdata*2; if(ADdata>500) ADdata=500; A1=ADdata/100;/分出百,十,和個(gè)位 A2=ADdata%100/10; A3=ADdata%10; void main()while(1) keyscan(); if(flagkey0=0) /0表示準(zhǔn)備就緒,在keyscan()中變?yōu)? display2(); if(flagkey0=1) /0表示準(zhǔn)備就緒,在keyscan()中變?yōu)? if(flagkey1=1) /按鍵1按下 ADcaiji(); if(ADdata>400) P1=0; display();

溫馨提示

  • 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)論