找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 36360|回復(fù): 26
打印 上一主題 下一主題
收起左側(cè)

基于單片機(jī)的智能飲水機(jī)的設(shè)計(jì)論文

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:255830 發(fā)表于 2017-11-30 19:32 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
本科畢業(yè)設(shè)計(jì)(論文)

題目 基于單片機(jī)的智能飲水機(jī)的設(shè)計(jì)

摘 要

目前,大多數(shù)家庭所使用的飲水機(jī)都只有一些基本的功能,例如加熱、保溫。然而,隨著人們物質(zhì)生活的不斷提高,對(duì)飲水機(jī)的性能要求也不斷提高。為了滿足人們對(duì)飲水機(jī)的性能要求,本課題研究智能飲水機(jī),它主要功能是在溫度達(dá)到100°沸騰,并能在0-100℃之間以5℃為最小溫差進(jìn)行溫度設(shè)定,從而得到任意想要的水溫,非常人性化。它還具有過(guò)熱保護(hù)及防干燒功能等。

隨著計(jì)算機(jī)技術(shù)的發(fā)展,單片機(jī)技術(shù)已成為計(jì)算機(jī)技術(shù)中的一個(gè)獨(dú)特的分支,單片機(jī)的應(yīng)用領(lǐng)域也越來(lái)越廣泛,特別是在工業(yè)控制和儀器儀表智能化中扮演著極其重要的角色。過(guò)去經(jīng)常采用模擬電路、數(shù)字電路實(shí)現(xiàn)的電路系統(tǒng),現(xiàn)在相當(dāng)大一部分可以用單片機(jī)予以實(shí)現(xiàn),傳統(tǒng)的電路設(shè)計(jì)方法已演變成軟件和硬件相結(jié)合的設(shè)計(jì)方法。在實(shí)際應(yīng)用中,單片機(jī)經(jīng)常要與各種傳感器相結(jié)合組成一定的應(yīng)用系統(tǒng),以實(shí)現(xiàn)系統(tǒng)的自動(dòng)檢測(cè)與控制。

本文所設(shè)計(jì)的智能飲水機(jī)就是單片機(jī)結(jié)合傳感器的一個(gè)簡(jiǎn)單應(yīng)用。該系統(tǒng)設(shè)計(jì)綜合單片機(jī)以及電子技術(shù)理論,從生活實(shí)際出發(fā),完善了飲水機(jī)的功能。整個(gè)設(shè)計(jì)系統(tǒng)實(shí)現(xiàn)三個(gè)功能,即加熱、對(duì)溫度上下限的控制和定時(shí)加熱。與傳統(tǒng)的飲水機(jī)相比,由于采用了自動(dòng)檢測(cè)和控制的電子設(shè)計(jì)技術(shù),可較好地實(shí)現(xiàn)對(duì)水溫的測(cè)量和控制,具有較廣泛的應(yīng)用前景。


目錄


前  言
1緒  論
1.1 課題研究的背景
1.2 市場(chǎng)飲水機(jī)現(xiàn)狀
1.3 課題研究的目的和意義
1.4 智能飲水機(jī)的主體功能
1.5 課題設(shè)計(jì)的主體內(nèi)容
2 智能飲水機(jī)的硬件結(jié)構(gòu)設(shè)計(jì)
2.1 智能飲水機(jī)的總體設(shè)計(jì)
2.2 元器件選擇
2.3 AT89S52的主要性能
2.3.1 AT89S52功能特性描述
2.3.2 AT89S52晶振電路的設(shè)計(jì)
2.4 測(cè)溫電路的設(shè)計(jì)
2.4.1 DS18B20的引腳圖及方框圖
2.4.2 DS18B20主要性能
2.4.3 DS18B20功能特性描述
2.4.4 DS18B20供電方式
2.5 主控系統(tǒng)
2.6 輸入控制
2.7 顯示部分
2.8 其他功能部分
3 智能飲水機(jī)的軟件設(shè)計(jì)
3.1 系統(tǒng)分配方式
3.2 主程序設(shè)計(jì)
3.3 各模塊程序設(shè)計(jì)
3.3.1 溫度檢測(cè)程序設(shè)計(jì)
3.3.2 顯示程序設(shè)計(jì)
3.3.3 鍵盤(pán)掃描程序
3.3.4 延時(shí)程序
4 調(diào)試及性能分析
4.1 軟件調(diào)試
4.1.1 新建工程
4.1.2 新建文本
4.1.3 添加文本
4.1.4 程序編譯
4.2 硬件調(diào)試
4.2.1 電源電路的仿真
4.2.2 出水電路模塊的仿真
4.2.3 加熱模塊電路的仿真
4.2.4 顯示模塊電路的仿真
4.2.5 報(bào)警電路的仿真
4.3 性能分析
結(jié)  論
致 謝
參考文獻(xiàn)
參考文獻(xiàn)
附錄1
附錄2
附錄3

前  言

隨著“信息時(shí)代”的到來(lái),作為獲取信息的手段——傳感器技術(shù)得到了顯著的進(jìn)步,其應(yīng)用領(lǐng)域越來(lái)越廣泛,對(duì)其要求越來(lái)越高,需求越來(lái)越迫切。傳感器技術(shù)已成為衡量一個(gè)國(guó)家科學(xué)技術(shù)發(fā)展水平的重要標(biāo)志之一。因此,了解并掌握各類(lèi)傳感器的基本結(jié)構(gòu)、工作原理及特性是非常重要的。

由于傳感器能將各種物理量、化學(xué)量和生物量等信號(hào)轉(zhuǎn)變?yōu)殡娦盘?hào),使得人們可以利用計(jì)算機(jī)實(shí)現(xiàn)自動(dòng)測(cè)量、信息處理和自動(dòng)控制,但是它們都不同程度地存在溫漂和非線性等影響因素。傳感器主要用于測(cè)量和控制系統(tǒng),它的性能好壞直接影響系統(tǒng)的性能。因此,不僅必須掌握各類(lèi)傳感器的結(jié)構(gòu)、原理及其性能指標(biāo),還必須懂得傳感器經(jīng)過(guò)適當(dāng)?shù)慕涌陔娐氛{(diào)整才能滿足信號(hào)的處理、顯示和控制的要求,而且只有通過(guò)對(duì)傳感器應(yīng)用實(shí)例的原理和智能傳感器實(shí)例的分析了解,才能將傳感器和信息通信和信息處理結(jié)合起來(lái),適應(yīng)傳感器的生產(chǎn)、研制、開(kāi)發(fā)和應(yīng)用。另一方面,傳感器的被測(cè)信號(hào)來(lái)自于各個(gè)應(yīng)用領(lǐng)域,每個(gè)領(lǐng)域都為了改革生產(chǎn)力、提高工效和時(shí)效,各自都在開(kāi)發(fā)研制適合應(yīng)用的傳感器,于是種類(lèi)繁多的新型傳感器及傳感器系統(tǒng)不斷涌現(xiàn)。溫度傳感器是其中重要的一類(lèi)傳感器。其發(fā)展速度之快,以及其應(yīng)用之廣,并且還有很大潛力。

為了提高對(duì)傳感器的認(rèn)識(shí)和了解,尤其是對(duì)溫度傳感器的深入研究以及其用法與用途,基于實(shí)用、廣泛和典型的原則而設(shè)計(jì)了本系統(tǒng)。本文利用單片機(jī)結(jié)合溫度傳感器加以簡(jiǎn)單的按鍵控制及顯示等功能實(shí)現(xiàn)了對(duì)智能飲水機(jī)的控制,為我們對(duì)單片機(jī)系統(tǒng)的學(xué)習(xí)提供了很好的真實(shí)素材。

本設(shè)計(jì)實(shí)用性及綜合性比較強(qiáng),設(shè)計(jì)系統(tǒng)不僅可以作為智能飲水機(jī)的控制系統(tǒng),如果稍微改裝可以做環(huán)境溫度檢測(cè)系統(tǒng)、實(shí)驗(yàn)室溫度監(jiān)控系統(tǒng)等等。課題主要任務(wù)是完成水溫檢測(cè)并利用單片機(jī)實(shí)現(xiàn)溫度調(diào)節(jié)并加以顯示、報(bào)警、鎖定等功能。該系統(tǒng)具有操作方便,控制靈活、實(shí)用等優(yōu)點(diǎn)。

本設(shè)計(jì)系統(tǒng)包括溫度傳感器,鍵盤(pán)輸入模塊,輸出控制模塊,數(shù)據(jù)傳輸模塊,溫度顯示模塊和出水驅(qū)動(dòng)電路等部分。文中對(duì)每個(gè)部分功能、實(shí)現(xiàn)過(guò)程作了詳細(xì)介紹。整個(gè)系統(tǒng)的核心是進(jìn)行溫度監(jiān)控及調(diào)節(jié),完成了課題所有要求。



11.1 課題研究的背景

從飲水機(jī)問(wèn)世以來(lái),在中國(guó)的發(fā)展趨勢(shì)逐年增加。飲水機(jī)的使用量逐年增長(zhǎng),隨著人們生活水平的提高,人們對(duì)其功能的要求也越來(lái)越高,所以,對(duì)智能飲水機(jī)的需求就逐漸顯現(xiàn)了出來(lái)!

飲水機(jī)是采用瓶裝水或者自來(lái)水經(jīng)凈水器凈化作為水源,利用電能對(duì)其進(jìn)行加熱,一年四季提供常溫水或熱水的飲水電器。飲水機(jī)基本能滿足人們?nèi)粘5娘嬎、泡茶、沖咖啡、即食食品以及調(diào)制冷飲的各種需要。飲水機(jī)具有飲水時(shí)尚、結(jié)構(gòu)簡(jiǎn)單、操作方便、清潔衛(wèi)生、價(jià)廉物美等優(yōu)點(diǎn)。  

在飲水機(jī)進(jìn)入高潮的今天,市場(chǎng)十分活躍,然而,消費(fèi)者對(duì)飲水機(jī)的選擇不是停留在過(guò)去的眼光,而是高標(biāo)準(zhǔn),不僅實(shí)用而且要求外形脫俗,跟上時(shí)代潮流步伐,尤其在其功能方面要有更高的要求。

當(dāng)前絕大多數(shù)廠家生產(chǎn)的飲水機(jī)都采用智能化控制。因此,智能飲水機(jī)已是飲水機(jī)發(fā)展的必然趨勢(shì)。


1.2 市場(chǎng)飲水機(jī)現(xiàn)狀

可以這樣說(shuō),現(xiàn)在的家用電器基本上都采用了單片機(jī)控制,從電飯煲、洗衣機(jī)、電冰箱、空調(diào)機(jī)、彩電、其他音響視頻器材、再到電子秤設(shè)備,五花八門(mén),無(wú)所不在。飲水機(jī)也不例外。

單片機(jī)按其應(yīng)用范圍可分為通用型和專(zhuān)用型兩類(lèi)。家用電器多采用專(zhuān)用型單片機(jī),如日本NEC公司開(kāi)發(fā)的7500系列和75X00系列4位單片機(jī)、美國(guó)國(guó)家半導(dǎo)體公司的COP400系列4位單片機(jī),以及日本松下公司的MN1400系列、美國(guó)Zilog公司的Z8系列以及日本富士通公司的MB88系列等專(zhuān)用型單片機(jī)。家用電器所采用的通用型單片機(jī),主要是Intel公司的MCS系列產(chǎn)品。

目前飲水機(jī)基本上都采用單片機(jī)控制,但各廠家生產(chǎn)的飲水機(jī)單片機(jī)控制所達(dá)到的功能各不相同。智能化,多功能必定是發(fā)展趨勢(shì)。


1.3 課題研究的目的和意義

單片機(jī)在電子產(chǎn)品中的應(yīng)用已經(jīng)越來(lái)越廣泛, 在很多電子產(chǎn)品中也用到了溫度檢測(cè)和溫度控制。

目前廣泛使用的飲水機(jī),具有價(jià)格低廉,制造簡(jiǎn)便等優(yōu)點(diǎn)。但是隨著用戶長(zhǎng)時(shí)間使用,這些飲水機(jī)功能單一、能耗較大、長(zhǎng)時(shí)間飲用飲水機(jī)的水對(duì)健康不利等缺點(diǎn)逐漸暴露出來(lái)。

傳統(tǒng)的飲水機(jī)的局限性一般體現(xiàn)在以下幾個(gè)方面:第一,功能相對(duì)簡(jiǎn)單。只有簡(jiǎn)單的溫度控制,而且用戶還不能自己根據(jù)自己的喜好設(shè)定溫控參數(shù)。第二,能耗較大。在沒(méi)有人使用的時(shí)候飲水機(jī)也處在開(kāi)機(jī)狀態(tài)無(wú)疑會(huì)造成能源的大量浪費(fèi),在能源緊缺的今天這個(gè)方面亟待解決。第三, 長(zhǎng)期飲用飲水機(jī)里的水會(huì)對(duì)健康不利。由于廣泛使用的飲水機(jī)燒水不能完全沸騰,長(zhǎng)期飲用這種水會(huì)對(duì)身體造成較大的傷害。

本此設(shè)計(jì)的基于AT89S52的多功能飲水機(jī), 采用DS18B20實(shí)現(xiàn)溫度采集,經(jīng)過(guò)LED顯示, 讀數(shù)直觀、準(zhǔn)確。并且程序存儲(chǔ)器E2PROM可以很容易的實(shí)現(xiàn)軟件升級(jí), 從軟件方面提高儀器精度。同時(shí)可以對(duì)加熱溫度進(jìn)行控制,從而防止了每次加熱都使水沸騰,既節(jié)能又能更好的滿足人們的需求。


1.4 智能飲水機(jī)的主功能

(1)智能飲水機(jī)的主體功能:

本課題設(shè)計(jì)的智能飲水機(jī)具有過(guò)熱保護(hù)防干燒、加熱至沸騰、設(shè)置溫度加熱、超溫報(bào)警提示、安全鎖定、電動(dòng)機(jī)出水功能等。

(2)智能飲水機(jī)的按鍵功能:

①出水鍵:控制飲水機(jī)出水和停止出水;②加熱鍵:負(fù)責(zé)控制開(kāi)始加熱和停止加熱;③鎖定鍵:按下鎖定鍵,其他按鍵無(wú)效;④切換。喊聪潞箝_(kāi)始設(shè)定用戶想要的溫度;⑤溫度設(shè)定鍵:按一下溫度增加5℃,溫度可在0℃到100℃之間循環(huán)。

(3)智能飲水機(jī)的顯示功能:

①電源燈(綠色):接通電源,電源燈點(diǎn)亮;②加熱指示燈(黃色):按下加熱鍵,加熱指示燈點(diǎn)亮,表示燒水開(kāi)始工作。再次按下加熱鍵,指示燈熄滅,表示燒水停止;③鎖定鍵指示燈(藍(lán)色):鎖定其他按鍵功能,燈亮表示其他按鍵均不可用;④超溫報(bào)警燈(紅色):燈點(diǎn)亮表示水已經(jīng)達(dá)到設(shè)定的加熱溫度或已沸騰并停止加熱;⑤數(shù)碼管:顯示當(dāng)前水溫或用戶設(shè)定的溫度。⑥蜂鳴器:響起后說(shuō)明水以沸騰并停止加熱。


1.5 課題設(shè)計(jì)的主內(nèi)容

該設(shè)計(jì)的主要內(nèi)容主要包括設(shè)計(jì)方向的選擇、設(shè)計(jì)題目的確定、設(shè)計(jì)方法的研究與比較,選擇最優(yōu)方案后開(kāi)始進(jìn)行硬件設(shè)計(jì)和軟件設(shè)計(jì)以及最終的仿真調(diào)試。其中硬件設(shè)計(jì)包括器件的選定,各模塊功能的設(shè)計(jì)與實(shí)現(xiàn),以及最終各功能模塊與單片機(jī)的連接構(gòu)成一個(gè)整體系統(tǒng)并能滿足設(shè)計(jì)要求;軟件設(shè)計(jì)主要是通過(guò)編寫(xiě)C語(yǔ)言程序?qū)纹瑱C(jī)進(jìn)行控制使其按照程序運(yùn)行從而實(shí)現(xiàn)各模塊的功能滿足設(shè)計(jì)的要求;最終通過(guò)Keil uVision2編譯軟件將寫(xiě)好的程序編譯成為16進(jìn)制文件,使之能夠在proteus仿真軟件中和硬件電路一起進(jìn)行仿真調(diào)試,從而確保設(shè)計(jì)的正確性。

2 智能飲水機(jī)的硬件結(jié)構(gòu)設(shè)計(jì)2.1 智能飲水機(jī)的總體設(shè)計(jì)

整個(gè)硬件系統(tǒng)由主控制系統(tǒng)、輸入輸出模塊、傳感器、其他功能電路和電源部分組成。主控系統(tǒng)使用單片機(jī)控制,包括對(duì)鍵盤(pán)的信息的接收和控制,對(duì)其他功能電路的控制等,通過(guò)軟件編程實(shí)現(xiàn)預(yù)定功能;傳感器部分即檢測(cè)子系統(tǒng),主要是進(jìn)行飲水機(jī)中水的溫度檢測(cè)和控制,采用智能溫度傳感器DS18B20;其他功能電路部分包括恒溫,防干燒,出水等電路,達(dá)到功能多樣化;電源部分為智能飲水機(jī)提供必要的電能,保證飲水機(jī)能夠正常的工作。整體框圖如圖2-1所示。以下詳細(xì)討論每個(gè)功能模塊的設(shè)計(jì)思想和硬件電路的實(shí)現(xiàn)。


   

圖2-1 智能飲水機(jī)電路框圖

2.2 元器件選擇

主機(jī)單元由AT89S52單片機(jī)和相關(guān)的存儲(chǔ)器組成,是儀表的核心。關(guān)鍵部分期間名稱及其在電路中的主要功能如下:

(1)AT89S52:完成監(jiān)控系統(tǒng)數(shù)據(jù)采集過(guò)程、采集方式和報(bào)警過(guò)程的控制。是整個(gè)系統(tǒng)的核心處理器,單片機(jī)首先把通過(guò)傳感器測(cè)到的現(xiàn)場(chǎng)溫度與預(yù)先設(shè)置的溫度進(jìn)行比較,如果大于或小于預(yù)先設(shè)置值,就輸出信號(hào)去控制加熱器的工作,從而實(shí)現(xiàn)溫度控制。

(2)數(shù)碼管:用于顯示當(dāng)前水溫及設(shè)定的水溫。

(3)DS18B20:單線數(shù)字溫度傳感器,可直接將被測(cè)溫度轉(zhuǎn)化為串行數(shù)字信號(hào),以供單片機(jī)處理。

(4)各色LED及蜂鳴器:用于提示用戶飲水機(jī)的各種狀態(tài)。

(5)按鍵:輸入模塊,用于控制單片機(jī)完成各項(xiàng)功能。


2.3 AT89S52的主要性能

AT89S52具有8k字節(jié)Flash閃速存儲(chǔ)器,256字節(jié)內(nèi)部RAM,32個(gè)I/O口線,3個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)6向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),AT89S52可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式。空閑方式停止CPU的工作,但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作指導(dǎo)下一個(gè)硬件復(fù)位。

2.3.1 AT89S52功能特性描述

(1)AT89S52是一種低功耗,高性能CMOS工藝的8位微控制器,具有8K在系統(tǒng)可編程Flash存儲(chǔ)器。使用Atmel公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)提供高靈活,超有效的解決方案。

(2)AT89S52具有以下標(biāo)準(zhǔn)功能:8K字節(jié)Flash,256字節(jié)RAM,32位I/O口線,看門(mén)狗定時(shí)器,2個(gè)數(shù)據(jù)指針,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52可降至0KHZ靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)停止工作,直到一個(gè)中斷或硬件復(fù)位為止。

(3)AT89S52有40個(gè)引腳,32個(gè)外部雙向輸入/輸出(I/O)端口,同時(shí)內(nèi)含8個(gè)中斷口,3個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,2個(gè)讀寫(xiě)口線。AT89S52可以按照常規(guī)方法進(jìn)行編程,也可以在線編程。其通用的微處理器和Flash存儲(chǔ)器結(jié)合在一起,可反復(fù)擦寫(xiě)的Flash存儲(chǔ)器可有效地降低開(kāi)發(fā)成本。

2.3.2 AT89S52晶振電路的設(shè)計(jì)

每個(gè)單片機(jī)系統(tǒng)里都有晶振,全稱是叫晶體震蕩器,在單片機(jī)系統(tǒng)里晶振的作用非常大,它結(jié)合單片機(jī)內(nèi)部的電路,產(chǎn)生單片機(jī)所必須的時(shí)鐘頻率,單片機(jī)的一切指令的執(zhí)行都是建立在這個(gè)基礎(chǔ)上的,晶振的提供的時(shí)鐘頻率越高,那單片機(jī)的運(yùn)行速度也就越快。晶振用一種能把電能和機(jī)械能相互轉(zhuǎn)化的晶體在共振的狀態(tài)下工作,以提供穩(wěn)定,精確的單頻振蕩。在通常工作條件下,普通的晶振頻率絕對(duì)精度可達(dá)百萬(wàn)分之五十,高級(jí)的精度更高。

晶振電路中的兩個(gè)電容叫做負(fù)載電容。一般單片機(jī)的晶振工作于并聯(lián)諧振狀態(tài),也可以理解為諧振電容的一部分。它是根據(jù)晶振廠家提供的晶振要求負(fù)載電容選值的,換句話說(shuō),晶振的頻率就是在它提供的負(fù)載電容下測(cè)得的,能最大限度的保證頻率值的誤差。也能保證溫漂等誤差。兩個(gè)電容的取值都是相同的,或者說(shuō)相差不大,如果相差太大,容易造成諧振的不平衡,容易造成停振或者干脆不起振。

在本設(shè)計(jì)中XTAL1和XTAL2端外接石英晶體作為定時(shí)元件,內(nèi)部反向放大器自激振蕩,產(chǎn)生時(shí)鐘。所用石英晶體的振蕩頻率為12MHZ,電容C1,C2常為20pF~40pF內(nèi),如圖2-2所示。

圖2-2 晶振電路

2.4 測(cè)溫電路的設(shè)計(jì)
2.4.1
DS18B20的引腳圖及方框圖

DS18B20的外形及管腳排列圖如下圖2-3所示。

(1)GND  地信號(hào)

(2)DQ    數(shù)據(jù)輸入/輸出引腳。用在寄生電源下,可以向器件提供電源。

(3)VDD   可選擇的VDD引腳。當(dāng)工作于寄生電源時(shí),此引腳必須接地。

圖2-3 DS18B20外形及引腳排列

2.4.2 DS18B20主要性能

(1)獨(dú)特的單線接口方式,DS18B20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊;

(2)測(cè)溫范圍 -55℃~+125℃,固有測(cè)溫分辨率0.5℃;

(3)支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線上,最多只能并聯(lián)8個(gè),如果數(shù)量過(guò)多,會(huì)使供電電源電壓過(guò)低,從而造成信號(hào)傳輸?shù)牟环(wěn)定,實(shí)現(xiàn)多點(diǎn)測(cè)溫;

(4)工作電源: 直流3~5V;

(5)在使用中不需要任何外圍元件;

(6)測(cè)量結(jié)果以9~12位數(shù)字量方式串行傳送;

(7)不銹鋼保護(hù)管直徑 Φ6 ;

(8)適用于DN15~25, DN40~DN250各種介質(zhì)工業(yè)管道和狹小空間設(shè)備測(cè)溫;

(9)標(biāo)準(zhǔn)安裝螺紋 M10X1, M12X1.5, G1/2”任選;

(10)PVC電纜直接出線或德式球型接線盒出線,便于與其它電器設(shè)備連接。

2.4.3 DS18B20功能特性描述

DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器還包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的EERAM。高速暫存RAM的結(jié)構(gòu)為9字節(jié)的存儲(chǔ)器,結(jié)構(gòu)如表2-1所示。前兩個(gè)字節(jié)包含測(cè)得的溫度信息,第3和第4字節(jié)TH和TL的拷貝,是易失的,每次上電復(fù)位時(shí)被刷新。高速暫存RAM的第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯第9字節(jié)讀出前面所有8字節(jié)的CRC碼,可用來(lái)檢驗(yàn)數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。第5字節(jié)為配置寄存器,見(jiàn)表2-3,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。DS18B20工作時(shí)寄存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。該字節(jié)各位的定義如表2-3所示。低5位都為1,TM是工作模式位,用于設(shè)置DS18B20在工作模式還是在測(cè)試模式,DS--18B20出廠時(shí)該位被設(shè)置為0,用戶可改動(dòng),R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),來(lái)設(shè)置分辨率。

表2-1  高速暫存RAM
字節(jié)數(shù)
1
2
3
4
5
6
7
8
9
存儲(chǔ)信息
LSB
MSB
TH 1
TL 2
配置寄存器
保留
保留
保留
CRC


表2-2 DS18B20  溫度轉(zhuǎn)換時(shí)間表
R1
R0
分辨率/位
溫度最大轉(zhuǎn)換時(shí)間/ms
0
0
9
93.75
0
1
10
187.5
1
0
11
375
1
1
12
750


表2-3 配置寄存器
TM
R1
R0
1
1
1
1
1

由表2-2可見(jiàn),DS18B20分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時(shí)間越長(zhǎng)。當(dāng)DS18B20接收到溫度轉(zhuǎn)換命令后,開(kāi)始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換后,溫度值就以16位帶符號(hào)的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存存儲(chǔ)器的第1、2字節(jié)。單片機(jī)可以通過(guò)單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時(shí)低位在先,高位在后,數(shù)據(jù)格式以0.0625℃/LSB形式表示。DS18B20中的溫度傳感器可完成對(duì)溫度的測(cè)量,以12位轉(zhuǎn)化為例。其中S為符號(hào)位。DS18B20的溫度值格式如表2-4所示。

表2-4 DS18B20溫度值格式表
LSByte
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
MSByte
Bit15
Bit14
Bit13
Bit12
Bit11
Bit10
Bit9
Bit8
S
S
S
S
S

當(dāng)符號(hào)位S=0時(shí),表示測(cè)得的溫度值為正值,可以直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)符號(hào)位S=1時(shí),表示測(cè)得的溫度值為負(fù)值。表2-5是部分溫度值對(duì)應(yīng)的二進(jìn)制度數(shù)據(jù)。

表2-5 部分溫度對(duì)應(yīng)值表
溫度℃
二進(jìn)制表示
十六進(jìn)制表示
+125
0000011111010000
07D0H
+85
0000010101010000
0550H
+25.0625
0000000110010000
0191H
+10.125
0000000010100001
00A2H
+0.5
0000000000000010
0008H
0
0000000000001000
0000H
-0.5
1111111111110000
FFF8H
-10.125
1111111101011110
FF5EH
-25.025
1111111001101111
FE6FH

2.4.4 DS18B20供電方式

(1)DS18B20寄生電源供電方式電路

DS18B20采用寄生電源供電時(shí),要想使DS18B20進(jìn)行精確的溫度轉(zhuǎn)換,I/O線必須保證在溫度轉(zhuǎn)換期間提供足夠的能量,由于每個(gè)DS18B20在溫度轉(zhuǎn)換期間工作電流達(dá)到1mA,當(dāng)幾個(gè)溫度傳感器掛在同一根I/O線上進(jìn)行多點(diǎn)測(cè)溫時(shí),靠上拉電阻是無(wú)法提供足夠的能量,會(huì)造成無(wú)法轉(zhuǎn)換溫度或溫度誤差極大。因此,只適用于單一溫度傳感器測(cè)溫,也不宜采用電池供電系統(tǒng),并且電源電壓必須保證是5V。當(dāng)電源電壓下降時(shí),會(huì)使測(cè)量的誤差變大。

(2)DS18B20的外部電源供電方式

DS18B20采用外部供電時(shí),I/O線不需要強(qiáng)上拉電壓,同時(shí)在總線上可以掛接多個(gè)DS18B20傳感器,組成多點(diǎn)測(cè)溫系統(tǒng)。但要注意在外部供電的方式下,DS18B20的GND引腳不能懸空,否則讀取的溫度總是85℃。但在proteus仿真中VCC和GND均懸空,否則仿真錯(cuò)誤。

比較上述兩種供電方式后認(rèn)為外部電源供電方式對(duì)電源要求比電源供電方式優(yōu)越些且穩(wěn)定性好,故在此設(shè)計(jì)中采用外部電源供電方式供電電路。

仿真電路如下圖2-4:

圖2-4  采用外部供電的測(cè)溫電路

2.5 主控系統(tǒng)

主控系統(tǒng)采用單片機(jī)控制。

單片機(jī)的晶振與復(fù)位電路如圖2-5所示,單片機(jī)選用的是ATMEL公司的AT89S52的8 位單片機(jī),晶體振蕩器選12MHZ,C5,C6為22pF石英電容,與晶體振蕩器構(gòu)成時(shí)鐘電路。電容C7,電阻R7、R8和按鍵S1構(gòu)成上電復(fù)位和手動(dòng)復(fù)位電路。


圖2-5 晶振與復(fù)位電路

AT89S52是美國(guó)ATMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機(jī),片內(nèi)含4KB的可反復(fù)擦寫(xiě)的只讀程序存儲(chǔ)器(PEROM)和128B的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度,非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器(CPU)和Flash存儲(chǔ)單元,功能強(qiáng)大AT89S52單片機(jī)可為您提供許多高性價(jià)比的應(yīng)用場(chǎng)合,可靈活應(yīng)用于各種控制領(lǐng)域。


2.6 輸入控制

輸入控制如圖2-6所示,采用的按鍵控制,這樣不僅減少的制作成本而且便于做。通過(guò)74LS373的通斷進(jìn)行按鍵信號(hào)的傳輸,當(dāng)74LS373被鎖定時(shí),按鍵信號(hào)不能傳入單片機(jī),從而達(dá)到按鍵的鎖定作用。

圖2-6 輸入電路

2.7 顯示部分

LED數(shù)碼管實(shí)際上是由七個(gè)發(fā)光管組成8字形構(gòu)成的,加上小數(shù)點(diǎn)就是8個(gè)。這些段分別由字母a、b、c、d、e、f、g、p來(lái)表示。當(dāng)數(shù)碼管特定的段加上電壓后,這些特定的段就會(huì)發(fā)亮,以形成我們眼睛看到的字樣了。如:顯示一個(gè)“2”字,那么應(yīng)當(dāng)是a亮b亮g亮e亮d亮f不亮c不亮p不亮。LED數(shù)碼管有微亮亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。小尺寸數(shù)碼管的顯示筆畫(huà)常用一個(gè)發(fā)光二極管組成,而大尺寸數(shù)碼管是由二個(gè)或多個(gè)發(fā)光二極管組成,一般情況下,單個(gè)發(fā)光二極管的管壓降為1.8V左右,電流不超過(guò)30mA。發(fā)光二極管的陽(yáng)極連接到一起連接到電源正極稱為共陽(yáng)極數(shù)碼管,發(fā)光二極管的陰極連接到一起連接到電源負(fù)極稱為共陰極數(shù)碼管。

常用LED數(shù)碼管所顯示的數(shù)字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。 顯示電路見(jiàn)圖2-7。

圖2-7  顯示電路

LED數(shù)碼管引腳共陰和共陽(yáng)兩種方式:

電源VCC通過(guò)1個(gè)1K的排阻與LED相連,VCC串接個(gè)電阻后和GND接在任意2個(gè)腳上,組合有很多,但總有一個(gè)LED會(huì)發(fā)光的,找到一個(gè)就夠了,然后GND不動(dòng),VCC(串電阻)逐個(gè)碰剩下的腳,如果有多個(gè)LED(一般是8個(gè)),那它就是共陰。相反用VCC不動(dòng),GND逐個(gè)碰剩下的腳,如果有多個(gè)LED(一般是8個(gè)),那它就是共陽(yáng)。也可以直接用數(shù)字萬(wàn)用表,將檔位撥到二極管通斷性測(cè)試檔,這時(shí)紅表筆代表電源的正極,黑表筆代表電源的負(fù)極,然后在引腳上進(jìn)行逐個(gè)測(cè)試,以確定是共陽(yáng)還是共陰。一般十個(gè)引腳分別為7個(gè)段加2個(gè)公共加一個(gè)小數(shù)點(diǎn)。公共端一般在中間或在兩邊,兩排,一排一個(gè)對(duì)稱。至于其他引腳的排序你可以自己量出來(lái)。

先假設(shè)是共陰極或共陽(yáng)極,假設(shè)中間那個(gè)就是公共端,用數(shù)字萬(wàn)用表逐個(gè)判斷即可,如果判斷錯(cuò)誤不亮,就更改假設(shè),繼續(xù)判斷。直到假設(shè)正確,也就是說(shuō)判斷正確,那么引腳的順序和位置就出來(lái)。

數(shù)碼管所使用的電流與電壓

(1)電流:靜態(tài)時(shí),推薦使用10-15mA;動(dòng)態(tài)時(shí),16/1動(dòng)態(tài)掃描時(shí),平均電流為4-5mA,峰值電流50-60mA。

(2)電壓:查引腳排布圖,看一下每段的芯片數(shù)量是多少?當(dāng)紅色時(shí),使用1.9V乘以每段的芯片串聯(lián)的個(gè)數(shù);當(dāng)綠色時(shí),使用2.1V乘以每段的芯片串聯(lián)的個(gè)數(shù)。

2.8 其他功能部分

(1)出水控制

當(dāng)MOT輸出低電平時(shí),三極管處于截至區(qū),集電極和發(fā)射極導(dǎo)通,接觸器常開(kāi)觸點(diǎn)閉合,出水管道導(dǎo)通。如圖2-8所示。

圖2-8  出水控制

(2)加熱控制

當(dāng)HOT輸出低電平時(shí),三極管處于截至區(qū),集電極和發(fā)射極導(dǎo)通,接觸器常開(kāi)觸點(diǎn)閉合,線圈通電加熱。見(jiàn)圖2-9。

圖2-9 加熱控制

3 智能飲水機(jī)的軟件設(shè)計(jì)
3
.1 系統(tǒng)分配方式

在進(jìn)行微機(jī)控制系統(tǒng)設(shè)計(jì)時(shí),除了系統(tǒng)硬件設(shè)計(jì)外,大量的工作就是如何根據(jù)每個(gè)生產(chǎn)對(duì)象的實(shí)際需要設(shè)計(jì)應(yīng)用程序。因此,軟件設(shè)計(jì)在微機(jī)控制系統(tǒng)設(shè)計(jì)中占重要地位。對(duì)于本系統(tǒng),軟件更為重要。

在單片機(jī)控制系統(tǒng)中,大體上可分為數(shù)據(jù)處理、過(guò)程控制兩個(gè)基本類(lèi)型。數(shù)據(jù)處理包括:數(shù)據(jù)的采集、標(biāo)度變換等。過(guò)程控制程序主要是使單片機(jī)按一定的方法進(jìn)行計(jì)算,然后再輸出,以控制其工作。

為了完成上述任務(wù),在進(jìn)行軟件設(shè)計(jì)時(shí),通常把整個(gè)過(guò)程分成若干個(gè)部分,每一部分叫做一個(gè)模塊。所謂“模塊”,實(shí)質(zhì)上就是所完成一定功能,相對(duì)獨(dú)立的程序段,這種程序設(shè)計(jì)方法叫模塊程序設(shè)計(jì)法。

模塊程序設(shè)計(jì)法的主要優(yōu)點(diǎn)是:

(1)單個(gè)模塊比起一個(gè)完整的程序易編寫(xiě)及調(diào)試;

(2)模塊可以共存,一個(gè)模塊可以被多個(gè)任務(wù)在不同條件下調(diào)用;

(3)模塊程序允許設(shè)計(jì)者分割任務(wù)和利用已有程序,為設(shè)計(jì)者提供方便。

本系統(tǒng)軟件采用模塊化結(jié)構(gòu),由主程序、溫度檢測(cè)程序、顯示子程序、延時(shí)程序和其他相關(guān)程序等組成。


3.2 主程序設(shè)計(jì)

程序的初始化主要包括三個(gè)環(huán)節(jié):

(1)實(shí)現(xiàn)各種設(shè)置堆棧指針、定時(shí)器/計(jì)數(shù)器0初始化、以及開(kāi)中斷、定時(shí)器/計(jì)數(shù)器啟動(dòng);

(2)實(shí)現(xiàn)LED顯示當(dāng)前水溫并能顯示預(yù)設(shè)的水溫;

(3)不斷的進(jìn)行按鍵掃描,判斷是否有按鍵按下,如沒(méi)有按鍵按下,則返回顯示;如有按鍵按下,則根據(jù)所按鍵實(shí)現(xiàn)相應(yīng)的操作。

人機(jī)對(duì)話功能鍵設(shè)置如下:

(1)“出水”鍵:控制其出水和停止出水;

(2)“加熱”鍵:控制其加熱和停止加熱;

(3)“鎖定”鍵:用于鎖定其他所有按鍵;

(4)“切換”鍵:用于將顯示器切換至溫度設(shè)定界面并開(kāi)始設(shè)定溫度;

(5)“設(shè)置溫度”鍵:以5℃為間隔在0℃至100℃之間以遞增方式設(shè)定水溫。

主程序如下:

void main()
{
  T=100;
  while(1)
  {
       Lock_key();
       if(Lock==0)
       keyscan();
       if(flag2==0)
       temp_display();
       if(flag2==1)
       SEG_display(T,0);
       if(temp>=T*10)  {Temp_led=0;Hot=1;Hot_led=1;}
       if(temp< T*10)  Temp_led=1;
       if(temp>=1000){Beep=0;Hot=1;Hot_led=1;}
       if(temp<1000) Beep=1;   
   }

}

主程序程序框圖如圖3-1所示:


3.3 各模塊程序設(shè)計(jì)
3.3.1 溫度檢測(cè)程序設(shè)計(jì)

溫度檢測(cè)運(yùn)用DS18B20芯片,因?yàn)槠涔δ苋媲揖雀,完全可以滿足設(shè)計(jì)要求,它將檢測(cè)到的水溫送給單片機(jī),再由單片機(jī)輸出給顯示電路將實(shí)時(shí)水溫顯示出來(lái)。其程序流程圖如下:

圖3-2 溫度檢測(cè)程序流程圖

其程序段如下:

void init_ds18b20()
{
uchar x=0;
DQ = 1;                                       //DQ復(fù)位
delay_us(10);                               //稍做延時(shí)
DQ = 0;                               //單片機(jī)將DQ拉低
delay_us(100);                   //精確延時(shí) 大于 480us
DQ = 1;                                      //拉高總線
delay_us(10);
x=DQ; //稍做延時(shí)后 如果x=0則初始化成功 x=1則初始化失敗
delay_us(20);
}
uchar ReadOneChar()
     {
                uchar i;
                uchar dat=0;
                for (i=8;i>0;i--)
                {
                DQ = 0;              
                dat>>=1;
                DQ = 1;                           
                if(DQ)
                dat|=0x80;
                  delay_us(10);
      }
                return(dat);
      }
void WriteOneChar(uchar dat)
      {
      uchar i;
      for (i=8; i>0; i--)
      {
      DQ = 0;
      DQ = dat&0x01;
      delay_us(10);
      DQ = 1;
      dat>>=1;
      }
      }
int ReadTem()
{
      int t;
      uchar a,b;
     init_ds18b20();
      WriteOneChar(0xcc);       // 跳過(guò)讀序號(hào)列號(hào)的操作
      WriteOneChar(0x44);                // 啟動(dòng)溫度轉(zhuǎn)換
      delay_us(200);
      init_ds18b20();
      WriteOneChar(0xcc);         //跳過(guò)讀序號(hào)列號(hào)的操作
      WriteOneChar(0xbe);             //讀取溫度寄存器等
      a=ReadOneChar();
     b=ReadOneChar();
     t=b;
     t<<=8;
     t=t|a;
     return t;
}
void temp_display()
     {
              uint  temp_point;
temp=ReadTem()*0.625;           //將溫度的高位與低位合并
     temp_point=temp%10;                   //取出小數(shù)位
     SEG_display(temp/10,temp_point);
     }
3.3.2 顯示程序設(shè)計(jì)

顯示程序是負(fù)責(zé)點(diǎn)亮4支數(shù)碼管,并根據(jù)單片機(jī)送出的數(shù)據(jù)及時(shí)更新顯示的數(shù)據(jù),其程序流程圖如下:

圖3-3 顯示程序流程圖

其程序段如下:

void SEG_display(uchar dat1,uchar dat2)
{
    P23=1;
   P0=table[dat1/100];
   P20=0;
   delay_us(80);

    P20=1;
    P0=table[dat1/10%10];
    P21=0;
    delay_us(80);

   P21=1;
    P0=table[dat1%10]|0x80;
    P22=0;
    delay_us(80);

   P22=1;
   P0=table[dat2];
   P23=0;
    delay_us(80);
}
3.3.3 鍵盤(pán)掃描程序

鍵盤(pán)掃描程序的任務(wù)是在程序運(yùn)行過(guò)程中始終不停的檢測(cè)是否有按鍵被按下,如果檢測(cè)到有按鍵被按下,則進(jìn)入與該按鍵對(duì)應(yīng)的程序運(yùn)行;若該按鍵沒(méi)有被按下,則繼續(xù)檢測(cè)下一個(gè)按鍵,如此循環(huán),從而完成每一個(gè)按鍵所對(duì)應(yīng)的功能。該設(shè)計(jì)中第四個(gè)按鍵為鎖定鍵,當(dāng)檢測(cè)到鎖定鍵被按下時(shí),其他按鍵均無(wú)效,只有當(dāng)檢測(cè)到鎖定鍵再次被按下,其他按鍵的功能才恢復(fù)正常。其程序流程圖如下:



圖3-4 鍵盤(pán)掃描程序流程圖

其程序段如下:

void keyscan()
{
                if(key1==0)
  {
                delay_ms(2);
                if(key1==0)
              {
    flag=~flag;
              if(flag==1)
    Out=0;
              if(flag==0)
   Out=1;
              }
              while(!key1);
}
              if(key2==0)
              {
              delay_ms(2);
              if(key2==0)
              {
   flag1=~flag1;
if(flag1==1)
   {Hot=0;Hot_led=0;}
if(flag1==0)
{Hot=1;Hot_led=1;}
}
              while(!key2);
}
              if(key3==0)
              {
              delay_ms(2);
              if(key3==0)
              {
   if(flag2==1) T+=5;
   if(T>=101)T=0;
}
              while(!key3);
  }
              if(key5==0)
{
              delay_ms(2);
              if(key5==0)
{
flag2=~flag2;
              }
              while(!key5);
    }
}
void Lock_key()                           // 鎖定鍵盤(pán)
    {
                if(key4==0)
   {
              delay_ms(2);
              if(key4==0)
              {
              Lock=~Lock;
  if(Lock==1)
Lock_led=0;
                if(Lock==0)
    Lock_led=1;
                }
                while(!key4);
  }
}
3.3.4 延時(shí)程序
void delay_us(uchar i)                                // us延時(shí)函數(shù)
     {
                while(i--);
     }

void delay_ms(uchar n)                           //延時(shí)10×n毫秒程序
     {
     uint i,j;
     for(i=0;i<n;i++)
     for(j=0;j<2000;j++);
}
4 調(diào)試及性能分析4.1 軟件調(diào)試

軟件調(diào)試用Keil uVision2軟件,將寫(xiě)好的程序編譯成16進(jìn)制文件,然后才可以在proteus中將編譯好的程序放入單片機(jī)進(jìn)行仿真,使用Keil uVision2對(duì)程序編譯的過(guò)程如下。

4.1.1 新建工程

在Keil uVision2中新建一個(gè)工程,使用AT89C52系列,如圖4-1所示。

圖4-1 新建工程
4.1.2 新建文本

在Keil uVision2中新建一個(gè)文本并保存,擴(kuò)展名為.c,如圖4-2所示。

圖4-2 新建文本
4.1.3 添加文本

將新建的文本添加到所建工程中,如圖4-3所示。

圖4-3 添加文本
4.1.4 程序編譯

在添加進(jìn)去的文本中輸入寫(xiě)好的程序后編譯,顯示無(wú)誤后自動(dòng)生成16進(jìn)制文件,此文件才可放入proteus中進(jìn)行仿真,如圖4-4所示。

圖4-4 程序編譯
4.2 硬件調(diào)試

使用proteus仿真軟件對(duì)硬件電路進(jìn)行仿真,將編譯好的程序放入單片機(jī)中開(kāi)始運(yùn)行程序。并通過(guò)按鍵檢驗(yàn)各個(gè)功能的實(shí)現(xiàn),從而完成設(shè)計(jì)中所有要求的仿真。

以下演示各模塊電路的proteus仿真。

4.2.1 電源電路的仿真

當(dāng)飲水機(jī)通電后,電源指示燈亮,此時(shí)各模塊均通電,才能保證飲水機(jī)的正常工作。如圖4-5所示。

圖4-5 電源電路的仿真
4.2.2 出水電路模塊的仿真

在通電狀態(tài)下按下出水鍵,電動(dòng)機(jī)開(kāi)始轉(zhuǎn)動(dòng),表示飲水機(jī)開(kāi)始出水,如圖4-6所示。

圖4-6 出水模塊的仿真
4.2.3 加熱模塊電路的仿真

在通電狀態(tài)下按下加熱鍵,飲水開(kāi)始加熱,加熱指示燈(黃色)亮,再次按下加熱鍵則停止加熱,指示燈滅,如圖4-7所示。

圖4-7 加熱模塊的仿真
4.2.4 顯示模塊電路的仿真

本設(shè)計(jì)采用4個(gè)LED來(lái)顯示當(dāng)前的水溫或設(shè)定的水溫,當(dāng)前水溫由DS18B20檢測(cè)到的溫度決定,如圖4-8所示。此時(shí)顯示溫度為55℃。

圖4-8 顯示電路的方針
4.2.5 報(bào)警電路的仿真

(1)當(dāng)水加熱至沸騰后,飲水機(jī)報(bào)警電路工作,使其自動(dòng)停止加熱并蜂鳴器響起、紅燈亮表示報(bào)警,如圖4-9;

圖4-9 水沸騰時(shí)報(bào)警

(2)當(dāng)水加熱至設(shè)定溫度時(shí),報(bào)警電路工作,使其自動(dòng)停止加熱并紅燈亮報(bào)警,如圖4-10。此時(shí)設(shè)定溫度為35℃。

圖4-10 水加熱至設(shè)定溫度時(shí)報(bào)警(35℃)
4.3 性能分析

DS18B20的測(cè)溫精度為0.5℃,其精度完全能滿足飲水機(jī)的測(cè)溫需求,其測(cè)溫范圍是-55℃~+125℃,但在此次設(shè)計(jì)中只要求顯示的水溫范圍是0℃~100℃,因?yàn)樗疁剡_(dá)到100℃時(shí)沸騰自動(dòng)停止加熱。

通過(guò)軟件和硬件的仿真,各部分電路均能按照設(shè)計(jì)要求運(yùn)行,實(shí)現(xiàn)了設(shè)計(jì)的所有要求,說(shuō)明本設(shè)計(jì)完全符合設(shè)計(jì)要求,實(shí)現(xiàn)了預(yù)期的目的,設(shè)計(jì)成功。

結(jié)

本次智能飲水機(jī)的控制系統(tǒng)改良設(shè)計(jì),主要是針對(duì)目前市面上飲水機(jī)某些方面的不足進(jìn)行改良設(shè)計(jì)。本文主要是針對(duì)目前絕大多數(shù)飲水機(jī)只具有一般的加熱、保溫功能,已經(jīng)很難滿足消費(fèi)者不斷提高的要求,所以我們有必要對(duì)其進(jìn)行改良設(shè)計(jì),使他能夠滿足人們生活水平不斷提高的要求。

本文主要介紹了按鍵控制飲水機(jī)的總體設(shè)計(jì)、硬件系統(tǒng)設(shè)計(jì)、軟件系統(tǒng)設(shè)計(jì)以及調(diào)試方法。通過(guò)不斷的設(shè)計(jì)調(diào)試及改良,選出最優(yōu)方案,所選方案具有功能強(qiáng)、精度高、可靠性好、穩(wěn)定性高、抗干擾性強(qiáng)等特點(diǎn)。設(shè)計(jì)的飲水機(jī)除按鍵控制之外,還具有防干燒、設(shè)定溫度、故障報(bào)警等功能。

在這次畢業(yè)設(shè)計(jì)的過(guò)程中,我發(fā)現(xiàn)自己許多不足的地方。不過(guò)通過(guò)邊學(xué)習(xí)邊做畢業(yè)設(shè)計(jì)使我掌握了單片機(jī)的軟、硬件基礎(chǔ)知識(shí),全面的提高了使用proteus軟件進(jìn)行硬件仿真的能力以及使用Keil uVision2軟件進(jìn)行程序編譯的能力。在不斷提高我的自學(xué)能力,分析問(wèn)題、解決問(wèn)題的能力的同時(shí)也考驗(yàn)了我們借助互聯(lián)網(wǎng)絡(luò)搜集、查閱相關(guān)書(shū)籍資料,和組織材料的綜合能力;在學(xué)習(xí)新知識(shí)時(shí),從基礎(chǔ)學(xué)起。在這次設(shè)計(jì)的學(xué)習(xí)、設(shè)計(jì)、制作與調(diào)試過(guò)程中,遇到了不少麻煩和困難,通過(guò)不斷的查閱資料分析解決,另外自己解決不了的問(wèn)題向指導(dǎo)老師請(qǐng)教, 使我能順利完成這次畢業(yè)設(shè)計(jì)!



致 謝

畢業(yè)設(shè)計(jì)是對(duì)我們知識(shí)運(yùn)用能力的一次全面的考核, 也是對(duì)我們進(jìn)行科學(xué)研究基本功的訓(xùn)練, 培養(yǎng)我們綜合運(yùn)用所學(xué)知識(shí)獨(dú)立地分析問(wèn)題和解決問(wèn)題的能力, 為以后撰寫(xiě)專(zhuān)業(yè)學(xué)術(shù)論文和工作打下良好的基礎(chǔ)。

本篇論文雖然凝聚著自己的汗水,但卻不是個(gè)人智慧的產(chǎn)品,沒(méi)有導(dǎo)師的指引和幫助,沒(méi)有父母和朋友的幫助和支持,我在大學(xué)的學(xué)術(shù)成長(zhǎng)肯定會(huì)大打折扣。本次設(shè)計(jì)能夠順利完成,首先我要感謝我的母!幽侠砉ご髮W(xué)萬(wàn)方科技學(xué)院,是他為我們提供了學(xué)習(xí)知識(shí)的沃土,使我們?cè)谶@里茁壯成長(zhǎng);其次我要感謝電氣工程及其自動(dòng)化學(xué)院的老師們,他們不僅教會(huì)我們專(zhuān)業(yè)方面的知識(shí),而且教會(huì)我們做人做事的道理;尤其要感謝在本次設(shè)計(jì)中給與我大力支持和幫助的李輝老師,每有問(wèn)題,老師總是耐心的解答,使我能夠充滿熱情的投入到畢業(yè)設(shè)計(jì)中去;還要感謝我的同學(xué)們,他們熱心的幫助,使我感到了來(lái)自兄弟姐妹的情誼; 最后還要感謝相關(guān)資料的編著者和給予我們支持的社會(huì)各界人士, 感謝您們?yōu)槲覀兲峁┮粋(gè)良好的環(huán)境,使本次設(shè)計(jì)圓滿完成。

再次由衷感謝答辯組的各位老師對(duì)學(xué)生的指導(dǎo)和教誨,我也在努力的積蓄著力量,盡自己的微薄之力回報(bào)母校的培育之情,爭(zhēng)取使自己的人生對(duì)社會(huì)產(chǎn)生些許積極的價(jià)值!



附錄1

圖附-1  電路原理圖




附錄2
表附-1  元件明細(xì)表
元件名
型號(hào)
數(shù)量
電阻
7WATT3R9
若干
數(shù)碼管
7SEG-MPX2-CA
1
二極管
1N914
6
穩(wěn)壓器
7805
1
單片機(jī)
AT89S52
1
按鍵
BUTTON
5
蜂鳴器
BUZZER
1
電容
CAP
5
晶振
CRYSTAL
1
繼電器
RLY-SPNO
2
發(fā)光二極管(紅)
LED-RED
1
發(fā)光二極管(黃)
LED-YELLOW
1
發(fā)光二極管(綠)
LED-GREEN
1
發(fā)光二極管(藍(lán))
LED-BLUE
1
三極管
FZT790A
3
電阻排
RESPACK-8
2
變壓器
TRAN-2P2S
1
導(dǎo)線
2.5平方厘米
若干
電機(jī)

1


附錄3
控制程序:
單片機(jī)源程序如下:
  1. #include<reg52.h>

  2. #define uchar unsigned char
  3. #define uint  unsigned int

  4. sbit   key1=P3^0;                                    //按鍵定義
  5. sbit   key2=P3^1;
  6. sbit   key3=P3^2;
  7. sbit   key4=P3^3;
  8. sbit   key5=P3^4;

  9. sbit   Out =P1^3;                                 //控制端口定義
  10. sbit   Hot =P1^5;
  11. sbit   Hot_led =P1^1;
  12. sbit   Temp_led=P1^2;
  13. sbit   Beep=P1^4;
  14. sbit   Lock_led=P1^0;

  15. sbit   P20=P2^0;                                //數(shù)碼管位選定義
  16. sbit   P21=P2^1;
  17. sbit   P22=P2^2;
  18. sbit   P23=P2^3;
  19. sbit   P24=P2^4;

  20. sbit   DQ  =P1^7;                           //ds18b20 端口定義


  21. uchar code table[]={
  22. 0x3f,0x06,0x5b,0x4f,0x66,
  23. 0x6d,0x7d,0x07,0x7f,0x6f
  24. };
  25. uchar code table1[]={
  26. 0x00,0x01,0x03,0x07,0x0f
  27. };

  28. bit   Lock,flag,flag1,flag2;
  29. uint  temp,T;

  30. //***************************延時(shí)函數(shù)***************************
  31. void delay_us(uchar i)                                              // us延時(shí)函數(shù)
  32.    {
  33.               while(i--);
  34.   }

  35. void delay_ms(uchar n)                           //延時(shí)10×n毫秒程序
  36.   {
  37.     uint i,j;
  38.     for(i=0;i<n;i++)
  39.     for(j=0;j<2000;j++);
  40.   }

  41. //***************************數(shù)碼管顯示*************************
  42. void SEG_display(uchar dat1,uchar dat2)
  43. {
  44.    P23=1;
  45.    P0=table[dat1/100];
  46.    P20=0;
  47.    delay_us(80);

  48.    P20=1;
  49.    P0=table[dat1/10%10];
  50.    P21=0;
  51.    delay_us(80);

  52.    P21=1;
  53.    P0=table[dat1%10]|0x80;
  54.    P22=0;
  55.    delay_us(80);

  56.    P22=1;
  57.    P0=table[dat2];
  58.    P23=0;
  59.    delay_us(80);

  60. }

  61. //***************************18b20測(cè)溫***********************//

  62. //*********18B20初始化
  63. void init_ds18b20()
  64. {
  65. uchar x=0;
  66. DQ = 1;                                             //DQ復(fù)位
  67. delay_us(10);                                        //稍做延時(shí)
  68. DQ = 0;                                    //單片機(jī)將DQ拉低
  69. delay_us(100);                            //精確延時(shí) 大于 480us
  70. DQ = 1;                                            //拉高總線
  71. delay_us(10);
  72. x=DQ;     //稍做延時(shí)后 如果x=0則初始化成功 x=1則初始化失敗
  73. delay_us(20);
  74. }

  75. //*********讀一個(gè)字節(jié)
  76. uchar ReadOneChar()
  77. {
  78. uchar i;
  79. uchar dat=0;
  80. for (i=8;i>0;i--)
  81. {
  82.   DQ = 0;              
  83.   dat>>=1;
  84.   DQ = 1;                           
  85.   if(DQ)
  86. dat|=0x80;
  87.   delay_us(10);
  88.   }
  89. return(dat);
  90.   }


  91. //*********寫(xiě)一個(gè)字節(jié)
  92. void WriteOneChar(uchar dat)
  93.    {
  94.     uchar i;
  95.     for (i=8; i>0; i--)
  96.     {
  97.    DQ = 0;
  98.    DQ = dat&0x01;
  99.     delay_us(10);
  100.     DQ = 1;
  101.     dat>>=1;
  102.     }
  103.    }

  104. //*********讀取溫度
  105. int ReadTem()
  106. {
  107.     int t;
  108.     uchar a,b;
  109.     init_ds18b20();
  110.     WriteOneChar(0xcc);                   // 跳過(guò)讀序號(hào)列號(hào)的操作
  111.     WriteOneChar(0x44);                          // 啟動(dòng)溫度轉(zhuǎn)換
  112.     delay_us(200);
  113.     init_ds18b20();
  114.     WriteOneChar(0xcc);                     / /跳過(guò)讀序號(hào)列號(hào)的操作
  115.     WriteOneChar(0xbe);                         //讀取溫度寄存器等
  116.     a=ReadOneChar();
  117.     b=ReadOneChar();
  118.     t=b;
  119.     t<<=8;
  120.     t=t|a;
  121.     return t;
  122. }

  123. //*********顯示溫度
  124. void temp_display()
  125.     {
  126.               uint  temp_point;
  127.     temp=ReadTem()*0.625;              //將溫度的高位與低位合并
  128.     temp_point=temp%10;                             //取出小數(shù)位
  129.     SEG_display(temp/10,temp_point);
  130.    }
  131. //************************鍵盤(pán)掃描程序************************//
  132. void keyscan()
  133. {
  134.               if(key1==0)
  135.               {
  136.               delay_ms(2);
  137.               if(key1==0)
  138.    {
  139.     flag=~flag;
  140.               if(flag==1)
  141.     Out=0;
  142.               if(flag==0)
  143.     Out=1;
  144.               }
  145.               while(!key1);
  146.                 }
  147.               if(key2==0)
  148.               {
  149.               delay_ms(2);
  150.               if(key2==0)
  151.               {
  152.     flag1=~flag1;
  153.               if(flag1==1)
  154.     {Hot=0;Hot_led=0;}
  155.               if(flag1==0)
  156.     {Hot=1;Hot_led=1;}
  157.               }
  158.               while(!key2);
  159.                 }
  160.               if(key3==0)
  161.               {
  162.               delay_ms(2);
  163.               if(key3==0)
  164.               {
  165.     if(flag2==1) T+=5;
  166.     if(T>=101)T=0;
  167.               }
  168.               while(!key3);
  169.                 }
  170.               if(key5==0)
  171.               {
  172.               delay_ms(2);
  173.               if(key5==0)
  174.               {
  175.               flag2=~flag2;
  176.               }
  177.               while(!key5);
  178.                 }
  179. }
  180. void Lock_key()                                       // 鎖定鍵盤(pán)
  181.     {

  182. ……………………

  183. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

完整的Word格式文檔51黑下載地址:
畢業(yè)設(shè)計(jì)(論文)-基于單片機(jī)的智能飲水機(jī)的設(shè)計(jì).doc (844.5 KB, 下載次數(shù): 485)


評(píng)分

參與人數(shù) 2黑幣 +10 收起 理由
the-sunset + 5 很給力!
韻律泳 + 5 很給力!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏22 分享淘帖 頂6 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:304209 發(fā)表于 2018-4-11 15:09 | 只看該作者
好帖子呀,學(xué)習(xí)了

評(píng)分

參與人數(shù) 1黑幣 +5 收起 理由
韻律泳 + 5 很給力!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

板凳
ID:304406 發(fā)表于 2018-4-18 15:02 | 只看該作者
學(xué)習(xí)了
回復(fù)

使用道具 舉報(bào)

地板
ID:320717 發(fā)表于 2018-5-2 19:59 | 只看該作者
好帖子
回復(fù)

使用道具 舉報(bào)

5#
ID:329939 發(fā)表于 2019-2-26 16:14 | 只看該作者
燒錄沒(méi)現(xiàn)象,,
回復(fù)

使用道具 舉報(bào)

6#
ID:445615 發(fā)表于 2019-4-6 21:05 | 只看該作者
你好,源文件可否給一份看看
回復(fù)

使用道具 舉報(bào)

7#
ID:522450 發(fā)表于 2019-4-26 18:33 | 只看該作者
很好的作品,支持。
回復(fù)

使用道具 舉報(bào)

8#
ID:375715 發(fā)表于 2019-4-26 22:27 來(lái)自手機(jī) | 只看該作者
tigerlyt 發(fā)表于 2019-4-26 18:33
很好的作品,支持。

是的呢
回復(fù)

使用道具 舉報(bào)

9#
ID:344773 發(fā)表于 2019-4-28 17:39 | 只看該作者
請(qǐng)問(wèn)有人做出來(lái)了嗎 我照著樓主的代碼和仿真圖做 沒(méi)有現(xiàn)象 不知道是哪個(gè)地方出問(wèn)題了
回復(fù)

使用道具 舉報(bào)

10#
ID:532538 發(fā)表于 2019-5-10 15:11 | 只看該作者
學(xué)習(xí)了
回復(fù)

使用道具 舉報(bào)

11#
ID:522057 發(fā)表于 2019-5-22 02:46 來(lái)自手機(jī) | 只看該作者
zealous 發(fā)表于 2019-4-28 17:39
請(qǐng)問(wèn)有人做出來(lái)了嗎 我照著樓主的代碼和仿真圖做 沒(méi)有現(xiàn)象 不知道是哪個(gè)地方出問(wèn)題了

程序不夠吧
回復(fù)

使用道具 舉報(bào)

12#
ID:535799 發(fā)表于 2019-7-26 15:28 | 只看該作者
還不錯(cuò) 挺詳細(xì)的
回復(fù)

使用道具 舉報(bào)

13#
ID:49937 發(fā)表于 2019-10-27 22:37 | 只看該作者
感謝分享
回復(fù)

使用道具 舉報(bào)

14#
ID:489394 發(fā)表于 2019-10-31 21:44 | 只看該作者
太好了 感謝分享~
回復(fù)

使用道具 舉報(bào)

15#
ID:641295 發(fā)表于 2019-11-17 11:46 來(lái)自手機(jī) | 只看該作者
AD原理圖有嗎?能發(fā)一下嗎?
回復(fù)

使用道具 舉報(bào)

16#
ID:93224 發(fā)表于 2019-11-17 15:52 | 只看該作者
沒(méi)有一點(diǎn)實(shí)際意義,這類(lèi)的文檔,應(yīng)該被砍掉
回復(fù)

使用道具 舉報(bào)

17#
ID:654782 發(fā)表于 2019-12-3 00:20 | 只看該作者
很給力
回復(fù)

使用道具 舉報(bào)

18#
ID:662319 發(fā)表于 2019-12-12 12:10 | 只看該作者
謝謝大佬分享 給了
回復(fù)

使用道具 舉報(bào)

19#
ID:528608 發(fā)表于 2020-3-5 14:56 | 只看該作者
文檔很好
回復(fù)

使用道具 舉報(bào)

20#
ID:506863 發(fā)表于 2020-3-7 14:57 | 只看該作者
牛逼,非常好
回復(fù)

使用道具 舉報(bào)

21#
ID:855982 發(fā)表于 2021-1-5 15:27 | 只看該作者
有沒(méi)有做出實(shí)物的好兄弟康康
回復(fù)

使用道具 舉報(bào)

22#
ID:848824 發(fā)表于 2021-1-14 18:23 來(lái)自手機(jī) | 只看該作者
好文章,寫(xiě)的真詳細(xì)。我這初學(xué)者太需要了。萬(wàn)分感謝!
回復(fù)

使用道具 舉報(bào)

23#
ID:881385 發(fā)表于 2021-1-30 09:44 來(lái)自手機(jī) | 只看該作者
宋小寶寶 發(fā)表于 2019-5-22 02:46
程序不夠吧

不就是最后那個(gè)單片機(jī)源程序嗎?
回復(fù)

使用道具 舉報(bào)

24#
ID:891238 發(fā)表于 2021-3-12 17:44 | 只看該作者
火云邪神X 發(fā)表于 2018-4-11 15:09
好帖子呀,學(xué)習(xí)了

nice啊設(shè)計(jì)
回復(fù)

使用道具 舉報(bào)

25#
ID:1012580 發(fā)表于 2022-3-28 09:38 | 只看該作者
請(qǐng)問(wèn)下源代碼
回復(fù)

使用道具 舉報(bào)

26#
ID:1121795 發(fā)表于 2024-5-23 01:23 | 只看該作者
請(qǐng)問(wèn)有pcb圖嗎
回復(fù)

使用道具 舉報(bào)

27#
ID:908758 發(fā)表于 2024-8-20 17:49 | 只看該作者
你好 有仿真圖嗎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表