畢業(yè)設(shè)計(論文)基于AT89C51的智能溫度預警系統(tǒng)的設(shè)計_第1頁
畢業(yè)設(shè)計(論文)基于AT89C51的智能溫度預警系統(tǒng)的設(shè)計_第2頁
畢業(yè)設(shè)計(論文)基于AT89C51的智能溫度預警系統(tǒng)的設(shè)計_第3頁
畢業(yè)設(shè)計(論文)基于AT89C51的智能溫度預警系統(tǒng)的設(shè)計_第4頁
畢業(yè)設(shè)計(論文)基于AT89C51的智能溫度預警系統(tǒng)的設(shè)計_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、畢業(yè)設(shè)計(論文) 課 題 名 稱 基于 at89c51 的智能溫度 預警系統(tǒng)的設(shè)計 學 生 姓 名 學 號 系、年級專業(yè) 信息工程系 07 級通信工程 指 導 教 師 職 稱 講 師 2011 年 5 月 25 日 i 摘 要 本設(shè)計系統(tǒng)地介紹了基于at89c51 的智能溫度預警系統(tǒng)的組成、設(shè)計方案、 電路原理、程序設(shè)計以及系統(tǒng)仿真過程。ds18b20多點溫度測量系統(tǒng)是以 at89c51單片機作為控制核心,數(shù)字溫度傳感ds18b20為控制對象,運用c語 言編程實現(xiàn)系統(tǒng)的各種功能。該系統(tǒng)由單片機最小系統(tǒng)、傳感器電路、報警電路、 lcd顯示電路、行列式鍵盤電路、電源電路六大部分組成。借助prote

2、us軟件, 實現(xiàn)了系統(tǒng)電路設(shè)計和仿真。它適用于電力工業(yè)、煤礦、森林、火災(zāi)、高層建筑等 場所,還可以用于環(huán)境惡劣的工業(yè)控制現(xiàn)場。通過ds18b20的單總線技術(shù),系統(tǒng) 實現(xiàn)了對遠程環(huán)境的溫度測量與監(jiān)控。 關(guān)鍵詞:ds18b20;仿真;測量系統(tǒng);proteus;單片機 ii abstract the design systematically introduced the composition, the design, the circuit theory, the program design and the system simulation process of the multipoint

3、 temperature measurement system which based on the at89c51.the at89c51 intelligence temperature measurement system, the at89c51 mcu as its control core, digital temperature sensing ds18b20 as its control target, use the c-language programming system to realize the functions. the system composed of s

4、ix major components, which are the smallest mcu system, the sensor circuit, the alarm circuits, the lcd display circuit, the keyboard, the power circuit. the system realizes the circuit design and simulation with proteus software. it applies to the power industry, coal, forest, fire, high-rise build

5、ings and other places, it can also applies to industrial control field with the bad environment. through the monobus technology of the ds18b20, the system achieves the measurement and monitoring of the long-range environmental temperature. key words: ds18b20;simulation;measurement system;proteus;mcu

6、 目 錄 摘 要.i abstract .ii 第 1 章 緒 論.1 1.1 課題來源.1 1.2 課題研究的目的意義.1 1.3 國內(nèi)外現(xiàn)狀及水平.1 1.4 課題研究內(nèi)容.2 第 2 章 統(tǒng)方案設(shè)計.3 2.1 基于模擬溫度傳感器的設(shè)計方案.3 2.2 基于數(shù)字溫度傳感器的設(shè)計方案.4 2.3 方案論證.4 第 3 章 電路設(shè)計.6 3.1 工作原理.6 3.2 ds18b20 與單片機接口技術(shù).7 3.3 鍵盤電路設(shè)計.13 3.4 顯示電路設(shè)計.14 3.5 報警電路設(shè)計.15 3.6 電源電路設(shè)計.16 第 4 章 程序設(shè)計.18 4.1 系統(tǒng)資源分配.18 4.2 系統(tǒng)流程設(shè)計.

7、18 4.3 程序設(shè)計.24 第 5 章 系統(tǒng)仿真.34 5.1 proteus 仿真環(huán)境介紹 .34 5.2 原理圖繪制.35 5.3 程序加載.35 5.4 系統(tǒng)仿真.36 5.5 仿真結(jié)果分析.39 第 6 章 pcb 板設(shè)計 .40 6.1 pcb 板設(shè)計.40 6.2 pcb 板制作方法.42 總 結(jié).45 參考文獻.46 附 錄.47 致 謝.52 邵陽學院畢業(yè)設(shè)計(論文) 1 第 1 章 緒 論 1.1 課題來源 溫度是國際單位制七個基本量之一,與人類的生活環(huán)境息息相關(guān)。它是一種在 生產(chǎn)、科研、生活中需要測量和控制的重要物理量,同時也是一種最基本的環(huán)境參 數(shù)。在實驗研究和工業(yè)生產(chǎn)

8、中,在機械、電力、化工、生物、冶金、農(nóng)業(yè)、實驗等 行業(yè)和人們的家居生活里經(jīng)常需要對環(huán)境溫度進行檢測和控制。例如,汽車發(fā)動機 氣缸的溫度必須保持在一定的范圍內(nèi);在合適溫度微生物的新陳代謝才能正常進行。 許多化學反應(yīng)在不同的溫度下會生成不同的反應(yīng)物;溫度過高,糧倉的糧食就會霉 爛變質(zhì),電子設(shè)備的工作效率會降,低使用壽命會縮短,飯菜會變餿。由此可見, 研究溫度測量工具有著極其重要的實用價值。 隨著現(xiàn)代嵌入式技術(shù)和傳感器技術(shù)的發(fā)展,作為各種信息的采集、處理、傳輸 的功能器件,溫度傳感器的作用日益突出,成為自動檢測、自動控制系統(tǒng)和計量測 試中不可缺少的重要技術(shù)工具,其應(yīng)用已遍及工農(nóng)業(yè)生產(chǎn)和日常生活的各個

9、領(lǐng)域。 本課題結(jié)合現(xiàn)在嵌入式技術(shù)和傳感技術(shù)設(shè)計的智能溫度預警系統(tǒng)就是滿足生產(chǎn)生活 中人們對溫度測量的需求。 1.2 課題研究的目的意義 隨著科學技術(shù)的高速發(fā)展,科技的進步帶動了傳感技術(shù)的發(fā)展,自動控制設(shè)備 的性能和性價比發(fā)生了巨大的變化,新世紀是嵌入式技術(shù)迅猛發(fā)展的時代,傳感技 術(shù)也成為當今科技的主流之一,被廣泛地應(yīng)用于生產(chǎn)和生活中。基于 at89c51 的智 能溫度預警系統(tǒng)的設(shè)計,其目的在于: (1) 掌握數(shù)字溫度傳感器 at89c51 單片機的工作原理、和使用方法,利用 c 語言編寫單片機程序。 (2) 掌握數(shù)字溫度傳感器 ds18b20 的工作原理、和使用方法,利用 c51 對 系統(tǒng)進行

10、編程。 (3) 本課題綜合了現(xiàn)代嵌入式技術(shù)和傳感器技術(shù)專業(yè)領(lǐng)域方面的知識,可全 面提高學生的理論水平和動手能力。 1.3 國內(nèi)外現(xiàn)狀及水平 傳感器屬于信息技術(shù)的前沿尖端產(chǎn)品,尤其是溫度傳感器被廣泛用于工農(nóng)業(yè)生 產(chǎn)、科學研究和生活等領(lǐng)域,數(shù)量高居各種傳感器之首。溫度傳感器的發(fā)展大致經(jīng) 邵陽學院畢業(yè)設(shè)計(論文) 2 歷了以下三個階段:傳統(tǒng)的分立式溫度傳感器(含敏感元件);模擬集成溫度傳感器; 數(shù)字溫度傳感器。目前,溫度傳感器正朝著高精度、多功能、總線標準化、高可靠 性及安全性、開發(fā)虛擬傳感器和網(wǎng)絡(luò)傳感器、研制單片測溫系統(tǒng)等高科技的方向迅 速發(fā)展,同時具有抑制串模干擾能力強、分辨力高、線性度好、成本

11、低等優(yōu)點。隨 著我國四個現(xiàn)代化和經(jīng)濟發(fā)展,我國在科技和生產(chǎn)各領(lǐng)域都取得了飛速的發(fā)展和進 步,發(fā)展以溫度傳感器為載體的溫度測量技術(shù)具有重大意義。 1.4 課題研究內(nèi)容 本設(shè)計研究的主要內(nèi)容如下: (1)本設(shè)計以 at89c51 單片機為控制系統(tǒng),來實現(xiàn)對溫度的監(jiān)測、處理等功 能。在廣泛查閱溫度檢測控制理論和方法、測溫技術(shù)和溫度控制技術(shù)等資料的基礎(chǔ) 上,根據(jù)不同的控制要求及應(yīng)用領(lǐng)域完成對系統(tǒng)方案的總體設(shè)計。 (2) 在比較各元器件的特點和功能后,選擇合適的元器件。 (3) 設(shè)計硬件系統(tǒng)。設(shè)計主要包括:溫度傳感器采集溫度數(shù)據(jù)、單片機處理 溫度數(shù)據(jù)、lcd 顯示溫度、鍵盤設(shè)置參數(shù)、報警電路等模塊。 (

12、4) 設(shè)計軟件系統(tǒng)。本以 c 語言為設(shè)計語言,用 source insight 軟件編輯代碼, 采用 keil 軟件編譯程序。 本設(shè)計的重點分為軟件和硬件兩個方面。其中硬件開發(fā)的難點在于各種元器件 的選擇和使用。軟件開發(fā)的難點在于溫度傳感器的時序。 邵陽學院畢業(yè)設(shè)計(論文) 3 第 2 章 統(tǒng)方案設(shè)計 2.1 基于模擬溫度傳感器的設(shè)計方案 該方案由 ad590 模擬溫度傳感器、運算放大器、ad 轉(zhuǎn)換器、51 單片機、鍵盤、 液晶顯示屏、集成功率放大器、報警器組成,如圖 2.1 所示。 本方案采用 ad590 模擬溫度傳感器檢測溫度,傳感器將測量的溫度變換轉(zhuǎn)換成 變化的電流,再通過模擬電路將電流

13、的變化轉(zhuǎn)換成電壓的變化,使用運算放大器將 信號進行適當?shù)姆糯?,最后通過 ad 轉(zhuǎn)換器將模擬信號轉(zhuǎn)換成數(shù)字信號,傳送給 at89c51。at89c51 將溫度值進行處理之后用液晶顯示屏顯示 ,有報警信號時, 信號通過集成功放放大,傳給報警器。 圖 2.1 基于模擬溫度傳感器的設(shè)計方案 本方案使用的測溫元件的性能指標如下: (1)模擬溫度傳感器的測溫范圍為55+150。 (2)模擬溫度傳感器的電源電壓范圍為 4v30v,電源電壓可在 4v6v 范圍 變化,電流 變化 1ma,相當于溫度變化 1k。模擬溫度傳感器可以承受 44v 正向電 壓和 20v 反向電壓,因而器件反接也不會被損壞。 單 片 機

14、 ad590 ad590 lcd顯示電路 集 成 功 放 報 警 器 44鍵盤 ad590 ad590 運 算 放 大 器 多 路 選 擇 器 a/d 轉(zhuǎn) 換 邵陽學院畢業(yè)設(shè)計(論文) 4 (3) 輸出電阻為 710mw。 (4) 精度高,模擬溫度傳感器共有 i、j、k、l、m 五檔,其中 m 檔精度最 高,在55+150范圍內(nèi),非線性誤差為0.3。 集成溫度傳感器具有線性好、精度適中、靈敏度高、體積小、使用方便、溫度 測量范圍廣等優(yōu)點,得到廣泛應(yīng)用。集成溫度傳感器的輸出形式分為電壓輸出和電 流輸出兩種。電壓輸出型的靈敏度一般為 10mv/k,溫度 0時輸出為 0,溫度 25 時輸出 2.98

15、2v。電流輸出型的靈敏度一般為 1ma/k。 2.2 基于數(shù)字溫度傳感器的設(shè)計方案 該方案以數(shù)字溫度傳感器 ds18b20 為溫度測量元件,使用 at89c51 單片機作 為控制核心,使用 4 個 ds18b20 進行溫度檢測,通過 44 鍵盤設(shè)置正常溫度的最 大值,采用 12864 液晶顯示電路,使用 lm386 作為功率放大器報警電路中的喇 叭。 圖 2.2 基于數(shù)字溫度傳感器的設(shè)計方案 本課題采用 ds18b20 數(shù)字溫度傳感器作為測為測溫元件,它具有如下特點: (1) 測量溫度范圍在55c 到125c 之間。 (2) 每個 ds18b2 都有唯一的 id。 (3) 912 位分辨率可調(diào)

16、。 (4) 只要一個端口即可通信。 (5) 實際應(yīng)用中不需要外部接任何元器件即可實現(xiàn)測溫。 (6) 內(nèi)部有溫度上、下限告警設(shè)置。 單 片 機 ds18b20 ds18b20 lcd 顯示電路 集 成 功 放 報 警 器 44鍵盤 ds18b20 ds18b20 邵陽學院畢業(yè)設(shè)計(論文) 5 2.3 方案論證 本設(shè)計要求測溫范圍為-20+80,精度為 0.5,測量的點數(shù)為 4。采用 lcd 顯示,顯示數(shù)據(jù)每秒刷新 1 次。 綜合分析數(shù)字溫度傳感器和模擬溫度傳感器的性能指標,以上兩個方案都能實 現(xiàn)設(shè)計的需求。 方案一采用了 ds18b20 數(shù)字溫度傳感器。它能在現(xiàn)場采集溫度數(shù)據(jù),直接將溫 度物理量

17、轉(zhuǎn)換為數(shù)字信號并以總線方式傳送到單片機,再由單片機進行數(shù)據(jù)處理, 并且可根據(jù)實際要求通過簡單的編程實現(xiàn) 9-12 位的數(shù)字式讀取方式,因而使用數(shù)字 溫度傳感器可使系統(tǒng)結(jié)構(gòu)更加簡單,可靠性更高,大大提高系統(tǒng)的抗干擾能力。數(shù) 字溫度傳感器體積小、經(jīng)濟、使用方便靈活、測試精度高、較高的性能價格比,有 crc 校驗,系統(tǒng)簡明直觀,適合于惡劣環(huán)境的現(xiàn)場溫度測量,如: 測溫類消費電子 產(chǎn)品、環(huán)境控制設(shè)備或過程控制等。 方案二采用 ad590 模擬溫度傳感器,轉(zhuǎn)換結(jié)果需要經(jīng)過 ad 轉(zhuǎn)換器和運算放大 器。它雖然成本低,控制簡單,但是后續(xù)電路復雜,而且需要進行溫度標定。 ad590 集成溫度傳感器輸出為電流,

18、且輸出信號較弱,所以需要后續(xù)放大及 a/d 轉(zhuǎn) 換電路。如采用普通運放則精度難以保證,而測量放大器價格較高,這樣會使系統(tǒng) 成本升高。 方案一程序設(shè)計稍微復雜一些,使用有大量的資料可以查詢,該方案完全可行, 經(jīng)濟上也有很大的優(yōu)勢,同時體現(xiàn)了技術(shù)的先進性。 綜上所述,本設(shè)計采用方案一進行系統(tǒng)設(shè)計。 邵陽學院畢業(yè)設(shè)計(論文) 6 第 3 章 電路設(shè)計 3.1 工作原理 基于 at89c51 的智能溫度預警系統(tǒng)以 at89c51 為控制芯片,以 keil 軟件為系 統(tǒng)開發(fā)平臺,用 c51 進行程序設(shè)計,以 proteus 作為仿真軟件。系統(tǒng)主要由傳感 器電路、單片機最小系統(tǒng)、鍵盤電路、液晶顯示電路、報

19、警電路、電源電路組成, 系統(tǒng)原理圖如圖 3.1 所示。 圖 3.1 系統(tǒng)原理圖 ds18b20 數(shù)字溫度傳感器,每個 ds18b20 有自己的序列號,因此本系統(tǒng)可以 在一根總線上掛接了 4 個 ds18b20,通過 crc 校驗,對各個 ds18b20 的 rom 進 行尋址,地址符合的 ds18b20 數(shù)字溫度傳感器才作出響應(yīng),接收主機的命令,向主 機發(fā)送轉(zhuǎn)換的溫度。采用這種尋址技術(shù),單片機使用一個 io 口即能實現(xiàn)對四點環(huán)境 的溫度數(shù)據(jù)進行采集,使系統(tǒng)硬件電路更加簡單,系統(tǒng)更加穩(wěn)定。它的輸入/輸出采用 數(shù)字量,以單總線技術(shù),接收主機發(fā)送的命令,根據(jù) ds18b20 內(nèi)部的協(xié)議進行相應(yīng) 的處

20、理,將轉(zhuǎn)換的溫度以串口發(fā)送給主機。主機按照通信協(xié)議用一個 io 口(p1.7)模 擬 ds18b20 的時序,發(fā)送命令(初始化命令、rom 命令、ram 命令)給 s1s5s9s13 s2s6s10s14 s3s7s11s15 s4s8s12s16 1 25 9 3 u2 74ls21 y 1 12m c2 30pf c3 30pf c1 10uf r2 10k +5v vss 1 vdd 2 vo 3 rs 4 r/w 5 e 6 ret 17 vee 18 leda 19 ledk 20 db0 7 db1 8 db2 9 db3 10 db4 11 db5 12 db6 13 db7 1

21、4 cs1 15 cs2 16 j1 lcm_128_64 1 2 3 4 5 6 7 8 9 rp11k r1 10k r4 10k r3 10k +5v c4 10uf +5v +5v 2 3 5 1 8 64 u1 lm386 c5 100n c6 47n ls1 8 gnd r5 10k +5 p3.4 p3.4 cs1 cs2 e rw rs rw e cs1 cs2 rs p3.2 p3.2 l0 l1 l2 l3 h0 h1 h2 h3 h0 h1 h2 h3 l0 l1 l2 l3 p2 10k r6 10 c8 220u p1 10k c7 10u vcc 1 gnd 3 d

22、q 2 u3 ds18b20 vcc 1 gnd 3 dq 2 u4 ds18b20 vcc 1 gnd 3 dq 2 u5 ds18b20 vcc 1 gnd 3 dq 2 u6 ds18b20 r7 res2 +5v p1.0 1 p1.1 2 p1.2 3 p1.3 4 p1.4 5 p1.5 6 p1.6 7 p1.7 8 rst/vpd 9 p3.0/rxd 10 p3.1/txd 11 p3.2/into 12 p3.3/int1 13 p3.4/to 14 p3.5/t1 15 p3.6/wr 16 p3.7/rd 17 xtal2 18 xtal1 19 vss 20 p2.0

23、 21 p2.1 22 p2.2 23 p2.3 24 p2.4 25 p2.5 26 p2.6 27 p2.7 28 rsen 29 ale/prog 30 vpp/ea 31 p0.7 32 p0.6 33 p0.5 34 p0.4 35 p0.3 36 p0.2 37 p0.1 38 p0.0 39 vdd 40 ic? at89c51 h0 h1 h2 h3 邵陽學院畢業(yè)設(shè)計(論文) 7 ds18b20,轉(zhuǎn)換完成之后單片機讀取溫度值,在內(nèi)部進行相應(yīng)的數(shù)值處理,用 12864lcd 顯示各點的溫度。在系統(tǒng)啟動的時候,可以通過 44 鍵盤設(shè)置各點溫 度的上限值,當某點的實際溫度超過設(shè)置值時

24、,報警器開始報警,液晶顯示該傳感 器的路數(shù)、設(shè)置溫度值、實際溫度值以及路數(shù)和該路的狀態(tài),從面實現(xiàn)了對各點溫 度的測量和實時監(jiān)控。 3.2 ds18b20 與單片機接口技術(shù) 3.2.1 ds18b20 的引腳功能 ds18b20 的引腳功能描述見表 3.1。 表 3.1ds18b20 引腳功能描述 序號名稱引腳功能描述 1gnd地信號 2dq數(shù)字輸入輸出引腳,開漏單總線接口引腳,當使用寄生電源時, 可向電源提供電源 3vdd可選擇的 vdd 引腳,當工作于寄生電源時,該引腳必須接地 3.2.2 ds18b20 與單片機接口電路 如圖 3.2 所示,為單片機和 ds18b20 的接口電路。ds18

25、b20 只有三個引腳,一 個接地,一個接電源,一個數(shù)字輸入輸出引腳接單片機的 p1.7 口,電源與數(shù)字輸入 輸出腳間需要接一個 4.7k 的電阻。 圖 3.2 ds18b20 與單片機接口電路 3.2.3 溫度寄存器格式和溫度/數(shù)據(jù)對應(yīng)關(guān)系 ds18b20 溫度寄存器如表 3.2 所示。寄存器有 16 位,高 5 位為符號位,低 13 位為 ds18b20 單 片 機 p1.7 vdd gnd dq 4.7k 邵陽學院畢業(yè)設(shè)計(論文) 8 數(shù)據(jù)位。當寄存器高 5 位為 1 時,表示溫度為負,否則為正。 表 3.2 溫度寄存器格式 bit7 bit6 bit5 bit4 bit3 bit2 bi

26、t1 bit0 ls byte b bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 ms byte 如果測得的溫度大于 0,只要將測到的數(shù)值乘于 0.0625 即可得到實際溫度;如 果溫度小于 0,測得的數(shù)值需要取反加 1 再乘 0.0625,即可得到實際的溫度值。如 表 3.3 所示,是 ds18b20 的溫度與數(shù)據(jù)的對應(yīng)關(guān)系。 表 3.3 溫度/數(shù)據(jù)的關(guān)系 3.2.4 單片機對 ds18b20 的控制方法 ds18b20 采用嚴格的單總線通信協(xié)議,以保證數(shù)據(jù)的完整性。該協(xié)議定義了 幾種信號類型:復位脈沖、應(yīng)答脈沖、寫 0、寫 1、讀 0 和讀 1

27、。除了應(yīng)答脈沖 所有 這些信號都由主機發(fā)出同步信號??偩€上傳輸?shù)乃袛?shù)據(jù)和命令都是以字節(jié)為 單位,且低位在前,高位在后。 (1) 初始化序列:復位脈沖和應(yīng)答脈沖 232221202-12-22-32-4 sssss262524 溫度輸出(2 進制)輸出(16 進制) +1250000 0111 1101 000007d0h +850000 0101 0101 00000550h +20.06250000 0001 1001 00010191h +10.1250000 0000 1010 001000a2h +0.50000 0000 0000 10000008h 00000 0000 0000

28、 00000000h -0.51111 1111 1111 1000fff8h -10.1251111 1111 0101 1110ff5eh 25.06251110 1110 0110 1111ee6fh -551111 1110 1001 0000fe90h 邵陽學院畢業(yè)設(shè)計(論文) 9 在初始化過程中,主機通過拉低單總線至少 480s,以產(chǎn)生復位脈沖(tx)。然 后主機釋放總線并進入接收(rx)模式。當總線被釋放后,5k 的上拉電阻將單總線 拉高。ds18b20 檢測到這個上升沿后,延時 15s60s,通過拉低總線 60s240s 產(chǎn)生應(yīng)答脈沖。初始化脈沖如圖 3.3 所示。 圖 3.3

29、 ds18b20 初始化時序 ds18b20 的初始化應(yīng)答 c 語言程序如下所示: bit resetpulse(void) dq=0; delay600us(); dq=1; delay60us(); return(dq); ds18b20 的初始化 c 語言程序如下所示: void ds18b20_init(void) while(1) if(!resetpulse() /收到 ds18b20 的應(yīng)答信號 dq=1; delay600us();/延時 240us break; else 至少480us至少480us 主機初始化 主機初應(yīng)答 presence pulse 60-240us 邵

30、陽學院畢業(yè)設(shè)計(論文) 10 resetpulse(); /否則再發(fā)復位信號 (2) ds18b20 的讀寫控制 在寫時序期間,主機向 ds18b20 寫入數(shù)據(jù);而在讀時序期間,主機讀入來自 ds18b20 的數(shù)據(jù)。在每一個時序,總線只能傳輸一位數(shù)據(jù)。讀/寫時序如圖 3.4 所示。 ds18b20 寫時序 ds18b20 存在兩種寫時序:“寫 1”和“寫 0” 。主機在寫 1 時序時向 ds18b20 圖 3.4 ds18b20 讀寫時序 寫入邏輯 1,而在寫 0 時序向 ds18b20 寫入邏輯 0。所有寫時序至少需要 60s,且 在兩次寫時序之間至少需要 1s 的恢復時間。兩種寫時序均以主

31、機拉低總線開始。 寫 1 時序:主機拉低總線后,必須在 15s 內(nèi)釋放總線,然后由上拉電阻將總線 拉至高電平。 寫0時序:主機拉低總線后,必須在整個時序期間保持低電平(至少60s) 。 在寫時序開始后的 15s60s 期間,ds18b20 采樣總線的狀態(tài)。如果總線為高 電平,則邏輯 1 被寫入 ds18b20;如果總線為低電平,則邏輯 0 被寫入 ds18b20。 時序 ds18b20 只能在主機發(fā)出讀時序時才能向主機傳送數(shù)據(jù)。所以主機在發(fā)出讀數(shù) 主機寫”0”時序 主機寫”1時序 主機讀”0”時序 主機讀”1時序 30us15us15us15us15us30us 30us15us15us15u

32、s15us30us 邵陽學院畢業(yè)設(shè)計(論文) 11 據(jù)命令后,必須馬上產(chǎn)生讀時序,以便 ds18b20 能夠傳送數(shù)據(jù)。所有讀時序至少 60s,且在兩次獨立的讀時序之間至少需要 1s 的恢復時間。 每次讀時序由主機發(fā)起,拉低總線至少 1s。在主機發(fā)起讀時序之后, ds18b20 開始在總線上傳送 1 或 0。若 ds18b20 發(fā)送 1,則保持總線為高電平;若 發(fā)送 0,則拉低總線。當傳送 0 時,ds18b20 在該時序結(jié)束時釋放總線,再由上拉 電阻將總線拉回空閑高電平狀態(tài)。ds18b20 發(fā)出的數(shù)據(jù)在讀時序下降沿起始后的 15s 內(nèi)有效,因此主機必須在讀時序開始后的 15s 內(nèi)釋放總線,并且

33、采樣總線狀 態(tài)。 ds18b20 寫命令子程序如下: void ds18b20_writecommand(uchar command) uchar i; for(i=0;i8;i+) if(command delay60us(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); dq=1; _nop_(); _nop_(); else dq=0; 邵陽學院畢業(yè)設(shè)計(論文) 12 _nop_(); _nop_(); dq=1; delay60us(); _nop_(); _nop_(); _nop_(); _nop_(); comman

34、d=_cror_(command,1); ds18b20 讀溫度子程序如下: uchar ds18b20_readdata(void) uchar readdata; uchar i; for(i=0;i8;i+) dq=0; _nop_(); _nop_(); _nop_(); dq=1; if(dq=0) readdata=readdata delay60us(); else 邵陽學院畢業(yè)設(shè)計(論文) 13 readdata=readdata|0 x80; delay60us(); if(i7) readdata=_cror_(readdata,1); return readdata; d

35、s18b20 的命令序列 根據(jù) ds18b20 的通訊協(xié)議,主機(單片機)控制 ds18b20 完成溫度轉(zhuǎn)換必須 經(jīng)過三個步驟:每一次讀寫之前都要對 ds18b20 進行復位操作,復位成功后發(fā)送一 條 rom 指令,最后發(fā)送 ram 指令,這樣才能對 ds18b20 進行預定的操作。 rom 命令通過每個器件 64-bit 的 rom 碼,使主機指定某一特定器件(如果有 多個器件掛在總線上)與之進行通信。ds18b20 的 rom 如表 3.4 所示,每個 rom 命令都是 8 bit 長。 表 3.4 ds18b20 rom 命令 指令協(xié)議功能 讀 rom33h讀 ds18b20 中的編碼(

36、即 64 位地址) 符合 rom55h 發(fā)出此命令后,接著發(fā)出 64 位 rom 編碼,訪問單總線上與該編 碼相對應(yīng)的 ds18b20,使之作出響應(yīng),為下一步對該 ds18b20 的讀 寫作準備 搜索 rom0f0h用于確定掛接在同一總線上 ds18b20 的個數(shù)和識別 64 位 rom 地 址,為操作各器件作好準備 跳過 rom0cch忽略 64 位 rom 地址,直接向 ds18b20 溫度轉(zhuǎn)換命令,適用于 單個 ds18b20 工作 告警搜索命令0ech執(zhí)行后,只有溫度超過報警值上限或下限的 ds18b20 才做出響應(yīng) 溫度轉(zhuǎn)換44h啟動 ds18b20 進行溫度轉(zhuǎn)換,轉(zhuǎn)換時間最長為 5

37、00ms(典型為 200ms),結(jié)果豐入內(nèi)部 9 字節(jié) ram 中 讀暫存器beh讀內(nèi)部 ram 中 9 字節(jié)的內(nèi)容 寫暫存器4eh發(fā)出向內(nèi)部 ram 的第 3、4 字節(jié)寫上、下溫度數(shù)據(jù)命令,緊該溫 度命令之后,傳達兩字節(jié)的數(shù)據(jù) 復制暫存器48h將 ram 中第 3、4 字內(nèi)容復制到 e2prom 中 重調(diào) e2prom 0b8h將 e2prom 中內(nèi)容恢復到 ram 中的第 3、4 字節(jié) 讀供電方式0b4h讀 ds18b20 的供電模式,寄生供電時 ds18b20 發(fā)送“0” ,外部供 電時 ds18b20 發(fā)送“1” 邵陽學院畢業(yè)設(shè)計(論文) 14 3.3 鍵盤電路設(shè)計 3.3.1 行列式

38、鍵盤與單片機接口電路 根據(jù)本設(shè)計需要,本系統(tǒng)采用了 44 鍵盤實現(xiàn)對溫度值和功能鍵的設(shè)定。 行列式鍵盤與單片機的接口電路如圖 3.5 所示,h0-h3 為行線,接單片機 p2 口 的高 4 位,l0-l3 為列線,接單片機 p2 口的低 4 位。初始化時鍵盤行線為高電 平,列線為低電平。鍵盤的行線接 4 輸入與門,4 輸入與門的輸出接單片機的 外部中斷 0 引腳 p3.2 口。當有鍵按下時,將產(chǎn)生中斷,在中斷程序里對按鍵進行掃 描,得到按鍵的鍵值。 圖 3.5 44 鍵盤結(jié)構(gòu) 3.3.2 鍵盤面板 鍵盤面板如圖 3.6 所示,本系統(tǒng)使 用的鍵盤有 10 數(shù)字鍵,5 個功能按鍵。 在系統(tǒng)啟動時,

39、先按“設(shè)置”鍵,然 后按相應(yīng)的數(shù)字鍵,按“左移”或者 “右移”鍵改變其他溫度的值。按 “確認”鍵之后系統(tǒng)正式啟動。系統(tǒng) 在運行過程之中可以通過按“重新設(shè) 置”鍵,對溫度重新進行設(shè)置。 圖 3.6 鍵盤面板 0213 設(shè)置 確認 右移左移 重新 設(shè)置 98 7645 邵陽學院畢業(yè)設(shè)計(論文) 15 3.4 顯示電路設(shè)計 3.4.1 lcd 引腳分布及功能 (1) 12864 液晶顯示屏共有 20 個引腳,其引腳名稱及引腳編號的對應(yīng)關(guān)系 如圖 3.7 所示: 圖 3.7 12864 液晶顯示模塊引腳分布圖 (2) 引腳功能如表 3.5 所示: 表 3.5 12864 液晶顯示模塊引腳功能 引腳符

40、號引 腳 功 能引腳符 號引 腳 功 能 1vss電源地15cs1cs1=1 芯片選擇左邊 64*64 點 2vdd電源正+5v16cs2cs2=1 芯片選擇右邊 64*64 點 3vo液晶顯示驅(qū)動電源17/rst復位(低電平有效) 4rs h:數(shù)據(jù)輸入; l:指令碼輸入 18veelcd 驅(qū)動負電源 5 r/w h:數(shù)據(jù)讀?。?l:數(shù)據(jù)寫入 19a背光電源(+) 6e 使能信號。 20k背光電源(-) 7-14db0-db7數(shù)據(jù)線有些型號的模塊 19、20 腳為空腳 3.4.2 單片機與圖形液晶的接口電路 lcd 與單片機的接口電路如圖 3.8 所示: 單片機對 lcd 的控制方法將在下一章

41、中詳細介紹。 3.5 報警電路設(shè)計 本系統(tǒng)設(shè)計中有報警器,使用 lm386 作為報警器的功率放大器,如圖 3.9 所示。 lm386 是一種音頻集成功放,具有自身功耗低、電壓增益可調(diào)整、電源電壓范 圍大、外接元件少和總諧波失真小等優(yōu)點,廣泛應(yīng)用于錄音機和收音機之中。 1234567891011121314151617181920 vssvddvorsr/wedb0db7db6db5db4db3db2db1cs1cs2 /rstveeak 邵陽學院畢業(yè)設(shè)計(論文) 16 lm386 的輸入端接單片機的引腳 p3.4,輸出端接揚聲器。當實際溫度超過設(shè)置的溫 度值時,單片機引腳輸出一定頻率的信號,信

42、號經(jīng)過音頻功放放大之后,發(fā)出報警 聲。 圖 3.8 lcd 與單片機的接口電路 圖 3.9 lm386 功放電路 3.6 電源電路設(shè)計 電源是整個系統(tǒng)的能量來源,它直接關(guān)系到系統(tǒng)能否運行。在本系統(tǒng)中單片機、 液晶顯示、報警等電路需要 5v 的電源,因此電路中選用穩(wěn)壓芯片 7805,其最大輸 出電流為 1.5a,能夠滿足系統(tǒng)的要求,其電路如圖 3.10 所示。 邵陽學院畢業(yè)設(shè)計(論文) 17 圖 3.10 電源電路 邵陽學院畢業(yè)設(shè)計(論文) 18 第 4 章 程序設(shè)計 4.1 系統(tǒng)資源分配 4.1.1 系統(tǒng)硬件資源分配 本系統(tǒng)電路連接及硬件資源分配如圖 4.1 所示。采用 at89c51 單片機

43、作為核心 器件,ds18b20 作為溫度測量裝置,通過 at89c51 的 p1.7 口將溫度值送入單片機 處理,利用 12864lcd 顯示器和 44 鍵盤作為人機接口。 圖 4.1 系統(tǒng)硬件資源分配 4.1.2 系統(tǒng)軟件資源分配 本系統(tǒng)采用了 c 語言進行程序設(shè)計,系統(tǒng)自動為各個變量分配內(nèi)存區(qū)域。用戶 可以將變量定義在 data 區(qū)、idata 區(qū)、pdata 區(qū)、xdata 區(qū),常量定義在 code 區(qū)。用 c 語言寫較復雜的程序時,要特別注意使用的內(nèi)存不能超過單片機 ram。 4.2 系統(tǒng)流程設(shè)計 4.2.1 主程序流程設(shè)計 主程序先對系統(tǒng)資源進行初始化,調(diào)用 lcd 顯示子程序,顯示

44、啟動畫面。然后 進入鍵盤設(shè)置界面。當設(shè)置鍵按下后,開始設(shè)置各點的溫度,設(shè)置完之后,如果確 認鍵按下,則系統(tǒng)開始工作。首先調(diào)用 ds18b20 初始化子程序,再發(fā)送 rom 命令, 讀取 ds18b20 轉(zhuǎn)換的溫度值。當讀取的溫度大于設(shè)置的溫度值時,報警器開始報警, lcd 顯示溫度的實際值、設(shè)置值、路數(shù)、狀態(tài)。接下來對第二、三、四路溫度進行 采集,處理,顯示。 p0.0p0.7 12864lcd 顯示模塊 p3.4 p3.3 報警器 p3.5p3.7 3 44鍵盤 p2.0p2.3 p2.4p2.7 4 4 l0l3 h0h3 p3.2/int0 at89c51 p1.7 四輸入與門 ds18

45、b20 p3.0p3.1 2 邵陽學院畢業(yè)設(shè)計(論文) 19 主程序流程如圖 4.2 所示: 圖 4.2 主程序流程 初始化 設(shè)置鍵按下? 設(shè)置各點溫度 確認鍵按下? y n 讀取溫度值 溫度值高于設(shè)置值 調(diào)用lcd顯示 報警 y n 初始化命令 發(fā)送rom命令 匹配第一路 讀取溫度值 溫度值高于設(shè)置值 調(diào)用lcd顯示 報警 y n 初始化命令 發(fā)送rom命令 匹配第二路 讀取溫度值 溫度值高于設(shè)置值 調(diào)用lcd顯示 報警 y n 初始化命令 發(fā)送rom命令 匹配第三路 讀取溫度值 溫度值高于設(shè)置值 調(diào)用lcd顯示 報警 y n 初始化命令 發(fā)送rom命令 匹配第四路 開始 邵陽學院畢業(yè)設(shè)計(

46、論文) 20 4.2.2 ds18b20程序流程設(shè)計 由上一章單片機對 ds18b20 的控制方法,設(shè)計出如下程序流程: 圖 4.3 寫命令子程序流程圖 圖 4.4 ds18b20 復位子程序流程圖 圖 4.5 ds18b20 讀溫度子程序流程圖 dq置1 dq置0 延時573微秒 dq置1 延時,等待ds18b20響應(yīng) dq=0? 初始化成功 返回dq 初始化不成功 yn i=8 置dq0 dq=dat p2=0xf0; it0=1; tmod=0 x01; th0=0 xff; tl0=0 xff; et0=1; pt0=1; ea=1; init_lcd(); clr_scr(); di

47、splay_ini(); delay(1500); ex0=1; out: clr_scr(); display1(); delay(1000); while(!flag2) keyinput(); flag2=0; clr_scr(); while(1) 邵陽學院畢業(yè)設(shè)計(論文) 25 if(flag4=1) flag4=0; goto out; ds18b20_init(); ds18b20_writecommand(0 xcc); ds18b20_writecommand(0 x44); delay(250); match_rom(ds18b20_num1); ds18b20_write

48、command(0 xbe); for(i=0;inum0) flag7=1; else if(zhen_temp0num1) flag7=1; else if(zhen_temp1num2) flag7=1; else if(zhen_temp2num3) flag7=1; else flag7=0; goto next; flag5=0; next: display2(0); delay(1000); if(flag4=1) flag4=0; goto out; ds18b20_init(); ds18b20_writecommand(0 xcc); 邵陽學院畢業(yè)設(shè)計(論文) 27 ds1

49、8b20_writecommand(0 x44); delay(250); match_rom(ds18b20_num2); ds18b20_writecommand(0 xbe); for(i=0;inum4) flag7=1; else if(zhen_temp0num1) flag7=1; else if(zhen_temp1num6) flag7=1; else if(zhen_temp2num7) flag7=1; else flag7=0; goto next1; next1: clr_scr(); display2(1); delay(1000); if(flag4=1) fla

50、g4=0; goto out; ds18b20_init(); ds18b20_writecommand(0 xcc); ds18b20_writecommand(0 x44); delay(250); match_rom(ds18b20_num3); ds18b20_writecommand(0 xbe); for(i=0;inum8) flag7=1; else if(zhen_temp0num9) flag7=1; else if(zhen_temp1num10) flag7=1; else if(zhen_temp2num11) flag7=1; else flag7=0; goto

51、next2; next2: clr_scr(); display2(2); 邵陽學院畢業(yè)設(shè)計(論文) 30 delay(1000); if(flag4=1) flag4=0; goto out; ds18b20_init(); ds18b20_writecommand(0 xcc); ds18b20_writecommand(0 x44); delay(250); match_rom(ds18b20_num4); ds18b20_writecommand(0 xbe); for(i=0;inum12) flag7=1; else if(zhen_temp0num13) flag7=1; els

52、e if(zhen_temp1num14) flag7=1; else if(zhen_temp2num15) flag7=1; else flag7=0; goto next3; next3: clr_scr(); display2(3); delay(1000); 4.3.2 子程序設(shè)計 (1)lcd 圖片顯示子程序 void disp_img (unsigned char code *img) unsigned char j,k; for(k=0;k8;k+) 邵陽學院畢業(yè)設(shè)計(論文) 32 left(); delay(10); write_com(page_add+k); write_

53、com(col_add+0); for(j=0;j64;j+) write_data(imgk*128+j); right(); write_com(page_add+k); write_com(col_add+0); for(j=0;j64;j+) write_data(imgk*128+64+j); (2)lcd 寫 16*16 漢字子程序 void disp_chinese(unsigned char pag,unsigned char col, char code *hzk) unsigned char j=0,i=0; for(j=0;j2;j+) write_com(page_ad

54、d+pag+j); write_com(col_add+col); for(i=0;i16;i+) write_data(hzk16*j+i); (3)lcd 寫 8*16 數(shù)字子程序 邵陽學院畢業(yè)設(shè)計(論文) 33 void disp_digit(unsigned char pag,unsigned char col, unsigned char code *hzk) unsigned char j=0, i=0; for(j=0;j2;j+) write_com(page_add+pag+j); write_com(col_add+col); for(i=0;inew project,在彈

55、出的對話框中輸入工程的名字, 點擊保存;選擇 atmel 公司的 at89c51 單片機。 邵陽學院畢業(yè)設(shè)計(論文) 36 圖 5.2 系統(tǒng)電路原理圖 (2) 在 source group 1 上點擊右鍵,選擇“add files to group source group 1 ” , 把所有的源文件加進來。 (3) 點擊 project-build target 或者使用快捷鍵 f9,編譯工程。當 output windows 中提示“0 error”時,則程序編譯成功,生成可執(zhí)行文件 1.hex。 5.3.2 程序加載 在編輯環(huán)境中雙擊 at89c51,在彈出的對話框中將編譯生成可執(zhí)行文件

56、 1.hex 加載進芯片中,設(shè)單片機的時鐘工作頻率為 12mhz。 5.4 系統(tǒng)仿真 點擊全速運行按鈕,將出現(xiàn)如下仿真結(jié)果: (1) 系統(tǒng)的啟動 在系統(tǒng)的啟動過程之中,液晶將會顯示邵陽學院的圖標,以及邵陽學院的校訓 “明德 求真 共生 超越” ,畢業(yè)設(shè)計課題等。在每副圖片的切換過程之中,揚聲器 都會發(fā)滴”的聲音。 邵陽學院畢業(yè)設(shè)計(論文) 37 (2) 溫度值的設(shè)定 系統(tǒng)中必須對四個不同環(huán)境的正常溫度的上限值進行設(shè)定,當環(huán)境的實際溫度 超過設(shè)定的這個上限值時,系統(tǒng)將會報警。設(shè)置溫度時,先點“設(shè)置”鍵,然后點 擊鍵盤上的按鍵輸入溫度值;如果溫度值設(shè)置完畢,點擊“確認鍵” ,則系統(tǒng)啟動 成功并開始

57、對各個環(huán)境的溫度進行測量。在設(shè)置過程之中可以通過“左移”或者 “右移”按鍵對各個溫度值進行設(shè)定,如圖 5.3 和圖 5.4 所示。 圖 5.3 設(shè)置溫度界面 圖 5.4 設(shè)置各個環(huán)境的溫度 (3) 系統(tǒng)運行 系統(tǒng)運行之后,ds18b20 開始對環(huán)境進行測量,將環(huán)境的實際的溫度顯示在液晶 屏上,同時液晶顯示屏還顯示環(huán)境溫度的路數(shù)、事先設(shè)置的溫度的上限值和狀態(tài)。當 實際溫度值低于或者等于設(shè)置溫度值時,將顯示“ 正?!?,否則將顯示“報警”, 圖 5.5 第 1 路仿真結(jié)果 圖 5.6 第 2 路仿真結(jié)果 同時報警器開始報警。在系統(tǒng)運行過程之中,如果需要重新對溫度值進行設(shè)定,則 邵陽學院畢業(yè)設(shè)計(論

58、文) 38 點擊“重新設(shè)置”按鍵,重新設(shè)置各個環(huán)境溫度的上限值。在 proteus 仿真過程 之中,可以通過調(diào)節(jié) ds18b20 的面板上的“”或者“” ,改變 ds18b20 測量 的實際溫度。系統(tǒng)仿真結(jié)果如圖 5.5、圖 5.6 、圖 5.7 、圖 5.8 、圖 5.9 所示。 圖 5.7 第 3 路仿真結(jié)果 圖 5.8 第 4 路仿真結(jié)果 圖 5.9 系統(tǒng)仿真結(jié)果 邵陽學院畢業(yè)設(shè)計(論文) 39 5.5 仿真結(jié)果分析 系統(tǒng)仿真結(jié)果如表 5.1 所示: 由以上仿真結(jié)果可知,當 ds18b20 的實際溫度大于設(shè)置溫度時,報警器開始報 警,否則處于正常狀態(tài)。溫度測量范圍為-55125,能夠達到

59、設(shè)計的要求:- 2080。溫度測量的精度為 0.0625,滿足設(shè)計的要求。lcd 屏幕每秒刷新一 次,顯示格式也達到了設(shè)計的要求。 表 5.1 系統(tǒng)仿真結(jié)果 邵陽學院畢業(yè)設(shè)計(論文) 40 第 6 章 pcb 板設(shè)計 6.1 pcb 板設(shè)計 6.1.1 pcb板面規(guī)劃 在繪制電路板之前,首先要規(guī)劃好 pcb 板板面,定義板框,定義板框主要包 括:定義電路板的層數(shù)、電路板的外形尺寸和形狀等。本系統(tǒng)使用的是雙面板,在 頂層和底層都要進行布線,lcd 和按鍵占的面積比較大,綜合考慮之后,把板框定 義為 130mm120mm。 6.1.2 pcb 網(wǎng)絡(luò)表導入 載入網(wǎng)絡(luò)表和元件封裝:執(zhí)行designlo

60、ad nets命令打開載入網(wǎng)絡(luò)表對話框, 在 netlist file 選項中,輸入所要載入的網(wǎng)絡(luò)表文件名及路徑,網(wǎng)絡(luò)表沒有錯誤后, 按execute執(zhí)行8。載入網(wǎng)絡(luò)表后,電路板中會出現(xiàn)由元件封裝和連接關(guān)系組成的 一些凌亂的圖形散布在四周。 6.1.3 pcb 元件布局 設(shè)計 pcb 板時布局是十分重要的,合理的布局,不但能給布線工作帶來方便, 而且也可以使系統(tǒng)更加穩(wěn)定、可靠。對 pcb 板布局,首先要考慮 pcb 尺寸大小, 再確定特殊元件的位置。最后,根據(jù)電路的功能單元,對電路的全部元器件進行布 局。 在確定特殊元件的位置時應(yīng)遵守以下原則: (1) 盡可能縮短高頻元器件之間的連線,設(shè)法減少

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論