基于51單片機(jī)水溫控制系統(tǒng)設(shè)計(jì)與制作_第1頁
基于51單片機(jī)水溫控制系統(tǒng)設(shè)計(jì)與制作_第2頁
基于51單片機(jī)水溫控制系統(tǒng)設(shè)計(jì)與制作_第3頁
基于51單片機(jī)水溫控制系統(tǒng)設(shè)計(jì)與制作_第4頁
基于51單片機(jī)水溫控制系統(tǒng)設(shè)計(jì)與制作_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(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通訊方式的選擇.............................................2

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

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

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

3.2按鍵電路設(shè)計(jì)...............................................3

3.3數(shù)碼管顯示模塊電路.........................................4

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

4.1主程序流程圖...............................................6

4.2數(shù)碼管顯示程序設(shè)計(jì)........................................6

4.3上位機(jī)程序................................................7

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

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

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

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

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

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

參考資料..........................................................11

附錄..............................................................12

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

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

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

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

附錄5主程序代碼..............................................17

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

基于51單片機(jī)水溫控制系統(tǒng)設(shè)計(jì)與制作

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

本設(shè)計(jì)是一個(gè)基于單面機(jī)的溫度測控系統(tǒng),主要由單面機(jī)構(gòu)成溫度采集與

控制終端,實(shí)現(xiàn)溫度采集與控制。溫控系統(tǒng)是將負(fù)載的電加熱絲看成是被控對(duì)

象,溫度是控制量,控制前先設(shè)定溫度值,然后對(duì)電加熱絲進(jìn)行溫度采集,并將

采集的數(shù)據(jù)通過串行通信傳送給上位機(jī),通過控制P口的高低電平,控制電加

熱絲的通斷,從而實(shí)現(xiàn)對(duì)溫度的控制,并將顯示的溫度通過藍(lán)牙模塊傳輸?shù)绞?/p>

機(jī)端上顯示。此設(shè)計(jì)軟硬件兩部分組成硬件電路是系統(tǒng)的結(jié)構(gòu)框架,是軟件的

載體,軟件是系統(tǒng)的內(nèi)核,通過硬件來進(jìn)行具體操作,因此軟硬件相互配合,

共同完成各種功能。此系統(tǒng)硬件主要由以下幾個(gè)部分構(gòu)成:單片機(jī)、溫度采集

電路、溫度控制電路、數(shù)碼管顯示電路,以及藍(lán)牙模塊,而系統(tǒng)軟件主要通過

對(duì)單片機(jī)編程來實(shí)現(xiàn)。

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

產(chǎn)品硬件電路在設(shè)計(jì)與搭建前需要選擇好我們產(chǎn)品所需要的各個(gè)零件,才

能把我們自作的產(chǎn)品功能能夠發(fā)揮出效果來。有效果的水溫控制系統(tǒng)需要很多

個(gè)零部件組成的,有很多零件以及模塊可以讓我們選擇,需要我們根據(jù)實(shí)際以

及根據(jù)我們的經(jīng)濟(jì)水平和產(chǎn)品兼容性上來考慮的,產(chǎn)品的基本形式是由溫度顯

示,蜂鳴器報(bào)警,數(shù)碼管顯示功能組成。

2.1單片機(jī)的選擇

方案1:使用STM32系列單片機(jī)

STM32單片機(jī)產(chǎn)品的優(yōu)缺點(diǎn):是一款性價(jià)比超高、功能強(qiáng)大的單片機(jī)?;?/p>

專為需要高性能、低成本和低功耗的嵌入式應(yīng)用而設(shè)計(jì)的ARM。但是它對(duì)于一個(gè)

學(xué)生來講成本相對(duì)較高了而且使用起來比較復(fù)雜不推薦學(xué)生使用這款單片機(jī)。

方案2:使用51系列單片機(jī)

51單片機(jī)產(chǎn)品的優(yōu)缺點(diǎn):51單片機(jī)是一種上手容易操作系數(shù)不難的一款單

片機(jī),而且很經(jīng)典的一款產(chǎn)品。軟件到內(nèi)部硬件都擁有整套的按位操作系統(tǒng),

1

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

一般可稱為微處理器,片內(nèi)RAM雙重功能地址區(qū)間是所擁有的功能,以及乘法

和除法指令,使用極為活,但是沒有完美無瑕的產(chǎn)品以及毫無邏輯漏洞的程序,

凡是都有兩面性51單片機(jī)也還是有缺點(diǎn)的,比如AD、EEPROM之類的功能需擴(kuò)

展,增加了硬軟件的負(fù)擔(dān),且保護(hù)芯片能力較差,很容易燒掉芯片,綜合成本、

技術(shù)成熟程度以及產(chǎn)品功能的需求,主要是成本相對(duì)于其他的要低也符合一個(gè)

學(xué)生的經(jīng)濟(jì)水平以及產(chǎn)品的需求,所以選擇了51系列的單片機(jī)。

2.2通訊方式的選擇

通過藍(lán)牙模塊與安卓手機(jī)進(jìn)行連接將數(shù)據(jù)通過藍(lán)牙傳輸?shù)桨沧渴謾C(jī)上顯示。

藍(lán)牙設(shè)備是一個(gè)比較新型的連接設(shè)備,支持設(shè)備短距離通信無線電技術(shù)當(dāng)

屬于是藍(lán)牙這款了,可以在大量外設(shè)等其他設(shè)備中通過無線信息交換與交流,

極大程度簡化了移動(dòng)通信終端設(shè)備兩者之間的通信,主要是對(duì)于產(chǎn)品而言藍(lán)牙

模塊是最佳的選擇了,因?yàn)閷?duì)于學(xué)生的經(jīng)濟(jì)水平來說藍(lán)牙模塊性價(jià)比很高,而

且相對(duì)于我們專業(yè)來講,藍(lán)牙模塊的使用比較頻繁,產(chǎn)品用藍(lán)牙模塊上手會(huì)很

容易一點(diǎn),所以選擇使用了藍(lán)牙模塊。

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

系統(tǒng)框圖如圖1所示。

Led指示燈電源電路

DS18B20溫度傳感數(shù)碼管顯示

單片機(jī)處理單

繼電器控制水泵藍(lán)牙無線傳輸

報(bào)警電路

按鍵電路設(shè)置電路

圖1系統(tǒng)框圖

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

由STC89C52RC單片機(jī)組成的此系統(tǒng),數(shù)碼管顯示器,蜂鳴器模塊,按鍵模

2

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

塊,藍(lán)牙模塊,LED顯示模塊、繼電器模塊,以及電源組成。

主要利用DS18B2檢測到的溫度傳輸?shù)酱趯?shí)際參數(shù)值,再把串口收到的實(shí)

際溫度值顯示于數(shù)碼管顯示器上面,在通過藍(lán)牙傳輸?shù)绞謾C(jī)上顯示溫度值。

電路板上面有4個(gè)按鍵,一個(gè)是電源的開關(guān)按鍵,有一個(gè)是設(shè)置鍵,其余

兩個(gè)是:溫度值加0.1,以及溫度值減0.1,只于設(shè)置模式之中才可以對(duì)它進(jìn)行

操作。

在處于設(shè)置模式之中時(shí),數(shù)碼管顯示器有對(duì)應(yīng)顯示標(biāo)志,設(shè)置溫度上限值

和下限值,數(shù)碼管上都會(huì)有相應(yīng)的變化。

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

51系列單片機(jī)它在指令系統(tǒng)、硬件結(jié)構(gòu)和片內(nèi)資源等方面與標(biāo)準(zhǔn)的52系列

的單片機(jī)可以完全的兼容。51系列的單片機(jī)執(zhí)行速率快(最高時(shí)鐘頻率為90

MHz),功耗低,在系統(tǒng)、在應(yīng)用可編程,不占用用戶的資源。根據(jù)本系統(tǒng)設(shè)計(jì)的

實(shí)際要求,選擇STC89C52RC單片機(jī)做為本設(shè)計(jì)的單片機(jī)使用,它是由ATMEL公

司生產(chǎn)的高性能、低功耗的CMOS8位單片機(jī)。STC89C52RC單片機(jī)具有以下幾個(gè)

性能特點(diǎn):4k字節(jié)的閃存片內(nèi)程序存儲(chǔ)器,128字節(jié)的數(shù)據(jù)存儲(chǔ)器,32個(gè)

外部輸入和輸出口,2個(gè)全雙工串行通信口,看門狗電路,5個(gè)中斷源,2

個(gè)16位可編程定時(shí)計(jì)數(shù)器,片內(nèi)震蕩和時(shí)鐘電路且全靜態(tài)工作并由低功耗

的閑置和掉電模式。

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

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

3.2按鍵電路設(shè)計(jì)

按鍵也是一種電子開關(guān),實(shí)現(xiàn)開關(guān)接通僅需按下按鍵,斷開連接僅需松開

3

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

鍵,輕觸按鍵內(nèi)部中金屬彈片受力彈動(dòng)觸發(fā)來實(shí)現(xiàn)接通斷開功能,本設(shè)計(jì)

中這三個(gè)按鍵是最重要的部分控制著整個(gè)產(chǎn)品,有些模塊的效果是靠按鍵來設(shè)

置的,比如溫度的上下限值。按鍵是一個(gè)系統(tǒng)輸入,按鍵單片機(jī)控制引腳默認(rèn)

為高電平,按鍵按下,單片機(jī)對(duì)應(yīng)引腳于是成為低電平。

圖3按鍵電路原理圖

3.3數(shù)碼管顯示模塊電路

數(shù)碼管是一種半導(dǎo)體發(fā)光器件,其基本單元是發(fā)光二極管。能顯示4位數(shù)

字的叫四位數(shù)碼管,當(dāng)然也有多位和只有一位的數(shù)碼管,他們的電氣原理相同。

數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個(gè)

發(fā)光二極管單元(多一個(gè)小數(shù)點(diǎn)顯示);按發(fā)光二極管單元連接方式分為共陽極

數(shù)碼管和共陰極數(shù)碼管。共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形

成公共陽極(COM)的數(shù)碼管。共陽數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極COM接到+5V,當(dāng)

某一字段發(fā)光二極管的陰極為低電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陰極

為高電平時(shí),相應(yīng)字段就不亮。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到

一起形成公共陰極(COM)的數(shù)碼管。共陰數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極COM接到地

線GND上,當(dāng)某一字段發(fā)光二極管的陽極為高電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某

一字段的陽極為低電平時(shí),相應(yīng)字段就不亮。數(shù)碼管的電路原理和實(shí)物見圖4、

圖5。

寄存器選擇控制表和其管腳功能表如表1所示:

數(shù)碼管引腳功能表

引腳連接的對(duì)象

1E

4

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

2D

3Dp

4C

5G

6S4

7B

8S3

9S2

10F

11A

12S1

圖4數(shù)碼管顯示電路原理圖

5

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

圖5數(shù)碼管顯示器實(shí)物圖

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

本產(chǎn)品軟件設(shè)計(jì)使用C語言,利用keil5軟件編譯程序環(huán)境,采用的是簡單

的模塊化設(shè)計(jì),多個(gè)程序模塊化連接而成的整體程序。

4.1主程序流程圖

主程序流程圖如圖6所示。

圖6主程序流程圖

4.2數(shù)碼管顯示程序設(shè)計(jì)

數(shù)碼管顯示的單片機(jī)的基礎(chǔ)功能,數(shù)碼管具有動(dòng)態(tài)顯示,和靜態(tài)顯示兩種

狀態(tài),其顯示的原理就是利用人眼睛的視覺暫留現(xiàn)象,通過控制單片機(jī)IO快速

6

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

刷新數(shù)碼管的顯示內(nèi)容,達(dá)到人們眼中所見的穩(wěn)定不變的顯示。

4.3上位機(jī)程序

上位機(jī)是一個(gè)藍(lán)牙串口的APP,在與藍(lán)牙模塊進(jìn)行連接是,數(shù)碼管上顯示的

溫度會(huì)傳輸?shù)剿{(lán)牙串口上顯示。上位機(jī)上有三個(gè)按鍵對(duì)應(yīng)產(chǎn)品上的三個(gè)按鍵其

功能一致,分別為設(shè)置鍵、溫度數(shù)值加鍵、溫度數(shù)值減鍵。

未連接藍(lán)牙之前與連接藍(lán)牙之后的圖片狀態(tài)如圖7所示,連接后的顯示圖

片如圖8所示。

圖7未連接時(shí)界面圖8連接后的界面

三個(gè)控制按鍵:按鍵一是進(jìn)入設(shè)置狀態(tài),E1為設(shè)置溫度的上限值,E2為設(shè)

置溫度的下限值,操作界面如圖9所示。

7

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

圖9三個(gè)按鍵的初始狀態(tài)

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

溫度讀取

處理轉(zhuǎn)換

頭文件定時(shí)器初始化

函數(shù)

傳感器

main.cIO口定義

驅(qū)動(dòng)程

串口接收

數(shù)碼管顯示函

數(shù)

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

5.1產(chǎn)品裝配圖

產(chǎn)品是由單片機(jī),數(shù)碼管顯示模塊,報(bào)警模塊,繼電器模塊,報(bào)警模塊

(LED顯示和蜂鳴器),藍(lán)牙模塊,電源和按鍵模塊組成。

裝配圖如圖10所示。

8

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

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

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

對(duì)各個(gè)模塊的部件進(jìn)行測試與調(diào)節(jié),將散件的各個(gè)部件手工的焊接到萬能

板上,對(duì)照程序原理圖將各個(gè)部件的聯(lián)系用線連接好,焊接完成后需要對(duì)每一

個(gè)焊點(diǎn)進(jìn)行仔細(xì)的檢查,確保沒有虛焊漏焊以及是否有毛刺等。使用萬用表進(jìn)

行測試各個(gè)點(diǎn)之間的焊接狀況是否合格,再檢查各電源線與地線是否有短路的

現(xiàn)象,是著對(duì)產(chǎn)品進(jìn)行通電,看看效果是否和預(yù)想的一樣。

將編譯好的程序燒錄到單片機(jī)中,程序燒錄成功界面如圖11所示。

圖11程序燒錄圖

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

基本的使用說明:

1.接上電源通電,將ds18b20的端口放入水中,再按下電源開關(guān),數(shù)碼管

上顯示當(dāng)時(shí)的水溫的溫度。

2.按鍵1進(jìn)入設(shè)置,設(shè)置溫度的上限和下限值,按鍵2溫度加0.1,按鍵3

溫度減0.1。

3.蜂鳴器溫度達(dá)到上限或者下限值是會(huì)報(bào)警

4.LED顯示溫度達(dá)到下限值以下紅燈會(huì)亮起,當(dāng)溫度達(dá)到上限值以上黃燈

9

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

會(huì)亮起,溫度在上限與下限之內(nèi)紅黃兩燈處于熄滅狀態(tài)

5.藍(lán)牙模塊,用安卓手機(jī)下一個(gè)藍(lán)牙專屬的APP,進(jìn)行與藍(lán)牙模塊進(jìn)行連

接配對(duì),連接成功后,在數(shù)碼管顯示的溫度會(huì)通過藍(lán)牙模塊傳輸?shù)绞謾C(jī)APP上

顯示當(dāng)前的溫度

6.繼電器的作用是配合蜂鳴器和LED顯示,進(jìn)行報(bào)警與LED顯示。

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ī)范

10

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

參考資料

[1]郭天祥.新概念51單片機(jī)C語言教程.北京:電子工業(yè)出版社,2009.P342-P354

[2]李建忠.單片機(jī)原理與應(yīng)用.西安:西安電子科技大學(xué)出版社,2009.P16-P50

[3]閻實(shí).數(shù)字電子技術(shù)基礎(chǔ).北京:高等教育出版社,1983.P178-P182

[4]譚浩強(qiáng).C語言程序設(shè)計(jì)(第三版).北京:清華大學(xué)出版社,2005.P49-P86

[5]陳杰,黃鴻.傳感器監(jiān)測與技術(shù).北京:高等教育出版社,2002.P15-P50

[6]張紅潤,張亞凡,鄧洪.傳感器原理與應(yīng)用.北京:清華大學(xué)出版社,2008.P35-P38

[7]童師白,華成英.模擬電子技術(shù)基礎(chǔ).北京:高等教育出版社,1980.

[8]朱清慧,張鳳蕊.proteus教程.北京:清華大學(xué)出版社,2008.

11

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

附錄

附錄1元器件清單

元器件編號(hào)封裝參數(shù)數(shù)量

HDR1X2CON2

10uFC1RB7.6-15'CAPACITOR

POL

22C2,C3'RAD-0.3CAP

IN4148D2'SOT-23_LDIODE

KEY1K1,K2,K3SPST-2KEY1

LEDLED2,LED4,LED5LED-1LED

10KR1,R11AXIAL-0.4RES2.10K

1KR4,R10,R13,R14,R15,R16,R19,R22,R214AXIAL-0.41K

4.7KRP1HDR1X9RP8

STC89C52RCU1DIP40AT89C51

4-LEDU3W4-LED7

SWITCHU4HDR2X3SWITCH

POWU5U5POW

S8550U7,U11,U12,U13,U14SOT-23B_LPNP

BELLU8PIN2BELL

JDQ-5U10U10JDQ-5

S8550U16S8550SOT-23B_LPNP

DS18B20U22HDR1X3CON3

HC-05U75HDR1X6HC-05

12MHzY1R38CRYSTAL

12

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

附錄2電路原理圖

13

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

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

14

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

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

15

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

16

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

附錄5主程序代碼

#include"reg52.h"

#include<intrins.h>

//20移動(dòng)互聯(lián)3班吳松成

//基于51單片機(jī)的水溫控制系統(tǒng)制作與設(shè)計(jì)

#include"common.h"

#include"DS18B20_One.h"

#include"eeprom52.h"

#include"uart.h"

sbitset=P1^3;//設(shè)置

sbitadd=P1^4;//加

sbitdec=P1^5;//減

sbitSMG1=P2^0;//右邊數(shù)第一個(gè)數(shù)碼管

sbitSMG2=P2^2;//右邊數(shù)第二個(gè)數(shù)碼管

sbitSMG3=P2^4;//右邊數(shù)第三個(gè)數(shù)碼管

sbitSMG4=P2^6;//右邊數(shù)第四個(gè)數(shù)碼管

sbitbeep=P3^5;

sbitjdq=P3^7;

sbitled1=P1^0;

sbitled2=P1^1;

unsignedcharset_mode=0;//設(shè)置變量,不在設(shè)置模式下是0,1是設(shè)置下

限,2是設(shè)置上限

unsignedcharcount1=0;

staticuintcount=0;

shorttempeature=0;//溫度值

intTemp_min_value=100;//下限值

intTemp_max_value=350;//上限值

charcheck=111;//檢驗(yàn)位

unsignedcharcode

smgduan[12]={0xa0,0xbb,0x62,0x2a,0x39,0x2c,0x24,0xba,0x20,0x28,0xff,

0xe4};//共陽數(shù)碼管編碼

unsignedcharDisplayData[4];//顯示數(shù)據(jù)緩存區(qū)

17

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

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

*函數(shù)名:delay

*函數(shù)功能:延時(shí)函數(shù),i=1時(shí),大約延時(shí)10us

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

voiddelay(unsignedinti)

{

while(i--);

}

voidTimer0Init()//定時(shí)器初始化

{

TMOD|=0x01;//設(shè)定定時(shí)器0,工作方式1

TL0=0x00;//10ms

TH0=0xDC;

ET0=1;

TR0=1;

EA=1;

}

voidwrite_eeprom()//eeprom存儲(chǔ)數(shù)據(jù),設(shè)置值

{

SectorErase(0x2000);//清除

byte_write(0x2001,Temp_min_value%256);//存儲(chǔ)低8位數(shù)據(jù)

byte_write(0x2002,Temp_min_value/256);//存儲(chǔ)高8位數(shù)據(jù)

byte_write(0x2003,Temp_max_value%256);

byte_write(0x2004,Temp_max_value/256);

byte_write(0x2009,check);

}

voideeprom_init()//eeprom讀取數(shù)據(jù)

{

check=byte_read(0x2009);

if(check!=111)//單片機(jī)第一次使用時(shí),check校驗(yàn)值便不是111,所

以這里要把初始的數(shù)據(jù)先存一遍再讀取

{

check=111;

18

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

Temp_min_value=100;

Temp_max_value=350;

write_eeprom();

}

Temp_min_value=byte_read(0x2002)*256+byte_read(0x2001);//

讀取下限值

Temp_max_value=byte_read(0x2004)*256+byte_read(0x2003);//

讀取上限值

}

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

*函數(shù)名:DigDisplay()

*函數(shù)功能:數(shù)碼管顯示函數(shù)

*輸入:無

*輸出:無

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

voidDigDisplay()

{

unsignedchari;

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

{

switch(i)//位選,選擇點(diǎn)亮的數(shù)碼管,

{

case(0):SMG1=0;SMG2=1;SMG3=1;SMG4=1;break;//顯示第1位

case(1):SMG1=1;SMG2=0;SMG3=1;SMG4=1;break;//顯示第2位

case(2):SMG1=1;SMG2=1;SMG3=0;SMG4=1;break;//顯示第3位

case(3):SMG1=1;SMG2=1;SMG3=1;SMG4=0;break;//顯示第4位

}

P0=DisplayData[i];//發(fā)送數(shù)據(jù)

delay(100);//間隔一段時(shí)間掃描

P0=0xff;//消隱

}

}

19

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

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

*函數(shù)名:datapros()

*函數(shù)功能:溫度讀取處理轉(zhuǎn)換函數(shù)

*輸入:temp

*輸出:無

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

voiddatapros()

{

if(set_mode==0)

{

tempeature=DS18B20_TF()*10;//讀取溫度值

//裝載到顯示緩存區(qū)

DisplayData[3]=smgduan[tempeature%1000/100];//顯示十位

DisplayData[2]=smgduan[tempeature%100/10]&0xdf;//顯示個(gè)位

DisplayData[1]=smgduan[tempeature%10];//小數(shù)點(diǎn)后一位

DisplayData[0]=smgduan[11];//顯示C

}

}

unsignedcharxdataRevBuf[COM_RX1_Lenth];//串口接收緩存

voidkeyscan()//按鍵掃描

{

staticunsignedintCount3=0;

memset(RevBuf,0,COM_RX1_Lenth);//清除緩存

uart_recv(RevBuf,50);//接受串口內(nèi)容

if(set==0||(strstr(RevBuf,"k1")!=NULL))//設(shè)置鍵按下

{

delay_ms(10);

if(set==0||(strstr(RevBuf,"k1")!=NULL))

{

while(!set);//等待按鍵松開

set_mode++;//記錄按下次數(shù)

if(set_mode>2)//超過兩次,退出設(shè)置

{

20

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

set_mode=0;

count=200;//這里賦值200,是為了退出時(shí)立馬能

讀取溫度數(shù)據(jù),請(qǐng)看中斷1里面讀取溫度

}

if(set_mode==1)//設(shè)置溫度下限

{

do

{

//顯示E1

DisplayData[3]=0x64;

DisplayData[2]=smgduan[1];

DisplayData[1]=0xff;

DisplayData[0]=0xff;

delay_ms(3);

}while(Count3++<100);//延時(shí)

DisplayData[3]=smgduan[Temp_min_value/100];

DisplayData[2]=smgduan[Temp_min_value%100/10];

DisplayData[1]=smgduan[Temp_min_value%10]&0xdf;

DisplayData[0]=smgduan[11];

Count3=0;

}

elseif(set_mode==2)//設(shè)置溫度上限

{

do

{

//顯示E2

DisplayData[3]=0x64;

DisplayData[2]=smgduan[2];

DisplayData[1]=0xff;

DisplayData[0]=0xff;

delay_ms(3);

}while(Count3++<100);//延時(shí)

21

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

DisplayData[3]=smgduan[Temp_max_value/100];

DisplayData[2]=smgduan[Temp_max_value%100/10]&0xdf;

DisplayData[1]=smgduan[Temp_max_value%10];

DisplayData[0]=smgduan[11];

Count3=0;

}

}

}

if(set_mode!=0)//說明實(shí)在設(shè)置模式下

{

if(add==0||(strstr(RevBuf,"k2")!=NULL))//加鍵按下

{

delay_ms(50);

if(add==0||(strstr(RevBuf,"k2")!=NULL))

{

if(set_mode==1)

{

if(Temp_max_value-Temp_min_value>1)//上限值必須大于下

限值,下限值才能加

Temp_min_value++;//顯示

DisplayData[3]=smgduan[Temp_min_value/100];

DisplayData[2]=smgduan[Temp_min_value%100/10]&0xdf;

DisplayData[1]=smgduan[Temp_min_value%10];

write_eeprom();//存儲(chǔ)數(shù)據(jù)

delay_ms(50);

}

if(set_mode==2)

{

if(Temp_max_value<999)//最大到99.9

Temp_max_value++;

DisplayData[3]=smgduan[Temp_max_value/100];

DisplayData[2]=smgduan[Temp_max_value%100/10]&0xdf;

DisplayData[1]=smgduan[Temp_max_value%10];

22

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

write_eeprom();//存儲(chǔ)數(shù)據(jù)

delay_ms(50);

}

count1=0;

}

}

if(dec==0||(strstr(RevBuf,"k3")!=NULL))//減鍵按下

{

delay_ms(50);

if(dec==0||(strstr(RevBuf,"k3")!=NULL))

{

//while(!dec);

if(set_mode==1)

{

if(Temp_min_value>0)//最小到0

Temp_min_value--;

DisplayData[3]=smgduan[Temp_min_value/100];

DisplayData[2]=smgduan[Temp_min_value%100/10]&0xdf;

DisplayData[1]=smgduan[Temp_min_value%10];

write_eeprom();//存儲(chǔ)數(shù)據(jù)

delay_ms(50);

}

if(set_mode==2)

{

if(Temp_max_value-Temp_min_value>1)//上限值必須大于下限值,上

限值才能減

Temp_max_value--;

DisplayData[3]=smgduan[Temp_max_value/100];

DisplayData[2]=smgduan[Temp_max_value%100/10]&0xdf;

DisplayData[1]=smgduan[Temp_max_value%10];

write_eeprom();//存儲(chǔ)數(shù)據(jù)

delay_ms(50);

}

23

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

count1=0;

}

}

}

}

voidDisplay_blink()//設(shè)置閃爍

{

if(set_mode!=0)

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論