多路模擬量采集儀表的畢業(yè)設計_第1頁
多路模擬量采集儀表的畢業(yè)設計_第2頁
多路模擬量采集儀表的畢業(yè)設計_第3頁
多路模擬量采集儀表的畢業(yè)設計_第4頁
多路模擬量采集儀表的畢業(yè)設計_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、多路模擬量采集儀表的畢業(yè)設計摘要近年來,數(shù)據(jù)采集及其應用受到了人們越來越廣泛的關注,數(shù)據(jù)采集系統(tǒng)也有了迅速的發(fā)展,它可以廣泛的應用于各種領域。數(shù)據(jù)采集系統(tǒng)起始于20世紀50年代,1956年美國首先研究了用在軍事上的測試系統(tǒng),目標是測試中不依靠相關的測試文件,由非成熟人員進行操作,并且測試任務是由測試設備高速自動控制完成的。由于該種數(shù)據(jù)采集測試系統(tǒng)具有高速性和一定的靈活性,可以滿足眾多傳統(tǒng)方法不能完成的數(shù)據(jù)采集和測試任務,因而得到了初步的認可。大概在60年代后期,國內(nèi)外就有成套的數(shù)據(jù)采集設備和系統(tǒng)多屬于專用的系統(tǒng)。本文介紹了一種基于單片機的多路模擬量采集儀表的設計。該設計主要由三個模塊組成:a/

2、d轉換模塊,數(shù)據(jù)處理模塊及顯示模塊。a/d轉換主要由芯片adc0808來完成,它負責把采集到的模擬量轉換為相應的數(shù)字量在傳送到數(shù)據(jù)處理模塊。數(shù)據(jù)處理則由芯片at89c51來完成,其負責把adc0808傳送來的數(shù)字量經(jīng)過一定的數(shù)據(jù)處理,產(chǎn)生相應的顯示碼送到顯示模塊進行顯示;此外,它還控制著adc0808芯片工作。本次設計的顯示模塊是1602液晶顯示器所采集信號顯示結果的。 關鍵詞: 單片機;a/d轉換;at89c51;adc0808,1602液晶目錄第一章 設計總體方案11.1設計要求11.2設計思路11.3設計方案1第二章 硬件電路設計22.1 a/d轉換模塊22.1.1 逐次逼近型a/d轉換

3、器原理22.1.2 adc0808 主要特性32.1.3 adc0808的外部引腳特征32.2 單片機系統(tǒng)52.2.1 at89c51性能52.2.2 at89c51各引腳功能62.3 復位電路和時鐘電路82.3.1 復位電路設計82.3.2 時鐘電路設計82.4 1602液晶顯示電路92.4.1 1602lcd的基本參數(shù)及引腳功能92.4.2 lcd1602 主要技術參數(shù):92.4.3引腳功能說明102.4.4 1602 液晶模塊內(nèi)部的控制指令102.4.5 lcd1602操作時序122.4.6 1602lcd的 ram 地址映射122.5多路模擬量采集儀表硬件電路原理圖13第三章 程序設計

4、153.1程序設計總方案15參考文獻21致謝224第一章 設計總體方案1.1設計要求(1)cs-51系列單片機為核心器件,組成一個多路數(shù)據(jù)采集儀表。(2)采用8路模擬量輸入,能夠測量0-5v之間的直流電壓值。(3)電壓顯示用1602液晶顯示,能夠顯示一位小數(shù)。 1.2設計思路(1)根據(jù)設計要求,選擇at89c51單片機為核心控制器件。(2)a/d轉換采用adc0808實現(xiàn),與單片機的接口為p1口和p3的高四位引腳。(3)電壓顯示采用1602液晶顯示器(4)由一個按鍵控制液晶顯示,兩個電壓值為一組,按一次鍵,就切換一次。 1.3設計方案硬件電路設計主要由6個部分組成; a/d轉換電路,at89c

5、51單片機系統(tǒng),1602顯示系統(tǒng)、時鐘電路、復位電路以及測量電壓輸入電路。硬件電路設計框圖如圖1所示。第二章 硬件電路設計2.1 a/d轉換模塊現(xiàn)實世界的物理量都是模擬量,能把模擬量轉化成數(shù)字量的器件稱為模/數(shù)轉換器(a/d轉換器),a/d轉換器是單片機數(shù)據(jù)采集系統(tǒng)的關鍵接口電路,按照各種a/d芯片的轉化原理可分為逐次逼近型,雙重積分型等等。雙積分式a/d轉換器具有抗干擾能力強、轉換精度高、價格便宜等優(yōu)點。與雙積分相比,逐次逼近式a/d轉換的轉換速度更快,而且精度更高,比如adc0809、adc0808等,它們通常具有8路模擬選通開關及地址譯碼、鎖存電路等,它們可以與單片機系統(tǒng)連接,將數(shù)字量送

6、到單片機進行分析和顯示。一個n位的逐次逼近型a/d轉換器只需要比較n次,轉換時間只取決于位數(shù)和時鐘周期,逐次逼近型a/d轉換器轉換速度快,因而在實際中廣泛使用。2.1.1 逐次逼近型a/d轉換器原理逐次逼近型a/d轉換器是由一個比較器、a/d轉換器、存儲器及控制電路組成。它利用內(nèi)部的寄存器從高位到低位一次開始逐位試探比較。轉換過程如下:開始時,寄存器各位清零,轉換時,先將最高位置1,把數(shù)據(jù)送入a/d轉換器轉換,轉換結果與輸入的模擬量比較,如果轉換的模擬量比輸入的模擬量小,則1保留,如果轉換的模擬量比輸入的模擬量大,則1不保留,然后從第二位依次重復上述過程直至最低位,最后寄存器中的內(nèi)容就是輸入模

7、擬量對應的二進制數(shù)字量。其原理框圖如圖2所示:2.1.2 adc0808 主要特性adc0808是cmos單片型逐次逼近式a/d轉換器,帶有使能控制端,與微機直接接口,片內(nèi)帶有鎖存功能的8路模擬多路開關,可以對8路0-5v輸入模擬電壓信號分時進行轉換,由于adc0808設計時考慮到若干種模/數(shù)變換技術的長處,所以該芯片非常適應于過程控制,微控制器輸入通道的接口電路,智能儀器和機床控制等領域。adc0808主要特性:8路8位a/d轉換器,即分辨率8位;具有鎖存控制的8路模擬開關;易與各種微控制器接口;可鎖存三態(tài)輸出,輸出與ttl兼容;轉換時間:128s;轉換精度:0.2%;單個+5v電源供電;模

8、擬輸入電壓范圍0- +5v,無需外部零點和滿度調(diào)整;低功耗,約15mw。2.1.3 adc0808的外部引腳特征 adc0808芯片有28條引腳,采用雙列直插式封裝,其引腳圖如圖3所示。圖3 adc0808引腳圖下面說明各個引腳功能:in0-in7(8條):8路模擬量輸入線,用于輸入和控制被轉換的模擬電壓。地址輸入控制(4條):ale:地址鎖存允許輸入線,高電平有效,當ale為高電平時,為地址輸入線,用于選擇in0-in7上那一條模擬電壓送給比較器進行a/d轉換。adda,addb,addc:3位地址輸入線,用于選擇8路模擬輸入中的一路,其對應關系如表1所示:表1 adc0808通道選擇表地址

9、碼 對應的輸入通道 c b a 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 in0 in1 in2 in3 in4 in5 in6 in7 start:start為“啟動脈沖”輸入法,該線上正脈沖由cpu送來,寬度應大于100ns,上升沿清零sar,下降沿啟動adc工作。eoc: eoc為轉換結束輸出線,該線上高電平表示a/d轉換已結束,數(shù)字量已鎖入三態(tài)輸出鎖存器。d1-d8:數(shù)字量輸出端,d1為高位。oe:oe為輸出允許端,高電平能使d1-d8引腳上輸出轉換后的數(shù)字量。ref+、ref-:參考電壓輸入量,給電阻階梯網(wǎng)絡供給標準電壓。vcc、

10、gnd: vcc為主電源輸入端,gnd為接地端,一般ref+與vcc連接在一起,ref-與gnd連接在一起.clk:時鐘輸入端2.1.4 adc0808的內(nèi)部結構及工作流程adc0808由8路模擬通道選擇開關,地址鎖存與譯碼器,比較器,8位開關樹型a/d轉換器,逐次逼近型寄存器,定時和控制電路和三態(tài)輸出鎖存器等組成,其內(nèi)部結構如圖4所示。圖4 adc0808的內(nèi)部結構其中:(1)8路模擬通道選擇開關實現(xiàn)從8路輸入模擬量中選擇一路送給后面的比較器進行比較。(2)地址鎖存與譯碼器用于當ale信號有效時,鎖存從adda、addb、addc 3根地址線上送來的3位地址,譯碼后產(chǎn)生通道選擇信號,從8路模

11、擬通道中選擇當前模擬通道。(3)比較器,8位開關樹型a/d轉換器,逐次逼近型寄存器,定時和控制電路組成8位a/d轉換器,當start信號有效時,就開始對當前通道的模擬信號進行轉換,轉換完成后,把轉換得到的數(shù)字量送到8位三態(tài)鎖存器,同時通過引腳送出轉換結束信號。(4)三態(tài)輸出鎖存器保存當前模擬通道轉換得到的數(shù)字量,當oe信號有效時,把轉換的結果送出。adc0808的工作流程為:(1)輸入3位地址,并使ale=1,將地址存入地址鎖存器中,經(jīng)地址譯碼器從8路模擬通道中選通1路模擬量送給比較器。(2)送start一高脈沖,start的上升沿使逐次寄存器復位,下降沿啟動a/d轉換,并使eoc信號為低電平

12、。(3)當轉換結束時,轉換的結果送入到輸出三態(tài)鎖存器中,并使eoc信號回到高電平,通知cpu已轉換結束。(4)當cpu執(zhí)行一讀數(shù)據(jù)指令時,使oe為高電平,則從輸出端d0-d7讀出數(shù)據(jù)。2.2 單片機系統(tǒng)2.2.1 at89c51性能at89c51是美國atmel公司生產(chǎn)的低電壓,高性能cmos8位單片機,片內(nèi)含有4kb的可反復擦寫的只讀程序存儲器和128字節(jié)的隨機存儲器。該器件采用atmel高密度非易失存儲器制造技術制造,與工業(yè)標準的mcs-51指令集和輸出管腳相兼容,由于將多功能8位cpu和閃爍存儲器組合在單個芯片中,atmel的at89c51是一種高效微控制器,它為很多嵌入式控制系統(tǒng)提供了

13、一種靈活性高且價廉的方案。 at89c51功能性能:與mcs-51成品指令系統(tǒng)完全兼容;4kb可編程閃速存儲器;壽命:1000次寫/擦循環(huán);數(shù)據(jù)保留時間:10年;全靜態(tài)工作:0-24mhz;三級程序存儲器鎖定;128*8b內(nèi)部ram;32個可編程i/o口線;2個16位定時/計數(shù)器;5個中斷源;可編程串行uart通道;片內(nèi)震蕩器和掉電模式。 2.2.2 at89c51各引腳功能at89c51提供以下標準功能:4kb的flash閃速存儲器,128b內(nèi)部ram,32個i/o口線,兩個16位定時/計數(shù)器,一個5向量兩級中斷結構,一個全雙工串行通信口,片內(nèi)震蕩器及時鐘電路,同時,at89c51可降至0h

14、z靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止cpu的工作,但允許ram,定時/計數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作,掉電方式保存ram中的內(nèi)容,但震蕩器停止工作并禁止其他所有工作直到下一個硬件復位。at89c51采用pdip封裝形式,引腳配置如圖5所示。圖5 at89c51的引腳圖at89c51芯片的各引腳功能為:p0口:這組引腳共有8條,p0.0為最低位。這8個引腳有兩種不同的功能,分別適用于不同的情況,第一種情況是89c51不帶外存儲器,p0口可以為通用i/o口使用,p0.0-p0.7用于傳送cpu的輸入/輸出數(shù)據(jù),這時輸出數(shù)據(jù)可以得到鎖存,不需要外接專用鎖存器,輸入數(shù)據(jù)

15、可以得到緩沖,增加了數(shù)據(jù)輸入的可靠性;第二種情況是89c51帶片外存儲器,p0.0-p0.7在cpu訪問片外存儲器時先傳送片外存儲器的低8位地址,然后傳送cpu對片外存儲器的讀/寫數(shù)據(jù)。p0口為開漏輸出,在作為通用i/o使用時,需要在外部用電阻上拉。p1口:這8個引腳和p0口的8個引腳類似,p1.7為最高位,p1.0為最低位,當p1口作為通用i/o口使用時,p1.0-p1.7的功能和p0口的第一功能相同,也用于傳送用戶的輸入和輸出數(shù)據(jù)。p2口:這組引腳的第一功能與上述兩組引腳的第一功能相同即它可以作為通用i/o口使用,它的第一功能和p0口引腳的第二功能相配合,用于輸出片外存儲器的高8位地址,共

16、同選中片外存儲器單元,但并不是像p0口那樣傳送存儲器的讀/寫數(shù)據(jù)。p3口:這組引腳的第一功能和其余三個端口的第一功能相同,第二功能為控制功能,每個引腳并不完全相同,如下表2所示:表2 p3口各位的第二功能p3口各位第二功能p3.0 rxt(串行口輸入)p3.1 txd(串行口輸出)p3.2/int0(外部中斷0輸入)p3.3/int1(外部中斷1輸入)p3.4t0(定時器/計數(shù)器0的外部輸入)p3.5t1(定時器/計數(shù)器1的外部輸入)p3.6/wr(片外數(shù)據(jù)存儲器寫允許) p3.7/rd(片外數(shù)據(jù)存儲器讀允許)vcc為+5v電源線,vss接地。ale:地址鎖存允許線,配合p0口的第二功能使用,

17、在訪問外部存儲器時,89c51的cpu在p0.0-p0.7引腳線去傳送隨后而來的片外存儲器讀/寫數(shù)據(jù)。在不訪問片外存儲器時,89c51自動在ale線上輸出頻率為1/6震蕩器頻率的脈沖序列。該脈沖序列可以作為外部時鐘源或定時脈沖使用。/ea:片外存儲器訪問選擇線,可以控制89c51使用片內(nèi)rom或使用片外rom,若/ea=1,則允許使用片內(nèi)rom, 若/ea=0,則只使用片外rom。/psen:片外rom的選通線,在訪問片外rom時,89c51自動在/psen線上產(chǎn)生一個負脈沖,作為片外rom芯片的讀選通信號。rst:復位線,可以使89c51處于復位(即初始化)工作狀態(tài)。通常89c51復位有自動

18、上電復位和人工按鍵復位兩種。xtal1和xtal2:片內(nèi)震蕩電路輸入線,這兩個端子用來外接石英晶體和微調(diào)電容,即用來連接89c51片內(nèi)osc(震蕩器)的定時反饋回路。2.3 復位電路和時鐘電路2.3.1 復位電路設計單片機在啟動運行時都需要復位,使cpu和系統(tǒng)中的其他部件都處于一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。mcs-51單片機有一個復位引腳rst,采用施密特觸發(fā)輸入。當震蕩器起振后,只要該引腳上出現(xiàn)2個機器周期以上的高電平即可確保時器件復位。復位完成后,如果rst端繼續(xù)保持高電平,mcs-51就一直處于復位狀態(tài),只要rst恢復低電平后,單片機才能進入其他工作狀態(tài)。單片機的復位方式有上

19、電自動復位和手動復位兩種,圖6是51系列單片機統(tǒng)常用的上電復位和手動復位組合電路,只要vcc上升時間不超過1ms,它們都能很好的工作。圖6 復位電路2.3.2 時鐘電路設計單片機中cpu每執(zhí)行一條指令,都必須在統(tǒng)一的時鐘脈沖的控制下嚴格按時間節(jié)拍進行,而這個時鐘脈沖是單片機控制中的時序電路發(fā)出的。cpu執(zhí)行一條指令的各個微操作所對應時間順序稱為單片機的時序。mcs-51單片機芯片內(nèi)部有一個高增益反相放大器,用于構成震蕩器,xtal1為該放大器的輸入端,xtal2為該放大器輸出端,但形成時鐘電路還需附加其他電路。 本設計系統(tǒng)采用內(nèi)部時鐘方式,利用單片機內(nèi)部的高增益反相放大器,外部電路簡,只需要一

20、個晶振和 2個電容即可,如圖7所示。圖7 時鐘電路電路中的器件選擇可以通過計算和實驗確定,也可以參考一些典型電路的參數(shù),電路中,電容器c1和c2對震蕩頻率有微調(diào)作用,通常的取值范圍是3010pf,在這個系統(tǒng)中選擇了33pf;石英晶振選擇范圍最高可選24mhz,它決定了單片機電路產(chǎn)生的時鐘信號震蕩頻率,在本系統(tǒng)中選擇的是12mhz,因而時鐘信號的震蕩頻率為12mhz 2.4 1602液晶顯示電路 2.4.1 1602lcd的基本參數(shù)及引腳功能 1602lcd 分為帶背光和不帶背光兩種,基控制器大部分為 hd44780,帶背光的比不帶背光的厚,是否帶背光在應用中并無差別,兩者尺寸差別如下圖 2.4

21、.2 lcd1602 主要技術參數(shù): 顯示容量:162個字符 芯片工作電壓:4.55.5v 工作電流:2.0ma(5.0v) 模塊最佳工作電壓:5.0v 字符尺寸:2.954.35(wh)mm 2.4.3引腳功能說明1602lcd 采用標準的 14 腳(無背光)或 16 腳(帶背光)接口,各引腳接口說明如表 表1 引腳接口說明表 第1腳:vss為地電源。 第2腳:vdd接5v正電源。 第3腳:vl為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10k的電位器調(diào)整對比度。 第4腳:rs為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選

22、擇指令寄存器。 第5腳:r/w為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當rs和r/w共同為低電平時可以寫入指令或者顯示地址,當rs為低電平r/w為高電平時可以讀忙信號,當rs為高電平r/w為低電平時可以寫入數(shù)據(jù)。 第6腳:e端為使能端,當e端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。 第714腳:d0d7為8位雙向數(shù)據(jù)線。 第15腳:背光源正極。 第16腳:背光源負極。 2.4.4 1602 液晶模塊內(nèi)部的控制指令如下圖所示:1602 液晶模塊的讀寫操作,屏幕和光標的操作都是通過指令編程來實現(xiàn)的。(說明 1 為高電平,0 為低電平) 指令 1:清顯示,指令碼 01h,光標復位到地

23、址 00h 位置 指令 2:光標復位,光標返回到地址 00h 指令 3:光標和顯示位置設置 i/d,光標移動方向,高電平右移,低電平左移,s:屏幕上所有文字是否左移或右移,高電平表示有效,低電平表示無效。 指令 4:顯示開關控制。 d:控制整體的顯示開與關,高電平表示開顯示,低電平表示關顯示。 c:控制光標的開與關,高電平表示有光標,低電平表示無光標 b:控制光標是否閃爍,高電平閃爍,低電平不閃爍。 指令 5:光標或顯示移位 s/c :高電平時顯示移動的文字,低電平時移動光標 指令 6:功能設置命令 dl:高電平時為 4 位總線,低電平時為 8 位總線 n:低電平時為單行顯示,高電平時為雙行顯

24、示,f:低電平時顯示 5x7 的點陣字符,高電平時顯示 5x10 的顯示字符。 指令 7:字符發(fā)生器 ram地址設置。 指令 8:ddram 地址設置。 指令 9:讀忙信號和光標地址 bf:忙標志位,高電平表示忙,此時模塊不能接收命令或數(shù)據(jù),如果為低電平表示不忙。 與 hd44780相兼容的芯片時序表如下:2.4.5 lcd1602操作時序下列為基本時序圖:2.4.6 1602lcd的 ram 地址映射液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認模塊的忙標志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,圖是 1602 的內(nèi)

25、部顯示地址。例如第二行第一個字符的地址是 40h,那么是否直接寫入 40h就可以將光標定位在第二行第一個字符的位置呢?這樣不行,因為寫入顯示地址時要求最高位 d7 恒定為高電平 1 所以實際寫入的數(shù)據(jù)應該是 01000000b(40h)+10000000b(80h)=11000000b(c0h)。2.5多路模擬量采集儀表硬件電路原理圖此電路的工作原理是:各路模擬電壓信號通過電阻分壓后進入電壓跟隨器由程序數(shù)字濾波,再由adc08008的in0-in7通道進入(由于使用的各路通道由adda,addb,addc電平高低所控制,而adda,addb,addc又由按鍵所控制,所以顯示哪兩路的電壓值,就通

26、過按鍵),經(jīng)過模/數(shù)轉換后,產(chǎn)生相應的數(shù)字量經(jīng)過其輸出通道d0-d7傳送給at89c51芯片的p1口,at89c51負責把接收到的數(shù)字量經(jīng)過數(shù)據(jù)處理,處理后再送給1602液晶顯示器。此外,at89c51還控制adc0808的工作。其中,adc0808的clock是由外加的一個方波所控制,p2.1發(fā)正脈沖啟動a/d轉換,p2.2檢測a/d轉換是否完成,轉換完成后,p2.3置高從p1口讀取轉換結果。多路模擬量采集儀表的硬件電路已經(jīng)設計完成,就可以選取相應的芯片和元器件,利用proteus軟件繪制出硬件的原理,并仔細地檢查修改,直至形成完善的硬件原理圖。但要真正實現(xiàn)電路對電壓的測量和顯示的功能,還需

27、要有相應的軟件配合,才能達到設計要求。第三章 程序設計3.1程序設計總方案根據(jù)模塊的劃分原則,將該程序劃分初始化模塊,a/d轉換子程序和顯示子程序,這三個程序模塊構成了整個系統(tǒng)軟件的主程序,如圖所示。3.2程序代碼#include #define uchar unsigned char#define uint unsigned intuint addata;uint in0,in1,in2,in3;uint in0_out,in1_out,in2_out,in3_out;uint in4,in5,in6,in7;uint in4_out,in5_out,in6_out,in7_out;uint

28、 vref_fangda=1;uchar flag=0,num=1;uchar code tab=0,1,2,3,4,5,6,7,8,9;uchar table=my design; uchar table1=2012-5-20;#define n 60 /n值可根據(jù)實際情況調(diào)整sbit rs=p25;sbit rw=p26; sbit en=p27;sbit st=p21;sbit eoc=p22;sbit oe=p23;sbit k=p24;void delay(uint t) /延時函數(shù) uchar i; while(t-) for(i=0;i124;i+);/函數(shù)名 void writ

29、e_com(uchar lcdzhiling) /函數(shù)功能:液晶屏寫指令/編寫人:豆偉晴/void write_com(uchar lcdzhiling) delay(5);rs=0;rw=0;p0=lcdzhiling;en=1;delay(1);en=0;/函數(shù)名 void write_dat(uchar lcdshuju) /函數(shù)功能:液晶屏寫數(shù)據(jù)/編寫人:豆偉晴/void write_dat(uchar lcdshuju) delay(3);rs=1;rw=0;p0=lcdshuju;en=1;delay(1);en=0;/函數(shù)名 void ini_lcd() /函數(shù)功能:液晶屏初始化

30、/編寫人:豆偉晴/void ini_lcd() write_com(0x38); write_com(0x01); write_com(0x0f); write_com(0x06); write_com(0x0c);/函數(shù)名 uchar adc0808()/函數(shù)功能:ad轉換程序/編寫人:豆偉晴/uchar adc0808() st=0;st=1;st=0; while(eoc=0); oe=1; addata=p1; oe=0; return addata;/函數(shù)名 uchar filter()/函數(shù)功能:數(shù)字濾波程序/編寫人:豆偉晴/uchar filter() char value_bu

31、fn;char count,i,j,temp;for (count=0;countn;count+)value_bufcount=adc0808(); /獲取采樣值delay(5);for (j=0;jn-1;j+) /采樣值由小到大排列,排序采用冒泡法for (i=0;ivalue_bufi+1) temp=value_bufi;value_bufi=value_bufi+1;value_bufi+1=temp; return value_bufn/2;/函數(shù)名 void main()/函數(shù)功能:/編寫人:豆偉晴/void main() uint i=0; ini_lcd(); ea=1;

32、/全局中斷開 ex1=1; /外部中斷1開 it1=1; /邊沿觸發(fā) while(1) if(flag=1) if(k=0) /按鍵1操作 delay(10); if(k=0) num=num+1; / vref_fangda=vref_fangda*2;/if(vref_fangda4) / vref_fangda=1; if(num%2)=0) /按鍵1操作 p3=4; in4=filter(); in4_out=(2.500*vref_fangda*100*in4)/255;/100倍 write_com(0x81); /第一行顯示 write_dat(5); write_dat(:);

33、 write_dat(tabin4_out/100); write_dat(.); write_dat(tabin4_out%100/10); write_dat(tabin4_out%100%10); write_dat(v); p3=5; in5=filter(); in5_out=(2.500*vref_fangda*100*in5)/255;/100倍 write_com(0xc1); /第二行顯示 write_dat(6); write_dat(:); write_dat(tabin5_out/100); write_dat(.); write_dat(tabin5_out%100/

34、10); write_dat(tabin5_out%100%10); write_dat(v); p3=6; in6=filter(); in6_out=(2.500*vref_fangda*100*in6)/255;/100倍 write_com(0x88); /第三行顯示 write_dat(7); write_dat(:); write_dat(tabin6_out/100); write_dat(.); write_dat(tabin6_out%100/10); write_dat(tabin6_out%100%10); write_dat(v); p3=7; in7=filter()

35、; in7_out=(2.500*vref_fangda*100*in7)/255;/100倍 write_com(0xc8); /第四行顯示 write_dat(8); write_dat(:); write_dat(tabin7_out/100); write_dat(.); write_dat(tabin7_out%100/10); write_dat(tabin7_out%100%10); write_dat(v); else p3=0; in0=filter(); in0_out=(2.500*vref_fangda*100*in0)/255;/100倍 write_com(0x81

36、); /第一行顯示 write_dat(1); write_dat(:); write_dat(tabin0_out/100); write_dat(.); write_dat(tabin0_out%100/10); write_dat(tabin0_out%100%10); write_dat(v); p3=1; in1=filter(); in1_out=(2.50*vref_fangda*100*in1)/255;/100倍 write_com(0xc1); /第二行顯示 write_dat(2); write_dat(:); write_dat(tabin1_out/100); wri

37、te_dat(.); write_dat(tabin1_out%100/10); write_dat(tabin1_out%100%10); write_dat(v); p3=2; in2=filter(); in2_out=(2.500*vref_fangda*100*in2)/255;/100倍 write_com(0x88); /第三行顯示 write_dat(3); write_dat(:); write_dat(tabin2_out/100); write_dat(.); write_dat(tabin2_out%100/10); write_dat(tabin2_out%100%10); write_dat(v); p3=3; in3=filter(); in3_out=(2.500*vref_fa

溫馨提示

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

評論

0/150

提交評論