本科畢業(yè)設(shè)計多路溫采集系統(tǒng)設(shè)計_第1頁
本科畢業(yè)設(shè)計多路溫采集系統(tǒng)設(shè)計_第2頁
本科畢業(yè)設(shè)計多路溫采集系統(tǒng)設(shè)計_第3頁
本科畢業(yè)設(shè)計多路溫采集系統(tǒng)設(shè)計_第4頁
本科畢業(yè)設(shè)計多路溫采集系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目錄1綜述12數(shù)字式多路溫度采集系統(tǒng)硬件電路設(shè)計22.1溫度采集電路設(shè)計22.1.1 DS18B20簡介2溫度采集電路結(jié)構(gòu)52.2單片機控制電路設(shè)計6單片機芯片選擇62.2.2 AT89C51單片機工作基本電路設(shè)計62.3輸入控制電路設(shè)計72.4顯示電路設(shè)計82.4.1 LED數(shù)碼顯示管靜態(tài)顯示工作原理8顯示電路結(jié)構(gòu)9顯示電路工作過程92.5報警控制電路設(shè)計9報警控制電路結(jié)構(gòu)10報警控制電路工作過程102.6電源電路設(shè)計102.7數(shù)字式多路溫度采集系統(tǒng)元件清單112.8數(shù)字式多路溫度采集系統(tǒng)電路圖113數(shù)字式多路溫度采集系統(tǒng)程序設(shè)計123.1主程序設(shè)計123.2子程序設(shè)計123.2.1 DS1

2、8B20的通信協(xié)議12子程序133.3數(shù)字式多路溫度采集系統(tǒng)控制源程序164系統(tǒng)調(diào)試及性能分析174.1系統(tǒng)調(diào)試174.2系統(tǒng)性能分析175結(jié)束語18參考文獻19致謝20附錄21附錄(1)數(shù)字式多路溫度采集系統(tǒng)元件清單21附錄(2)數(shù)字式多路溫度采集系統(tǒng)原理圖22附錄(3)數(shù)字式多路溫度采集系統(tǒng)印刷電路板圖23附錄(4)數(shù)字式多路溫度采集系統(tǒng)控制源程序24摘 要數(shù)字式多路溫度采集系統(tǒng)由主控制器、溫度采集電路、溫度顯示電路、報警控制電路及鍵盤輸入控制電路組成。它利用單片機AT89C51做控制及數(shù)據(jù)處理器、智能溫度傳感器DS18B20做溫度檢測器、LED數(shù)碼顯示管做溫度顯示輸出設(shè)備。硬件電路比較簡

3、單,成本較低,測溫范圍大,測量精度高,讀數(shù)顯示直觀,使用方便。關(guān)鍵詞:數(shù)字;溫度;傳感器;單片機;控制Abstractthe digital multi-channel temperature gathering system by the master control regulator, the temperature gathering electric circuit, the temperature display circuit, reports to the police the control circuit and the keyboard entry control cir

4、cuit is composed .It makes the control and the data processor, intelligent temperature sensor DS18B20 using monolithic integrated circuit AT89C51 makes the temperature detector, the LED numerical code display tube makes the temperature demonstration output unit. The hardware electric circuit quite i

5、s simple, the cost is low, the temperature measurement scope is big, and the measuring accuracy is high, reading demonstration is direct-viewing, easy to operate.Key words: numeral; temperature; sensor; monolithic integrated circuit; control 1綜述溫度是一種最基本的環(huán)境參數(shù),人們的生活與環(huán)境溫度息息相關(guān),因此研究溫度的測量方法和裝置具有重要的意義。溫度測量

6、裝置的關(guān)鍵是溫度傳感器,溫度傳感器的發(fā)展經(jīng)歷了三個發(fā)展階段:(1)傳統(tǒng)的分立式溫度傳感器,(2)模擬集成溫度傳感器,(3)智能集成溫度傳感器。目前,國際上新型溫度傳感器正從模擬式向數(shù)字式,從集成化向智能化、網(wǎng)絡(luò)化的方向飛速發(fā)展。本人選擇數(shù)字式多路溫度采集系統(tǒng)設(shè)計。系統(tǒng)主要技術(shù)指標:(1)2路溫度采集電路及以上;(2)采集測溫范圍為-50+110 ;(3)溫度精度,誤差在0.1 以內(nèi);(4)顯示模塊,采用LED數(shù)碼管顯示。2數(shù)字式多路溫度采集系統(tǒng)硬件電路設(shè)計按照系統(tǒng)設(shè)計功能的要求,系統(tǒng)由5個模塊組成:主控制器、溫度采集電路1、溫度顯示電路、報警控制電路及鍵盤輸入控制電路。數(shù)字式多路溫度采集系統(tǒng)總

7、體電路結(jié)構(gòu)框圖如圖1所示。主控制器(AT89C51)多路溫度采集(DS18B20)溫度顯示器(LED)輸入控制電路(按鍵)報警控制電路(蜂鳴器)圖1 數(shù)字式多路溫度采集系統(tǒng)結(jié)構(gòu)框圖采用智能溫度傳感器(DS18B20)采集環(huán)境溫度并進行簡單的模數(shù)轉(zhuǎn)換;單片機(AT89C51)執(zhí)行程序?qū)囟葌鞲衅鱾鬏數(shù)臄?shù)據(jù)進行進一步的分析處理,轉(zhuǎn)換成環(huán)境對應(yīng)的溫度值,通過I/O口輸出到數(shù)碼顯示管(LED)顯示;由鍵盤輸入控制選擇某采集電路檢測溫度及顯示;報警電路對設(shè)定的最高最低報警溫度進行監(jiān)控報警。2.1溫度采集電路設(shè)計溫度采樣處理電路由溫度傳感器、放大電路、A/D轉(zhuǎn)換電路等組成。采用分塊結(jié)構(gòu)的溫度采樣處理電路,

8、其硬件電路結(jié)構(gòu)復(fù)雜,也不便于數(shù)據(jù)的處理。采用智能溫度傳感器采樣處理電路,能夠方便的進行溫度的采集及簡單的數(shù)據(jù)處理。并且可以達到設(shè)計的技術(shù)指標要求。本系統(tǒng)選擇智能溫度傳感器DS18B20作為溫度采集電路的核心器件。由DS18B20及輔助電路構(gòu)成溫度采集電路。 DS18B20簡介(1)DS18B20的性能特點DS18B20是美國DALLAS半導(dǎo)體公司推出的一種改進型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等溫度傳感器相比,它能夠直接讀出被測溫度,并可根據(jù)實際要求通過簡單的編程實現(xiàn)912位的數(shù)字值讀數(shù)方式,可以在93.75ms至750ms內(nèi)完成相應(yīng)9位至12位的數(shù)字量轉(zhuǎn)換。它的測溫精度可達到0.0625/L

9、SB。它的測溫范圍是-55+125。從DS18B20讀出或?qū)懭胄畔H需要一根口線,溫度變換功率來源于數(shù)據(jù)總線,總線本身也可以向所掛接的DS18B20供電,無需額外電源。因而選用DS18B20是恰當?shù)?。?)DS18B20的外形和內(nèi)部結(jié)構(gòu)DS18B20采用3腳PR-35封裝,其外形和內(nèi)部結(jié)構(gòu)框圖分別如圖2、圖3所示。圖2 DS18B20外形結(jié)構(gòu) 圖3 DS18B20內(nèi)部結(jié)構(gòu)DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器。64位光刻ROM的位結(jié)構(gòu)圖如圖4所示。64位序列號是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼

10、。開始8位(28H)是產(chǎn)品類型標號,接著的48位是該DS18B20自身的序列號,最后8位是前面56位的循環(huán)冗余校驗碼。圖4 64位ROM結(jié)構(gòu)DS18B20溫度傳感器的內(nèi)部存儲器包括一個非易失性的可電擦除E2PRAM和一個高速暫存RAM。E2PRAM包括存放高溫度和低溫度的觸發(fā)器TH、TL和結(jié)構(gòu)寄存器。非易失性溫度報警觸發(fā)器TH和TL,可通過軟件寫入用戶報警上下限。高速暫存RAM的結(jié)構(gòu)為9字節(jié)的存儲器,結(jié)構(gòu)圖如圖5所示。頭2個字節(jié)包含測得的溫度信息。第3、4字節(jié)是TH和TL的拷貝,每次上電復(fù)位時被刷新。第5字節(jié)為配置寄存器,用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1

11、。第9字節(jié)讀出前面所有8字節(jié)的CRC碼,可用來檢驗數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。第5字節(jié)配置寄存器各位的定義如圖6所示;低5位一直為1,TM是測試模式位,用于設(shè)置DS18B20在工作模式還是在測試模式;R1和R0決定溫度轉(zhuǎn)換的精度位數(shù)(即設(shè)置分辨率),定義方法見表1。圖5 高速緩存RAM結(jié)構(gòu)圖6 配置寄存器表1 DS18B20分辨率的定義規(guī)定R1R0分辨率/位溫度最大轉(zhuǎn)換時間/ns00110101910111293.75187.53757509位分辨率時,精度為0.5/LSB;10位分辨率時,精度為0.25/LSB;11位分辨率時,精度為0.125/LSB;12位分辨率時,精度為0.0625

12、/LSB。轉(zhuǎn)換精度越高所需轉(zhuǎn)換時間越長。為了達到本系統(tǒng)的技術(shù)指標,選擇12位分辨率。 (3)DS18B20供電方式外部電源供電方式是DS18B20最佳的工作方式,工作穩(wěn)定可靠,抗干擾能力強,而且電路也比較簡單,可以開發(fā)出穩(wěn)定可靠的多點溫度監(jiān)控系統(tǒng)。在外接電源方式下,可以充分發(fā)揮DS18B20寬電源電壓范圍的優(yōu)點,即使電源電壓VCC降到3V時,依然能夠保證測量精度。所以本系統(tǒng)采用外部電源供電方式。在外部電源供電方式下,DS18B20工作電源由VDD引腳接入,此時I/O線不需要強上拉,不存在電源電流不足的問題,可以保證轉(zhuǎn)換精度,同時在總線上可以掛接任意多個DS18B20傳感器,組成多點測溫系統(tǒng)。外

13、部電源供電方式如圖7所示。在外部供電方式下,DS18B20的GND引腳必須接地,不能懸空,否則不能轉(zhuǎn)換溫度,讀取的溫度總是85。圖7 DS18B20外部電源供電溫度采集電路結(jié)構(gòu)溫度采集電路結(jié)構(gòu)如圖8所示。圖中給出了2路溫度采集電路,2只智能溫度傳感器DS18B20的信號輸出端都連接到單片機的P1.7端,電阻R6作為上拉電阻。如果需要增加,可以在P1.7端再連接更多的智能溫度傳感器DS18B20。工作時,由程序控制讀取某智能溫度傳感器DS18B20采集的溫度數(shù)據(jù),送單片機處理。圖8 多點溫度采集電路2.2單片機控制電路設(shè)計單片機控制電路核心是單片機芯片,其加上工作基本電路,就可以展開控制工作。單

14、片機芯片選擇MCS8031和AT89C512都具有4個8位I/O接口,但MCS8031沒有內(nèi)部程序存儲器,需要外接,增加了電路的復(fù)雜性;AT89C2051和AT89C51都具有Flash ROM,可以省去外接程序存儲器;但AT89C2051接口少,不利于功能擴展;故選用AT89C51。AT89C51單片機內(nèi)部結(jié)構(gòu)及主要性能特點:40個引腳,雙列直插式封裝;有4個8位I/O接口;有全雙工增強型UART,可編程串行通信;2個16位定時/計數(shù)器;5個中斷源,2個中斷優(yōu)先級;有片內(nèi)時鐘振蕩器(全靜態(tài)工作方式,024 MHz);有128字節(jié)內(nèi)部RAM,4KB Flash ROM(可以擦除1000次以上,

15、數(shù)據(jù)保存10年);電源控制模式靈活(時鐘可停止和恢復(fù),空閑模式,掉電模式)。2.2.2 AT89C51單片機工作基本電路設(shè)計AT89C51單片機正常工作,必須連接基本電路?;倦娐钒ňд耠娐?和復(fù)位電路4。(1)晶振電路單片機的時鐘信號通常有兩種產(chǎn)生方式:一是內(nèi)部時鐘方式,二是外部時鐘方式。內(nèi)部時鐘方式是利用單片機內(nèi)部的振蕩電路產(chǎn)生時鐘信號。外部時鐘方式是把外部已有的時鐘信號引入到單片機內(nèi)。本設(shè)計采用內(nèi)部時鐘方式,電路如圖9中所示。在單片機的XTAL1和XTAL2引腳外接石英晶體(簡稱晶振),作為單片機內(nèi)部振蕩電路的負載,構(gòu)成自激振蕩器,可在單片機內(nèi)部產(chǎn)生時鐘脈沖信號。C1和C2可以穩(wěn)定振蕩

16、頻率,并使快速起振。本電路選用晶振12MHz,C1=C2=30pF。(2)復(fù)位電路復(fù)位是使單片機處于某種確定的初始狀態(tài)。單片機工作從復(fù)位開始。在單片機RST引腳引入高電平并保持2個機器周期,單片機就執(zhí)行復(fù)位操作。復(fù)位操作有兩種基本方式:一種是上電復(fù)位,另一種是上電與按鍵均有效的復(fù)位。本設(shè)計采用后一種復(fù)位電路。電路如圖9中所示。當RST獲得高電平,隨著電容C3的充電,RST引腳的高電平將逐漸下降。若該高電平能保持足夠2個機器周期,就可以實現(xiàn)復(fù)位操作。選擇C3=10µF,R1=10K。綜上所述,單片機控制電路如圖9所示。圖9 單片機控制電路2.3輸入控制電路設(shè)計輸入控制電路由按鍵及其接口

17、構(gòu)成,鍵盤是單片機最簡單的輸入設(shè)備。常用鍵盤分為獨立式鍵盤和矩陣式鍵盤。本系統(tǒng)的輸入控制簡單,采用獨立式鍵盤及接口電路5。輸入電路由2個按鈕開關(guān)、2個10歐的限流電阻組成;鍵掃描識別采用軟件查詢的方法。電路如圖10所示,各鍵功能如表2所示。圖10 按鍵輸入控制電路表2 各鍵功能按鍵鍵名功能S1第一路溫度按鍵按下,LED數(shù)碼顯示管顯示第一路溫度。S2第二路溫度按鍵按下,LED數(shù)碼顯示管顯示第二路溫度。2.4顯示電路設(shè)計顯示電路采用LED數(shù)碼管顯示。LED數(shù)碼顯示管有靜態(tài)顯示方式和動態(tài)顯示方式,本系統(tǒng)采用串行輸出6的靜態(tài)顯示方式。利用4片串轉(zhuǎn)并芯片74LS164將控制器輸出的串行數(shù)據(jù)轉(zhuǎn)換成并行數(shù)據(jù)

18、輸出,用來驅(qū)動4位LED數(shù)碼顯示管顯示數(shù)據(jù)。2.4.1 LED數(shù)碼顯示管靜態(tài)顯示工作原理LED顯示器工作于靜態(tài)顯示方式時,各位的陰極(或陽極)選擇線連接在一起并接地(或+5V);每位的段碼線分別與1個8位的鎖存器輸出連接。各LED顯示某一字符時,相應(yīng)段的發(fā)光二極管恒定地導(dǎo)通或截止,直到送入另一個字符的段碼為止。靜態(tài)顯示可以得到較高的顯示亮度。靜態(tài)顯示有并行輸出和串行輸出兩種方式。并行輸出顯示的十進制位數(shù)多時,需要并行I/O接口芯片的數(shù)量較多。串行輸出可以大大節(jié)省單片機的內(nèi)部資源。2.4.2顯示電路結(jié)構(gòu)顯示電路由單片機AT89C51的P3.0端作數(shù)據(jù)輸出,連接到低位74LS164的數(shù)據(jù)輸入引腳端

19、,其余3片74LS164的數(shù)據(jù)輸入端分別接到它前面一位74LS164的數(shù)據(jù)輸出端的最高位引腳端。單片機AT89C51的P3.1、P1.4端分別接到一個與門電路的輸入端,與門電路的輸出端分別與每片74LS164的輸出允許控制端相連接。每片74LS164的輸出端分別連接到一個數(shù)碼顯示管。顯示電路結(jié)構(gòu)圖如圖11所示。圖11 顯示電路圖2.4.3顯示電路工作過程AT89C51單片機工作在串行口方式0下(移位寄存器方式),P3.0(RXD)為數(shù)據(jù)輸出端,P3.1(TXD)為移位脈沖輸出端,P1.4為74LS164允許輸出控制端。串行口發(fā)送緩沖區(qū)的數(shù)據(jù)在移位脈沖的作用下,一位一位地從P3.0口移入到74L

20、S164中,并在控制信號的控制作用下,通過LED數(shù)碼顯示管顯示。2.5報警控制電路設(shè)計報警控制電路采用壓電式蜂鳴器作發(fā)聲體,用三極管對蜂鳴器發(fā)聲進行控制。報警控制電路結(jié)構(gòu)報警控制電路由單片機AT89C51的P3.7端作輸出,通過一個限流電阻與三極管C945的基極相連接。三極管C945集電極連接壓電蜂鳴器(BUZZER)的一端。壓電蜂鳴器的另一端連接電源。報警控制電路如圖12所示。圖12 報警工作電路2.5.2報警控制電路工作過程(1)壓電蜂鳴器工作原理壓電蜂鳴器以壓電陶瓷制作而成。壓電陶瓷是一類有將壓力與電流相互轉(zhuǎn)換能力的特殊陶瓷。當壓電陶瓷在一定方向上受到一個壓力使其晶體結(jié)構(gòu)發(fā)生形變時,它就

21、會在內(nèi)部產(chǎn)生一個電流,電流的變化與壓力的變化密切相關(guān)。反之,當在壓電陶瓷上加上一定頻率的電壓,就會在內(nèi)部產(chǎn)生一定頻率的電流,從而就會引起壓電陶瓷微小形變,這一形變帶動空氣發(fā)生振動。如果頻率適當,就產(chǎn)生蜂鳴聲,可以被人耳所聽見。(2)報警控制電路工作過程報警控制信號由單片機AT89C51的P3.7端輸出,通過一個限流電阻加到三極管C945的基極。當P3.7端的輸出信號發(fā)生變化時,則三極管C945將交替的工作于截止、飽和狀態(tài),形成高低電平的波,從而使壓電蜂鳴器發(fā)出聲音。2.6電源電路設(shè)計電源電路7由變壓器、單相橋式整流電路、濾波電路和三端穩(wěn)壓電路構(gòu)成。其電路圖如圖13所示,圖中“output”端輸

22、出為+5V。圖13 電源電路電子設(shè)備中常使用輸出電壓固定的集成穩(wěn)壓器。三端式穩(wěn)壓器只有輸入、輸出和公共引出端,由啟動電路、基準電壓電路、取樣比較放大電路、調(diào)整電路和保護電路等部分組成。在本系統(tǒng)中,要求電源電壓為+5V,由于三端式穩(wěn)壓器輸出電壓固定,故在設(shè)計中選擇三端式穩(wěn)壓器L7805。三端式穩(wěn)壓器的輸入與輸出之間電壓差為23V,整流橋的輸出電壓是輸入電壓(有效值)的1.2倍,根據(jù)有效值與峰-峰值的關(guān)系選擇220V/6V的變壓器。由于L7805的最大輸出電流為1A,電壓為穩(wěn)定的+5V,輸出功率為5W,加上三端式穩(wěn)壓器L7805的消耗,故本系統(tǒng)選擇降壓比為220V/6V、功率為10W的變壓器。圖1

23、3中C4、C5為低頻濾波電容,根據(jù)經(jīng)驗選擇電解電容,其容值分別為C4=220F、C5=47F;C6、C7為高頻濾波電容,均選0.1F的無極性電容。發(fā)光二極管用于指示電源是否接通,選擇FG1112004 發(fā)光二極管,根據(jù)FG1112004正向電流為5mA及管壓降為+2V,選擇限流電阻R5= 680。2.7數(shù)字式多路溫度采集系統(tǒng)元件清單數(shù)字式多路溫度采集系統(tǒng)元件清單,見附錄(1)。2.8數(shù)字式多路溫度采集系統(tǒng)電路圖數(shù)字式多路溫度采集系統(tǒng)原理圖,見附錄(2)(圖14)數(shù)字式多路溫度采集系統(tǒng)印刷電路板圖,見附錄(3)(圖15)3數(shù)字式多路溫度采集系統(tǒng)程序設(shè)計3.1主程序設(shè)計主程序8主要功能是控制調(diào)用子

24、程序,實現(xiàn)溫度的實時顯示、讀出并處理DS18B20的測量溫度值(溫度測量每1s進行一次)。其程序流程圖如圖16所示。調(diào)用顯示子程序1s到?初次上電?讀出溫度值溫度計算處理顯示數(shù)據(jù)刷新發(fā)出溫度轉(zhuǎn)換開始命令NYYN初始化發(fā)出報警YN溫度超過報警值?調(diào)用鍵盤掃描子程序圖16 數(shù)字式多路溫度采集系統(tǒng)主程序流程圖3.2子程序設(shè)計 DS18B20的通信協(xié)議根據(jù)DS18B20的通訊協(xié)議7,主機(單片機AT98C51)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過三個步驟:每一次讀寫之前都要對DS18B20進行初始化操作,初始化成功后發(fā)送一條存儲器操作命令(ROM指令),最后處理數(shù)據(jù)(發(fā)送RAM指令),這樣才能對DS

25、18B20進行預(yù)定的操作。所用各ROM、RAM操作指令分別如表3、表4所示。表3 ROM指令表指令約定代碼功能讀ROM33H讀DS18B20溫度傳感器ROM中的編碼(即64位地址)符合ROM55H發(fā)出此命令之后,接著發(fā)出64位ROM編碼,訪問單總線上與該編碼相對應(yīng)的DS18B20使之做出響應(yīng),為下一步對該DS18B20的讀寫做準備.搜索ROM0F0H用于確定掛接在同一總線上DS18B20的個數(shù)和識別64位ROM地址。為操作各器件作好準備。跳過ROM0CCH忽略64位ROM地址,直接向DS18B20發(fā)溫度變換命令。適用于單片工作。告警搜索命令0ECH執(zhí)行后溫度超過設(shè)定值上限或下限的片子才能做出響

26、應(yīng)。表4 RAM指令表指令約定代碼功能溫度轉(zhuǎn)換44H啟動DS18B20進行溫度轉(zhuǎn)換,12位轉(zhuǎn)換時最長為750ms(9位為93.75ms)。結(jié)果存入內(nèi)部9字節(jié)RAM中。讀暫存器0BEH讀內(nèi)部RAM中9字節(jié)的內(nèi)容。寫暫存器4EH發(fā)出向內(nèi)部RAM的3、4字節(jié)寫上、下限溫度數(shù)據(jù)命令,緊跟該命令之后,是傳送兩字節(jié)的數(shù)據(jù)。3.2.2子程序(1)鍵盤掃描子程序鍵盤掃描子程序?qū)Π聪碌逆I進行判斷,并轉(zhuǎn)到按下的相應(yīng)鍵對應(yīng)的程序段,執(zhí)行相應(yīng)的功能。其程序流程圖如圖17所示。(2)溫度轉(zhuǎn)換命令子程序溫度轉(zhuǎn)換命令子程序主要是發(fā)送溫度轉(zhuǎn)換開始命令。在發(fā)送匹配ROM命令后,緊跟著發(fā)送要進行測溫的DS18B20的64位ROM

27、序列(這個序列號一般由廠方提供或通過實驗的方式獲得)。采用12位分辨率,轉(zhuǎn)換時間約為750ms。其程序流程圖如圖18所示。確定鍵號有鍵按下?開始Y轉(zhuǎn)至相應(yīng)的程序,執(zhí)行相應(yīng)的功能N其它子程序 發(fā)DS18B20復(fù)位命令命令匹配ROM、64位地址發(fā)溫度轉(zhuǎn)換開始命令結(jié)束圖17 鍵盤掃描子程序流程圖 圖18 溫度轉(zhuǎn)換命令子程序流程圖(3)讀出溫度子程序讀出溫度子程序主要功能是讀出RAM中的9個字節(jié),在讀出時需進行CRC校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫。其程序流程圖如圖19所示。(4)計算溫度子程序從DS18B20讀取出的二進制值必須先轉(zhuǎn)換成十進制值,才能用于字符的顯示。在系統(tǒng)采用12位轉(zhuǎn)換精度,溫度

28、寄存器里的值是以0.0625為步進的,即溫度值為溫度寄存器里的二進制值乘以0.0625,就是實際的十進制溫度值。通過觀察可以發(fā)現(xiàn)一個十進制值和二進制值之間有很明顯的關(guān)系。低字節(jié)的高半字節(jié)乘以0.0625恰好就是原整數(shù)。因此,把二進制的高字節(jié)的低半字節(jié)和低字節(jié)的高半字節(jié)組成一個字節(jié),這個字節(jié)的二進制值化為十進制值后,就恰好是溫度值的百、十、個位值;剩下的低字節(jié)的低半字節(jié)化成十進制后,就是溫度值的小數(shù)部分。小數(shù)部分因為是半個字節(jié),所以二進制值范圍是0F,轉(zhuǎn)換成十進制小數(shù)值就是0.0625的倍數(shù)。這樣需要4位的數(shù)碼管來顯示小數(shù)部分,實際應(yīng)用不必有這么高的精度,采用1位數(shù)碼管來顯示小數(shù),可以精確到0.

29、1。表5就是二進制和十進制小數(shù)的近似對應(yīng)關(guān)系。其程序流程圖如圖20所示。表5 小數(shù)部分二進制和十進制的近似對應(yīng)關(guān)系表小數(shù)部分二進制數(shù)0123456789ABCDEF十進制數(shù)0011233455667889發(fā)DS18B20復(fù)位命令命令發(fā)匹配ROM、64位地址移入溫度暫存區(qū)發(fā)讀取溫度命令讀取RAM中的9個字節(jié)9字節(jié)完?結(jié)束YNYNCRC校驗正確? 置“+”標志計算小數(shù)位溫度BCD值計算整數(shù)位溫度BCD值溫度值取補碼置“”標志溫度零下?結(jié)束YN開始圖19 讀出溫度子程序流程圖 圖20 計算溫度子程序流程圖(5)顯示數(shù)據(jù)刷新子程序顯示數(shù)據(jù)刷新子程序9主要是對顯示緩沖區(qū)中的顯示數(shù)據(jù)進行刷新操作,當最高顯

30、示位為0時將符號顯示位移入下一位。其程序流程圖如圖21所示。十位數(shù)顯示符號,百位數(shù)不顯示十位數(shù)0?結(jié)束YN溫度數(shù)據(jù)移入顯示寄存器百位數(shù)0?百位數(shù)顯示數(shù)據(jù)(不顯示符號)YN 結(jié)束N設(shè)定最高溫度報警值設(shè)定值小于顯示緩沖區(qū)的值?Y發(fā)出報警圖21 顯示數(shù)據(jù)刷新子程序流程圖 圖22 報警控制子程序流程圖(6)報警控制子程序當設(shè)定的最高報警溫度值大于顯示緩沖區(qū)中的數(shù)據(jù)時,發(fā)出報警,提示溫度超過設(shè)定的最大值。其程序流程圖如圖22所示。3.3數(shù)字式多路溫度采集系統(tǒng)控制源程序數(shù)字式多路溫度采集系統(tǒng)控制源程序,見附錄(4)。4系統(tǒng)調(diào)試及性能分析4.1系統(tǒng)調(diào)試系統(tǒng)調(diào)試分為硬件調(diào)試和軟件調(diào)試兩步。(1)硬件調(diào)試硬件調(diào)

31、試比較簡單,首先檢查電路的焊接是否正確及電路中有沒有虛焊等問題,然后可用萬用表測試或通電檢測電路。(2)軟件調(diào)試軟件調(diào)試以程序為主。先編寫一段顯示程序?qū)τ布恼9ぷ鬟M行檢驗,然后進行主程序、匹配ROM子程序、讀出溫度子程序、溫度轉(zhuǎn)換命令子程序、計算溫度子程序、顯示數(shù)據(jù)刷新子程序等的編程及調(diào)試。軟件調(diào)試到能顯示溫度值,而且在有溫度變化時(例如用手去接觸)顯示溫度能夠改變就基本完成軟件調(diào)試。由于DS18B20與單片機采用單線串行數(shù)據(jù)傳送,因此,對DS18B20進行讀寫編程時必須嚴格地保證讀寫時序,否則將無法讀取測量結(jié)果。4.2系統(tǒng)性能分析用制作的測溫系統(tǒng)和已有的成品溫度計(如水銀溫度計)來同時測

32、量環(huán)境溫度,并對測量的結(jié)果進行比較分析。由比較分析及DS18B20的特點可得,用本系統(tǒng)進行測溫時,精度很高,誤差指標可以限制在0.1以內(nèi);另外在-55+125的測溫范圍內(nèi)使得該系統(tǒng)完全適合一般的應(yīng)用場合。 5結(jié)束語數(shù)字式多路溫度采集系統(tǒng)具有溫度采集、顯示、簡單的人機對話及報警功能。它的測溫范圍寬(-55+125),測量精度可通過編程調(diào)節(jié),最高精度可達到0.0625/LSB。本系統(tǒng)主要是適用于采集顯示溫度,不具備控制調(diào)節(jié)溫度功能。但能夠進行硬件和軟件功能擴展。在硬件擴展后,通過軟件編程實現(xiàn)控制功能擴展。例如當環(huán)境溫度達到一定值時,通過軟件編程進行判斷,從主控制器的一個I/O端口輸出一個控制指令,

33、去驅(qū)動外部的控制電路工作,從而調(diào)節(jié)環(huán)境溫度,使環(huán)境溫度達到人們所需的要求。因此在人們健康意識日益提高的今天有很好的市場推廣前景。參考文獻1 李光飛單片機課程設(shè)計實例指導(dǎo)M北京:北京航空航天大學出版社,2004:105-1062 余永權(quán)ATMEL系列單片機應(yīng)用技術(shù)M北京:北京航空航天大學出版社,2002:25-263 張毅剛單片機原理及應(yīng)用M北京:高等教育出版社,2004:31-334 李玉峰MCS-51系列單片機原理與接口技術(shù)M北京:人民郵電出版社,2004:26-275 陳明熒8051單片機課程設(shè)計實訓教材M北京:清華大學出版社,2004:28-306 李全利單片計原理及接口技術(shù)M北京:高等

34、教育出版社,2004:117-1497 康華光電子技術(shù)基礎(chǔ)(模擬部分)M北京:高等教育出版社,1999:444、446、4558 周航慈單片機程序設(shè)計基礎(chǔ)M北京:北京航空航天大學出版社,20039 胡健單片機原理及接口技術(shù)實踐教程M北京:機械工業(yè)出版社,2004致謝經(jīng)過幾個月的努力,在指導(dǎo)教師劉道興副教授及同學的幫助下,順利完成了畢業(yè)設(shè)計。畢業(yè)設(shè)計是對大學四年所學知識的綜合運用,也是理論走向?qū)嵺`的第一步。在此設(shè)計過程中,擴展了知識面,增強了獨立思考和自學的能力,為以后走向工作崗位奠定了基礎(chǔ)。在此首先感謝母校內(nèi)江師范學院的辛勤培育之恩;其次,感謝物理學與電子信息工程系給我提供了很好的設(shè)計環(huán)境,使

35、我的設(shè)計得以順利的進行。最后,感謝設(shè)計指導(dǎo)老師劉道興副教授,在題目選定、總體方案確立、資料收集與提供等方面給予了悉心指導(dǎo)和大力幫助,并對本系統(tǒng)的論文多次進行認真審閱、批注,提供了許多寶貴的修改意見。另外我還得到了同班同學的支持和鼓勵,對這些同學表示誠摯的謝意,也對參考書的作者表示感謝。附錄附錄(1)數(shù)字式多路溫度采集系統(tǒng)元件清單編號元件名稱型號及規(guī)格數(shù)量1單片機芯片AT89C5112感溫元件DS18B2023七段數(shù)碼顯示器LED44串轉(zhuǎn)并芯片74LS16445晶振12MH16按鍵-37三極管C94518壓電蜂鳴器-19整流二極管1N4007410發(fā)光二極管FG1112004111電阻10212

36、電阻100113電阻680114電阻4.7115電阻10K116電容0.1F217電容30 pF218電容47F/50V119電容100F/50V120電容220F/50V121與門74LS081附錄(2)數(shù)字式多路溫度采集系統(tǒng)原理圖圖14 數(shù)字式多路溫度采集系統(tǒng)原理圖附錄(3)數(shù)字式多路溫度采集系統(tǒng)印刷電路板圖圖15 數(shù)字式多路溫度采集系統(tǒng)印刷電路板圖附錄(4)數(shù)字式多路溫度采集系統(tǒng)控制源程序;*;*;采用4位LED共陽顯示器顯示測溫值。;顯示精度為0.1度、測溫范圍-55125度。;用AT89C51單片機、12Mz晶振。;*;*;工作內(nèi)存區(qū)定義。BITS EQU 20HTIMEOK BIT

37、 BITS.1 ;1秒定時到標志。TEMPON BIT BITS.2 ;第一次溫度轉(zhuǎn)換標志。TEMPL EQU 26H ;從DS18B20中讀取溫度低位的存放處。TEMPH EQU 27H ;從DS18B20中讀取溫度高位的存放處。TEMPCL EQU 28H ;轉(zhuǎn)換后溫度的小數(shù)位與個位存放處。TEMPCH EQU 29H ;轉(zhuǎn)換后溫度的十位與百位存放處,如果溫度為負,則百位為符號位。TEMPHEAD EQU 36H ;從DS18B20高速緩存RAM中讀出數(shù)據(jù)的存放處的第一位。;*;常數(shù)定義。K0 EQU P2.0 ;按鍵K0定義。K1 EQU P2.1 ;按鍵K1定義。DQ EQU P1.7

38、 ;數(shù)據(jù)傳送腳定義。;*;多路溫度采集系統(tǒng)源程序。;*ORG 0000HLJMP STARTORG 000BHLJMP DVTO ;T0中斷入口地址。;*;系統(tǒng)初始化。 ORG 0030HSTART: MOV SP,#60H ;數(shù)據(jù)存儲區(qū)20H80H清“0”。CLS: MOV R0,#20H MOV R1,#60HCLS1: MOV R0,#00H INC R0 DJNZ R1,CLS1 CLR P1.4 ;關(guān)移位脈沖。 CLR P3.6 ;關(guān)閉報警器。 MOV TMOD,#21H ;選擇定時器0工作方式1; MOV TH0,#0E0H ;20ms定時初值。 MOV TL0,#0B1H MOV

39、 SCON,#00H ;選擇串行口工作方式0; NOP NOP SETB ET0 ;開定時器T0。計時開始。 SETB TR0 SETB EA MOV PSW,#00H CLR TEMPONE LJMP MAIN;*;主程序。MAIN: LCALL KEYBORD ;調(diào)用鍵盤掃描子程序。LOOP1: LCALL DISP ;調(diào)用顯示子程序。 JNB TIMEOK,LOOP1 ;測溫每1秒一次。 CLR TIMEOK JNB TEMPONE,LOOP2 ;上電時先溫度轉(zhuǎn)換一次。 LCALL READTEMP ;讀出溫度值子程序。 LCALL TEMPBCD ;溫度BCD碼計算處理子程序。 LCA

40、LL DISPBCD ;顯示區(qū)BCD碼溫度值刷新子程序。 LCALL ALARM ;最高溫度報警子程序。LOOP2: LCALL TEMPCONV ;溫度開始轉(zhuǎn)換子程序。 SETB TEMPONE SJMP MAIN;*;定時器T0中斷服子程序。DVT0: PUSH PSW MOV PSW,#10H MOV TH0,#0E0H MOV TL0,#0B1H INC R7 CJNZ R7,#32H,DVT01 MOV R7,#00H SETB TIMEOK ;1秒定時到標志。 DVT01: POP PSW RETI;*;鍵盤掃描子程序。KEYBORD: JB K0,L1 JNB K0,$ LCAL

41、L FUNCTION LJMP KEYBORD L1: JB K1,L2 JNB K1,$ LCALL FUNCTION1 LJMP KEYBORD L2: RETFUNCTION0: MOV 40H,#28H ;第一路DS18B20的64位序列號裝入存儲單元40H47H。 MOV 41H,#0D6H MOV 42H,#0B1H MOV 43H,#8AH MOV 44H,#00H MOV 45H,#00H MOV 46H,#00H MOV 47H,#0E3H RETFUNCTION0: MOV 40H,#28H ;第二路DS18B20的64位序列號裝入存儲單元40H47H。 MOV 41H,#

42、0D6H MOV 42H,#0B1H MOV 43H,#8AH MOV 44H,#00H MOV 45H,#00H MOV 46H,#01H MOV 47H,#0E3H RET;*;DS18B20復(fù)位子程序。RETET: SETB DQ NOP NOP CLR DQ MOV R6,#0A0H ;延時480us DJNZ R6,$ MOV R6,#0A0H DJNZ R6,$ SETB DQ MOV R6,#32H ;延時70us DJNZ R6,$ MOV R6,#3CHRESET1: MOV C,DQ JC RESET2 DJNZ R6,RESET1 MOV R6,#64H ;延時200us

43、 DJNZ R6,$ SJMP RESET RETRESET2: SETB DQ RET;*;讀DS18B20子程序,從DS18B20中讀出一個字節(jié)的數(shù)據(jù)。READ: MOV R7,#08H SETB DQ NOP NOPREAD1: CLR DQ NOP NOP NOP SETB DQ MOV R6,#07H ;延時15us。 DJNZ R6,$ MOV C,DQ MOV R6,#3CH ;延時120us。 DJNZ R6,$ RRC A SETB DQ DJNZ R7,READ1 MOV R6,#3CH ;延時120us。 DJNZ R6,$ RET;*;寫DS18B20子程序,給DS18

44、B20中寫入一個字節(jié)的數(shù)據(jù)。WRITE: MOV R7,#08H SETB DQ NOP NOPWRITE1: CLR DQ MOV R6,#07H ;延時15us。 DJNZ R6,$ RRC A MOV DQ,C MOV R6,#34H ;延時104us。 DJNZ R6,$ SETB DQ DJNZ R7,WRITE1 RET;*;溫度開始轉(zhuǎn)換子程序。TEMPCONV: LCALL RESET MOV A,#55H ;發(fā)送匹配ROM命令。 LCALL WRITE MOV R6,#34H ;延時104us。 DJNZ R6,$ MOV R7,#08H ;發(fā)送64位ROM編碼。 MOV R0

45、,#40HTEMPVONV1: MOV A,R0 LCALL WRITE INC R0 DJNZ R7,TEMPCONV1 ;64位ROM編碼發(fā)送完沒有? MOV R6,#34H ;延時104us。 DJNZ R6,$ MOV A,#44H ;發(fā)送啟動溫度轉(zhuǎn)換命令。 LCALL WRITE MOV R6,#34H ;延時104us。 DJNZ R6,$ RET;*;讀出溫度值子程序。READTEMP: LCALL RESET MOV A,#55H ;發(fā)送匹配ROM命令。 LCALL WRITE MOV R6,#34H ;延時104us。 DJNZ R6,$ MOV R7,#08H ;發(fā)送64位ROM編碼。 MOV

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論