版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
...wd......wd......wd...單片機設計的溫度報警器TOC\o"1-3"\h\u14062摘要2241501、引言3279432設計內(nèi)容及性能指標4209323系統(tǒng)方案比擬、設計與論證4205233.1主控制器模塊5291693.2溫度測量542573.3設置溫度6224593.3顯示模塊6192933.4電源選取7159534系統(tǒng)器件選擇7168605硬件實現(xiàn)及單元電路設計841525.1主控制模塊839935.2顯示模塊電路9127465.3數(shù)碼管顯示驅動電路102859圖6驅動電路1072565.4溫度傳感器(DS18B20)電路10146765.4.1DS18B20根本介紹10142175.4.2DS18B20控制方法11105885.4.3DS18B20供電方式1127525.6蜂鳴器、發(fā)光二極管報警電路1234386系統(tǒng)軟件設計13282916.1程序構造分析13140446.2系統(tǒng)程序流圖13261646.2.1DS18B20初始化程序流程圖1475356.2.2讀溫度子程序流程圖15196277系統(tǒng)的安裝與調試1546427.1安裝步驟1547107.2電路的調試162727.3本章小結16616結論16843參考文獻1627403附錄1整體電路原理圖1718685附錄2局部源程序18摘要隨著時代的進步和開展,單片機技術已經(jīng)普及到我們生活、工作、科研、各個領域,已經(jīng)成為一種比擬成熟的技術,本文主要介紹了一個基于STC89C52單片機的溫度報警系統(tǒng),詳細描述了利用溫度傳感器DS18B20開發(fā)測溫系統(tǒng)的過程,重點對傳感器在單片機下的硬件連接,軟件編程以及各模塊系統(tǒng)流程進展了詳盡分析,對各局部的電路也一一進展了介紹,該系統(tǒng)可以方便的實現(xiàn)溫度采集和顯示,并可根據(jù)需要任意設定報警溫度,它使用起來相當方便,具有精度高、量程寬、靈敏度高、體積小、功耗低等優(yōu)點,適合于我們?nèi)粘I詈凸?、農(nóng)業(yè)生產(chǎn)中的溫度控制,也可以當作溫度處理模塊嵌入其它系統(tǒng)中,作為其他主系統(tǒng)的輔助擴展。DS18B20與STC89C52結合實現(xiàn)最簡溫度控制系統(tǒng),該系統(tǒng)構造簡單,抗干擾能力強,適合于惡劣環(huán)境下進展現(xiàn)場溫度的控制,有廣泛的應用前景。關鍵詞:單片機;溫度控制;STC89C52;DS18B20;1、引言隨著科技的不斷開展,現(xiàn)代社會對各種信息參數(shù)的準確度和準確度的要求都有了幾何級的增長,而如何準確而又迅速的獲得這些參數(shù)就需要受制于現(xiàn)代信息根基的開展水平。在三大信息信息采集(即傳感器技術)、信息傳輸(通信技術)和信息處理(計算機技術)中,傳感器屬于信息技術的前沿尖端產(chǎn)品,尤其是溫度傳感器技術,在我國各領域已經(jīng)引用的非常廣泛,可以說是滲透到社會的每一個領域,人民的生活與環(huán)境的溫度息息相關,在工業(yè)生產(chǎn)過程中需要實時測量溫度,在農(nóng)業(yè)生產(chǎn)中也離不開溫度的測量,因此研究溫度的測量方法和溫度報警裝置具有重要的意義。測量溫度的關鍵是溫度傳感器,溫度傳感器的開展經(jīng)歷了三個開展階段:①傳統(tǒng)的分立式溫度傳感器②模擬集成溫度傳感器③智能集成溫度傳感器。目前的智能溫度傳感器(亦稱數(shù)字溫度傳感器)是在20世紀90年代中期問世的,它是微電子技術、計算機技術和自動測試技術(ATE)的結晶,特點是能輸出溫度數(shù)據(jù)及相關的溫度控制量,適配各種微控制器(MCU)。社會的開展使人們對傳感器的要求也越來越高,現(xiàn)在的溫度傳感器正在基于單片機的根基上從模擬式向數(shù)字式,從集成化向智能化、網(wǎng)絡化的方向飛速開展,并朝著高精度、多功能、總線標準化、高可靠性及安全性、開發(fā)虛擬傳感器和網(wǎng)絡傳感器、研制單片測溫系統(tǒng)等高科技的方向迅速開展,本文將介紹智能集成溫度傳感器DS18B20的構造特征及控制方法,并對以此傳感器,STC89C52單片機為控制器構成的數(shù)字溫度控制裝置的工作原理及程序設計作了詳細的介紹。其具有讀數(shù)方便,方便控制,輸出溫度采用數(shù)字顯示,主要用于對溫度控制要求比擬準確的場所,或科研實驗室使用。該設計控制器使用STC89C52單片機,測溫傳感器使用DALLAS公司DS18B20,用數(shù)碼管來實現(xiàn)溫度顯示。2設計內(nèi)容及性能指標本設計主要是介紹了單片機控制下的溫度報警系統(tǒng),詳細介紹了其硬件和軟件設計,并對其各功能模塊做了詳細介紹,其主要功能和指標如下:單片機實時檢測溫度傳感器DS18B20的狀態(tài),并將DS18820得到的數(shù)據(jù)進展處理。上電后數(shù)碼管顯示當前的環(huán)境溫度,通過按鍵可設置上下溫報警值,當檢測到的溫度高于設置的報警值的時候,蜂鳴器報警同時報警燈閃爍,溫度檢測準確到0.1度。并具有掉電保存功能,數(shù)據(jù)保存在單片機內(nèi)部EEPOM中,進入設置界面后如果沒有鍵按下系統(tǒng)會在15秒后自動退出設置界面。3系統(tǒng)方案比擬、設計與論證該系統(tǒng)主要由溫度測量和溫度設置及系統(tǒng)狀態(tài)顯示三局部電路組成,下面介紹實現(xiàn)此系統(tǒng)功能的方案。3.1主控制器模塊方案1:采用可編程邏輯器件CPLD 作為控制器。CPLD可以實現(xiàn)各種復雜的邏輯功能、規(guī)模大、密度高、體積小、穩(wěn)定性高、IO資源豐富、易于進展功能擴展。采用并行的輸入輸出方式,提高了系統(tǒng)的處理速度,適合作為大規(guī)模控制系統(tǒng)的控制核心。但本系統(tǒng)不需要復雜的邏輯功能,對數(shù)據(jù)的處理速度的要求也不是非常高。且從使用及經(jīng)濟的角度考慮我們放棄了此方案。方案2:采用STC89C52單片機作為整個系統(tǒng)的核心,用其控制溫度報警功能,以實現(xiàn)其既定的性能指標。充分分析我們的系統(tǒng),其關鍵在于實現(xiàn)溫度的自動顯示并報警功能,而在這一點上,單片機就顯現(xiàn)出來它的優(yōu)勢——控制簡單、方便、快捷。這樣一來,單片機就可以充分發(fā)揮其資源豐富、有較為強大的控制功能及可位尋址操作功能、價格低廉等優(yōu)點。STC89C52單片機具有功能強大的位操作指令,I/O口均可按位尋址,程序空間多達8K,對于本設計也綽綽有余,更可貴的是STC89C52單片機價格非常低廉。3.2溫度測量方案1:采用數(shù)字溫度芯片DS18B20測量實際溫度,輸出信號全數(shù)字化。便于單片機處理及控制,省去傳統(tǒng)的測溫方法的很多外圍電路。且該芯片的物理化學性很穩(wěn)定,它能用做工業(yè)測溫元件,此元件線形較好。在0—100攝氏度時,最大線形偏差小于1攝氏度。DS18B20的最大特點之一采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計DS18B20和微控制器STC89C52構成的溫度測量裝置,它直接輸出溫度的數(shù)字信號,可直接與計算機連接。這樣,測溫系統(tǒng)的構造就比擬簡單,體積也不大。采用51單片機控制,軟件編程的自由度大,可通過編程實現(xiàn)各種各樣的算術算法和邏輯控制,而且體積小,硬件實現(xiàn)簡單,安裝方便。既可以單獨對多DS18B20控制工作,還可以與PC機通信上傳數(shù)據(jù),另外STC89C52在工業(yè)控制上也有著廣泛的應用,編程技術及外圍功能電路的配合使用都很成熟。方案2:采用熱電偶溫差電路測溫,溫度檢測局部可以使用低溫熱偶,熱電偶由兩個焊接在一起的異金屬導線所組成〔如以下列圖〕,熱電偶產(chǎn)生的熱電勢由兩種金屬的接觸電勢和單一導體的溫差電勢組成。通過將參考結點保持在溫度并測量該電壓,便可推斷出檢測結點的溫度。數(shù)據(jù)采集局部則使用帶有A/D通道的單片機,在將隨被測溫度變化的電壓或電流采集過來,進展A/D轉換后,就可以用單片機進展數(shù)據(jù)的處理,在顯示電路上,就可以將被測溫度顯示出來。熱電偶的優(yōu)點是工作溫度范圍非常寬,且體積小,但是它們也存在著輸出電壓小、容易遭受來自導線環(huán)路的噪聲影響以及漂移較高的缺點,并且這種設計需要用到A/D轉換電路,感溫電路比擬麻煩。圖1熱電偶電路圖從以上兩種方案,容易看出方案二的測溫裝置可測溫度范圍寬、體積小,但是線性誤差較大。方案一的測溫裝置電路簡單、準確度較高、實現(xiàn)方便、軟件設計也比擬簡單,故本次設計采用了方案一。3.3設置溫度方案1:采用鍵盤輸入設置溫度,鍵盤則可以用4個按鍵,一個復位鍵,一個功能設定鍵,一個加減一個減鍵。四個鍵比擬常用,而且用到的接口得到了極好的利用,僅需要4個接口。方案2:可采用4*4矩陣鍵盤,該鍵盤需要8個接口,而我們不需這么多鍵。綜上所述,我們選擇第一種方案。3.3顯示模塊方案1:用數(shù)碼管進展顯示。數(shù)碼管由于顯示速度快,使用簡單,顯示效果簡潔明了而得到了廣泛應用。方案2:用LCD液晶進展顯示。LCD由于其顯示清晰,顯示內(nèi)容豐富、清晰,顯示信息量大,使用方便,顯示快速而得到了廣泛的應用。單對于此系統(tǒng)我們不需要顯示豐富的內(nèi)容,而且LCD液晶價格貴,因此我們選擇了此方案。綜上所述我們選擇方案13.4電源選取由于本系統(tǒng)采用電池供電,我們考慮了如下幾種方案為系統(tǒng)供電。方案1:采用5V蓄電池為系統(tǒng)供電。蓄電池具有較強的電流驅動能力以及穩(wěn)定的電壓輸出性能。但是蓄電池的體積過于龐大,在小型電動車上使用極為不方便。因此我們放棄了此方案。方案2:采用3節(jié)1.5V干電池共4.5V做電源,經(jīng)過實驗驗證系統(tǒng)工作時,單片機、傳感器的工作電壓穩(wěn)定能夠滿足系統(tǒng)的要求,而且電池更換方便。綜上所述采用方案24系統(tǒng)器件選擇1.溫度傳感器的選擇由于傳統(tǒng)的熱敏電阻等測溫元件測出的一般都是電壓,再轉換成對應的溫度,需要比擬多的外部元件支持,且硬件電路復雜,制作本錢相對較高。這里采用DALLAS公司的數(shù)字溫度傳感器DS18B20作為測溫元件。圖2外部封裝形式圖3傳感器電路圖5硬件實現(xiàn)及單元電路設計5.1主控制模塊主控制最系統(tǒng)電路如圖4所示。圖4單片主控電路5.2顯示模塊電路顯示采用四位數(shù)碼管顯示,當位選翻開時,送入相應的段碼,則相應的數(shù)碼管翻開,關掉位選,翻開另一個位選,送入相應的段碼,則數(shù)碼管翻開,而每次翻開關掉相應的位選時,時間間隔低于20ms,從人類視覺的角度上看,就仿佛是全部數(shù)碼管同時顯示的一樣。顯示電路如圖5圖5數(shù)碼管顯示5.3數(shù)碼管顯示驅動電路三極管8550來驅動4位數(shù)碼管,不僅簡單,而且價格廉價。圖6驅動電路5.4溫度傳感器(DS18B20)電路5.4.1DS18B20根本介紹DS18B20是美國DALLAS半導體公司推出的第一片支持“一線總線〞接口的溫度傳感器,它具有微型化、低功耗、高性能、抗干擾能力強、易配微處理器等優(yōu)點,可直接將溫度轉化成串行數(shù)字信號處理器處理。DS18B20進展準確的溫度轉換,I/O線必須保證在溫度轉換期間提供足夠的能量,由于每個DS18B20在溫度轉換期間工作電流到達1mA,當幾個溫度傳感器掛在同一根I/O線上進展多點測溫時,只靠4.7K上拉電阻就無法提供足夠的能量,會造成無法轉換溫度或溫度誤差極大。因此,以下列圖電路只適應于單一溫度傳感器測溫情況下使用,不適宜采用電池供電系統(tǒng)中。并且工作電源VCC必須保證在5V,當電源電壓下降時,寄生電源能夠汲取的能量也降低,會使溫度誤差變大。圖7溫度傳感器電路引腳圖5.4.2DS18B20控制方法DS18B20有六條控制命令:溫度轉換44H啟動DS18B20進展溫度轉換讀暫存器BEH讀暫存器9個字節(jié)內(nèi)容寫暫存器4EH將數(shù)據(jù)寫入暫存器的TH、TL字節(jié)復制暫存器48H把暫存器的TH、TL字節(jié)寫到E2RAM中重新調E2RAMB8H把E2RAM中的TH、TL字節(jié)寫到暫存器TH、TL字節(jié)讀電源供電方式B4H啟動DS18B20發(fā)送電源供電方式的信號給主CPU5.4.3DS18B20供電方式DS18B20可以采用兩種方式供電,一種是采用電源供電方式,此時DS18B20的1腳接地,2腳作為信號線,3腳接電源。另一種是寄生電源供電方式,如圖3.1所示單片機端口接單線總線,為保證在有效的DS18B20時鐘周期內(nèi)提供足夠的電流,可用一個三極管來完成對總線的上拉。本設計采用電源供電方式,P2.2口接單線總線為保證在有效的DS18B20時鐘周期內(nèi)提供足夠的電流,可用一個上拉電阻和STC89C52的P2.2來完成對總線的上拉。當DS18B20處于寫存儲器操作和溫度A/D變換操作時,總線上必須有強的上拉,上拉開啟時間最大為10μs。采用寄生電源供電方式是VDD和GND端均接地。由于單線制只有一根線,因此發(fā)送接收口必須是三狀態(tài)的。主機控制DS18B20完成溫度轉換必須經(jīng)過3個步驟:初始化。ROM操作指令。存儲器操作指令。5.6蜂鳴器、發(fā)光二極管報警電路電路如圖8主要是用來設定溫度報警溫度的、有高溫和低溫報警。圖8蜂鳴器、發(fā)光二極管驅動引腳圖6系統(tǒng)軟件設計6.1程序構造分析6.2系統(tǒng)程序流圖主程序的主要功能是負責溫度的實時顯示,讀出并處理DS18B20的當前溫度值,與設定的報警溫度比擬,通過調用讀溫度子程序把存入內(nèi)存儲中的整數(shù)局部與小數(shù)局部開分存放在不的的兩個單元中,然后通過調用顯示子程序顯示出來。調用顯示子程序調用顯示子程序初始化1s到初次上電發(fā)溫度轉換開場命令讀出溫度值溫度計算處理顯示數(shù)據(jù)刷新6.2.1DS18B20初始化程序流程圖在DS18B20工作之前需要進展初始化,流程圖如下:發(fā)復位命令發(fā)復位命令發(fā)跳過ROM命令初始化成功完畢圖10初始化程序流程圖6.2.2讀溫度子程序流程圖讀溫度子程序的主要功能是從DS18B20中讀出溫度數(shù)據(jù),移入溫度暫存器保存。其程序流程圖如下:發(fā)復位命令發(fā)復位命令發(fā)跳過ROM命令發(fā)讀取溫度命令移入溫度暫存器完畢圖11溫度子程序流程圖7系統(tǒng)的安裝與調試7.1安裝步驟1.檢查元件的好壞按電路圖買好元件后首先檢查買回元件的好壞,按各元件的檢測方法分別進展檢測,一定要仔細認真。而且要認真核對原理圖是否一致,在檢查好后才可上件、焊件,防止出現(xiàn)錯誤焊件后不便改正。2.放置、焊接各元件按原理圖的位置放置各元件,在放置過程中要先放置、焊接較低的元件,后焊較高的和要求較高的元件。特別是容易損壞的元件要后焊,在焊集成芯片時連續(xù)焊接時間不要超過10s,注意芯片的安裝方向。7.2電路的調試首先燒入顯示程序,看顯示正不正常。在調試程序時,發(fā)現(xiàn)有的指令用的不正確,導致電路功能不能完全實現(xiàn),另外軟件程序中的延時有的過長、有的過短。類似的現(xiàn)象還有很多就不一一列舉了。7.3本章小結本章的主要內(nèi)容是電路的測試和調試本卷須知結論本溫度報警器,通過單片機實時檢測溫度傳感器DS18B20的狀態(tài),并將DS18820得到的數(shù)據(jù)進展處理。上電后數(shù)碼管顯示當前的環(huán)境溫度,通過按鍵可設置上下溫報警值,當檢測到的溫度高于設置的報警值的時候,蜂鳴器報警同時報警燈閃爍,溫度檢測準確到0.1度。并具有掉電保存功能,數(shù)據(jù)保存在單片機內(nèi)部EEPOM中,進入設置界面后如果沒有鍵按下系統(tǒng)會在15秒后自動退出設置界面。由于采用了4節(jié)干電池供電使系統(tǒng)的抗干擾性得到加強。在軟件上,充分利用了STC89C52的系統(tǒng)資源,系統(tǒng)運行流暢。本設計構造簡單,調試方便,系統(tǒng)反映快速靈活,經(jīng)實驗測試,該溫度報警系統(tǒng)設計方案正確、可行,各項指標穩(wěn)定、可靠。參考文獻1曹巧媛主編.單片機原理及應用(第二版).北京:電子工業(yè)出版社,20022全國大學生電子設計競賽組委會編.第五屆全國大學生電子設計競賽獲獎作品選編(2001),北京:北京理工大學出版社,20033何力民編.單片機高級教程.北京:北京航空大學出版社,20004金發(fā)慶等編.傳感器技術與應用.北京機械工業(yè)出版社,20025劉坤、宋戈、趙洪波、張憲棟編.51單片機C語言應用開發(fā)技術大全,北京:人民郵電出版社,20086譚浩強著.C程序設計.北京:清華大學出版社,2007;7王忠飛,胥芳.MCS-51單片機原理及嵌入式系統(tǒng)應用[M].西安:西安電子科技大學出版社,2007.P268-2738PeterVanDerLinden著,徐波譯.C專家編程,人民郵電出版社,2003附錄1整體電路原理圖附錄2局部源程序#include<reg52.h>#include"eepom52.h"#defineucharunsignedchar#defineuintunsignedint//數(shù)碼管段選定義012345 6 7 8 9 ucharcodesmg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff}; //斷碼//數(shù)碼管位選定義ucharcodesmg_we[]={0xef,0xdf,0xbf,0x7f};uchardis_smg[8]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8}; ucharsmg_i=3;//顯示數(shù)碼管的個位數(shù)sbitdq=P2^4; //18b20IO口的定義sbitbeep=P2^5;//蜂鳴器IO口定義uchara_a;uinttemperature;//bitflag_300ms;ucharkey_can; //按鍵值的變量ucharmenu_1;//菜單設計的變量uintt_high=300,t_low=100;bitflag_lj_en; //按鍵連加使能bitflag_lj_3_en; //按鍵連3次連加后使能加的數(shù)就越大了ucharkey_time,flag_value;//用做連加的中間變量bitkey_500ms;ucharflag_clock;ucharzd_break_en,zd_break_value;//自動退出設置界面/***********************1ms延時函數(shù)*****************************/voiddelay_1ms(uintq){ uinti,j; for(i=0;i<q;i++) for(j=0;j<120;j++);}/***********************小延時函數(shù)*****************************/voiddelay_uint(uintq){ while(q--);}/***********************數(shù)碼顯示函數(shù)*****************************/voiddisplay(){ uchari; for(i=0;i<smg_i;i++) { P3=smg_we[i]; //位選 P1=dis_smg[i]; //段選 delay_1ms(1); P3=0xff; //位選 P1=0xff; //消隱 } }/******************把數(shù)據(jù)保存到單片機內(nèi)部eepom中******************/voidwrite_eepom(){ SectorErase(0x2000); byte_write(0x2000,t_high%256); byte_write(0x2001,t_high/256); byte_write(0x2002,t_low%256); byte_write(0x2003,t_low/256); byte_write(0x2055,a_a); }/******************把數(shù)據(jù)從單片機內(nèi)部eepom中讀出來*****************/voidread_eepom(){ t_high=byte_read(0x2001); t_high<<=8; t_high|=byte_read(0x2000); t_low=byte_read(0x2003); t_low<<=8; t_low|=byte_read(0x2002); a_a=byte_read(0x2055);}/***********************18b20初始化函數(shù)*****************************/voidinit_18b20(){ bitq; dq=1; //把總線拿高 delay_uint(1); //15us dq=0; //給復位脈沖 delay_uint(80); //750us dq=1; //把總線拿高等待 delay_uint(10); //110us q=dq; //讀取18b20初始化信號 delay_uint(20); //200us dq=1; //把總線拿高釋放總線}/*************寫18b20內(nèi)的數(shù)據(jù)***************/voidwrite_18b20(uchardat){ uchari; for(i=0;i<8;i++) { //寫數(shù)據(jù)是低位開場 dq=0; //把總線拿低寫時間隙開場 dq=dat&0x01;//向18b20總線寫數(shù)據(jù)了 delay_uint(5); //60us dq=1; //釋放總線 dat>>=1; } }/*************讀取18b20內(nèi)的數(shù)據(jù)***************/ucharread_18b20(){ uchari,value; for(i=0;i<8;i++) { dq=0; //把總線拿低讀時間隙開場 value>>=1; //讀數(shù)據(jù)是低位開場 dq=1; //釋放總線 if(dq==1) //開場讀寫數(shù)據(jù) value|=0x80; delay_uint(5); //60us 讀一個時間隙最少要保持60us的時間 } returnvalue; //返回數(shù)據(jù)}/*************讀取溫度的值讀出來的是小數(shù)***************/uintread_temp(){ uintvalue; ucharlow; //在讀取溫度的時候如果中斷的太頻繁了,就應該把中斷給關了,否則會影響到18b20的時序 init_18b20(); //初始化18b20 write_18b20(0xcc); //跳過64位ROM write_18b20(0x44); //啟動一次溫度轉換命令 delay_uint(50); //500us init_18b20(); //初始化18b20 write_18b20(0xcc); //跳過64位ROM write_18b20(0xbe); //發(fā)出讀取暫存器命令 EA=0; low=read_18b20(); //讀溫度低字節(jié) value=read_18b20();//讀溫度高字節(jié) EA=1; value<<=8; //把溫度的高位左移8位 value|=low; //把讀出的溫度低位放到value的低八位中 value*=0.625; //轉換到溫度值小數(shù) returnvalue; //返回讀出的溫度帶小數(shù)}/*************定時器0初始化程序***************/voidtime_init() { EA=1; //開總中斷 TMOD=0X01; //定時器0、定時器1工作方式1 ET0=1; //開定時器0中斷 TR0=1; //允許定時器0定時}/****************獨立按鍵處理函數(shù)************************/voidkey(){ staticucharkey_new=0,key_old=0,key_value=0; if(key_new==0) { //按鍵松開的時候做松手檢測 if((P2&0x0f)==0x0f) key_value++; else key_value=0; if(key_value>=10) { write_eepom(); key_value=0; key_new=1; flag_lj_en=0; //關閉連加使能 flag_lj_3_en=0; //關閉3秒后使能 flag_value=0; //清零 } } else { if((P2&0x0f)!=0x0f) key_value++;//按鍵按下的時候 else key_value=0; if(key_value>=7) { key_value=0; key_new=0; flag_lj_en=1; //連加使能 zd_break_en=1;//自動退出設置界使能 zd_break_value=0;//自動退出設置界變量清零 } } key_can=20; if(key_500ms==1) { key_500ms=0; zd_break_en=1;//自動退出設置界使能 zd_break_value=0;//自動退出設置界變量清零 key_new=0; key_old=1; } if((key_new==0)&&(key_old==1)) { switch(P2&0x0f) { case0x0e:key_can=4;break; //得到k1鍵值 case0x0d:key_can=3;break; //得到k2鍵值 case0x0b:key_can=2;break; //得到k3鍵值 case0x07:key_can=1;break; //得到k4鍵值 } } key_old=key_new; }/****************按鍵處理數(shù)碼管顯示函數(shù)***************/voidkey_with(){ if(key_can==4) { menu_1++; if(menu_1>=3) { menu_1=0; } if(menu_1==0) { dis_smg[0]=smg_du[temperature%10]; //取溫度的小數(shù)顯示 dis_smg[1]=smg_du[temperature/10%10]&0x7f;//取溫度的個位顯示 dis_smg[2]=smg_du[temperature/100%10]; //取溫度的十位顯示 smg_i=3; } if(menu_1==1) { dis_smg[0]=smg_du[t_high%10]; //取小數(shù)顯示 dis_smg[1]=smg_du[t_high/10%10]&0x7f;//取個位顯示 dis_smg[2]=smg_du[t_high/100%10]; //取low十位顯示 dis_smg[3]=0x89; smg_i=4; } if(menu_1==2) { dis_smg[0]=smg_du[t_low%10]; //取low小數(shù)顯示 dis_smg[1]=smg_du[t_low/10%10]&0x7f;//取個位顯示 dis_smg[2]=smg_du[t_low/100%10]; //取十位顯示 dis_smg[3]=0xc7; smg_i=4; } } if(menu_1==1) //設置高溫報警 { if(key_can==3) { if(flag_lj_3_en==0) t_high++; //按鍵按下未松開自動加三次 else t_high+=10; //按鍵按下未松開自動加三次之后每次自動加10 if(t_high>990) t_high=990; dis_smg[0]=smg_du[t_high%10]; //取小數(shù)顯示 dis_smg[1]=smg_du[t_high/10%10]&0x7f;//取個位顯示 dis_smg[2]=smg_du[t_high/100%10]; //取十位顯示 dis_smg[3]=0x89; //H } if(key_can==1) { if(flag_lj_3_en==0) t_high--; //按鍵按下未松開自動加三次 else t_high-=10; //按鍵按下未松開自動減三次之后每次自動減10 if(t_high<=t_low) t_high=t_low+1; dis_smg[0]=smg_du[t_high%10]; //取小數(shù)顯示 dis_smg[1]=smg_du[t_high/10%10]&0x7f;//取個位顯示 dis_smg[2]=smg_du[t_high/100%10]; //取十位顯示 dis_smg[3]=0x89; //H }// write_eepom(); } if(menu_1==2) //設置低溫報警 { if(key_can==3) { if(flag_lj_3_en==0) t_low++; else t_low+=10; if(t_low>=t_high) t_low=t_high-1; dis_smg[0]=smg_du[t_low%10]; //取小數(shù)顯示 dis_smg[1]=smg_du[t_low/10%10]&0x7f;//取個位顯示 dis_smg[2]=smg_du[t_low/100%10]; //取十位顯示 dis_smg[3]=0xc7; //L } if(key_can==1) { if(flag_lj_3_en==0) t_low--; else t_low-=10; if(t_low<=10) t_low=10; dis_smg[0]=smg_du[t_low%10]; //取小數(shù)顯示 dis_smg[1]=smg_du[t_low/10%10]&0x7f;//取個位顯示 dis_smg[2]=smg_du[t_low/100%10]; //取十位顯示 dis_smg[3]=0xc7; //L }// write_eepom(); } }/****************報警函數(shù)***************/voidclock_h_l(){ if((temperature<=t_low)||(temperature>=t_high)) { flag_clock=1; } else { flag_clock=0; beep=1; } }voidmain(){ temperature=read_temp(); //先讀出溫度的值 time_ini
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024幼兒園教師教育教學成果展示與學術交流合同3篇
- 2024年特許經(jīng)營合同協(xié)議書模板
- 2024年美容美發(fā)產(chǎn)品特許經(jīng)營合同
- 2024年度駕駛員崗位技能培訓與考核聘用合同6篇
- 2024年度LED燈具批發(fā)采購合同質量檢測規(guī)范3篇
- 康復科護士總結
- 酒店管理者工作心得總結
- 2024年二零二四年度外籍專家中英文聘用合同3篇
- 2024年離婚后商業(yè)秘密保護協(xié)議
- 急診護士的工作表現(xiàn)
- 食材配送服務方案(技術方案)
- 課件:《中華民族共同體概論》第一講 中華民族共同體基礎理論
- 2024-2025學年安徽省合肥市蜀山區(qū)數(shù)學四年級第一學期期末質量檢測試題含解析
- 離婚協(xié)議書模板可打印(2024版)
- 2024國家開放大學電大專科《獸醫(yī)基礎》期末試題及答案試卷號2776
- 廠區(qū)保潔服務投標方案【2024版】技術方案
- 養(yǎng)老機構績效考核及獎勵制度
- 龍巖市2022-2023學年七年級上學期期末生物試題【帶答案】
- DB32-T 4750-2024 模塊化裝配式污水處理池技術要求
- 企業(yè)員工績效管理與員工工作動機的激發(fā)
- 妊娠合并肺結核的診斷與治療
評論
0/150
提交評論