




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上基于數(shù)字溫度計(jì)的多點(diǎn)溫度檢測系統(tǒng)目錄摘要 4整體框架 61 系統(tǒng)方案設(shè)計(jì)和論證 62 系統(tǒng)硬件設(shè)計(jì) 62.1單片機(jī)選擇 72.2 電源模塊 82.3 顯示模塊 92.4 溫度傳感器 103 單元電路的設(shè)計(jì) 113.1主控制模板 113.2 電源模塊 123.3顯示模塊 123.4 單片機(jī)的最小運(yùn)行系統(tǒng) 123.5 溫度傳感器的電路 133.6 蜂鳴器,發(fā)光二極管的電路 144 軟件設(shè)計(jì) 164.1 程序結(jié)構(gòu)分析 164.2 系統(tǒng)程序流程圖 164.3 DS18B20的初始化程序 184.4 讀溫度子程序流程圖 184.5 顯示模塊軟件設(shè)計(jì) 194.6 報(bào)警控制電路軟件
2、設(shè)計(jì) 204.7 多路數(shù)據(jù)巡回顯示 215 整機(jī)制作和調(diào)試 215.1 元器件焊接 225.2 整機(jī)調(diào)試 226.總結(jié) 22參考資料 23結(jié)束語 24附錄1 部分子程序 25摘要:智能是新時(shí)代的發(fā)明,是人類信息時(shí)代發(fā)展的美好前景,人們可以給它設(shè)定一個(gè)模式,然后在某個(gè)環(huán)境中按照給定的模式自己既能夠運(yùn)作,根本不需要人們花時(shí)間去管理它,監(jiān)控它,能夠應(yīng)用在家具,科學(xué)探險(xiǎn)等方面。多路的溫度檢測只是其中一個(gè)很小方面的體現(xiàn),本次設(shè)計(jì)的項(xiàng)目是基于數(shù)字溫度計(jì)的多點(diǎn)溫度檢測系統(tǒng),選擇使用AT89C51的單片機(jī)作為微控制器,而設(shè)計(jì)出來的一種2路高低溫智能檢測溫度的報(bào)警系統(tǒng)裝置,系統(tǒng)檢測溫度的精確度能達(dá)到0.1度。D
3、S18B20溫度傳感器對(duì)環(huán)境進(jìn)行檢測得到一個(gè)確定的溫度數(shù)值,如果檢測到的溫度高于或低于最開始程序中就設(shè)定好的溫度值時(shí),蜂鳴器就會(huì)報(bào)警,提醒人們注意安全防范,做好應(yīng)對(duì)措施,并且會(huì)將得到的數(shù)據(jù)保存在單片機(jī)的內(nèi)部存儲(chǔ)中,就算是沒電的情況下也能將數(shù)據(jù)保存下來,不會(huì)造成數(shù)據(jù)的丟失,給人們的統(tǒng)計(jì)造成困擾。在通電時(shí),系統(tǒng)就會(huì)開始工作,1602的液晶顯示屏?xí)r刻顯示其工作狀態(tài)。我們選擇的是5節(jié)與3號(hào)干電池來供電。Abstract: intelligent is the invention of the new era, is the information age development prospects,
4、it will be in accord with the began to set a good model in an environment independent operations, it donot need people management, and can be used in scientific explorations, and so on. 2 temperature detection system is a manifestation, temperature detection system in the design of the is used AT89C
5、51 single-chip computer as the micro controller, and design a 2 road detection . And it has the function of no electric power saving, and the data is stored in the internal memory of the single chip microcomputer. When in working condition, it is displayed on the LCD screen of 1602. Power we use 3 a
6、nd 5 dry batteries to power.關(guān)鍵詞:AT89C51單片機(jī) DS18B20溫度傳感器 1602顯示液晶整體的框架設(shè)計(jì)1 設(shè)計(jì)方案與論證根據(jù)市面價(jià)格的比較,我優(yōu)先采用AT89C51系列的單片機(jī)作為控制的單元,因?yàn)榇祟愋蛦纹瑱C(jī)在市場上價(jià)格這方面比較的便宜,還有是其具有比較強(qiáng)大的功能,與其他的單片機(jī)相比性價(jià)比還是很高的,而且在市場上或個(gè)體商戶店中都很容易買到,非常的方便,我們能夠省下了不少時(shí)間去做一些其他的事情。由DS18B20溫度傳感器對(duì)某環(huán)境進(jìn)行溫度信息的采集,然后將采集到的數(shù)據(jù)送入到主控的單片機(jī)中,由單片機(jī)完成余下的數(shù)據(jù)處理,從而能夠自己智能的管理自己。顯示器我選擇使
7、用1602LCD,本系統(tǒng)操作靈活,并且能實(shí)時(shí)顯示溫度傳感器的工作狀態(tài)。同時(shí)都記錄下來,選擇用軟件的方法來解決復(fù)雜的硬件電路部分,可以使系統(tǒng)硬件簡潔,易操作,有利于各方面的功能完美實(shí)現(xiàn),用于本項(xiàng)目足夠了。2 系統(tǒng)硬件的設(shè)計(jì)2.1 單片機(jī)選擇方案一:使用CPLD作為系統(tǒng)部件的核心,來處理和控制系統(tǒng)。因?yàn)镃PLD的程序容易編寫、運(yùn)轉(zhuǎn)的速度快、豐富的可用資源、開發(fā)的周期短等優(yōu)點(diǎn),也可以使用VHDL語言來進(jìn)行簡單的編程。與其它單片機(jī)相比,控制起來不方面。還有就是CPLD的對(duì)信息處理的速度非常快,而本項(xiàng)目對(duì)處理信息的要求并不是很高,夠用就行了。如果非要使用CPLD的話,在系統(tǒng)控制方面上必定會(huì)遇到
8、許多沒必要遇到的一些困難。所以,我們并不采用這種方案,進(jìn)而提出了第二種方案。方案二:整個(gè)系統(tǒng)部件的核心是51系列的單片機(jī),來達(dá)到本項(xiàng)目的檢測目的。經(jīng)過系統(tǒng)的分析之后,使用AT89C51單片機(jī)設(shè)計(jì)出一種智能的溫度檢測系統(tǒng),通過DS18B20的溫度傳感器得到一個(gè)溫度數(shù)值,當(dāng)此溫度小于或者大于程序中開始設(shè)定好的溫度值時(shí)蜂鳴器就會(huì)想起來報(bào)警,在這個(gè)方面上,單片機(jī)就能夠?qū)⑵淇旖?、方便、簡單,豐富的資源、控制功能好以及位尋址的操作功能、還有市場單價(jià)便宜等優(yōu)點(diǎn)充分體現(xiàn)出來。相對(duì)于此次項(xiàng)目的設(shè)計(jì)綽綽有余,更難的是51單片機(jī)在價(jià)格方面非常便宜,我們能夠話更少的錢實(shí)現(xiàn)相同的功能。2.2 電源模塊根據(jù)實(shí)際的業(yè)務(wù)需要
9、我們想出了以下幾種系統(tǒng)供電的方案。方案I:采用10V的蓄電池給系統(tǒng)供電。蓄電池的電流驅(qū)動(dòng)能力很強(qiáng)大,電壓輸出方面也非常的穩(wěn)定。不過蓄電池的體積太大,需要占用的地方也就多,同時(shí)市面上的價(jià)格也貴,不適合大學(xué)生用,蓄電池用在這種小設(shè)計(jì)中是不劃算的,也非常不方便。所以提出了第二種方案。方案2:采用3節(jié)1.5 V 的五號(hào)干電池串聯(lián)在一起來給系統(tǒng)供電,可以持續(xù)不間斷的給傳感器供電,并且保證總電壓在4.5V左右穩(wěn)定,而4.5V的電壓正好是單片機(jī)傳感器的工作電壓范圍中,方便使用和記錄。通過不斷的實(shí)驗(yàn)說明,這個(gè)系統(tǒng)用此方案能夠穩(wěn)定的運(yùn)行。更換電池方面也為大家?guī)砹朔奖?。通過兩種方案對(duì)比之后我們選擇了方案2。2.
10、3 顯示模塊方案1:使用數(shù)碼管。因?yàn)閿?shù)碼管能夠快速運(yùn)轉(zhuǎn),容易操作,顯示的結(jié)果簡單易懂從而被人們大量采用。由于顯示器要時(shí)刻顯示檢測的環(huán)境溫度。所以需要一個(gè)設(shè)置菜單,而數(shù)碼管的條件有限,有許多內(nèi)容無法顯示。方案 2:用1602LCD液晶顯示器來顯示溫度。由于LCD液晶具有內(nèi)容豐富,顯示快速、清晰、信息量大等多種優(yōu)點(diǎn),使人們的使用非常方便。1602LCD液晶用在此系統(tǒng)中顯示已經(jīng)夠用了,通過比較我們決定采用此方案。2.4 溫度傳感器方案一:使用鉑電阻非線性測溫的方法校正,因?yàn)闊崦綦娮璧母袦匦?yīng)會(huì)時(shí)刻隨著系統(tǒng)被測溫度的變化而不斷發(fā)生變化,然后再用橋式電路采集電壓或電流,再通過放大器將橋式電路采集到的信號(hào)
11、進(jìn)行一次放大,再通過AD轉(zhuǎn)換器的作用,這樣就能夠?qū)⒈粰z測到的溫度通過顯示電路清晰地顯示在LCD液晶上。圖1鉑電阻的橋式測溫電路圖方案二:使用DS18B20數(shù)字溫度傳感器來檢測溫度,在與固定好的單片機(jī)的電路連接在一起,這樣就能獲取溫度傳感器檢測的環(huán)境溫度了,然后進(jìn)行轉(zhuǎn)換,從而達(dá)到此次項(xiàng)目設(shè)計(jì)的目的。圖2 DS18B20的測溫系統(tǒng)圖兩種方案的比較:第一種是靠模擬溫度傳感器來采集溫度值,用過這種方式得到的數(shù)據(jù),在信息處理上比較麻煩,并且很容易造成信號(hào)的失真. 然而DS18B20就不會(huì)存在這種麻煩,它能夠直接將被測溫度轉(zhuǎn)換成簡單的數(shù)字信號(hào),然后在液晶顯示器上顯示出來,第二種方案的的優(yōu)點(diǎn)是低功率的消耗、
12、高性能、非常強(qiáng)的抗干擾的能力。通過比較以上兩種考慮方案,不難看出容易實(shí)現(xiàn)的軟件設(shè)計(jì),電路簡單的第二種方案更為適合,所以我們用第二種方案。設(shè)計(jì)框圖如下所示。AT89C51CPUDS18B20溫度芯片1602顯示報(bào)警電路電源溫度計(jì)總體設(shè)計(jì)圖DS18B20是Dallas旗下公司生產(chǎn)的一款一線式數(shù)字溫度傳感器,具有低功耗、微型化、抗干擾能力強(qiáng)等優(yōu)點(diǎn),多用于溫度測控系統(tǒng)方面,DS18B20可以直接將溫度轉(zhuǎn)化為串行數(shù)字信號(hào)(9位二進(jìn)制數(shù))交給單片機(jī)自己去處理,并且一個(gè)總線上還能夠接幾個(gè)溫度傳感器芯片,還具有三引腳TO-92小體積的封裝模式,檢測的最低溫度為55,檢測的最高溫度為125,具有912位的A/D
13、轉(zhuǎn)換精度,精確度可達(dá)0.1,被檢測到的溫度是用符號(hào)擴(kuò)展的數(shù)字量的方式來串行輸出,將多個(gè)DS18B20同時(shí)并聯(lián)在一起,而CPU用一個(gè)端口線就可以和多個(gè)DS18B20連接通信,這種連接方式占用的端口不僅少,還可以節(jié)省不少的引線,多少省了一點(diǎn)錢,還有一些邏輯電路也不用連接了,簡單化了硬件電路。所以DS18B20溫度傳感器在遠(yuǎn)程溫度檢測中被經(jīng)常使用。圖4 DS18B20的溫度芯片3 設(shè)計(jì)電路單元3.1 主控制模塊主控制模塊的最小系統(tǒng)電路圖如下所示。3.2 電源模塊我們使用了3節(jié)1.5 V 的五號(hào)干電池串聯(lián)給系統(tǒng)供電。3.3 顯示模塊顯示模塊是用1602的液晶,電路接口如下圖7所示圖 73.4
14、 單片機(jī)的最小運(yùn)行系統(tǒng)(1)晶振單片機(jī)由晶振提供時(shí)鐘信號(hào)。單片機(jī)的XIAL1接一個(gè)30PF的電容,XIAL2也接一個(gè)30PF的電容,XIAL1和XIAL2間并聯(lián)一個(gè)12MHZ晶振,單片機(jī)的晶振電路就這樣形成了。如下圖所示:圖8 晶振的電路圖(2)復(fù)位電路單片機(jī)的啟動(dòng)大都需要用到一個(gè)操作-復(fù)位操作,這樣CPU和系統(tǒng)的每個(gè)部位都處于一個(gè)確定的初始狀態(tài)下,并且都是從初始態(tài)開始工作的。51系列的單片機(jī)都是從RST的引腳開始將復(fù)位信號(hào)不斷地輸入到芯片內(nèi)部的施密特觸發(fā)器中。正常工作狀態(tài)下的系統(tǒng),在振蕩器穩(wěn)定后,在RST的引腳上接一個(gè)高電平如果能夠同時(shí)維持2個(gè)機(jī)器周期(就是24個(gè)振蕩周期)或者以上
15、的運(yùn)轉(zhuǎn),那么該CPU就會(huì)響應(yīng)同時(shí)會(huì)復(fù)位系統(tǒng)。單片機(jī)復(fù)位有兩種方式:手動(dòng)按鈕復(fù)位和上電復(fù)位方式。ALE的引腳懸空,復(fù)位的引腳接到復(fù)位電路上、VCC接上電源、VSS接地、EA接電源3.5 DS18B20溫度傳感器的電路(1) DS18B20的介紹DS18B20是由美國DALLAS公司推出的一款第一片“一線總線”接口式的溫度傳感器,具有低功耗、微型化、高性能、抗干擾的能力強(qiáng)、微處理器很容易配置等優(yōu)點(diǎn),把檢測的溫度值直接轉(zhuǎn)換為串行數(shù)字信號(hào)交給處理器進(jìn)行處理。DS18B20溫度傳感器在溫度轉(zhuǎn)換方面非常精準(zhǔn),不同的是,在開始轉(zhuǎn)換溫度時(shí),I/O線上就必須保證處理器上時(shí)刻有充足的能量運(yùn)轉(zhuǎn),單個(gè)DS18B20工
16、作的電流能夠達(dá)到1mA在溫度轉(zhuǎn)換時(shí),當(dāng)在一根I/O線上串聯(lián)幾個(gè)溫度傳感器進(jìn)行溫度檢測的時(shí)候,如果單單靠4.7K的上拉電阻來維持能量,則不能滿足處理器所需要的能量,這樣的話就會(huì)造成被測溫度的值無法轉(zhuǎn)換為易懂的數(shù)字信號(hào)或者轉(zhuǎn)換之后的溫度變大和變小。所以只用單一的溫度傳感器去檢測溫度,使用電池供電的時(shí)候系統(tǒng)的操作不是很好使。工作狀態(tài)下電壓必須維持在5V左右系統(tǒng)才能正常運(yùn)轉(zhuǎn),寄生的電源所能汲取到的能量會(huì)隨著電源的電壓的變化而變化,電源電壓當(dāng)下降時(shí)能量也在持續(xù)的減少,這樣檢測的溫度值不準(zhǔn)確,會(huì)有比較大的誤差產(chǎn)生。圖10 溫度傳感器電路引腳圖(2) DS18B20的控制方法DS18B20有六條控制命令:溫
17、度轉(zhuǎn)換 44H 啟動(dòng)DS18B20進(jìn)行溫度轉(zhuǎn)換讀暫存器 BEH 讀暫存器9個(gè)字節(jié)二進(jìn)制數(shù)寫暫存器 4EH 將數(shù)據(jù)寫入暫存器的TH、TL字節(jié)復(fù)制暫存器 48H 將暫存器的TH、TL字節(jié)全部寫入E2RAM中重新調(diào)節(jié) E2RAM 和B8H 把E2RAM中的TH、TL字節(jié)寫入暫存器TH、TL字節(jié)讀電源供電方式 B4H 啟動(dòng)DS18B20發(fā)送的電源供電方式信號(hào)發(fā)送到主CPU(3) DS18B20供電的方式DS18B20的供電方式有以下兩種,一種是采用電源供電,DS18B20 的1引腳接地,2引腳為信號(hào)線,3引腳接電源。另一種是使用寄生電源,必須保證在有效的時(shí)鐘周期內(nèi)DS18B20傳感器上具有充足的電流,
18、系統(tǒng)總線通常使用一個(gè)三極管來進(jìn)行上拉復(fù)位。本設(shè)計(jì)采用第一種方案, 為了保證DS18B20在有效的時(shí)鐘周期內(nèi)具有充足的電流,DS18B20的P2.3接口和AT89C51的P2.3接口單線總線用一個(gè)上拉電阻來上拉,需要兩者來共同完成。寫存儲(chǔ)器和溫度A/D轉(zhuǎn)換在總線上拉的時(shí)候需要同時(shí)進(jìn)行,所以這時(shí)總線上必須有一個(gè)強(qiáng)力的上拉,這個(gè)時(shí)間不能超過最大上拉時(shí)間10 s。而寄生電源的VDD和GND都是采用接地的方式來為系統(tǒng)供電。所有的單線接口的發(fā)送和接收都必須滿足三狀態(tài),因?yàn)閱尉€制下一根線只能連接一個(gè)接口,主機(jī)控制的DS18B20溫度傳感器想要完成溫度轉(zhuǎn)換就必須要遵守3個(gè)步驟:* 初始化。* ROM
19、的命令緊跟著需要交換的數(shù)據(jù)。* 功能指令隨著需要交換的數(shù)據(jù)。只有遵守了以上3個(gè)規(guī)則才可以訪問DS18B20,都是其中任何一項(xiàng)或順序錯(cuò)誤,DS18B20就不會(huì)有主機(jī)響應(yīng)(這兩個(gè)命令Search ROM 和Alarm Search之后,主機(jī)都會(huì)返回第一步)。1初始化:系統(tǒng)數(shù)據(jù)的交換都是從一個(gè)初始化序列開始的。是由DS18B20發(fā)的應(yīng)答脈沖與主機(jī)所發(fā)出的復(fù)位脈沖兩者所構(gòu)成的。當(dāng)DS18B20發(fā)出了響應(yīng)主機(jī)發(fā)出的應(yīng)答脈沖時(shí),表明主機(jī)已經(jīng)在總線上做好準(zhǔn)備了并且隨時(shí)可以工作。2. ROM命令:通過每個(gè)器件的64-bit ROM碼,使主機(jī)完成指定的某一特定的器件來實(shí)現(xiàn)通信。3. 功能命令:對(duì)DS18B20進(jìn)
20、行讀和寫Scratchpad存儲(chǔ)器是由主機(jī)通過其功能命令來實(shí)現(xiàn),或者開啟溫度的轉(zhuǎn)換。3.6 蜂鳴器與發(fā)光二極管的報(bào)警電路圖11 蜂鳴器、發(fā)光二極管驅(qū)動(dòng)引腳圖4.系統(tǒng)軟件設(shè)計(jì)4.1 分析程序結(jié)構(gòu)主程序只能調(diào)用3個(gè)子程序,分別是:處理溫度信號(hào)的程序、數(shù)碼管的顯示程序、以及報(bào)警的溫度程序。處理溫度信號(hào)的程序:先通過對(duì)單片機(jī)傳感器傳來的數(shù)據(jù)信息進(jìn)行相關(guān)的處理,觀察相關(guān)的數(shù)據(jù)顯示情況,然后做一些科學(xué)的判斷。數(shù)碼管的顯示程序:是向數(shù)碼管液晶顯示屏送去數(shù)字信號(hào),能夠在液晶上充分顯示數(shù)據(jù)。設(shè)定的按鍵程序:可以設(shè)定低溫報(bào)警和高溫報(bào)警兩種方式。4.2 系統(tǒng)程序流圖主程序能夠每時(shí)每秒不停地顯示被檢測到的溫度,能夠快
21、速的讀出和處理DS18B20所監(jiān)測到的數(shù)據(jù),每1s都會(huì)進(jìn)行一次數(shù)據(jù)的更新。這樣每一秒就能得到一個(gè)檢測的新溫度,然后與設(shè)定的報(bào)警高低溫相比較,如圖11所示。要把已存入到內(nèi)存儲(chǔ)中的整數(shù)和小數(shù)部分開需要調(diào)用讀溫度的子程序,然后將這兩部分存放在兩個(gè)單元中,然后將溫度在液晶顯示器上顯示可供人們讀取數(shù)據(jù),這就需要調(diào)用顯示子程序調(diào)用顯示子程序初始化1s到?初次上電發(fā)出溫度轉(zhuǎn)換開始命令讀出溫度值再計(jì)算處理數(shù)據(jù)顯示刷新調(diào)用顯示子程序初始化1s到?初次上電發(fā)溫度轉(zhuǎn)換開始命令讀出溫度值溫度計(jì)算處理顯示數(shù)據(jù)刷新4.3 DS18B20初始化的程序流程圖在系統(tǒng)工作之前需要進(jìn)行一次復(fù)位操作,流程圖如下圖所示:發(fā)出復(fù)位命令發(fā)
22、出跳過ROM命令初始化成功完成圖11 初始化程序流程圖4.4 讀溫度子程序的流程圖將DS18B20中的溫度值讀取出來需要調(diào)用讀溫度子程序,并將溫度保存到溫度暫存器中。程序如下圖:復(fù)位命令跳過ROM命令讀取溫度命令存在溫度暫存器完成圖12 溫度子程序的流程圖4.5 顯示模塊的軟件設(shè)計(jì)本項(xiàng)目采用1602LCD液晶顯示器顯示溫度,顯示的流程圖如13顯示子程序?qū)懢彌_單元以及循的環(huán)次數(shù)送顯示程序循環(huán)結(jié)束NY返回圖13 顯示子程序的流程圖4.6 報(bào)警控制電路軟件設(shè)計(jì)當(dāng)數(shù)字信號(hào)大于程序中開始設(shè)定好的高低溫時(shí),如果P2.4輸出為“0”的低電平信號(hào)1,這時(shí)候晶體管將導(dǎo)通,同時(shí)蜂鳴器會(huì)報(bào)警發(fā)聲,因?yàn)殡妷哼_(dá)到了+5
23、V;如果P2.4輸出為“1”的高電平信號(hào)時(shí),那么三極管將會(huì)截止,蜂鳴器就會(huì)停止報(bào)警發(fā)聲。報(bào)警流程如下結(jié)束N顯示值超出設(shè)定的報(bào)警值?Y發(fā)聲報(bào)警設(shè)定溫度報(bào)警值圖14 報(bào)警子程序的流程圖4.7 多路數(shù)據(jù)巡回顯示開始是否為掃描模式?顯示通道及對(duì)應(yīng)通道轉(zhuǎn)換值NY顯示通道0及其轉(zhuǎn)換值掃描時(shí)間間隔是否到?NY通道號(hào)+1通道號(hào)是否>7?YN顯示對(duì)應(yīng)通道及其轉(zhuǎn)換值判斷是否為掃描模式?YN圖15 多路巡回顯示功能流程圖如果為顯示模式時(shí)下工作時(shí),那么通道的采集值要與1602LCD液晶顯示器所選擇通道的通道號(hào)對(duì)應(yīng)。若為顯示模式下工作,那么其通道的采集值將于循環(huán)顯示的2路通道的通道號(hào)相對(duì)應(yīng)。獨(dú)立的鍵盤操作會(huì)完成通
24、道號(hào)的選擇與模式的切換。5. 整機(jī)的調(diào)試1、測試環(huán)境與工具測試溫度:0100攝氏度。測試方法:目測。2、測試方法使系統(tǒng)運(yùn)行,觀察系統(tǒng)硬件檢測是否正常(包括單片機(jī)最小系統(tǒng),鍵盤電路,顯示電路,溫度測試電路等)。系統(tǒng)自帶測試表格數(shù)據(jù),觀察顯示數(shù)據(jù)是否相符合即可。3、測試結(jié)果分析自檢正常,溫度顯示正常,傳輸數(shù)據(jù)正確。6. 結(jié)論實(shí)現(xiàn)的項(xiàng)目功能:可以設(shè)置高溫報(bào)警時(shí)的溫度和低溫報(bào)警是的溫度,設(shè)定的溫度能夠精確到0.1,溫度的按鍵調(diào)節(jié)按3次還具有連加、連減得功能。同時(shí)具有在沒有通電的情況下也能保存數(shù)據(jù)的功能,保存的數(shù)據(jù)會(huì)在單片機(jī)內(nèi)部的EEPOM中一直存儲(chǔ)這,使用LCD1602液晶顯示的能夠很直觀的看到實(shí)際所
25、測的溫度和設(shè)定的高、低報(bào)警溫度。當(dāng)溫度超過或低于設(shè)定好的溫度時(shí),蜂鳴器就會(huì)發(fā)生報(bào)警,起到預(yù)防的作用。參考資料5張曉琴主編數(shù)字電子技術(shù)及項(xiàng)目訓(xùn)練西南交通大學(xué)出版社 20106黃士生主編.模擬電子技術(shù).北京:中國勞動(dòng)社會(huì)保障出版社,20067肖前軍主編電子整機(jī)設(shè)計(jì)與制作西南交通大學(xué)出版社 20106 結(jié)束語經(jīng)過幾個(gè)月的不斷學(xué)習(xí)和努力,在孫老師的細(xì)心指導(dǎo)下,基于DS18B20的溫度計(jì)的多點(diǎn)溫度測量系統(tǒng)的畢業(yè)設(shè)計(jì)結(jié)束,基本完成了老師所布置的工作任務(wù)。通過完成本次畢業(yè)設(shè)計(jì)讓我掌握了很多東西,看到了理論知識(shí)和實(shí)際動(dòng)手能力的區(qū)別,認(rèn)識(shí)了實(shí)際操作的重要性,使我在知識(shí)的掌握上又有了很大的進(jìn)步。同時(shí)也看清了自己的
26、很多不足和欠缺的地方。這篇論文雖然還有很多不如意的地方,但畢竟是自己辛苦勞動(dòng)所得。最后看著自己的作品完美完成,系統(tǒng)能夠無誤的運(yùn)行,測溫也是相當(dāng)準(zhǔn)確,真的是很高心。讓我真正的體會(huì)到成功的來之不易。附錄部分程序/*DS18B20讀取模塊*/void delay(uchar x) /*實(shí)現(xiàn)精確延時(shí)*/while(x-);void dsreset() /*DS18B20的初始化程序*/DQ=1; /拉高總線delay(8); /稍作延時(shí)DQ=0; /*拉低數(shù)據(jù)線480uS*/delay(80);DQ=1; /*拉高數(shù)據(jù)線保持30uS*/delay(14);delay(20); /*跳過DS18B20應(yīng)
27、答*/void write_command(uchar com)uchar i=0;for(i=8;i>0;i-)DQ=0; /*拉低數(shù)據(jù)線*/DQ=com&0x01; /*發(fā)出數(shù)據(jù)低位*/delay(5);DQ=1; /*拉高數(shù)據(jù)線*/com>>=1; /*右移一位*/delay(4);uchar read_data()uchar j=0;uchar dat=0; /*暫存讀取的數(shù)據(jù)變量*/for(j=8;j>0;j-)DQ=1;delay(1);DQ=0;dat>>=1 ; /*變量一位*/DQ=1;if(DQ) /*讀取DQ上數(shù)據(jù),如果為1,則
28、高位或1*/dat|=0x80;delay(4);return(dat);uint data_take(uint x,uint y)uint tmp;tmp=x; /*把兩個(gè)8位數(shù)據(jù)轉(zhuǎn)換成一個(gè)16位整形數(shù)據(jù)*/tmp<<=8;tmp=tmp|y;if(tmp>0xfff) /*檢測符號(hào)位*/symbol=1; /*符號(hào)位為1,需要進(jìn)行數(shù)據(jù)補(bǔ)碼還原,顯示時(shí)也需要處理*/tmp=tmp+1;elsesymbol=0; /*符號(hào)位為0,正數(shù)*/tmp=(uint)tmp*(6.25);return(tmp) ;uint main_DS18B20()uint temp;uchar d
29、ata_l=0;uchar data_h=0;dsreset();write_command(0xcc);write_command(0x44);dsreset();write_command(0xcc);write_command(0xbe);data_l=read_data();data_h=read_data();temp=data_take(data_h,data_l);return(temp) ;/*LCM1602顯示模塊*/void delay_D(uchar x) /*延時(shí)*/uchar a,b,c ;for(a=0;a<x;a+)for(b=0;b<4;b
30、+)for(c=0;c<250;c+);bit lcmbf() /*檢測BF位*/bit bf;rs=0;rw=1;e =1;_nop_();_nop_();_nop_();_nop_();bf=(bit)(data_8&0x80);e =0;/*數(shù)組的調(diào)整模塊*/void array_take(uint x)uchar code disasc='0','1','2','3','4','5','6','7','8','9
31、','-',' 'uchar point2;uchar point1;uchar ge;uchar shi;shi=x%10000/1000;ge=x%10000%1000/100;point1=x%10000%1000%100/10;point2=x%10;if(symbol)disl20=disasc10;elsedisl20=disasc11;disl21=disascshi;disl22=disascge;disl23='.'disl24=disascpoint1;disl25=disascpoint2;disl26='C
32、'/*按鍵*21 43*/sbit beep = P24; /蜂鳴器IO口定義uchar a_a;bit flag_300ms ;bit flag_50ms ;bit flag_2s;uchar key_can; /按鍵值的變量uchar menu_1; /菜單設(shè)計(jì)的變量uint t_high = 300,t_low = 100;uint t1_high = 301,t1_low = 101;uint t2_high = 302,t2_low = 102;uint t3_high = 303,t3_low = 103;uint t4_high = 304,t4_low = 104;bi
33、t flag_lj_en; /按鍵連加使能bit flag_lj_3_en; /按鍵連3次連加后使能加的數(shù)就越大了uchar key_time,flag_value; /用做連加的中間變量bit key_500ms ;uchar menu_shudu = 20; /用來控制連加的速度uchar flag_clock; /溫度報(bào)警變量uchar flag_fuzi; /用做菜單內(nèi)的初始化的uchar t1=0,t2=0,t3=0,t4=0; /對(duì)就4個(gè)溫度的報(bào)警標(biāo)志位uchar t_zong ; /一個(gè)有多少個(gè)報(bào)警uchar zd_break_en,zd_break_value; /自動(dòng)退出設(shè)置
34、界面/*1ms延時(shí)函數(shù)*/void delay_1ms(uint q)uint i,j;for(i=0;i<q;i+)for(j=0;j<110;j+);/*把數(shù)據(jù)保存到單片機(jī)內(nèi)部eepom中*/void write_eepom12()SectorErase(0x2000);byte_write(0x2000,t1_high % 256);byte_write(0x2001, t1_high / 256);byte_write(0x2055, a_a);void write_eepom34()SectorErase(0x2200);byte_write(0x2200, t3_hig
35、h % 256);byte_write(0x2201, t3_high / 256);byte_write(0x2255, a_a);void write_eepom56()SectorErase(0x2400);byte_write(0x2400, t5_high % 256);byte_write(0x2401, t5_high / 256);byte_write(0x2455, a_a);void write_eepom78()SectorErase(0x2600);byte_write(0x2600, t7_high % 256);byte_write(0x2601, t7_high
36、/ 256);byte_write(0x2655, a_a);/*把數(shù)據(jù)從單片機(jī)內(nèi)部eepom中讀出來*/void read_eepom12()t1_high = byte_read(0x2001);t1_high <<= 8;t1_high |= byte_read(0x2000);t1_low = byte_read(0x2003);t1_low <<= 8;t1_low |= byte_read(0x2002);t2_high = byte_read(0x2005);t2_high <<= 8;t2_high |= byte_read(0x2004);
37、t2_low = byte_read(0x2007);t2_low <<= 8;t2_low |= byte_read(0x2006);a_a = byte_read(0x2055);void read_eepom34()t3_high = byte_read(0x2201);t3_high <<= 8;t3_high |= byte_read(0x2200);t3_low = byte_read(0x2203);t3_low <<= 8;t3_low |= byte_read(0x2202);t4_high = byte_read(0x2205);t4_h
38、igh <<= 8;t4_high |= byte_read(0x2204);t4_low = byte_read(0x2207);t4_low <<= 8;t4_low |= byte_read(0x2206);a_a = byte_read(0x2255);void read_eepom56()t5_high = byte_read(0x2401);t5_high <<= 8;#include "menu.h"/*定時(shí)器0初始化程序*/void time_init()EA = 1; /開總中斷TMOD = 0X01; /定時(shí)器0、定時(shí)
39、器1工作方式1ET0 = 1; /開定時(shí)器0中斷TR0 = 1; /允許定時(shí)器0定時(shí)/*獨(dú)立按鍵處理函數(shù)*/void key()static uchar key_new = 0,key_old = 0,key_value = 0;if(key_new = 0) /按鍵松開的時(shí)候做松手檢測if(P2 & 0x0f) = 0x0f)key_value +;elsekey_value = 0;if(key_value >= 15)key_value = 0;key_new = 1;flag_lj_en = 0; /關(guān)閉連加使能flag_lj_3_en = 0; /關(guān)閉3秒后使能flag_value = 0; /清零key_time = 0;elseif(P2 & 0x0f) != 0x0f)key_value +; /按鍵按下的時(shí)候elsekey_value = 0;if(key_value >= 10)key_value = 0;key_new = 0;flag_lj_en = 1; /連加使能zd_break_en = 1; /自動(dòng)退出設(shè)置界使能zd_break_value = 0; /自動(dòng)退出設(shè)置界變量清零key_can = 20;if(key_500ms =
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國槐果堿行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年中國旋流沉砂器行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年中國手工彩花紙行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年中國雙用圈行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年中國削平頂螺紋量規(guī)行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年中國保持器清洗機(jī)行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年中國三輥非對(duì)稱式卷板機(jī)行業(yè)投資前景及策略咨詢研究報(bào)告
- 湖北省恩施州2025年高二下化學(xué)期末教學(xué)質(zhì)量檢測試題含解析
- 2025屆河北省承德市豐寧藝術(shù)中學(xué)高一化學(xué)第二學(xué)期期末調(diào)研模擬試題含解析
- 單招是否有筆試考試題及答案
- 2023-2024學(xué)年四川省雅安市小學(xué)數(shù)學(xué)一年級(jí)下冊(cè)期末高分試卷
- 網(wǎng)絡(luò)游戲代理合同通用版范文(2篇)
- GB/T 6414-1999鑄件尺寸公差與機(jī)械加工余量
- GB/T 27773-2011病媒生物密度控制水平蜚蠊
- GB/T 12817-1991鐵道客車通用技術(shù)條件
- 質(zhì)量風(fēng)險(xiǎn)識(shí)別項(xiàng)清單及防控措施
- 【課件超聲】常見的超聲效應(yīng)與圖象偽差
- 外墻保溫、真石漆工程施工方案
- 自然指數(shù)NatureIndex(NI)收錄的68種自然科學(xué)類期刊
- 建立良好的同伴關(guān)系-課件-高二心理健康
- 老年人健康管理隨訪表
評(píng)論
0/150
提交評(píng)論