基于52單片機(jī)飲水機(jī)定時(shí)加熱的設(shè)計(jì)與制作_第1頁
基于52單片機(jī)飲水機(jī)定時(shí)加熱的設(shè)計(jì)與制作_第2頁
基于52單片機(jī)飲水機(jī)定時(shí)加熱的設(shè)計(jì)與制作_第3頁
基于52單片機(jī)飲水機(jī)定時(shí)加熱的設(shè)計(jì)與制作_第4頁
基于52單片機(jī)飲水機(jī)定時(shí)加熱的設(shè)計(jì)與制作_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

目錄

1產(chǎn)品功能分析...........................................................................................................1

2設(shè)計(jì)方案遴選...........................................................................................................1

2.1單片機(jī)的選擇...............................................................................................1

2.2系統(tǒng)框圖設(shè)計(jì)...............................................................................................2

3產(chǎn)品硬件設(shè)計(jì)...........................................................................................................3

3.1電路原理圖及工作原理................................................................................3

3.2STC89C52RC單片機(jī)核心電路設(shè)計(jì)..............................................................3

3.3檢測水溫電路設(shè)計(jì)........................................................................................6

3.4水位檢測模塊電路設(shè)計(jì)................................................................................7

3.5報(bào)警模塊電路設(shè)計(jì).......................................................................................7

3.6LCD1602液晶顯示屏模塊電路....................................................................8

4產(chǎn)品軟件設(shè)計(jì)...........................................................................................................9

4.1主程序流程圖...............................................................................................9

4.2LCD1602液晶顯示程序設(shè)計(jì)......................................................................10

4.3下位機(jī)(APP程序設(shè)計(jì))..........................................................................11

4.4產(chǎn)品程序清單.............................................................................................11

5產(chǎn)品使用說明.........................................................................................................12

5.1產(chǎn)品裝配圖.................................................................................................12

5.2產(chǎn)品調(diào)試.....................................................................................................12

5.3產(chǎn)品使用說明.............................................................................................13

6、產(chǎn)品設(shè)計(jì)技術(shù)標(biāo)準(zhǔn)...............................................................................................14

參考資料.....................................................................................................................15

附錄.............................................................................................................................16

附錄1元器件清單.......................................................................................16

附錄2電路原理圖.......................................................................................17

附錄3PCB設(shè)計(jì)圖........................................................................................18

I

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

附錄4產(chǎn)品實(shí)物圖.......................................................................................19

附錄5主程序...............................................................................................20

II

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

基于52單片機(jī)飲水機(jī)定時(shí)加熱的設(shè)計(jì)與制作

1產(chǎn)品功能分析

隨著電子技術(shù)的快速發(fā)展,尤其是大規(guī)模集成電路的產(chǎn)生,給人們的生活

帶來了根本性的變化。如果說微型計(jì)算機(jī)的出現(xiàn)給我們現(xiàn)代科學(xué)的研究帶來了

質(zhì)的飛躍,那么單片機(jī)技術(shù)的出現(xiàn)就是給我們現(xiàn)代工業(yè)控制測控領(lǐng)域帶來了一

次新的革命。尤其是C51系列單片機(jī)的出現(xiàn)。

在能源日益緊張的今天,飲水機(jī)、電熱水器之類的家用電器在保溫的時(shí)候

呢,是通過使用了溫敏電阻來實(shí)現(xiàn)它們自己本身簡單的溫控的功能,但是因此

會造成很大的能源浪費(fèi)。所以我將利用STC89C52單片機(jī)作為核心,利用

CD1602液晶顯示屏和繼電器等來完成對飲水機(jī)定時(shí)加熱的設(shè)計(jì)。

2設(shè)計(jì)方案遴選

為了發(fā)揮器件的基本功能,在進(jìn)行硬件電路搭建前必須要選擇好合適的產(chǎn)

品零部件。

一個(gè)完整的飲水機(jī)定時(shí)加熱的設(shè)計(jì)與制作需要很多個(gè)零部件組成,雖然我

們有很多的模塊可以選擇并且使用,但是還是要考慮我們自身的經(jīng)濟(jì)水平還有

產(chǎn)品的兼容性。

本產(chǎn)品設(shè)計(jì)的基本形式就是由顯示功能、紅外遙控功能、溫度檢測功能組

成。

2.1單片機(jī)的選擇

方案1:采用傳統(tǒng)的二位模擬控制法

采用模擬電路,使用電位器來進(jìn)行設(shè)定給定值,使用上下限比較電路,然

后將反饋的溫度值與給定的溫度值進(jìn)行作比較,比較之后,再決定加熱還是不

加熱。因?yàn)椴捎媚M控制的方式,系統(tǒng)受環(huán)境的影響很大,所以不能實(shí)現(xiàn)復(fù)雜

的控制算法使控制精度做的較高。

1

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

方案2:采用52系列單片機(jī)

以STC89C52單片機(jī)為控制中心,我將會使用LCD1602液晶顯示屏來進(jìn)行

顯示飲水機(jī)水位、上下限溫度值和定時(shí)時(shí)間,(水溫檢測的顯示范圍為00~

99℃),精度為±1℃。通過按鍵是否按下來檢測飲水機(jī)是否進(jìn)行飲水機(jī)加水

和加熱的工作,(如果沒有按下溫度鍵,那么就按照當(dāng)前的溫度來進(jìn)行工作;

如果溫度鍵已經(jīng)按下了,那么就開始設(shè)定溫度的范圍,并且按照新的設(shè)定值開

始進(jìn)行加熱)。如果檢測溫度超過預(yù)設(shè)溫度或者飲水機(jī)內(nèi)沒有水,那么就會發(fā)

出警報(bào)的聲音而且會停止加熱。與此同時(shí)又因?yàn)镾TC89C52單片機(jī)具有結(jié)構(gòu)簡

單、控制能力強(qiáng)、可靠性高、體積小、價(jià)格低等優(yōu)點(diǎn),所以呢,被許多行業(yè)都

進(jìn)行了廣泛的應(yīng)用。

綜合以上,我選擇方案2。

2.2系統(tǒng)框圖設(shè)計(jì)

產(chǎn)品系統(tǒng)框圖設(shè)計(jì)如下圖1所示:

圖1產(chǎn)品系統(tǒng)框圖

2

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

3產(chǎn)品硬件設(shè)計(jì)

3.1電路原理圖及工作原理

電路原理圖如下圖2所示:

圖2產(chǎn)品電路原理圖

此產(chǎn)品通過水位傳感器檢測飲水機(jī)內(nèi)是否有水,如果飲水機(jī)內(nèi)有水則進(jìn)行

加熱操作,通過DS18B20傳感器感受加熱水的溫度,將接收到的溫度通過1602

液晶顯示出來,再根據(jù)所顯示的溫度再進(jìn)行判斷是否需要再次進(jìn)行加熱,當(dāng)溫

度達(dá)到設(shè)定值時(shí),加熱繼電器會停止加熱;當(dāng)溫度低于設(shè)定值時(shí),加熱繼電器

繼續(xù)加熱。如果飲水機(jī)內(nèi)沒有水則會發(fā)出警報(bào)聲并不進(jìn)行操作。

3.2STC89C52RC單片機(jī)核心電路設(shè)計(jì)

STC89C52RC單片機(jī)是宏晶科技推出的一種低功耗、高性能CMOS8位微控制

器、具有8K在系統(tǒng)可編程Flash存儲器的單片機(jī),為什么我會選擇這款芯片

呢?因?yàn)樵谶@款單芯片上,它擁有靈巧的8位CPU并且能夠在系統(tǒng)上可以進(jìn)行

編程Flash,致使STC89C52單片機(jī)提供了高靈活的、超有效的解決方式,又同

時(shí)因?yàn)樗唵魏苋菀咨鲜?,所以這款芯片被使用的很廣泛,也有很不錯(cuò)的學(xué)習(xí)

價(jià)值。

STC89C52RC單片機(jī)核心電路原理圖如圖3所示:

3

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖3STC89C52RC單片機(jī)核心電路原理圖

使用STC89C52RC單片機(jī)核心芯片的原因是因?yàn)樗膬?yōu)點(diǎn)為是一種加強(qiáng)型

8051單片機(jī)6時(shí)鐘、機(jī)器周期和12時(shí)鐘機(jī)器周期都可以自主選擇,完全兼容

傳統(tǒng)8051的指令代碼。

主要特性:

1.具有看門狗定時(shí)器功能;

2.具有EEPROM功能;

3.能夠通用異步串行口[UART],還可以使用定時(shí)器軟件實(shí)現(xiàn)多個(gè)UART。

STC89C52RC單片機(jī)基本工作條件引腳有以下:

1.電源引腳:

①VCC(40引腳):+5V電源;

②VSS(20引腳):接地。

2.時(shí)鐘引腳:

4

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

①XTAL1(19引腳):片內(nèi)振蕩器的反相放大器和外部時(shí)

鐘發(fā)生器的輸入端;

②XTAL2(18引腳):片內(nèi)振蕩器的反相放大器和外部時(shí)

鐘發(fā)生器的輸出端。

3.控制信號引腳:

①RST(9引腳):復(fù)位引腳,高電平有效(兩

個(gè)機(jī)器周期),正常工作時(shí)該引腳電壓≤

0.5V;

②ALE/PROG:當(dāng)訪問外部程序存儲器或數(shù)據(jù)存

儲器時(shí),ALE輸出脈沖用于鎖存地址的低8

位字節(jié);

③PSEN:程序存儲允許輸出是外部程序存儲器

的讀選通信號;

④EA/VPP:外部允許訪問。

4.輸入/輸出(I/O)引腳(P0、P1、P2、P3):

①P0(P0.0~P0.7)8位漏極開關(guān)型雙向I/O端

口,可以作為通用I/O口使用,但必須加上

拉電阻;

②P1(P1.0~P1.7)內(nèi)部帶上拉電阻的8位準(zhǔn)雙

向I/O端口;

③P2(P2.0~P2.7)內(nèi)部帶上拉電阻的8位準(zhǔn)雙

向I/O端口;

④P2(P3.0~P3.7)內(nèi)部帶上拉電阻的8位多功

能雙向I/O端口。

STC89C52RC單片機(jī)引腳圖如下圖4所示:

5

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖4STC89C52RC單片機(jī)引腳圖

STC89C52RC單片機(jī)實(shí)物圖如圖5所示:

圖5STC89C52RC單片機(jī)實(shí)物圖

3.3檢測水溫電路設(shè)計(jì)

本設(shè)計(jì)中的溫度采集系統(tǒng)是由DS18B20傳感器負(fù)責(zé)的。當(dāng)傳感器工作時(shí),

如果水溫超過上限值,就將溫度傳給單片機(jī),然后飲水機(jī)停止加熱;如果水溫

低于下限值,那么飲水機(jī)繼續(xù)加熱。

檢測水溫電路原理圖如下圖6所示:

圖6檢測水溫電路原理圖

6

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

3.4水位檢測模塊電路設(shè)計(jì)

本產(chǎn)品通過水位傳感器來檢測飲水機(jī)內(nèi)是否有水,然后再進(jìn)行判斷是否再

進(jìn)行加熱操作,即:如果飲水機(jī)內(nèi)沒有水,則防止干燒,加熱繼電器不工作,

加水繼電器可以工作;如果飲水機(jī)內(nèi)有水,則可以通過按鍵進(jìn)行控制加熱繼電

器進(jìn)行飲水的加熱操作。

檢測水位電路原理圖如下圖7所示:

圖7檢測水位電路原理圖

3.5報(bào)警模塊電路設(shè)計(jì)

報(bào)警電路主要是由三極管和蜂鳴器組成的簡單電路。當(dāng)溫度超過設(shè)置的上

限值和下限值時(shí),P2.6口輸出高電平,三極管導(dǎo)通,蜂鳴器工作,發(fā)出警報(bào)

聲。

報(bào)警電路原理圖如下圖8所示:

圖8報(bào)警電路原理圖

7

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

3.6LCD1602液晶顯示屏模塊電路

LCD1602液晶顯示屏是一種工業(yè)字元型液晶,可以同時(shí)間顯示16X02

個(gè)子元,也就是說32個(gè)字元。

字段顯示和字符顯示是LCD1602液晶顯示屏的兩種。字段顯示,是需要

送達(dá)對應(yīng)信號與對應(yīng)管腳時(shí)才能顯示;而字符顯示則是根據(jù)它所需要顯示的基

本字符就能夠進(jìn)行顯示操作。

本設(shè)計(jì)系統(tǒng)選擇了字符型顯示,因?yàn)長CD1602液晶顯示屏的很好的優(yōu)點(diǎn)

是體積小、耗功低、顯示的內(nèi)容很豐富,所以被廣泛使用。

LCD1602液晶顯示屏使用的是標(biāo)準(zhǔn)的14腳(無背光)或者16腳(帶背

光)接口,每個(gè)引腳的接口的說明如下圖9所示:

圖9LCD1602液晶顯示屏引腳接口說明

LCD1602液晶顯示屏電路原理圖如下圖10所示:

本產(chǎn)品通過LCD1602液晶顯示屏來顯示當(dāng)前飲水機(jī)的水位和溫度值,通

過按鍵來控制加水繼電器和加熱繼電器,從而來實(shí)現(xiàn)飲水機(jī)的加水和加熱,然

后我就可以通過LCD1602液晶顯示屏來觀察飲水機(jī)水位和溫度的變化。

8

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖10LCD1602液晶顯示屏電路原理圖

LCD1602液晶顯示屏電路實(shí)物圖如圖下圖11所示:

圖11LCD1602液晶顯示屏電路實(shí)物圖

4產(chǎn)品軟件設(shè)計(jì)

本產(chǎn)品采用了C語言,KELL編程環(huán)境,采用的是簡單的模塊化設(shè)計(jì),由

多個(gè)程序和模塊化程序組成的整體程序。

4.1主程序流程圖

由下圖12所示:

9

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖12主程序流程圖

4.2LCD1602液晶顯示程序設(shè)計(jì)

LCD1602液晶模塊內(nèi)部的控制器一共有11條控制指令,若下圖13所示:

圖13功能表

10

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

在整個(gè)LCD顯示系統(tǒng)工作中,當(dāng)LCD1602進(jìn)行了初始化之后,該系統(tǒng)開

始進(jìn)行延時(shí),然后芯片接收到超聲波傳達(dá)的數(shù)據(jù)之后,再由芯片進(jìn)行處理分

析,然后再把數(shù)據(jù)傳輸入LCD1602顯示屏中。

4.3下位機(jī)(APP程序設(shè)計(jì))

對計(jì)算機(jī)的程序編寫完成之后,還需要通過使用軟件將所編寫的程序進(jìn)行

測試和編譯,如果程序是不能通過編譯的,那么就需要對程序再一次進(jìn)行修

改。當(dāng)所有程序都編譯通過之后,可以使用遙控將單片機(jī)設(shè)備以及上位機(jī)聯(lián)

通,實(shí)現(xiàn)遠(yuǎn)程傳輸?shù)男Ч?。程序編譯圖如下圖14所示:

圖14程序編譯通過圖

4.4產(chǎn)品程序清單

該產(chǎn)品程序清單由下圖15所示:

圖15產(chǎn)品程序清單圖

11

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

5產(chǎn)品使用說明

5.1產(chǎn)品裝配圖

由下圖16所示:

圖16產(chǎn)品裝配圖

5.2產(chǎn)品調(diào)試

1.檢查單片機(jī)所有的部件都需要手工焊接到萬能板的上面,然后需要對

每一個(gè)焊點(diǎn)進(jìn)行仔細(xì)檢查,確保焊接板上的器件沒有被虛焊漏焊,并且再看看

是不是有多余的毛刺。

2.使用萬能表進(jìn)行測試板件的時(shí)候,還需要仔細(xì)查看各個(gè)焊點(diǎn)連接狀況

是不是合格的,然后再進(jìn)一步檢查每根電源線與地線是不是有短路的現(xiàn)象。

3.對產(chǎn)品進(jìn)行上電檢查。

12

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

4.將編寫好了的程序燒錄到單片機(jī)里面。

5.程序被燒錄成功之后的界面就如下圖17所示:

圖17燒錄成功圖

5.3產(chǎn)品使用說明

1.LCD1602液晶顯示屏第一列分別顯示的是當(dāng)前的溫度和預(yù)設(shè)的時(shí)間,默

認(rèn)是飲水機(jī)沒有開啟加熱;第二列設(shè)置的是上限值和下限值。

2.模擬飲水機(jī)開始加熱的時(shí)候,將下限水位傳感器放入水中,當(dāng)沒有水

時(shí),加熱是停止的,當(dāng)有水時(shí),才開始加熱(為了防止干燒,在沒有加水之前

是不加熱的);當(dāng)水位注射達(dá)到上限值的時(shí)候,我們再將上限水位傳感器放入

水中,此時(shí)加水繼電器停止工作;當(dāng)我們把上限水位傳感器從水中拿出來的時(shí)

候,水位值此時(shí)就處于下限值之上,上限值之下;當(dāng)我們把下限水位傳感器從

水中拿出來的時(shí)候,加水繼電器開始工作,加熱繼電器停止工作。

3.模擬水溫的時(shí)候,當(dāng)水溫升高的時(shí)候,溫度高于上限值時(shí),加熱繼電

器就停止加熱;溫度低于下限值時(shí),加熱繼電器又繼續(xù)加熱。

4.當(dāng)上限水位傳感器檢測到有水,而下限水位傳感器檢測沒水的時(shí)候,

蜂鳴器發(fā)出警報(bào)的聲音,因?yàn)榇藭r(shí)系統(tǒng)是錯(cuò)誤的狀態(tài),不存在這種情況,所以

發(fā)出警報(bào)聲,直到有人為的按下取消報(bào)警的按鍵。

13

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

6、產(chǎn)品設(shè)計(jì)技術(shù)標(biāo)準(zhǔn)

[1]J-STD-001E電氣與電子組件的焊接要求;

[2]IPC-A-610D(中文版),IPC-A-610E電子組件的可接受性要求;

[3]IPC-7711/21電子組件和電路板的返工&返修;

[4]GB/T11457-2006信息技術(shù)軟件工程術(shù)語;

[5]GB/T8566-2007信息技術(shù)軟件生存周期過程標(biāo)準(zhǔn);

[6]GB/T8567-2006計(jì)算機(jī)軟件文檔編制規(guī)范。

14

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

參考資料

[1]吳國經(jīng).單片機(jī)應(yīng)用技術(shù)[M].北京:中國電力出版社,2004:10.

[2]張振榮.MCS-51單片機(jī)原理及實(shí)用技術(shù)[M].北京:人民郵電出版社,2000:10-13.

[3]沈紅衛(wèi).基于單片機(jī)的智能系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[M].北京:電子工業(yè)出版社,2005:30-35.

[4]肖洪兵.跟我學(xué)用單片機(jī)[M].北京:北京航空航天大學(xué)出版社,2002:100-103.

[5]樓然苗.51系列單片機(jī)設(shè)計(jì)實(shí)例[M].北京:北京航空航天大學(xué)出版社,2003:50-60.

15

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

附錄

附錄1元器件清單

16

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

附錄2電路原理圖

17

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

附錄3PCB設(shè)計(jì)圖

18

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

附錄4產(chǎn)品實(shí)物圖

19

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

附錄5主程序代碼

//張瑤202004010141

//基于52單片機(jī)飲水機(jī)定時(shí)加熱的設(shè)計(jì)與制作

//程序頭函數(shù)

#include<reg52.h>

//顯示函數(shù)

#include<display.h>

#include"eeprom52.h"

//宏定義

#defineuintunsignedint

#defineucharunsignedchar

//管腳聲明

sbitjdq=P1^0;//加熱繼電器

sbitshui=P1^3;//加水繼電器

sbitFeng=P2^6;//蜂鳴器

//按鍵

sbitKey1=P1^4;//設(shè)置

sbitKey2=P1^5;//加

sbitKey3=P1^6;//減

sbitKey4=P1^7;//確定

sbitshang=P3^6;//上限

sbitxia=P3^7;//下限

sbitP32=P3^3;//紅外遙控接的IO口

bitflag_jiema_en=1;//紅外解碼成功標(biāo)志位

sbitDQ=P2^2;//定義DS18B20總線I/O

signedcharw,bj,bjx,bjd;//溫度值全局變量

uintc;//溫度值全局變量

bitbdataflag=0,flag_BJ,flag_off=1,que;

ucharhw_table[4];//紅外解碼的緩沖區(qū)

//設(shè)置變量

//上限

ucharxx=35;

//下限

ucharsx=25;

unsignedintds=25;

ucharMode=0;

20

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

voidinit_eeprom();

voidwrite_eeprom();

voidread_eeprom();

voiddelay(uintz)

{

uinti,j;

for(i=0;i<z;i++)

for(j=0;j<121;j++);

}

/********************************************************************

******************************

**************************溫度工作程序

*************************************************************

********************************************************************

******************************/

/*****延時(shí)子程序*****/

voidDelay_DS18B20(intnum)

{

while(num--);

}

/*****初始化DS18B20*****/

voidInit_DS18B20(void)

{

unsignedcharx=0;

DQ=1;//DQ復(fù)位

Delay_DS18B20(8);//稍做延時(shí)

DQ=0;//單片機(jī)將DQ拉低

Delay_DS18B20(80);//精確延時(shí),大于480us

DQ=1;//拉高總線

Delay_DS18B20(10);

x=DQ;//稍做延時(shí)后,如果x=0則初始化成功,x=1則初始化失

Delay_DS18B20(5);

}

/*****讀一個(gè)字節(jié)*****/

unsignedcharReadOneChar(void)

{

unsignedchari=0;

unsignedchardat=0;

for(i=8;i>0;i--)

{

DQ=0;//給脈沖信號

dat>>=1;

21

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

DQ=1;//給脈沖信號

if(DQ)

dat|=0x80;

Delay_DS18B20(5);

}

return(dat);

}

/*****寫一個(gè)字節(jié)*****/

voidWriteOneChar(unsignedchardat)

{

unsignedchari=0;

for(i=8;i>0;i--)

{

DQ=0;

DQ=dat&0x01;

Delay_DS18B20(5);

DQ=1;

dat>>=1;

}

Delay_DS18B20(5);

}

/*****讀取溫度*****/

unsignedintReadTemperature(void)

{

unsignedinta=0;

unsignedintb=0;

unsignedintt=0;

Init_DS18B20();

WriteOneChar(0xCC);//跳過讀序號列號的操作

WriteOneChar(0x44);//啟動(dòng)溫度轉(zhuǎn)換

Delay_DS18B20(200);

Init_DS18B20();

WriteOneChar(0xCC);//跳過讀序號列號的操作

WriteOneChar(0xBE);//讀取溫度寄存器

a=ReadOneChar();//讀低8位

b=ReadOneChar();//讀高8位

b<<=8;

t=a+b;

t=t*(0.625);//溫度值擴(kuò)大10倍,精確到1位小數(shù)

return(t);

}

22

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

/*****讀取溫度*****/

voidcheck_wendu(void)

{

c=ReadTemperature();//獲取溫度值

w=c/10;//計(jì)算得到整數(shù)位

if(w<0){w=0;}//設(shè)置溫度顯示上限

if(w>99){w=99;}//設(shè)置溫度顯示上限

}

/********************************************************************

******************************

********************************************************************

*******************************

********************************************************************

******************************/

/********************************************************************

******************************

************************************按鍵工作程序

***************************************************

********************************************************************

******************************/

voidKey()

{

//模式選擇

if(Key1==0)

{

while(Key1==0);

Feng=0;

Mode++;

Display_wd();

if(Mode==4)

{

Mode=1;

Feng=1;

}

write_com(0x38);//屏幕初始化

write_com(0x0d);//打開顯示無光標(biāo)光標(biāo)閃爍

write_com(0x06);//當(dāng)讀或?qū)懸粋€(gè)字符是指針后一一位

switch(Mode)

{

case1:

{

write_com(0x80+15);//位置

23

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

Feng=1;

break;

}

case2:

{

write_com(0x80+0x40+5);//位置

Feng=1;

break;

}

case3:

{

write_com(0x80+0x40+14);//位置

Feng=1;

break;

}

}

}

if(Key2==0&&Mode!=0)

{

while(Key2==0);

Feng=0;

switch(Mode)

{

case1:

{

if(ds<999)

{

ds++;

write_eeprom();

write_com(0x80+13);

write_data('0'+ds/100);

write_data('0'+ds/10%10);

write_data('0'+ds%10);

write_com(0x80+15);//位置

}

Feng=1;

break;

}

case2:

{

if(xx<99-1)

{

xx++;

24

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

write_com(0x80+0x40+4);

write_data('0'+xx/10%10);

write_data('0'+xx%10);

write_com(0x80+0x40+5);//位置

}

Feng=1;

break;

}

case3:

{

if(sx<xx-1)

{

sx++;

write_com(0x80+0x40+13);

write_data('0'+sx/10%10);

write_data('0'+sx%10);

write_com(0x80+0x40+14);//位置

}

Feng=1;

break;

}

}

}

if(Key3==0&&Mode!=0)

{

while(Key3==0);

Feng=0;

switch(Mode)

{

case1:

{

if(ds>0)

{

ds--;

write_eeprom();

write_com(0x80+13);

write_data('0'+ds/100);

write_data('0'+ds/10%10);

write_data('0'+ds%10);

write_com(0x80+15);//位置

}

Feng=1;

break;

25

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

}

case2:

{

if(xx>sx+1)

{

xx--;

write_eeprom();

write_com(0x80+0x40+4);

write_data('0'+xx/10%10);

write_data('0'+xx%10);

write_com(0x80+0x40+5);//位置

}

Feng=1;

break;

}

case3:

{

if(sx>0)

{

sx--;

write_eeprom();

write_com(0x80+0x40+13);

write_data('0'+sx/10%10);

write_data('0'+sx%10);

write_com(0x80+0x40+14);//位置

}

Feng=1;

break;

}

}

}

if(Key4==0)

{

while(Key4==0);

Feng=0;

Mode=0;

Init1602();

if(ds>0)

{

flag=1;

jdq=1;

TR1=1;

}

26

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

Feng=1;

write_eeprom();

}

if(flag_jiema_en==1)

{

flag_jiema_en=0;

if(hw_table[2]==0x45)//遙控設(shè)置鍵

{

Feng=0;

Mode++;

Display_wd();

if(Mode==4)

{

Mode=1;

Feng=1;

}

write_com(0x38);//屏幕初始化

write_com(0x0d);//打開顯示無光標(biāo)光標(biāo)閃爍

write_com(0x06);//當(dāng)讀或?qū)懸粋€(gè)字符是指針后一一位

switch(Mode)

{

case1:

{

write_com(0x80+15);//位置

Feng=1;

break;

}

case2:

{

write_com(0x80+0x40+5);//位置

Feng=1;

break;

}

case3:

{

write_com(0x80+0x40+14);//位置

Feng=1;

break;

}

}

}

//+鍵

27

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

elseif(hw_table[2]==0x15)

{

if(Mode!=0)

{

Feng=0;

switch(Mode)

{

case1:

{

if(ds<999)

{

ds++;

write_eeprom();

write_com(0x80+13);

write_data('0'+ds/100);

write_data('0'+ds/10%10);

write_data('0'+ds%10);

write_com(0x80+15);//位置

}

Feng=1;

break;

}

case2:

{

if(xx<99-1)

{

xx++;

write_eeprom();

write_com(0x80+0x40+4);

write_data('0'+xx/10%10);

write_data('0'+xx%10);

write_com(0x80+0x40+5);//位置

}

Feng=1;

break;

}

case3:

{

if(sx<xx-1)

{

sx++;

write_eeprom();

write_com(0x80+0x40+13);

28

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

write_data('0'+sx/10%10);

write_data('0'+sx%10);

write_com(0x80+0x40+14);//位置

}

Feng=1;

break;

}

}

}

}

//-鍵

elseif(hw_table[2]==0x07)

{

if(Mode!=0)

{

Feng=0;

switch(Mode)

{

case1:

{

if(ds>0)

{

ds--;

write_eeprom();

write_com(0x80+13);

write_data('0'+ds/100);

write_data('0'+ds/10%10);

write_data('0'+ds%10);

write_com(0x80+15);//位置

}

Feng=1;

break;

}

case2:

{

if(xx>sx+1)

{

xx--;

write_eeprom();

write_com(0x80+0x40+4);

write_data('0'+xx/10%10);

write_data('0'+xx%10);

write_com(0x80+0x40+5);//位置

29

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

}

Feng=1;

break;

}

case3:

{

if(sx>0)

{

sx--;

write_eeprom();

write_com(0x80+0x40+13);

write_data('0'+sx/10%10);

write_data('0'+sx%10);

write_com(0x80+0x40+14);//位置

}

Feng=1;

break;

}

}

}

}

//確定鍵

elseif(hw_table[2]==0x09)

{

Feng=0;

Mode=0;

Init1602();

if(ds>0)

{

flag=1;

jdq=1;

TR1=1;

}

Feng=1;

write_eeprom();

}

}

}

/********************************************************************

******************************

********************************************************************

*******************************

30

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

********************************************************************

******************************/

/********************************************************************

******************************

************************************報(bào)警部分程序

***************************************************

********************************************************************

******************************/

voidAlam()

{

if(flag_

溫馨提示

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

評論

0/150

提交評論