沸騰型全自動電熱水器的設計
沸騰型全自動電熱水器的設計,沸騰,全自動,電熱水器,設計
本科畢業(yè)論文(設計) 論文題目 : 沸騰型全自動電熱水器的設計 學生姓名: 所在院系: 機電學院 所學專業(yè): 機電技術教育 導師姓名: 完成時間: 摘 要 1 本文介紹一種沸騰型電熱水器電子控制系統(tǒng),該系統(tǒng)具有全自動控制功能, 確保了電熱水器沸騰后能及時跳閘。與目前該類器具相比,更具有開水決不混 入生水,保證飲水衛(wèi)生及開水指示直觀醒目、簡單、有效、不易損壞的特點。 電熱水器由儲水箱、進水電磁閥、電源,水位傳感器、溫度傳感器及控 制系統(tǒng)組成??刂葡到y(tǒng)是開水器的核心,控制系統(tǒng)的好壞決定電熱水器的優(yōu)劣。 水箱水位檢測及自動加水控制為保證飲用水不混入生水。設置高低水位檢測, 即當水面低于低水位時能自動加水,而當水箱水滿,水面到達高水位點時則停 止加水,這祥,在飲用開水時,開水水面一直高于低水位點,飲用水不會混入 生水。為保證飲用水為開水,必須對水箱里的水溫進行檢測,當水溫低于保溫 值時,控制加熱元件工作,當水燒開時自動停止加熱。此外,還對系統(tǒng)的硬件 設置了加入了防干燒控制和報警功能。對軟件采取抗干擾措施,以保障系統(tǒng)的 穩(wěn)定運行。 關鍵詞:電熱水器,控制線路,時間繼電器 ???????? 2 This article introduces a boiling-type water heater electronic controlsystem,which has a completely automatic control function,To ensure that the water heater can not trip after boiling in time.Compared with the current all kinds of apparatus the water m ixed withraw water in no way.Guaranteed that the potable water health and the boiling water instructed direct-viewing striking,simple,effective,non-fragile characerristics. The electronic water heater consists of the water tank,the water valve,the powe r,the water level sensor,temperature sensor and control system.Control system is the core of boiling,the control system of the quality of the decision of the merits of electr ic boiling.the water level detection and control of automatically adding water automati cally in order to ensure drinking water is not mixed withraw water .To set the high an d low water level detection,when the water is below the low water level add water aut omatically, and when the water tank is full,the water level reached the high point is to stop adding water,so,in the drinking water,the water level has been higher than the low,the water will not be mixed withraw water.In order to ensure drinking water is boiling,The temperature of water must be tested in the water tank,when the water temperature is below the lowest value,To control the heating elements go to work,when the water boiled to stop heating automatically.In addition,the hardware is setted on the anti-dry control and alarm functions.anti-jamming software is taken to safeguard the stable operation of the system. Key words:The electronic water heater, Control circuit, Time relay 目 錄 3 1 緒論 ............................................................................................................................1 2 總體設計方案 ............................................................................................................1 2.1 進水控制 ..............................................................................................................1 2.2 加熱控制 ..............................................................................................................2 2.3 基本的設計要求 ..................................................................................................2 3 系統(tǒng)的硬件設計 ........................................................................................................2 3.1 溫度控制與顯示電路 ..........................................................................................2 3.1.1 顯示電路 .......................................................................................................2 3.1.2 溫度檢測電路 ...............................................................................................3 3.1.3 CPU 主電路 ...................................................................................................5 3.2 水位控制 ..............................................................................................................4 3.3 電加熱電路 ..........................................................................................................5 3.4 時間繼電器控制電路 ..........................................................................................5 3.5 漏電檢測及報警電路 ..........................................................................................6 3.6 電源電路 ..............................................................................................................7 4 系統(tǒng)的軟件設計 ........................................................................................................7 4.1 抗干擾設計 ..........................................................................................................7 4.2 程序設計 ..............................................................................................................7 5 結束語 ........................................................................................................................9 致謝 ................................................................................................................................9 參考文獻 ........................................................................................................................9 附錄 ..............................................................................................................................11 4 1 緒論 電熱水器是為人們提供溫水或飲用水的電熱器具,它具有衛(wèi)生、方便、加 熱迅速等特點,得到了廣泛的應用。電熱水器種類很多,但是就目前的產品來 看,都存在著水不能沸騰且冷熱水混流,也就是人們所謂的“陰陽水”的問題。 傳統(tǒng)的熱水器注水方式采用的是浮球閥,當箱內的水流出后冷水就會自動進入 箱內,冷熱水混流形成“陰陽水” ,當人們飲用后造成無畏的傷害,且它所使用 的地理位置也嚴重受到限制。本設計在保留原產品的基礎上,加入了水位的檢 測及自動注水控制,沸騰后自動斷電等電路,解決了傳統(tǒng)產品的缺點。此外, 還對系統(tǒng)的硬件和軟件采取抗干擾措施,以保障系統(tǒng)的穩(wěn)定運行。 2 總體設計方案 圖 1 結構示意圖 熱水器結構如圖 1 所示。系統(tǒng)通電加熱管發(fā)熱,并顯示當前溫度,溫度逐 漸上升,當水溫達到溫度傳感器的設定值時,時間繼電器通電,開始延時,延 時時間到水沸騰,然后加熱管停止加熱。當箱內水位下降到低于水位探頭 1 時, 產生一個電信號送給進水電磁閥的控制電路,電磁閥打開進水口注水,水位超 過水位探頭 3 時,電磁閥斷電,停止注水。電磁閥采用 DF 系列水用的電磁閥。 本閥適用于以水或其它氣液體為工作介質,可自動化控制或遠程控制空氣、水、 油液體等工作介質管路的通斷。適用溫度-5~125℃,開閥能力 0.03- 0.8Mpa,最高工作壓力 0.8Mpa,公稱通徑 2.5-50mm。 5 2.1 進水控制 當水位傳感器檢測到水位低于水位探頭 2 時,輸出一個電信號去控制電磁 閥,其線圈得電,形成電磁場,銜鐵在磁力的作用下,打開閥門向箱內注水; 它可以保證箱內有充足的水。當水位高于水位探頭 3 時,輸出一個電信號讓電 磁閥閉合,進水停止。通過水位探頭與電磁閥打開與閉合來完成進水的循環(huán)過 程。 2.2 加熱控制 水位探頭 1 的位置高于加熱管,其作用是當通電后若檢測到水位低于探頭 1 時,加熱將不會能通電,這樣就完成了防止干燒的控制。當水位高于探頭 1 且水溫低于 85 度時加熱管通電,開始加熱。當水加熱到溫度傳感器的設定值, 時間繼電器通電開始延時,延時時間到加熱管斷電。通過時間繼電器與溫度傳 感器的雙重控制可以保證水能循環(huán)加熱。 2.3 基本的設計要求 以單片機為主控芯片構成的電熱水器控制器,其基本的設計要求: (1)具有漏電保護功能; (2)水沸騰后能自動斷電; (3)溫度低于 85℃時自動加熱; (4)測量水溫,并通過顯示器實時顯示水溫,其顯示范圍為 0~105 ℃; (5)具有超溫斷電保護并報警提示的功能; (6)出現(xiàn)傳感器故障時,可迅速切斷加熱元件電源并報警提示; 還要求控制器有較強的抗干擾能力,達到或超過家用電器檢測標準,并符 合國家安全認證和國際上的相關安全認證標準 [1]。 3 系統(tǒng)的硬件設計 AT89S51 電源 電路 溫度 檢測 電路 漏電 檢測 報警 顯示 電路 電加熱 電路 時鐘 復位 電路壓力 控制 電路 6 a b f cg deDPY 1 2 3 4 5 6 7 a b c d e f g 8 dp dp a b f cg deDPY 1 2 3 4 5 6 7 a b c d e f g 8 dp dp a b f cg deDPY 1 2 3 4 5 6 7 a b c d e f g 8 dp dp A 1 B 2 Q0 3 Q1 4 Q2 5 Q3 6 Q4 10 Q5 11 Q6 12 Q7 13 CLK 8 MR 9 A 1 B 2 Q0 3 Q1 4 Q2 5 Q3 6 Q4 10 Q5 11 Q6 12 Q7 13 CLK 8 MR 9 A 1 B 2 Q0 3 Q1 4 Q2 5 Q3 6 Q4 10 Q5 11 Q6 12 Q7 13 CLK 8 MR 9 VCC+5V RX TX 圖 2 系統(tǒng)框圖 3.1 溫度控制與顯示電路 3.1.1 顯示電路 圖 3 顯示電路 根據溫度的顯示范圍(0-105)需要三個 LED 數(shù)碼顯示器,采用共陽極靜態(tài)顯 示。LED 具有耗電省,成本低,配置靈活,安裝方便等優(yōu)點。顯示器采用串行 口設置為方式0輸出方式,外接 74LS164 移位寄存器構成顯示器接口電路,如 圖 3。 3.1.2 溫度檢測電路 由 DALLAS 半導體公司生產的 DS18B20 型單線智能溫度傳感器,屬于新 一代適配微處理器的智能溫度傳感器,可廣泛用于工業(yè)、民用、軍事等領域的 溫度測量及控制儀器、測控系統(tǒng)和大型設備中。它具有體積小,接口方便,傳 輸距離遠等特點。 DS18B20 的性能特點:①采用單總線專用技術,既可通過串行口線,也可 通過其它 I/O 口線與微機接口,無須經過其它變換電路,直接輸出被測溫度值 (9 位二進制數(shù),含符號位) ,②測溫范圍為-55℃--+125℃,測量分辨率為 7 1 2 3 DS18B20 R1 4.7K VCC 5V Port 0.0625℃,③內含 64 位經過激光修正的只讀存儲器 ROM,④適配各種單片機 或系統(tǒng)機,⑤用戶可分別設定各路溫度的上、下限,⑥內含寄生電源。 DS18B20 內部結構主要由四部分組成:64 位光刻 ROM,溫度傳感器, 非揮發(fā)的 溫度報警觸發(fā)器 TH 和 TL,高速暫存器。DS18B20 的管腳排列如圖 4 所示。64 位光刻 ROM 是出廠前被光刻好的,它可以看作是該 DS18B20 的地址序列號。 不同的器件地址序列號不同 [2]。 圖 4 DS18B20 封裝 在硬件上,DS18B20 與單片機的連接有兩種方法,一種是 Vcc 接外部電源, GND 接地,I/O 與單片機的 I/O 線相連;另一種是用寄生電源供電,此時 UDD、 GND 接地,I/O 接單片機 I/O。無論是內部寄生電源還是外部供電, I/O 口線要接 5KΩ 左右的上拉電阻。 CPU 對 DS18B20 的訪問流程是:先對 DS18B20 初始化,再進行 ROM 操作命令,最后才能對存儲器操作,數(shù)據操作。 DS18B20 每一步操作都要遵循嚴格的工作時序和通信協(xié)議。如主機控制 DS18B20 完成溫度轉換這一過程,根據 DS18B20 的通訊協(xié)議,須經三個步驟: 每一次讀寫之前都要對 DS18B20 進行復位,復位成功后發(fā)送一條 ROM 指令, 最后發(fā)送 RAM 指令,這樣才能對 DS18B20 進行預定的操作,如圖 5。 圖 5 DS18B20 應用電路 3.1.3 CPU 主電路 CPU 主電路主要包括復位電路,時鐘電路,單片機。8051 的外部振蕩脈沖 8 R1 4.7K R2 4.7K Port Port VCC5V 信號由 XTAL2 端輸入,直接送到內部時鐘電路。電容器 C1 和 C2 通常取 30PF 左右,振蕩頻率范圍是 1.2MHz~12MHz。 3.2 水位控制 水位控制電路如圖 6 所示。A 棒處于下限水位,棒處于上限水位, B 棒在 上、下限水位之間。A 棒接+5v 電源,B 棒、C 棒各通過一個電阻與地相連。 供水時,水位上升,當達到上限時,由于水的導電作用,B 棒、C 棒聯(lián)通 +5v。因此,b、c 兩端均為“1” 狀態(tài),這時,應關閉電磁閥停止供水。當水 位降到下限時,B 棒、C 棒都不能與 A 棒導通,因此 b、c 兩端均為“0”狀態(tài)。 這時,應打開電磁閥供水。當水位處于上下限之間時,B 棒與 A 棒導通。因 C 棒不能與 A 棒導通,b 端為 “1”狀態(tài),c 端為“0”狀態(tài)。這時,無論電磁閥 是打開的還是關閉的水位是上升的還是下降的,都應繼續(xù)維持原有的工作狀態(tài) [6]。 圖 6 水位檢測電路 3.3 電加熱電路 t 絲絲絲 Q1R1 C1 Port 220V T 圖 7 電加熱電路 該部分的設計主要解決兩個問題:弱電(單片機系統(tǒng))和強電(AC220v) 的隔離.對此,采用了光電耦合器和雙向可控硅實現(xiàn)對電熱絲的控制. 電加熱電路 由電熱板、雙向可控硅,光電隔離器等組成。當溫度傳感器檢測到箱內溫度低 于設定溫度時,通過其輸出口輸出一個控制電平,經過光電隔離送到雙向可控 9 硅的控制柵極,可控硅觸發(fā)導通,電熱板有電流流過,通電對水加熱,其電路 圖如圖 7。 3.4 時間繼電器控制電路 當貯水箱中的水位高于水位設定值后,限制開關 K 閉合。當溫度低于溫控 器設定溫度后,溫控器開關 JW 閉合;中間繼電器線圈 KM1 通電,觸頭 KM1 閉合; KM2 線圈通電,觸頭 KM2 閉合,電熱管 R 工作,指示燈 XD 通電發(fā) 亮。KT 線圈通電,觸頭 KT 閉合。當水溫達到設定溫度后,JW 斷開,線圈 KM1 失電,觸頭 KM1 斷開。時間繼電器 KT 失電,但觸頭 KT 因延時依然閉合, 交流接觸器線圈 KM2 依然通電,電熱管 R 繼續(xù)工件。達到預設的延時時間后, 觸頭 KT 才斷開,這時交流接觸器線圈 KM2 失電,電熱管 R 停止工件。指示燈 XD 熄滅,表示水可飲用??梢姡灰訒r時間設得合適,就能確保水被加熱 到沸騰后才跳閘。時間繼電器延時時間的設定方法在調試電熱水器時,先把時 間繼電器 KT 的線路切除,然后,如果是冬天可把溫控器調到接近水沸騰的溫 度(99℃ 以上) ,夏天則可以調到 98℃-99℃左右,重新接上時間繼電器,把時 間設在 2-5 分鐘即可。也可根據公式 pt=4.2m△T 計算出時間,舉例: 某廠的 電熱水器功率為 p=6 千瓦(電熱管是純電阻) , 容量為 40L(升)即 m=40 千克。 如果是夏天△T=2℃ (100℃— 98℃) , 可算出延時時間 t=56 秒。考慮散熱等 因素,取兩倍的時間 2 分鐘比較合適。其電路如圖 8。 圖 8 改進后的電氣原理圖 3.5 漏電檢測及報警電路 KT 10 A R1 R2 R3 R4 R5 C1L VCC Port 圖 9 漏電檢測電路 電熱水器工作在潮濕的場合,為了確保人身安全,控制器應具備漏電檢測 及報警功能,其電路圖如圖 9。漏電檢測是由漏電檢測線圈的輸出經整形后送 入 IC 的中斷輸入端 IRQ。一旦漏電電流超過規(guī)定的閾值,單片機將立即響應 中斷,通過漏電開關,切斷整個系統(tǒng)的供電電源,確保人身安全。系統(tǒng)中還設 有報警功能,當超溫或傳感器出現(xiàn)故障時,蜂鳴器報警提示。它是用一位 Abstract I/O 線來完成,從 I/O 口輸出一定頻率的方波信號,由晶體三極管驅 動蜂鳴器,使蜂鳴器發(fā)出聲音 [1]。 3.6 電源 圖 10 電源電路 系統(tǒng)采用 220V 供電,220V 市電經過 T1 降壓、D1~D4 整流、C1 濾波后 產生 12V 直流電,作為繼電器的驅動電壓。12V 電壓經過 7805 穩(wěn)壓后產生 5V 電壓,作為控制器的主電源。電容 C2 作為高頻旁路電容,將高頻信號旁路 到地。同樣電容 C3 為濾波電容,C4 為高頻旁路電容。R1 為限流電阻,LED1 為 5V 電源指示燈,如圖 10。在設計的過程中,濾波電容要盡量選擇的大,因 為在電路中要求電壓比較穩(wěn)定。 R12K T 12v 2w 1 2 3 4 D1~D4 BRIDGE1 C4 0.1uF C2 0.1uF LED Vin1 GN D 3 +5V 2 +C1 2000uF +C3 47uF FUSE1 5V12V AC220 11 4 系統(tǒng)的軟件設計 4.1 抗干擾設計 為了防止程序在執(zhí)行控制加熱管動作時出現(xiàn)干擾,使用指令復執(zhí)、程序卷 回的方法,讓程序在一段時間內連續(xù)循環(huán)執(zhí)行這個動作,確??刂茰蚀_無誤。 在各功能模塊子程序適當位置設置軟件陷阱,進行冗余設計,在信號采集與處 理程序中采用多種數(shù)字濾波的方法,消除隨機的尖脈沖干擾。 4.2 程序設計 開水箱的工作狀態(tài)總共有三個,它們分別是初次使用、用水之后和閑置狀 態(tài)。三個狀態(tài)所執(zhí)行的動作是不相同的,所以要分別考慮每個的狀態(tài)的所運用 的程序,其中初次使用和用水之后都會檢測水溫及水位信號,然后根據檢測到 的水位及水溫信號執(zhí)行動作;當開水箱閑置時它只會檢測水溫,如果水溫低于 設定值時加熱管就會通電,系統(tǒng)總流程圖如圖 11。 檢測水位,水溫并顯示水 溫 打開電磁閥,開始進水 N Y N 用水之后 檢測水位,水溫 Y 打開電磁閥,開始進水 閑置時 子程序運行 主程序 系統(tǒng)初始化 是否漏電 低于探頭 2? N 運行子程序 N 關閉電磁閥,停止進 水 關閉電磁閥,停止進 水 低于探頭 3? 低于探頭 1? 低于探頭 3? 12 圖11 主程序流程圖 5 結束語 本系統(tǒng)通過采用以 AT89S51 單片機作為核心檢測、控制器件實現(xiàn)了電熱水 器的自動快速恒溫的功能,克服了陰陽水的問題。并且加強了安全保護,加入 了人為控制、抗干擾等功能,對傳統(tǒng)的設計方案提出了改進措施,加入了前饋 控制環(huán)節(jié),使調溫速度更快,精確性更高,加入多項保護措施使系統(tǒng)使用更安 全可靠。用 DS18B20 測溫,在其內部就能進行 A/D 轉換,輸出數(shù)字量與單片 機直接進行通訊,無需外加轉換器 A/D,轉換速度快,降低了成本,而且大大 簡化了電路,提高了集成度,使其滿足小型化的要求。 致謝 非常感謝指導老師在畢業(yè)設計及論文寫作中給予我的指導與幫助。從畢業(yè) 設計和論文寫作開始,指導老師就給我們制訂了詳盡卻又環(huán)環(huán)相扣的計劃,并 且在每周都進行檢查和指導,使我們循序漸進、有條不紊地在所學課程的基礎 上展開應用。在這個實用性很強的課題中,指導老師豐富的經驗,淵博的知識, 深邃的思想,嚴謹?shù)闹螌W風格、平易近人處事態(tài)度,讓我們在學習知識和解決 Y 加熱器通電 N 子程序 水溫低于 85 度? 時間繼電器通電,延時 2 分鐘后加熱管斷電 水溫低于 99 度? 13 問題時感到無比的輕松和愉快,使我們少走了很多彎路,也讓我們學到很多書 本上沒有的內容。至此論文定稿之際,對指導老師表示衷心的感謝! 感謝老師 能在繁忙之中抽出時間為我提供耐心的指導,幫我們解決在設計過程中遇到的 種種問題。 在做畢業(yè)設計期間,我還有幸得到其它同學的大力幫助,有了他們,我才 能克服各種困難,順利完成畢業(yè)設計和論文。在這里一并向他們表示感謝!最 后,再次向各位領導、各位老師致以崇高的敬意和最衷心的感謝! 參考文獻 [1]國家標準局.家用和類似用途電器的安全— 貯水式電熱水器的特殊要求.北京:國家標 準局,GB4706.12-86 [2]張福學 .傳感器應用及其電路精選( 上、下冊)[M].北京;電子工業(yè)出版社,1992 [3]滕召生 ,童調生 . 智能檢測系統(tǒng)與數(shù)據融合 [M].北京;機械工業(yè)出版社,1999 [4]李娜 . 自動化儀表 [M].北京;燕山大學出版社,2004 [5]康華光,鄒壽彬.電子技術基礎數(shù)字部分[M].北京;高等教育出版社,1999.6 [6]王培東 .單片機原理及應用[M].哈爾濱;哈爾濱工業(yè)大學出版社,1996.3 [7]姚福安 .電子電路設計與實踐[M].濟南;山東科學技術出版社,2002 [8]余永權 .模糊控制技術與模糊家用電器[M].北京:北京航空航天大學出版社,2002 [9]周明寶,瞿文龍.電力電子技術[M].北京;機械工業(yè)出版社,1997.5 [10]宋春榮 .通用集成電路速查手冊[M] .濟南;山東科技大學出版社,1995.9 [11]徐君毅.單片微型計算機原理與應用[M].上海;上??茖W技術出版社,1986 [12]金權林 .電熱水器的熱平衡及參數(shù)選擇[J] .家用電器科技, 1996.1 [13]張漢屏 .八通道溫度巡查控制儀[J] .Electronics, DIY 2001, (3); 86- 871 [14]徐征明 .基于模糊模型設計自校正調節(jié)器的研究[J] .自動化學報 ,1987 ,13(3) [15]陶永華 .新型 PID 控制及其應用[M]. 北京;機械工業(yè)出版社, 2002 [16]李科杰 .新編傳感器手冊 [M].北京;國防工業(yè)出版社,2002 [17]許毓榮.影響溫控器漂移的因素[J] . 電機電器技術,2004,3 :32-33 14 附錄: DISP1 EQU 6FH ;顯示緩沖區(qū)域 DISP2 EQU 6EH DISP3 EQU 6DH DISP4 EQU 6CH DISP5 EQU 6BH ; D100 EQU 6AH ;溫度的百位數(shù)據緩存。 EV EQU 69H ;沒有刪分BCD的溫度值 DAY EQU 68H SUM EQU 67H ;控制訂定時器1的中段次數(shù) SUMM EQU 66H ;查表得出的定時器需要設置的延時初值的循環(huán)次數(shù)。 SV EQU 65H ;當前溫度值 15 DUAN1_W EQU 64H DUAN2_W EQU 63H DUAN3_W EQU 62H DUAN4_W EQU 61H ;3段溫度值 BEEP BIT P2.7 ;蜂鳴器 DS18B20_IN BIT P3.7 CHCEK_ZERO BIT P3.2 S10K EQU 33H ;一秒到,溫度刷 MS50 EQU 34H ;50MS的存儲單元。 TEMPH DATA 35H ;從18b20中得到的溫度 TEMPL DATA 36H ;從18b20中得到的溫度 CBCD EQU 38H ;拆B(yǎng)CD ORG 0000H LJMP MAIN ORG 0003H LJMP EX_ZERO ORG 000BH LJMP TOIT ORG 001BH LJMP TO2T ORG 0030H MAIN; MOV SP, #70H MOV TMOD,#11H MOV TH0, #9EH MOV TL0, #58H MOV TH1, #0FFH MOV TL1, #0E7H ;T1定時為0.05ms MOV S10K,#0 MOV SECOND, #0 MOV MINUTE, #0 MOV HOUR, #0 MOV DAY, #0 SETB BEEP MOV S11, #1 16 MOV S22, #0 MOV S55, #0 MOV DUAN1_W, #30 MOV DUAN2_W, #37 MOV DUAN3_W, #40 MOV DUAN4_W, #38 MOV DAY_1, #6 MOV DAY_2, #10 MOV DAY_3, #20 MOV DISP1, #0H MOV DISP2, #11H MOV DISP3, #11H MOV DISP4, #10H MOV DISP5, #0FH ;系統(tǒng)初始化 ACALL TZHDISP SETB EA SETB ET0 SETB ET1 CLR TR0 SETB EX0 CLR IT0 SETB PT0 SETB PT1 CLR PS CLR PX0 CLR PX1 CLR CH_A; SETB CH_B; SETB CH_C; CLR P0.0; START; MOV A, S10K CJNE A, #1, START1 LCALL WENDU LCALL DISP MOV S10K, #0 MAIN1; JB FLAG.1, NE7 JB S2, NET1 ACALL T12MS JB S2, NET1 JNB S2, $ MAIN1_1;INC S22 17 MOV A, S22 NET1; CJNE A, #1, NE1 MOV R0, #DUAN1_W ;R0送入第一段要調的溫度單元地址 MOV DISP3, #11 MOV DISP2, #12 MOV DISP1, #1 LJMP TZ NE1; CJNE A, #2, NE2 MOV R0, #DUAN2_W ;R0送入第二段要調的溫度單元地址 MOV DISP3, #11 MOV DISP2, #12 MOV DISP1, #2 LJMP TZ NE2; CJNE A, #3, NE3 MOV R0, #DUAN3_W ;R0送入第三段要調的溫度單元地址 MOV DISP3, #11 MOV DISP2, #12 MOV DISP1, #3 LJMP TZ SETB TR0 SETB EX0 MOV SV, DUAN1_W ;系統(tǒng)開始運行,調入第一段溫度 SETB FLAG.1 MA1; CJNE A, #2, MAIN2 CLR TR0 CLR EX0 SETB RUN CLR TR1 SETB CONTROL_G MOV S55, #0 MAIN2;LJMP START ; 一秒定時中段 (時鐘程序) ;************************************ TOIT; PUSH PSW 18 PUSH ACC MOV TH0, #03CH MOV TL0, #0B0H INC MS50 MOV A, MS50 CJNE A, #20, RETURN ;20 MOV S10K, #1 MOV MS50, #00H INC SECOND MOV A, SECOND CJNE A, #60, RETURN MOV SECOND, #0 INC DAY MOV A, DAY CJNE A, DAY_1, N1 MOV SV, DUAN2_W N1; CJNE A, DAY_2, N2 MOV SV, DUAN3_W SETB FLAG.0 ;第二段溫度送出 N2; CJNE A, DAY_3, N3 CLR FLAG.0 MOV SV, DUAN4_W N3; MOV A, DAY CJNE A, #60, RETURN MOV MINUTE, #0 INC HOUR ; JNB FLAG.0, PASS ;如果標志位為0 ,通過 ; INC DJ ; MOV A, DJ ; CJNE A, #2, PASS PASS ;MOV A, HOUR MOV A, HOUR CJNE A, #24, RETURN MOV HOUR, #0 INC DAY RETURN;POP ACC POP PSW 19 RETI ;********************************************* ;定時器1中段程序 TO2T; PUSH ACC PUSH PSW DJNZ SUM, CHU CLR CONTROL_G CLR P0.0 CLR TR1 CHU; MOV TH1, #0FFH MOV TL1, #0E7H ;T1定時為0.05ms POP PSW POP ACC RETI ;***************************************************************************** ;通過外部中斷口調整溫度 EX_ZERO;PUSH ACC PUSH PSW MOV TH1,#0FFH MOV TL1,#0E7H ;T1定時為0.05ms SETB P0.0 SETB CONTROL_G MOV SUM, SUMM ;SUMMM 差值查出的,TR1中段次數(shù) SETB TR1 POP PSW POP ACC RETI KIND; ACALL TZHDISP ACALL T12MS ACALL T12MS JB S1, NET10 ACALL T12MS JB S1, NET12 JNB S1, $ KIND1;INC S11 20 MOV A, S11 NET10;CJNE A, #1, NET11 MOV DUAN1_W, #20 MOV DUAN2_W, #21 MOV DUAN3_W, #22 MOV DUAN4_W, #23 MOV DAY_1, #5 MOV DAY_2, #10 MOV DAY_3, #15 MOV DISP1, #1 MOV DISP2, #1 MOV DISP3, #1 MOV DISP4, #1 MOV DISP5, #1 CLR CH_A; SETB CH_B; SETB CH_C; NET11; CJNE A, #2, NET12 MOV DUAN1_W, #10 MOV DUAN2_W, #11 MOV DUAN3_W, #12 MOV DUAN4_W, #13 MOV DAY_1, #10 MOV DAY_2, #15 MOV DAY_3, #20 MOV DISP1, #2 MOV DISP2, #2 MOV DISP3, #2 MOV DISP4, #2 MOV DISP5, #2 CLR CH_A SETB CH_B CLR CH_C NET12;CJNE A, #3, NET13 MOV DUAN1_W, #20 MOV DUAN2_W, #21 MOV DUAN3_W, #22 MOV DUAN4_W, #23 MOV DAY_1, #11 MOV DAY_2, #16 MOV DAY_3, #21 21 MOV DISP1, #3 MOV DISP2, #3 MOV DISP3, #3 MOV DISP4, #3 MOV DISP5, #3 SETB CH_A CLR CH_B CLR CH_C NET13;CJNE A, #4, NET14 MOV S11, #0 MOV DISP1, #0 MOV DISP2, #0 MOV DISP3, #0 MOV DISP4, #0 MOV DISP5, #0 SETB CH_A CLR CH_B SETB CH_C NET14;JB S2, NET15 ACALL T12MS JB S2, NET15 JNB S2, $ MOV DISP1, #0 MOV DISP2, #0 MOV DISP3, #0 MOV DISP4, #0 MOV DISP5, #0 LJMP MAIN1_1 NET15; JB S5, NET16 ACALL T12MS JB S5, NET16 JNB S5, $ MOV SV, DUAN1_W ;系統(tǒng)開始運行,調入第一段溫度 LJMP S55_1 NET16; LJMP KIND ;=============================== ;溫度總子程序 ;=============================== 22 WENDU; ACALL INIT_1820 ACALL RE_CONFIG ACALL GET_TEMPER ACALL CONVTEMP_BCD ACALL SUBBB RET ;------------------- ;DS18B20初始化程序 ;------------------- INIT_1820; SETB DS18B20_IN NOP CLR DS18B20_IN MOV R0,#06BH MOV R1,#03H TSR1; DJNZ R0,TSR1 ; 延時 MOV R0,#6BH DJNZ R1,TSR1 SETB DS18B20_IN NOP NOP NOP MOV R0,#25H TSR2; JNB DS18B20_IN,TSR3 DJNZ R0,TSR2 LJMP TSR4 ; 延時 TSR3; SETB 20H.1 ; 置標志位 ,表示DS1820存在 LJMP TSR5 TSR4; CLR 20H.1 ; 清標志位 ,表示DS1820不存在 23 LJMP TSR7 TSR5; MOV R0,#06BH MOV R1,#03H TSR6; DJNZ R0,TSR6 ; 延時 MOV R0,#6BH DJNZ R1,TSR6 TSR7; SETB DS18B20_IN RET ;------------------------------- ; 重新寫DS18B20暫存存儲器設定值 ;------------------------------- RE_CONFIG; CLR EX0 ;關閉外部中斷 CLR ET1 JB 20H.1,RE_CONFIG1 ; 若DS18B20存在,轉RE_CONFIG1 RET RE_CONFIG1; MOV A,#0CCH ; 發(fā)SKIP ROM命令 LCALL WRITE_1820 MOV A,#4EH ; 發(fā)寫暫存存儲器命令 LCALL WRITE_1820 MOV A,#00H ; TH(報警上限)中寫入00H LCALL WRITE_1820 MOV A,#00H ; LCALL WRITE_1820 MOV A,#1FH ; 選擇9位溫度分辨率 LCALL WRITE_1820 SETB EX0 SETB ET1 RET 24 ;--------------------------- ; 讀出轉換后的溫度值 ;--------------------------- GET_TEMPER; CLR EX0 CLR ET1 SETB DS18B20_IN ; 定時入口 LCALL INIT_1820 JB 20H.1,TSS2 RET ; 若DS18B20不存在則返回 TSS2; MOV A,#0CCH ; 跳過ROM匹配 LCALL WRITE_1820 MOV A,#44H ; 發(fā)出溫度轉換命令 LCALL WRITE_1820 LCALL INIT_1820 MOV A,#0CCH ; 跳過ROM匹配 LCALL WRITE_1820 MOV A,#0BEH ; 發(fā)出讀溫度命令 LCALL WRITE_1820 LCALL READ_18200 MOV 37H,A ; 將讀出的溫度數(shù)據保存 SETB EX0 SETB ET1 RET ; 寫DS18B20的程序 WRITE_1820; MOV R2,#8 CLR C WR1; CLR DS18B20_IN 25 NOP NOP NOP NOP RRC A MOV DS18B20_IN,C MOV R3,#35 DJNZ R3,$ SETB DS18B20_IN NOP DJNZ R2,WR1 SETB DS18B20_IN RET ;------------------------------------------------- ; 讀DS18B20的程序,從DS18B20中讀出兩個字節(jié)的溫度數(shù)據 ;-------------------------------------------------- READ_18200; MOV R4,#2 ; 將溫度高位和低位從DS18B20 中讀出 MOV R1,#36H ; 低位存入36H(TEMPER_L), 高位存入 35H(TEMPER_H) RE00; MOV R2,#8 RE01; CLR C SETB DS18B20_IN NOP NOP CLR DS18B20_IN NOP NOP NOP SETB DS18B20_IN NOP NOP MOV C,DS18B20_IN MOV R3,#35 RE20; DJNZ R3,RE20 26 RRC A DJNZ R2,RE01 MOV @R1,A DEC R1 DJNZ R4,RE00 RET ;***************************************** ;處理溫度BCD碼子程序 ;*************************************** CONVTEMP_BCD;MOV A, TEMPL ANL A, #0FH MOV DPTR, #DOTTAB MOVC A, @A+DPTR MOV DISP3, A MOV A, TEMPL ANL A, #0F0H SWAP A MOV TEMPL, A MOV A, TEMPH ANL A, #0FH SWAP A ORL A, TEMPL MOV EV, A ;存入沒有刪分的當前溫度值 MOV B, #100 DIV AB MOV D100, A MOV A, #10 XCH A,B DIV AB MOV DISP4, B MOV DISP5, A RET DOTTAB; DB 00H,01H,01H,02H,03H,03H,04H,04H,05H,05H,06H DB 06H,07H,08H,09H,09H ;******************************************************** ;計算出,所測溫度和當前溫度的差值并查出,要T1定時的次數(shù) SUBBB; PUSH PSW PUSH ACC 27 CL
收藏