基于ds18b20溫度傳感器的數(shù)字溫度計(jì)設(shè)計(jì)畢業(yè)設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩47頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  畢 業(yè) 設(shè) 計(jì)(論 文)</p><p>  基于DS18B20溫度傳感器的數(shù)字溫度計(jì)設(shè)計(jì)</p><p> 學(xué)生姓名:</p><p> 學(xué) 號(hào):</p><p> 所在系部:電氣信息系</p><p> 專業(yè)班級(jí):電氣工程及其自動(dòng)化</p><p> 指導(dǎo)教師:講

2、師</p><p> 日 期:二○一二年五月</p><p>  The design of temperature sensor based on DS18B20 digital thermometer</p><p><b>  By</b></p><p><b>  May 2012</b&

3、gt;</p><p><b>  摘 要</b></p><p>  隨著人們生活水平的不斷提高,單片機(jī)控制無(wú)疑是人們追求的目標(biāo)之一,它所給人帶來(lái)的方便也是不可否定的,其中數(shù)字溫度計(jì)就是一個(gè)典型的例子,但人們對(duì)它的要求越來(lái)越高,要為現(xiàn)代人工作、科研、生活、提供更好的更方便的設(shè)施就需要從數(shù)單片機(jī)技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展本文介紹了一種基于DS1

4、8B20的數(shù)字溫度計(jì)設(shè)計(jì)方案。本設(shè)計(jì)所介紹的數(shù)字溫度計(jì)與傳統(tǒng)的溫度計(jì)相比,具有讀數(shù)方便,測(cè)溫范圍廣,測(cè)溫準(zhǔn)確,其輸出溫度采用數(shù)字顯示,主要用于對(duì)測(cè)溫比較準(zhǔn)確的場(chǎng)所,或科研實(shí)驗(yàn)室使用方案。利用AT89S52單片機(jī)控制DS18B20進(jìn)行數(shù)據(jù)采集并由HS1602液晶顯示模塊顯示結(jié)果,另外,采集結(jié)果可由RS-232-C接口送入計(jì)算機(jī)顯示并存儲(chǔ)。按鍵控制實(shí)現(xiàn)過(guò)界報(bào)警溫度設(shè)定和實(shí)時(shí)監(jiān)控,利用AT24C08芯片進(jìn)行存儲(chǔ),實(shí)現(xiàn)溫度測(cè)量存儲(chǔ)與再現(xiàn)。<

5、;/p><p>  關(guān)鍵字:溫度采集 存儲(chǔ)再現(xiàn) 過(guò)界報(bào)警 串行通信</p><p><b>  Abstract</b></p><p>  With the continuous improvement of people's living standard, single-chip control is undoubtedly one

6、of the people to pursue the goal, it brings the convenience is undeniable, which is a typical example of the digital thermometer is required of it, but it is increasingly the higher is the modern, scientific research, li

7、fe and provide better more convenient facilities will need to start from several single-chip technology, all toward the digital control, intelligent control of the direction. In th</p><p>  Keywords: Tempera

8、ture collection Storing to reappear Over the boundary to alarm Serial communication.</p><p><b>  目 錄</b></p><p><b>  摘 要i</b></p><p>  Abstractii</

9、p><p><b>  1 引言1</b></p><p>  1.1選題目的和意義1</p><p>  1.2國(guó)內(nèi)外目前的研究進(jìn)展和成果1</p><p>  1.3本課題研究的內(nèi)容2</p><p><b>  2 總體設(shè)計(jì)3</b></p><

10、;p>  2.1 方案論證3</p><p>  2.1.1 溫度傳感器3</p><p>  2.1.2 單片機(jī)系統(tǒng)3</p><p>  2.1.3 電源模塊4</p><p>  2.1.4 顯示模塊4</p><p>  2.1.5 確定方案4</p><p>  2.

11、2 總體設(shè)計(jì)5</p><p><b>  3 硬件設(shè)計(jì)6</b></p><p>  3.1 單片機(jī)系統(tǒng)6</p><p>  3.2 溫度傳感器模塊6</p><p>  3.2.1 DS18B20原理7</p><p>  3.2.2 DS18B20電路連接11</p>

12、;<p>  3.3 液晶顯示模塊11</p><p>  3.4存儲(chǔ)模塊14</p><p>  3.4.1 AT24C08結(jié)構(gòu)14</p><p>  3.4.2 AT24C08工作原理16</p><p>  3.4.3 AT24C08的連接電路16</p><p>  3.5 串口通信模

13、塊17</p><p>  3.6 電源模塊18</p><p><b>  4 軟件設(shè)計(jì)19</b></p><p>  4.1 主程序流程19</p><p>  4.2 DS18B20模塊程序設(shè)計(jì)19</p><p>  4.2.1 程序流程19</p><p

14、>  4.2.2 程序源碼20</p><p>  4.3 HS1602驅(qū)動(dòng)程序設(shè)計(jì)20</p><p>  4.3.1 程序流程20</p><p>  4.3.2 程序源碼21</p><p>  4.4 AT24C08存儲(chǔ)模塊程序設(shè)計(jì)21</p><p>  4.4.1 程序流程21</p

15、><p>  4.4.2 程序源碼21</p><p>  4.5 單片機(jī)端通信程序設(shè)計(jì)21</p><p>  4.5.1 程序流程21</p><p>  4.5.2 程序源碼22</p><p>  4.6 PC端通信程序設(shè)計(jì)22</p><p>  4.6.1 程序流程22<

16、;/p><p>  4.6.2 程序源碼23</p><p>  5 測(cè)試及結(jié)果分析24</p><p><b>  結(jié) 論25</b></p><p><b>  致 謝26</b></p><p><b>  參考文獻(xiàn)27</b></

17、p><p>  附錄A 程序源碼28</p><p>  附錄B總體完全電路圖41</p><p><b>  1 引言</b></p><p>  1.1選題目的和意義</p><p>  隨著電子技術(shù)的發(fā)展,人們的生活日趨數(shù)字化,多功能的數(shù)字溫度計(jì)可以給我們的生活帶來(lái)很大的方便;支持“一線總線

18、”接口的溫度傳感器簡(jiǎn)化了數(shù)字溫度計(jì)的設(shè)計(jì),降低了成本;以美國(guó)MAXIM/DALLAS半導(dǎo)體公司的單總線溫度傳感器DS18B20為核心,以ATMEL公司的AT89S52為控制器設(shè)計(jì)的DS18B20溫度控制器結(jié)構(gòu)簡(jiǎn)單、測(cè)溫準(zhǔn)確、具有一定控制功能的智能溫度控制器。</p><p>  那么,單片機(jī)控制無(wú)疑是人們追求的目標(biāo)之一,它所給人帶來(lái)的方便也是不可否定的,其中數(shù)字溫度計(jì)就是一個(gè)典型的例子,但人們對(duì)它的要求越來(lái)越高,

19、要為現(xiàn)代人工作、科研、生活、提供更好的更方便的設(shè)施就需要從數(shù)單片機(jī)技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。</p><p>  1.2國(guó)內(nèi)外目前的研究進(jìn)展和成果</p><p>  測(cè)量溫度的關(guān)鍵是溫度傳感器,溫度傳感器的發(fā)展經(jīng)歷了3個(gè)階段:傳統(tǒng)的分立式溫度傳感器、模擬集成溫度傳感器、智能集成溫度傳感器。目前,國(guó)際上新型溫度傳感器正從模擬式向數(shù)字式、從集成化向智能化、網(wǎng)絡(luò)化的方向

20、發(fā)展。</p><p>  在這個(gè)信息技術(shù)的飛速發(fā)展和傳統(tǒng)工業(yè)改造的逐步實(shí)現(xiàn)的時(shí)代。能夠獨(dú)立工作的溫度檢測(cè)和顯示系統(tǒng)應(yīng)用于諸多領(lǐng)域。傳統(tǒng)的溫度檢測(cè)以熱敏電阻為溫度敏感元件。熱敏電阻的成本低,但需后續(xù)信號(hào)處理電路,而且可靠性相對(duì)較差,測(cè)溫準(zhǔn)確度低,檢測(cè)系統(tǒng)也有一定的誤差。與傳統(tǒng)的溫度計(jì)相比,這里設(shè)計(jì)的數(shù)字溫度計(jì)具有讀數(shù)方便,測(cè)溫范圍廣,測(cè)溫精確,數(shù)字顯示,適用范圍寬等特點(diǎn)。選用AT89C52型單片機(jī)作為主控制器件,

21、DSl8B20作為測(cè)溫傳感器通過(guò)HS1602液晶顯示模塊顯示結(jié)果,實(shí)現(xiàn)溫度顯示。通過(guò)DSl8B20直接讀取被測(cè)溫度值,進(jìn)行數(shù)據(jù)轉(zhuǎn)換,該器件的物理化學(xué)性能穩(wěn)定,線性度較好,在0℃~100℃最大線性偏差小于0.1℃。該器件可直接向單片機(jī)傳輸數(shù)字信號(hào),便于單片機(jī)處理及控制。另外,該溫度計(jì)還能直接采用測(cè)溫器件測(cè)量溫度,從而簡(jiǎn)化數(shù)據(jù)傳輸與處理過(guò)程。</p><p>  1.3本課題研究的內(nèi)容</p><

22、p>  本設(shè)計(jì)所介紹的數(shù)字溫度計(jì)與傳統(tǒng)的溫度計(jì)相比,具有讀數(shù)方便,測(cè)溫范圍廣,測(cè)溫準(zhǔn)確,其輸出溫度采用數(shù)字顯示,主要用于對(duì)測(cè)溫比較準(zhǔn)確的場(chǎng)所,或科研實(shí)驗(yàn)室使用,該設(shè)計(jì)控制器使用8086系統(tǒng)AT89S52,測(cè)溫傳感器使用DS18B20,由HS1602液晶顯示模塊顯示結(jié)果,能準(zhǔn)確達(dá)到以上要求。</p><p><b>  2 總體設(shè)計(jì)</b></p><p><

23、;b>  2.1 方案論證</b></p><p>  2.1.1 溫度傳感器</p><p>  方案一:采用熱敏電阻可滿足測(cè)溫要求,但熱敏電阻精度低,重復(fù)性和可靠性較差,對(duì)于精度要求較高的測(cè)溫不適用,而且采用熱敏電阻要求復(fù)雜的電路和算法,增加了設(shè)計(jì)復(fù)雜度。</p><p>  方案二:采用專用的集成溫度傳感器(如AD590、LM35/LM45)

24、和數(shù)字化溫度傳感器(DS18B20、DS1620)測(cè)溫,數(shù)字化溫度傳感器具有接口簡(jiǎn)單、直接數(shù)字量輸出、精確度高等優(yōu)點(diǎn)。DS18B20數(shù)字溫度傳感器接線方便,封裝成后可應(yīng)用于多種場(chǎng)合,如管道式,螺紋式,磁鐵吸附式,不銹鋼封裝式,型號(hào)多種多樣,有LTM8877,LTM8874等等。主要根據(jù)應(yīng)用場(chǎng)合的不同而改變其外觀。封裝后的DS18B20可用于電纜溝測(cè)溫,高爐水循環(huán)測(cè)溫,鍋爐測(cè)溫,機(jī)房測(cè)溫,農(nóng)業(yè)大棚測(cè)溫,潔凈室測(cè)溫,彈藥庫(kù)測(cè)溫等各種非極限溫

25、度場(chǎng)合。耐磨耐碰,體積小,使用方便,封裝形式多樣,適用于各種狹小空間設(shè)備數(shù)字測(cè)溫和控制領(lǐng)域。</p><p>  DS18B20是DALLAS公司的最新單線數(shù)字溫度傳感器,它是世界上第一片支持“一線總線”接口的溫度傳感器。一線總線獨(dú)特而且經(jīng)濟(jì)的特點(diǎn),使用戶可輕松地組建傳感器網(wǎng)絡(luò),它的測(cè)量溫度范圍為-55~+125℃,在-10~+85℃范圍內(nèi),精度為±0.5℃,現(xiàn)場(chǎng)溫度直接以“一線總線”的數(shù)字方式傳輸,大

26、大提高了系統(tǒng)的抗干擾性,適合于惡劣環(huán)境的現(xiàn)場(chǎng)溫度測(cè)量,如:環(huán)境控制、設(shè)備或過(guò)程控制、測(cè)溫類消費(fèi)電子產(chǎn)品等,DS18B20支持3~5.5V的電壓范圍,使系統(tǒng)設(shè)計(jì)更靈活、更方便、更便宜、體積更小。DS18B20可以程序設(shè)定9~12位的分辨率,精度為±0.5℃,分辨率設(shè)定及用戶設(shè)定的報(bào)警溫度存儲(chǔ)在E2PROM中,掉電后依然保存。因此,本方案選用DS18B20作為溫度測(cè)量傳感器。</p><p>  2.1.2

27、 單片機(jī)系統(tǒng)</p><p>  目前比較流行51系列單片機(jī)和凌陽(yáng)單片機(jī)。 AT89C51單片機(jī)需要用仿真器來(lái)實(shí)現(xiàn)軟硬件的調(diào)試,較為繁瑣;AT89S52是一種低功耗、高性能CMOS 8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。使用Atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8

28、位CPU 和在系統(tǒng)可編程Flash,使得AT89S52在眾多嵌入式控制應(yīng)用系統(tǒng)中得到廣泛應(yīng)用。</p><p>  AT89S52八位單片機(jī)除具有AT89C51單片機(jī)所有的優(yōu)點(diǎn)外,具有更大的程序存儲(chǔ)空間,可在線仿真的功能,方便調(diào)試。凌陽(yáng)十六位單片機(jī)雖然可以更好的完成控制功能,但較AT89S52八位單片機(jī)價(jià)格昂貴,而且編程以及外圍功能電路的設(shè)計(jì)都不及AT89S52成熟。因此,選用AT89S52八位單片機(jī)作為溫度采集

29、的控部分。</p><p>  2.1.3 電源模塊</p><p>  采用普通的直流電源實(shí)現(xiàn)電路簡(jiǎn)單,而且采用集成電源芯片設(shè)計(jì)的直流電源電壓比較穩(wěn)定,完全滿足系統(tǒng)各模塊的供電要求,但是普通直流電源體積比較大,變壓器的散熱對(duì)測(cè)溫精度也有影響,所以,選用鋰離子手機(jī)充電電池和配套的鋰電池充電器作為系統(tǒng)的供電模塊。手機(jī)用的鋰電池電壓范圍是3.6V到4.2V,限定充電電壓是4.25V,完全滿足A

30、T89S52和DS18B20等各模塊的工作電壓范圍。</p><p>  2.1.4 顯示模塊</p><p>  由于系統(tǒng)要求實(shí)現(xiàn)測(cè)量環(huán)境溫度、測(cè)量體溫、過(guò)界報(bào)警設(shè)置、溫度存儲(chǔ)再現(xiàn)等多種功能,要顯示的信息不僅僅是溫度值,所以采用數(shù)碼管顯示幾乎不可能。另外,手機(jī)電池電量有限,而數(shù)碼管耗電較大,不符合設(shè)計(jì)要求。因此,選用常見(jiàn)的HS1602液晶顯示模塊顯示測(cè)溫結(jié)果。</p>&l

31、t;p>  2.1.5 確定方案</p><p>  為了不失通用性和智能性,本方案采用AT89S52單片機(jī)作為控制器,單總線溫度傳感器DS18B20進(jìn)行溫度采集。電源部分沒(méi)有采用普通的直流電源而利用鋰離子手機(jī)充電電池和配套的鋰電池充電器,手機(jī)用的鋰電池電壓范圍是3.6V到4.2V,限定充電電壓是4.25V,完全滿足AT89S52和DS18B20等各模塊的工作電壓范圍。由于手機(jī)電池電量有限,所以顯示模塊使用

32、HS1602液晶顯示模塊而沒(méi)有使用數(shù)碼管。</p><p><b>  2.2 總體設(shè)計(jì)</b></p><p>  本方案設(shè)計(jì)的系統(tǒng)由按鍵控制模塊、單片機(jī)系統(tǒng)、溫度傳感器模塊、液晶顯示模塊、存儲(chǔ)模塊、串口通信模塊和電源模塊組成,其總體架構(gòu)如圖2-1。</p><p>  圖2-1 系統(tǒng)總體設(shè)計(jì)</p><p><

33、;b>  3 硬件設(shè)計(jì)</b></p><p><b>  3.1 單片機(jī)系統(tǒng)</b></p><p>  該方案采用AT89S52單片機(jī)作為控制器,完成所有的控制功能,包括:</p><p>  ??溫度傳感器DS18B20的初始化和讀取溫度值</p><p>  ??HS1602液晶模塊驅(qū)動(dòng)<

34、/p><p><b>  ??按鍵識(shí)別和控制</b></p><p><b>  ??溫度存儲(chǔ)及讀取</b></p><p>  ??和PC機(jī)的串口通信</p><p>  單片機(jī)系統(tǒng)的電路如圖3-1。</p><p>  圖3-1 單片機(jī)系統(tǒng)電路</p><

35、;p>  3.2 溫度傳感器模塊</p><p><b>  溫度傳感器模塊</b></p><p>  如下圖,使用外部電源,可以減少程序復(fù)雜程度。</p><p>  DS18B20特性:</p><p>  ??獨(dú)特的單線接口僅需一個(gè)端口進(jìn)行通訊</p><p>  ??簡(jiǎn)單的多點(diǎn)分布

36、應(yīng)用</p><p><b>  ??無(wú)需外部器件</b></p><p>  ??可通過(guò)數(shù)據(jù)線供電</p><p><b>  ??零待機(jī)功耗</b></p><p>  ??測(cè)溫范圍-55~+125℃</p><p>  ??溫度以12位數(shù)字量讀出</p>

37、<p>  ??溫度數(shù)字量轉(zhuǎn)換時(shí)間750ms(12位)</p><p>  ??用戶可定義的非易失性溫度警報(bào)設(shè)置</p><p>  ??報(bào)警搜索命令識(shí)別并超過(guò)程序限定溫度(溫度報(bào)警條件)的器件</p><p>  ??應(yīng)用包括溫度控制、工業(yè)系統(tǒng)、消費(fèi)品、溫度計(jì)或任何熱感測(cè)系統(tǒng)</p><p>  3.2.1 DS18B20原理&l

38、t;/p><p>  DS18B20 采用3 腳PR-35 封裝或8 腳SOIC 封裝,管腳排列如圖3-2所示。圖中GND 為地,DQ 為數(shù)據(jù)輸入/輸出端(即單線總線),該腳為漏極開(kāi)路輸出,常態(tài)下呈高電平,Vcc 是外部+5V 電源端,不用時(shí)應(yīng)接地,NC 為空腳。</p><p>  圖3-2 DS18B20的外部結(jié)構(gòu)</p><p>  DS18B20內(nèi)部主要包括寄

39、生電源、溫度傳感器、64 位激光ROM 單線接口、存放中間數(shù)據(jù)的高速暫存器(內(nèi)含便箋式RAM),用于存儲(chǔ)用戶設(shè)定的溫度上下限值的TH 和TL 解發(fā)器存儲(chǔ)與控制邏輯、8 位循環(huán)冗余校驗(yàn)碼(CRC)發(fā)生器等七部分,內(nèi)部結(jié)構(gòu)如圖3-3。</p><p>  圖3-3 DS18B20內(nèi)部結(jié)構(gòu)</p><p>  寄生電源由二極管VD1、VD2 和寄生電容C 組成,電源檢測(cè)電路用于判定供電方式,寄

40、生電源供電時(shí),VDD 端接地,器件從單線總線上獲取電源,在DQ 線呈低電平時(shí),改由C上的電壓Vc繼續(xù)向器件供電。該寄生電源有兩個(gè)優(yōu)點(diǎn):第一,檢測(cè)遠(yuǎn)程溫度時(shí)無(wú)需本地電源;第二,缺少正常電源時(shí)也能讀ROM。若采用外部電源VDD,則通過(guò)VD2 向器件供電。</p><p>  光刻ROM中的64位序列號(hào)是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼,如圖3-4所示。</p><p>

41、;  圖3-4 64 位ROM 的結(jié)構(gòu)</p><p>  開(kāi)始8位(28H)是產(chǎn)品類型標(biāo)號(hào),接著的48位是DS18B20自身的序列號(hào),最后8位是前面56位的循環(huán)冗余校驗(yàn)碼(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一個(gè)DS18B20都各不相同,這樣就可以實(shí)現(xiàn)一根總線上掛接多個(gè)DS18B20的目的。主機(jī)操作ROM 的命令有五種,如表3-1 所示。</p><p>  表3-1

42、 DS18B20的ROM命令</p><p>  DS18B20 測(cè)量溫度時(shí)使用特有的溫度測(cè)量技術(shù)。其內(nèi)部的低溫度系數(shù)振蕩器能產(chǎn)生穩(wěn)定的頻率信號(hào)f0,高溫度系數(shù)振蕩器則將被測(cè)溫度轉(zhuǎn)換成頻率信號(hào)f。當(dāng)計(jì)數(shù)門打開(kāi)時(shí),DS18B20 對(duì)f0 計(jì)數(shù),計(jì)數(shù)門開(kāi)通時(shí)間由高溫度系數(shù)振蕩器決定。芯片內(nèi)部還有斜率累加器,可對(duì)頻率的非線性予以被償。測(cè)量結(jié)果存入溫度寄存器中。一般情況下的溫度值應(yīng)為9 位(符號(hào)點(diǎn)1位),但因符號(hào)位擴(kuò)展

43、成高8 位,故以16 位被碼形式讀出,表3-2 給出了溫度和數(shù)字量的關(guān)系。</p><p>  表3-2 DS18B20 溫度數(shù)字對(duì)應(yīng)關(guān)系表</p><p>  DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的E2RAM,后者存放高溫度和低溫度觸發(fā)器TH、TL和結(jié)構(gòu)寄存器。暫存存儲(chǔ)器包含了8個(gè)連續(xù)字節(jié),前兩個(gè)字節(jié)是測(cè)得的溫度信息,第一個(gè)字節(jié)的內(nèi)容是溫

44、度的低8位,第二個(gè)字節(jié)是溫度的高8位,第三個(gè)和第四個(gè)字節(jié)是TH、TL的易失性拷貝,第五個(gè)字節(jié)是結(jié)構(gòu)寄存器的易失性拷貝,這三個(gè)字節(jié)的內(nèi)容在每一次上電復(fù)位時(shí)被刷新,第六、七、八個(gè)字節(jié)用于內(nèi)部計(jì)算,第九個(gè)字節(jié)是冗余檢驗(yàn)字節(jié),如表3-3所示。</p><p>  表3-3 DS18B20暫存器分布</p><p>  該字節(jié)各位的意義為TM R1 R0 1 1 1 1 1 ,低五位一直都是1 ,

45、TM是測(cè)試模式位,用于設(shè)置DS18B20在工作模式還是在測(cè)試模式,在DS18B20出廠時(shí)該位被設(shè)置為0,用戶不用改動(dòng),R1和R0用來(lái)設(shè)置分辨率,DS18B20出廠時(shí)被設(shè)置為12位,分辨率設(shè)置如表3-4所示。 </p><p>  表3-4 分辨率設(shè)置表</p><p>  根據(jù)DS18B20的通訊協(xié)議,主機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過(guò)三個(gè)步驟:每一次讀寫(xiě)之前都要對(duì)DS18B20

46、進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對(duì)DS18B20進(jìn)行預(yù)定的操作。復(fù)位要求主CPU將數(shù)據(jù)線下拉500微秒,然后釋放,DS18B20收到信號(hào)后等待16~60微秒左右,后發(fā)出60~240微秒的存在低脈沖,主CPU收到此信號(hào)表示復(fù)位成功。ROM命令令和暫存器的命令如表3-1和表3-5。</p><p>  表3-5 DS18B20暫存器的命令</p><p>

47、  3.2.2 DS18B20電路連接</p><p>  由于DS18B20 工作在單總線方式,其硬件接口非常簡(jiǎn)單,僅需利用系統(tǒng)的一條I/ O線與DS18B20的數(shù)據(jù)總線相連即可,如圖3-5所示。</p><p>  圖3-5 DS18B20電路</p><p>  3.3 液晶顯示模塊</p><p>  HS1602采用標(biāo)準(zhǔn)的16腳接

48、口,其引腳如表3-6所示,其中VSS為地電源,VDD接5V正電源,V0為液晶顯示模塊對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度。RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器,低電平時(shí)選擇指令寄存器。RW為讀寫(xiě)信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫(xiě)操作,當(dāng)RS和RW共同為低電平時(shí)可以寫(xiě)入指令或者顯示地址,當(dāng)RS為低電平RW為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平RW為低電平時(shí)可以寫(xiě)入數(shù)據(jù)。

49、E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。LEDA和LEDK為背光電源,LEDA接5V正電源,LEDK接GND。D0~D7為8位雙向數(shù)據(jù)線。</p><p>  表3-6 接口信號(hào)說(shuō)明</p><p>  用HS1602液晶顯示模塊顯示字符或字符串之前必須對(duì)其進(jìn)行初始化,HS1602液晶顯示模塊的初始化流程如下:</p><p>  ??5.0

50、 初始化過(guò)程(復(fù)位過(guò)程)</p><p>  ??5.1 延時(shí)15ms</p><p>  ??5.2 寫(xiě)指令38H(不檢測(cè)忙信號(hào))</p><p>  ??5.3 延時(shí)5ms</p><p>  ??5.4 寫(xiě)指令38H(不檢測(cè)忙信號(hào))</p><p>  ??5.5 延時(shí)5ms</p><p&g

51、t;  ??5.6 寫(xiě)指令38H(不檢測(cè)忙信號(hào))</p><p>  ??5.7(以后每次寫(xiě)指令、讀/寫(xiě)數(shù)據(jù)之前均需檢測(cè)忙信號(hào))</p><p>  ??5.8 寫(xiě)指令38H:顯示模式設(shè)置</p><p>  ??5.9 寫(xiě)指令38H:顯示關(guān)閉</p><p>  ??5.10 寫(xiě)指令01H:顯示清屏</p><p>

52、  ??5.11 寫(xiě)指令06H:顯示光標(biāo)移動(dòng)設(shè)置</p><p>  ??5.12 寫(xiě)指令0CH:顯示開(kāi)關(guān)及光標(biāo)位置</p><p>  HS1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了128個(gè)不同的點(diǎn)陣字符圖形,如表3-7所示。 </p><p>  表3-7 CGROM 中的字符代碼與圖形對(duì)應(yīng)關(guān)系</p><p>  H

53、S1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表3-8所示。它的讀寫(xiě)操作、屏幕和光標(biāo)的操作都是通過(guò)指令編程來(lái)實(shí)現(xiàn)的。</p><p>  表3-8 HS1602液晶模塊內(nèi)部的控制器控制指令</p><p>  HS1602液晶顯示模塊可以和單片機(jī)AT89C51直接接口,電路如圖3-6所示。</p><p>  圖3-6 AT89S52和HS1602液晶模塊連接

54、電路</p><p>  液晶顯示模塊是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時(shí)要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,表3-9是HS1602的內(nèi)部顯示地址。即第1行的顯示地址應(yīng)為80H+顯示位置,第2行的顯示地址應(yīng)為C0H+顯示位置。</p><p>  表3-9 HS1602的內(nèi)部顯示地址</p&g

55、t;<p><b>  3.4存儲(chǔ)模塊</b></p><p>  3.4.1 AT24C08結(jié)構(gòu)</p><p>  本方案利用AT24C08芯片進(jìn)行存儲(chǔ),實(shí)現(xiàn)溫度測(cè)量存儲(chǔ)與再現(xiàn)。AT24C08是ATMEL公司生產(chǎn)的串行EEPROM(8K,1024×8),直接通過(guò)I2C總線的SDA中的器件地址碼變更來(lái)變換讀寫(xiě)功能,當(dāng)從串行時(shí)鐘線SCL輸入正邊

56、緣時(shí)鐘信號(hào)時(shí),數(shù)據(jù)進(jìn)入每一個(gè)EEPROM器件,在負(fù)邊緣時(shí)數(shù)據(jù)從每個(gè)器件中輸出,串行數(shù)據(jù)線SDA雙向輸送時(shí),該腳用漏極開(kāi)路驅(qū)動(dòng),1、2、3腳作器件地址輸入。其外部引腳及引腳功能如圖3-7所示。</p><p>  圖3-7 AT24C08外部引腳及引腳功能</p><p>  AT24C08內(nèi)部主要由EEPROM存儲(chǔ)陣列及其行和列譯碼電路、電源泵/定時(shí)、串行多路調(diào)制器、數(shù)據(jù)寄存器、I2C總

57、線控制邏輯電路組成,如圖3-8所示。電源泵的設(shè)置免除外設(shè)置的寫(xiě)入高壓電源;數(shù)據(jù)寄存器保證了頁(yè)寫(xiě)數(shù)據(jù)的裝載空間;器件地址比較器用于辯識(shí)自己的從地址。</p><p>  圖3-8 AT24C08內(nèi)部結(jié)構(gòu)圖</p><p>  3.4.2 AT24C08工作原理</p><p><b>  從地址選擇</b></p><p&g

58、t;  AT24C08片內(nèi)的存儲(chǔ)空間地址采用了一個(gè)字地址(WORDADR)字節(jié)的尋址,故片內(nèi)尋址范圍為256字節(jié)。</p><p><b>  頁(yè)寫(xiě)功能</b></p><p>  EEPROM寫(xiě)入時(shí),總需要一定的寫(xiě)入時(shí)間(5~15ms),因此,在寫(xiě)入時(shí)無(wú)法連續(xù)寫(xiě)入多個(gè)數(shù)據(jù)字節(jié),在E2PROM器件中設(shè)有一定容量的數(shù)據(jù)寄存器,用戶一次寫(xiě)入EEPROM的數(shù)據(jù)字節(jié)不大于頁(yè)寫(xiě)

59、字節(jié)數(shù)時(shí)可按通常RAM的寫(xiě)入速度裝載至EEPROM中的數(shù)據(jù)寄存器中,隨后啟動(dòng)自動(dòng)寫(xiě)入定時(shí)控制邏輯,經(jīng)過(guò)5~10ms自動(dòng)將數(shù)據(jù)寄存器中的數(shù)據(jù)同步寫(xiě)入EEPROM的指定單元中。AT24C08的頁(yè)寫(xiě)字節(jié)數(shù)為16。</p><p>  頁(yè)地址空間的“翻卷”</p><p>  對(duì)應(yīng)于頁(yè)寫(xiě)字節(jié)數(shù),數(shù)據(jù)寄存器分別有2、3、4位頁(yè)地址,為字地址的低位部分。在寫(xiě)入時(shí),寫(xiě)入數(shù)據(jù)按照字地址(WORDADR)的

60、最低部分,定為在數(shù)據(jù)寄存器的頁(yè)地址空間、數(shù)據(jù)寄存器地址的低位部分,溢出時(shí)不會(huì)向字地址的高位部分進(jìn)位,這就造成寫(xiě)入數(shù)據(jù)在地址的“翻卷”。</p><p>  EEPROM的寫(xiě)周期時(shí)序</p><p>  由于頁(yè)寫(xiě)功能的設(shè)置,I2C總線對(duì)AT24C08的操作只體現(xiàn)在對(duì)其數(shù)據(jù)寄存器的裝載,在數(shù)據(jù)裝載完畢,E2PROM接收到I2C總線發(fā)送的停止位后,自動(dòng)啟動(dòng)一個(gè)內(nèi)部同步的寫(xiě)周期,將數(shù)據(jù)寄存器中的數(shù)

61、據(jù)寫(xiě)入EEPROM陣列中,在這個(gè)內(nèi)部寫(xiě)入周期中所有輸入皆無(wú)效。寫(xiě)周期結(jié)束后AT24C08才允許對(duì)總線響應(yīng)。</p><p>  3.4.3 AT24C08的連接電路</p><p>  AT24CO8連接電路如圖3-9 </p><p>  圖3-9 AT24C08連接電路</p><p>  3.5 串口通信模塊</p

62、><p>  RS-232C標(biāo)準(zhǔn)(協(xié)議)的全稱是EIA-RS-232C標(biāo)準(zhǔn),其中EIA(Electronic Industry Association)代表美國(guó)電子工業(yè)協(xié)會(huì),RS(recommended standard)代表推薦標(biāo)準(zhǔn),232是標(biāo)識(shí)號(hào),C代表RS232的最新一次修改,在這之前,有RS232B、RS232A,它規(guī)定連接電纜和機(jī)械、電氣特性、信號(hào)功能及傳送過(guò)程。RS-232C適合于數(shù)據(jù)傳輸速率在0~200

63、00b/s范圍內(nèi)的通信。</p><p>  PC機(jī)常用DB-9連接器作為提供多功能I/O卡或主板上COM1和COM2兩個(gè)串行接口的連接器,它只提供異步通信的9個(gè)信號(hào),9針串口功能見(jiàn)表3-10,并且對(duì)電纜長(zhǎng)度也有要求: RS-232C標(biāo)準(zhǔn)規(guī)定,若不使用MODEM,在碼元畸變小于4%的情況下,DTE和DCE之間最大傳輸距離為15m(50英尺)。可見(jiàn)這個(gè)最大的距離是在碼元畸變小于4%的前提下給出的,為了保證碼元畸變小

64、于4%的要求,接口標(biāo)準(zhǔn)在電氣特性中規(guī)定,驅(qū)動(dòng)器的負(fù)載電容應(yīng)小于2500pF。 </p><p>  表3-10 9針串口功能一覽表</p><p>  本方案對(duì)RS-232-C接口采用3線制(RXD、TXD、GND)軟握手的零MODEM方式進(jìn)行單片機(jī)和PC之間的數(shù)據(jù)通信,即PC機(jī)和單片機(jī)的發(fā)送數(shù)據(jù)線(TXD)與接收數(shù)據(jù)(RXD)交叉連接,二者的地線(GND)直接相連,其它信號(hào)線如握手信號(hào)

65、線均不用,而采用軟件握手。但由于RS-232-C的邏輯電對(duì)地是對(duì)稱的,與TTL、MOS 邏輯電平完全不同,邏輯0電平規(guī)定為+5~ +15V之間,邏輯1是電平為-5~ -15V之間,因此利用MAX232芯片進(jìn)行電平轉(zhuǎn)換,電路連接如圖3-10。</p><p>  圖3-10 RS-232-C通信連接電路</p><p><b>  3.6 電源模塊</b></p

66、><p>  本方案采用鋰離子手機(jī)充電電池和配套的鋰電池充電器作為電源,手機(jī)用的鋰電池電壓范圍是3.6V到4.2V,限定充電電壓是4.25V,完全滿足各模塊的工作電壓范圍。充電器在作為電源的同時(shí)也可以對(duì)鋰電池進(jìn)行充電,所以系統(tǒng)在離開(kāi)市電時(shí)可正常工作。充電器電路如圖3-11所示。</p><p>  圖3-11 充電電路</p><p><b>  4 軟件設(shè)

67、計(jì)</b></p><p><b>  4.1 主程序流程</b></p><p>  軟件部分包括五個(gè)部分,對(duì)應(yīng)著系統(tǒng)的五種模式,程序流程如圖4-1所示。</p><p><b>  圖4-1程序流程圖</b></p><p>  4.2 DS18B20模塊程序設(shè)計(jì)</p>

68、<p>  4.2.1 程序流程</p><p>  DS18B20模塊程序主要完成DS18B20的初始化和溫度的讀去操作,程序流程如圖4-2所示。</p><p>  圖4-2 DS18B20模塊程序流程圖</p><p>  4.2.2 程序源碼</p><p>  見(jiàn)附錄A DS18B20程序源碼</p>

69、<p>  4.3 HS1602驅(qū)動(dòng)程序設(shè)計(jì)</p><p>  4.3.1 程序流程</p><p>  HS1602液晶驅(qū)動(dòng)主要完成HS1602的初始化以及字符和字符串的顯示,程序流程如圖4-3所示。</p><p>  圖4-3 HS1602液晶驅(qū)動(dòng)程序流程圖</p><p>  4.3.2 程序源碼</p>

70、<p>  見(jiàn)附錄A HS1602程序源碼</p><p>  4.4 AT24C08存儲(chǔ)模塊程序設(shè)計(jì)</p><p>  4.4.1 程序流程</p><p>  程序流程如圖4-4所示。</p><p>  圖4-4 AT24C08存儲(chǔ)模塊程序流程圖</p><p>  4.4.2 程序源碼</p&

71、gt;<p>  見(jiàn)附錄A AT24C08程序源碼</p><p>  4.5 單片機(jī)端通信程序設(shè)計(jì)</p><p>  4.5.1 程序流程</p><p>  AT89S52單片機(jī)串行口是全雙工串行通信口,有4 種工作方式:方式0作移位寄存器使用;方式1是波特率可變的8位UART;方式2是波特率固定為兩種的9位UART;方式3是波特率可變的9位UA

72、RT。在與PC機(jī)通信時(shí)我們選用方式1來(lái)循環(huán)向PC機(jī)發(fā)送數(shù)據(jù),程序流程如圖4-5所示。</p><p>  圖4-5 單片機(jī)串口通信程序流程圖</p><p>  4.5.2 程序源碼</p><p>  見(jiàn)附錄A 單片機(jī)通信模塊源碼</p><p>  4.6 PC端通信程序設(shè)計(jì)</p><p>  4.6.1 程序流

73、程</p><p>  PC機(jī)端串口通信程序主要完成串口的設(shè)置、數(shù)據(jù)的接收和顯示,用Microsoft 的Visual Basic 6.0編寫(xiě),本方案采用Microsoft的ActiveX組件,Microsoft推出的ActiveX技術(shù)提供了另外一種實(shí)現(xiàn)串行通信的方法,這種方法不僅相對(duì)較為簡(jiǎn)單,而且非常實(shí)用。程序流程如圖4-6所示。</p><p>  圖4-6 PC端串口接收程序流程圖

74、</p><p>  4.6.2 程序源碼</p><p>  見(jiàn)附錄A PC通信模塊源碼</p><p><b>  5 測(cè)試及結(jié)果分析</b></p><p>  DS18B20在12位轉(zhuǎn)化時(shí)每一位的精度為0.0625度,我們?nèi)⌒?shù)點(diǎn)后兩位進(jìn)行顯示,即兩位整數(shù)溫度和兩位小數(shù)溫度數(shù)據(jù),這樣已經(jīng)達(dá)到了很高的精度。在測(cè)試過(guò)

75、程中,我們將家庭用的寒暑表和設(shè)計(jì)完成的數(shù)字溫度計(jì)做比較發(fā)現(xiàn),寒暑表反應(yīng)速度比較快,但經(jīng)過(guò)讀數(shù)后的結(jié)果存在較大的誤差,而我們?cè)O(shè)計(jì)完成的數(shù)字溫度計(jì)測(cè)溫然后顯示的反應(yīng)不及寒暑表,但是測(cè)溫的精度遠(yuǎn)比寒暑表高,因?yàn)镈S18B20測(cè)溫精度可達(dá)0.0625度,并且經(jīng)電子器件顯示只存在取舍誤差。</p><p><b>  結(jié) 論</b></p><p>  DS18B20本身就是

76、一種數(shù)字溫度傳感器,它會(huì)把溫度轉(zhuǎn)換成數(shù)字量以后存貯在自身內(nèi)部,由單片機(jī)把DS18B20里面存貯的數(shù)字量讀出來(lái),然后在數(shù)碼管上顯示出來(lái),當(dāng)四位數(shù)碼管顯示的溫度超過(guò)上限值時(shí),DS18B20可以實(shí)現(xiàn)報(bào)警功能;DS18B20與傳統(tǒng)的熱敏電阻相比,它能夠直接讀出被測(cè)量溫度,并且可跟就實(shí)際需要要求通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)9~12位的數(shù)字值讀數(shù)方法??梢苑謩e在93.75ms和750ms內(nèi)完成9位和12位的數(shù)字量,且從DS18B20讀出的信息或?qū)懭隓S18B

77、20的信息只需要一根口線讀寫(xiě);溫度變換功率來(lái)源于數(shù)據(jù)總線,總線本身也可以向所掛接的DS18B20供電。而無(wú)需額外電源,因而使用DS18B20可使系統(tǒng)結(jié)構(gòu)更趨簡(jiǎn)單,可靠性高。</p><p><b>  致 謝</b></p><p>  本課題的研究是在我的導(dǎo)師xx老師的悉心指導(dǎo)下完成的,xx老師學(xué)識(shí)淵博、治學(xué)態(tài)度嚴(yán)謹(jǐn)、工作一絲不茍,更有誨人不倦的師者風(fēng)范,在此謹(jǐn)向

78、xx老師致以誠(chéng)摯的謝意和崇高的敬意!</p><p>  此外,衷心感謝給予我?guī)椭耐瑢W(xué),若是沒(méi)有他們,也就不會(huì)有這篇論文的產(chǎn)生。</p><p>  畢業(yè)在即,衷心感謝指導(dǎo)過(guò)我的各位老師,四年的成長(zhǎng)離不開(kāi)他們的諄諄教誨;感謝湖北工業(yè)大學(xué)工程技術(shù)學(xué)院,大學(xué)生涯是人生中的一筆寶貴財(cái)富;感謝我們08電氣班的xx老師,四年的大學(xué)生活對(duì)我們關(guān)懷備至;感謝相伴度過(guò)四年的舍友、感謝同窗四年的同學(xué)、感謝

79、幫助關(guān)心過(guò)我的學(xué)長(zhǎng),感謝默默關(guān)心我支持我的朋友們,祝大家在今后的生活中幸??鞓?lè)!</p><p>  最后感謝家人,感謝他們多年來(lái)的支持與付出!</p><p><b>  參考文獻(xiàn)</b></p><p>  [1]張洪潤(rùn)等,電子線路與電子技術(shù)[M],北京:清華大學(xué)出版社,2005.</p><p>  [2]王松武等

80、,電子創(chuàng)新設(shè)計(jì)與實(shí)踐[M],北京:國(guó)防工業(yè)出版社,2005.</p><p>  [3]李建忠,單片機(jī)原理及應(yīng)用[M],西安:西安電子科技大學(xué)出版社,2002.</p><p>  [4]黃智偉等,全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽訓(xùn)練教程[M],北京:電子工業(yè)出版社,2004.</p><p>  [5]樊昌信等.通信原理[M].北京:國(guó)防工業(yè)出版社,2001.</p&

81、gt;<p>  [6]何希才,新型集成電路及應(yīng)用實(shí)例[J],北京:科學(xué)出版社,2002.</p><p>  [7]李朝青.單片機(jī)原理及接口技術(shù)[M].杭州:北京航空航天大學(xué)出版社,1998.</p><p>  [8]李廣弟.單片機(jī)基礎(chǔ)[M].北京:北京航空航天大學(xué)出版社,1994.</p><p>  [9]閻石.?dāng)?shù)字電子技術(shù)基礎(chǔ)[M].北京:高

82、等教育出版社,1989.</p><p>  [10]廖常初.現(xiàn)場(chǎng)總線概述[J].電工技術(shù),1999.</p><p>  [11]樓然苗.穎電子模塊應(yīng)用手冊(cè)[J]. 北京:機(jī)械工業(yè)出版社,2005.</p><p>  [12]樓然苗李光飛.單片機(jī)課程設(shè)計(jì)指導(dǎo)[M]. 北京:北京航空航天大學(xué)出版社,2007.</p><p>  [13]賴

83、壽宏.微型計(jì)算機(jī)控制技術(shù)[M]. 北京:機(jī)械工業(yè)出版社.2003.</p><p>  [14]馬忠梅.單片機(jī)的C語(yǔ)言應(yīng)用程序設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,1998.</p><p>  [15]金凱鵬,胡即明.基于模糊PID 算法遠(yuǎn)程溫度控制系統(tǒng)的實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2006.</p><p>  [16]石錦松,賀麗萍,白亮等.基于ARM 的遠(yuǎn)

84、程控制溫控系統(tǒng)的設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2007.</p><p>  [17]求是科技.單片機(jī)典型模塊設(shè)計(jì)實(shí)例導(dǎo)航[M].人民郵電出版社,2004.</p><p>  [18]何力民系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)系統(tǒng)配置與接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,2000.</p><p>  [19]周航慈.單片機(jī)應(yīng)用程序設(shè)計(jì)技術(shù)”(修訂版)[M].北京航空航天

85、大學(xué)出版社.</p><p>  [20]李華等.單片機(jī)實(shí)用接口技術(shù)[M]. 北京:北京航空航天大學(xué)出版社,2002.</p><p><b>  附錄A 程序源碼</b></p><p><b>  函數(shù)變量名</b></p><p>  void lcd_init(void); //液晶模塊

86、初始化</p><p>  void dis_now_T(void); //環(huán)境溫度測(cè)量模式</p><p>  void dis_body_T(void); //體溫模式測(cè)量模式</p><p>  void dis_set_T(void); //溫度上限</p><p>  void dis_set_k(void); //溫度下

87、限</p><p>  void dis_save_data(void); //數(shù)據(jù)保存</p><p>  void Dele_data(void); //數(shù)據(jù)刪除</p><p>  void Datashow(unsigned char ddH , unsigned char ddL); //數(shù)據(jù)顯示</p><p>  void

88、 lcd_write_command(unsigned char command,unsigned char wait_en); </p><p>  void lcd_write_data(unsigned char char_data);</p><p>  void wait_enable(void); //使能程序</p><p>  void d

89、isplay_a_char(unsigned char position,unsigned char char_data);</p><p>  void display_a_string(unsigned char col,unsigned char *ptr);</p><p>  void delay_1ms(void);</p><p>  void del

90、ay02s(void); //延時(shí)</p><p>  void delay10ms(void); //延時(shí)</p><p>  void delay_nms(unsigned int n); //延時(shí)</p><p>  void dis_chang_number(void); </p><p>  void dis_

91、delet_data(void); //刪除數(shù)據(jù)</p><p>  void dis_set_datanum(void); //設(shè)置</p><p>  void dis_data1(void);</p><p>  unsigned char ID=8;</p><p>  unsigned long temperar

92、ue; //全局變量(溫度)</p><p>  unsigned long T=300000; //用于設(shè)定上限溫度的變量</p><p>  unsigned long K=100000; //用于設(shè)定下限溫度的變量</p><p>  unsigned long dd=1;</p><p>  

93、void ReadSumNum(void); //讀24C08中</p><p>  void Read_data(void); //讀數(shù)據(jù)函數(shù)</p><p>  unsigned char str1[]=" "; //用于液晶顯示的字符串變量</p><p>  unsign

94、ed char str2[]=" "; //用于液晶顯示的字符串變量</p><p>  unsigned char temp;</p><p>  unsigned char temp1;</p><p>  unsigned char Led0,Led1,Led2,LedDot; //全局變量<

95、;/p><p>  bit bitReadChange = 0; //標(biāo)志位</p><p>  bit bitChange = 1; //標(biāo)志位</p><p>  bit bitReadFirst = 1; //標(biāo)志位</p><p>  u

96、nsigned char DataH1; //數(shù)據(jù)高8位的變量</p><p>  unsigned char DataL1; //數(shù)據(jù)低8位的變量</p><p>  unsigned char Point; //全局變量,用于指向顯示保存的數(shù)據(jù)</p><p>  u

97、nsigned char Point1; //臨時(shí)變量,用于替換Point </p><p>  unsigned long DataBuf;</p><p>  void sent_data(unsigned char Dat); //發(fā)送數(shù)據(jù) </p><p>  void Rs232_int(void

98、); //232初始化</p><p>  void dis_start(void);</p><p>  DS18D20程序代碼</p><p>  uchar DataH;</p><p>  uchar DataL;</p><p>  unsigned long Data;

99、</p><p>  void Delay (uchar us)</p><p><b>  {</b></p><p>  while (--us);</p><p><b>  }</b></p><p>  bit init_18b20()//1820初始化</

100、p><p><b>  {</b></p><p>  uchar n=0;</p><p>  bit flag=0;</p><p><b>  DQ=1;</b></p><p><b>  _nop_();</b></p><p&

101、gt;<b>  DQ=0;</b></p><p>  Delay(255);</p><p>  Delay(20); //550us</p><p><b>  DQ=1;</b></p><p>  Delay(55);</p><p>  if(DQ==0) f

102、lag=1; //detect 1820 success!</p><p>  else flag=0; //detect 1820 fail!</p><p>  Delay(100);</p><p><b>  DQ=1;</b></p><p>  return f

103、lag;</p><p><b>  }</b></p><p>  void write1820_byte (uchar wr) //單字節(jié)寫(xiě)入</p><p><b>  {</b></p><p><b>  uchar i;</b></p>

104、<p>  for (i=0;i<8;i++)</p><p><b>  {</b></p><p><b>  DQ=0;</b></p><p><b>  _nop_();</b></p><p>  DQ=wr&0x01;</p>

105、<p>  Delay(20);//45us</p><p><b>  DQ=1;</b></p><p><b>  wr>>=1;</b></p><p><b>  } </b></p><p><b>  }</b>&l

106、t;/p><p>  uchar read1820_byte (void) //讀取單字節(jié)</p><p><b>  {</b></p><p>  uchar i,u=0;</p><p>  for(i=0;i<8;i++)</p><p><b>  {&l

107、t;/b></p><p><b>  DQ=0;</b></p><p><b>  u>>=1;</b></p><p><b>  DQ=1;</b></p><p><b>  if(DQ==1)</b></p>&

108、lt;p>  u|=0x80; </p><p>  Delay(18);//40us</p><p><b>  }</b></p><p>  return(u); </p><p><b>  }</b></p><p>  //對(duì)從DS18

109、B20讀出的溫度值(ddh,ddl)進(jìn)行處理,送顯示緩沖區(qū)</p><p>  void DataCoding(unsigned char ddH , unsigned char ddL)</p><p><b>  {</b></p><p>  Data = ddH * 256 + ddL;</p><p>  Da

110、ta = Data * 625;</p><p><b>  }</b></p><p>  void Get_temperarue(void)</p><p><b>  {</b></p><p>  if (init_18b20 ())</p><p><b>

111、;  {</b></p><p>  write1820_byte (0xcc); //skip rom</p><p>  write1820_byte (0x44); //temp convert</p><p><b>  }</b></p><p>  Delay(35);<

112、/p><p>  if (init_18b20 ())</p><p>  { </p><p>  write1820_byte (0xcc); //skip rom</p><p>  write1820_byte (0xbe); //read temp</p><p&g

113、t;  DataL = read1820_byte();</p><p>  DataH = (read1820_byte()&0x0f);</p><p>  DataCoding( DataH, DataL );</p><p><b>  }</b></p><p><b>  }</

114、b></p><p>  HS1602程序源碼</p><p><b>  //液晶初始化</b></p><p>  void lcd_init(void)</p><p><b>  {</b></p><p>  delay_nms(15);</p>

115、<p>  lcd_write_command(0x38,0);//顯示模式設(shè)置三次(此時(shí)不管lcd空閑與否)</p><p>  delay_nms(5);</p><p>  lcd_write_command(0x38,0);</p><p>  delay_nms(5);</p><p>  lcd_write_comma

116、nd(0x38,0);</p><p>  delay_nms(5);</p><p>  lcd_write_command(0x38,1);//顯示模式設(shè)置(從此之后均需lcd空閑)</p><p>  lcd_write_command(0x08,1);//顯示關(guān)閉</p><p>  lcd_write_command(0x01,1)

117、;//顯示清屏</p><p>  lcd_write_command(0x06,1);//顯示光標(biāo)移動(dòng)設(shè)置</p><p>  lcd_write_command(0x0c,1);//顯示開(kāi)及光標(biāo)設(shè)置</p><p><b>  }</b></p><p>  //寫(xiě)指令函數(shù): E=高脈沖 RS=0 RW=0</

118、p><p>  // command為指令,wait_en指定是否要檢測(cè)LCD忙信號(hào)</p><p>  void lcd_write_command(unsigned char command,unsigned char wait_en) </p><p><b>  {</b></p><p>  uchar xdata

119、 *dig;</p><p>  if(wait_en)wait_enable(); //若wait_en為1,則要檢測(cè)LCD忙信號(hào),等待其空閑</p><p>  dig=&DIGPORT;</p><p>  *dig=command;</p><p><b>  }</b></p><

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論