溫度傳感器ds18b20畢業論文_第1頁
溫度傳感器ds18b20畢業論文_第2頁
溫度傳感器ds18b20畢業論文_第3頁
溫度傳感器ds18b20畢業論文_第4頁
溫度傳感器ds18b20畢業論文_第5頁
已閱讀5頁,還剩36頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

畢業設計 (論文 ) 題 目: 基于 51 單片機的 DS18B20 溫度 傳感器的應用 院 (系): 電子工程與自動化學院 專 業: 機電一體化工程 學生姓名: 梁源光 學 號: 030111301171 指導教師: 宋長發 職 稱: 副教授 題目類型: 理論研究 實驗研究 工程設計 工程技術研究 軟件開發 2014 年 05 月 10 日 桂林電子科技大學畢業設計(論文)報告用紙 1 摘 要 溫度的測量和控制對人類日常生活、工業生產、氣象預報、物資倉儲等都起著極其重要的作用。在許多場合,及時準確獲得目標的溫度是十分重要的,近年來,溫度測控領域發展迅速,并且隨著數字技術的發展,溫度的測控芯片也相應的登上歷史的舞臺,能夠在工業、農業等各領域中廣泛使用。溫控系統通過傳感器檢測溫度將溫度數據輸入到處理器處理,可以在數碼管或 LCD 等顯示出來。然后由控制器可以控制加熱或者制冷,從而達到控溫的目的。 本畢業設計就是利用 STC89C52 單片機和 DS18B20 溫度傳感器對目標溫度進行檢測, 使用了單位數碼管對檢測到溫度的顯示,通過串口和上位機進行通信,利用 VB 軟件顯示溫度數據,從而對各空間溫度進行遠程實時監控,使用 LED 燈閃爍進行模擬加熱和制冷。本文對各部分的硬件原理圖進行了分析,還對各功能程序進行概述。通過 51單片機控制 DS18B20 檢測溫度,具有硬件電路簡單,編程容易,測溫準確,穩定等優點。而且可以多點檢測(本畢設只是單點測溫),幾個傳感器連接也很簡單。 關鍵詞: 單片機; 溫控;傳感器 桂林電子科技大學畢業設計(論文)報告用紙 2 Abstract Temperature measurement and control of human daily life, industrial production, weather forecast, material storage and so on all play a very important role. On many occasions, timely and accurate to obtain the temperature of the target is very important, in recent years, the temperature measurement and control field is developing rapidly, and with the development of digital technology, the corresponding temperature measurement and control chip mounted on the stage of history, can be widely used in industry, agriculture and so on various areas. Temperature control system through the temperature sensor to detect temperature data input to processing, can be in the digital tube or LED display, etc. And then by the controller to control the heating or cooling, so as to achieve the purpose of temperature control. This graduation design is the use of STC89C52 MCU and DS18B20 temperature sensor to test the room temperature, for testing temperature using digital tube display, through a serial port and PC communication, using VB software display temperature data, thus to remote real-time monitoring of the room temperature, use LED lights to simulate the heating and cooling. By 51 single chip microcomputer control temperature DS18B20 detection, it has a simple hardware circuit, programming easily, temperature measurement accuracy, stability, etc. And can be more testing (this project is only a single point temperature measurement), several sensor connection is also very simple. Keywords: MCU; temperature control; sensor 桂林電子科技大學畢業設計(論文)報告用紙 3 目 錄 引言 .1 1 緒論 . 2 1.1 單片微機的發展 .2 1.2 溫度檢測的意義及發展形勢 .2 1.3 溫控系統設計的核心 .2 2 單片機的簡述 .3 2.1 單片機的特點及引腳介紹 .3 2.2 單片機的電平特性 .5 2.3 C51 復位電路 .6 2.4 時鐘電路 .6 3 溫控系統 的硬件設計 .7 3.1 溫度檢測模塊 .7 3.1.1 溫度傳感器的概述 .7 3.1.2 DS18B20 的工作原理及工作時序圖 .9 3.2 顯示模塊 .12 3.3 溫超報警模塊 .14 3.4 串口通信模塊 .15 4 軟件設計 .17 4.1 系統整體設計 .17 4.2 溫度獲取并轉換 .19 4.3 溫度控制 .20 5 單片機與上位機通信 .21 總 結 .23 謝 辭 .24 參考文獻 .25 附錄 1電路原理圖 .26 附錄 2 完整 C程序代碼 .28 附錄 3 模塊調試代碼 .34 桂林電子科技大學畢業設計(論文)報告用紙 第 1 頁 共 34 頁 引言 上世紀 90 年代以來,單片機就進入了一個高速發展的階段,大部分半導體廠商都注重新型單片機的研制、生 產和推廣。單片機已經深入到我們生活的每一個細節,由于單片機的微型電子產品到處都是,尤其是 ARM的廣泛應用,使我們的生活變得更豐富多彩。隨著電子技術的發展,現在溫度控制系統的功能越來越強大,也越來越穩定可靠,而且精度也越來越高,各種環境對溫控系統的要求也越來越高。溫度控制系統廣泛應用于社會生活的各個領域 ,如家電、汽車、材料、電力電子等 ,常用的控制電路根據應用場合和所要求的性能指標有所不同 , 在工業企業中 ,如何提高溫度控制對象的運行性能一直以來都是控制人員和現場技術人員努力解決的問題。這類控制對象慣性大 ,滯后現象嚴重 ,存在很多不確定的因素 ,難以建立精確的數學模型 ,從而導致控制系統性能不佳 ,甚至出現控制不穩定、失控現象。傳統的繼電器調溫電路簡單實用 ,但由于繼電器動作頻繁 ,可能會因觸點不良而影響正常工作。控制領域還大量采用傳統的 PID 控制方式 ,但 PID 控制對象的模型難以建立 ,并且當擾動因素不明確時 ,參數調整不便仍是普遍存在的問題。 而采用數字溫度傳感器 DS18B20,因其內部集成了 A/D 轉換器,使得電路結構更加簡單,而且減少了溫度測量轉換時的精度損失,使得測量溫度更加精確。數字溫度傳感器 DS18B20 只用一 個引腳即可與單片機進行通信,大大減少了接線的麻煩,使得單片機更加具有擴展性。由于 DS18B20 芯片的小型化,更加可以通過單條數據線就可以和主電路連接,故可以把數字溫度傳感器 DS18B20 做成探頭,探入到狹小的地方,增加了實用性。還能串接多個數字溫度傳感器 DS18B20 進行多點的溫度檢測。溫度自動控制系統主要是由溫度采集、顯示、揚聲器報警、加熱制冷模塊和上位機顯示模塊組成。本畢設就是講述以上模塊的溫控系統的應用。 桂林電子科技大學畢業設計(論文)報告用紙 第 2 頁 共 36 頁 1 緒論 1.1 單片微機的發展 單片微型計算機簡稱單片機, 是典型的嵌入式微控制器( Microcontroller Unit)常用英文字母的縮寫 MCU 表示單片機,單片機又稱單片微控制器,它不是完成某一個邏輯功能的芯片,而是把一個計算機系統集成到一個芯片上。單片機由 運算器、控制器、存儲器、輸入輸出設備構成 ,相當于一個微型的計算機(最小系統),和計算機相比,單片機缺少了外圍設備等。概括的講:一塊芯片就成了一臺計算機。它的體積小、質量輕、價格便宜、為學習、應用和開發提供了便利條件。單片機它最早是被用在工業控制領域。 由于單片機在工業控制領域的廣泛應用,單片機由僅有 CPU 的 專用處理器芯片發展而來。最早的設計理念是通過將大量外圍設備和 CPU 集成在一個芯片中,使計算機系統更小,更容易集成進復雜的而對體積要求嚴格的控制設備當中。 Intel 的 8080 是最早按照這種思想設計出的處理器,當時的單片機都是 8 位或 4 位的。其中最成功的是 Intel 的 8051,此后在 8051 上發展出了 MCS-51 系列單片機系統。因為簡單可靠而性能不錯獲得了很大的好評。盡管 2000 年以后 ARM 已經發展出了 32位的主頻超過 300M 的高端單片機,直到現在基于 8051 的單片機還在廣泛的使用。在很多方面單片機比專用處理 器更適合應用于嵌入式系統,因此它得到了廣泛的應用。事實上單片機是世界上數量最多的處理器,隨著單片機家族的發展壯大,單片機和專用處理器的發展便分道揚鑣。 1.2 溫度檢測的意義及發展形勢 溫度是一個非常重要的物理量,因為它會影響很多物理及化學變化的過程,例如,燃燒,發酵,烘烤,煅燒,結晶,濃度,空氣流動,以及蒸餾等等。因此對溫度的檢測以及控制的意義越來越大。在工業生產的過程中,很多時候都需要對溫度進行嚴格的監控,以使得生產得以順利的進行,產品的質量才能夠充分的保證。使用自動溫控系統可以對生產的溫度進行自動控制 ,保證生產自動化、智能化且能夠順利,安全的進行,從而提高企業的生產效率。 溫控采集控制系統是在嵌入式系統設計的基礎上發展起來的。嵌入式系統雖然起源于微型計算機時代,但是微型計算機的體積、價格、可靠性,都無法滿足廣大用戶對嵌入式系統的要求,因此,嵌入式系統慢慢走上了芯片化道路。本畢設將敘述 STC89C52和傳感器芯片 DS18B20 設計的溫度控制系統。 1.3 溫控系統設計的核心 設計工業現場的溫度控制系統。采用 DS18B20 溫度傳感器,采集現場溫度,通過數碼管顯示,具有報警,開啟加熱 /制冷,和加大加熱 /制冷, 以及通過串口線和上位機通信的功能。性能穩定,成本低廉,可連續工作,精度高,可靠性強等優點。溫度控制系統,具體的要求如下: 桂林電子科技大學畢業設計(論文)報告用紙 第 3 頁 共 36 頁 ( 1) 在當前三個數碼管上顯示當前采集到的目標溫度( 0099.9 ) ( 2) 當目標溫度低于 26時,蜂鳴器開始報警,并且 DBJ 發光二極管閃爍(模擬開啟制熱設備);當目標溫度繼續降低,并低于 24時,蜂鳴器的報警聲頻率加快,同時 DBJ和 DJD 一起閃爍(模擬加大制熱設備制熱功率)。 ( 3) 當目標溫度高于 28時,蜂鳴器開始報警,同時 GBJ 閃爍(模擬開始制冷設備),當目標溫度繼續升高,并高于 30時,蜂鳴器加快 報警聲頻率,同時 GBJ 和 GJD 一起閃爍(模擬制冷設備加大制冷功率)。 ( 4) 用串口將采集到的溫度數據實時的發送到上位機,在上位機軟件上實時的顯示當前的溫度值。 下面溫控系統的組成請看圖 1-1 數據顯示 DS18B20 輸入 高 /低溫度報警 電源 變頻器 變頻器 制冷 制熱 圖 1-1 溫控系統組成圖 2 單片機的簡述 2.1 單片機的特點及引腳簡介 單片機的特點: 1.采用 哈佛體系結構 2.采用面向控制的指令系統 3.引腳功能服用 4.片內 RAM 作寄存器 PC 機 MAX232 CPU STC89C52 桂林電子科技大學畢業設計(論文)報告用紙 第 4 頁 共 36 頁 5.類型齊全 6.功能通用 7.具有三高優勢 (集成度高、可靠性高、性價比高 )。 1多功能 單片機利用當今先進的半導體器件制造技術,盡可能多地把各種計算機部件、存儲器和各種類型的輸入 /輸出端口都集成在一塊芯片內。因此,一個單片機所能實現的功能是很多的。 2高性能 由于單片機的制造技術和系統結構的完善,單片機的運行速度和執行效率大大提高。集成度的提高,不但使各種各樣的輸入和輸出接口可以集成在單片機內,而且使存儲器的尋址范圍也大大擴大,因此,單片機的性能比同類微型計算機的性能有明顯的優勢。 3體積小 正因為單片機的集成度高,使所有硬件集中在一塊半導體芯片上,所以,單片機體積較之于同類微處理器小得多。因此,系統中控制部分的體積也隨之大大縮小,單片機將成為微電子嵌入式系 統中的理想部件。 4低功耗 目前,許多單片機都能在低電壓、低功耗下工作,有的單片機可在 2.2V,甚至能在 0.9V 下工作,并且,電流也低到微安級。 5產品設計周期短 用單片機進行產品設計,由于它的功能強,體積小,使硬件設計簡化;又因各種仿真器的問世,使用戶的編程和調試變的非常方便,大大減少了用戶系統的軟件設計和調試的時間。本畢設所用單片機位 STC89C52 其引腳,如圖 2-1 如左圖, STC89C52 有 40 個引腳,這種封裝形式叫做 DIP40 封裝。 VCC, GND-單片機電源腳。 VCC 是電源輸入引腳, GND 是接地信號引腳。 XTAL1, XTAL2 外接時鐘引腳。 XTAL1 為片內震蕩電路輸入端, XTAL2 為片內震蕩電路輸出端。 8051 的時鐘方式有兩種,一種是片內時鐘震蕩方式,需要在這兩個引腳外接石英晶體和震蕩電容,震蕩電容的值一般取 10P30P;另外一種是外部時鐘方式,即將 XTAL1 接地,外部時鐘信 圖 2-1 STC89C52 引腳圖 號從 XTAL2 腳接入。 P 1. 01P 1. 12P 1. 23P 1. 34P 1. 45P 1. 56P 1. 67P 1. 78R S T9P 3. 0/ R X D10P 3. 1/ T X D11P 3. 2/ I N T 012P 3. 3/ I N T 113P 3. 4/ T 014P 3. 5/ T 115P 3. 6/ W R16P 3. 7/ R D17X T A L 218X T A L 119G N D20P 2. 021P 2. 122P 2. 223P 2. 324P 2. 425P 2. 526P 2. 627P 2. 728P S E N29A L E / P R O G30E A /V pp31P 0. 7/ A D 732P 0. 6A D 633P 0. 5/ A D 534P 0. 4/ A D 435P 0. 3/ A D 336P 0. 2/ A D 237P 0. 1/ A D 138P 0. 0/ A D 039V c c40U1S T C 89C 52桂林電子科技大學畢業設計(論文)報告用紙 第 5 頁 共 36 頁 RST 復位引腳,需要輸入連續兩個機器周期以上的高電平才有效。用來完 成單片機的復位初始化操作,復位后程序計數器 PC=0000H,即復位后程序從頭開始執行。 PSEN -全稱是程序存儲器允許輸出控制端。(由于如今單片機程序存儲器有足夠的內部 ROM,此處略講) ALE/PROG -在單片機擴展外部 RAM 時, ALE 用于控制把 P0 口的輸出低 8 位送地址鎖存器鎖存起來,以實現低位地址和數據的隔離。 EA /Vpp-接高電平時,單片機讀取內部程序存儲器。當擴展有外部 ROM 時,讀完內部 ROM 后自動讀取外部 ROM。接低電平時,單片機直接讀取外部( ROM)。8031 沒有單片機沒有內部 ROM 所以接低電平。本文使用 89C52 所以接高電平。 I/O 口引腳 P0, P1, P2, P3。 P0 雙向 8 位三態 I/O 口,每個口可獨立控制。 P1 準雙向 8 位 I/O 口,每個口可獨立控制,內 帶上拉電阻(若想了解全面可查相關資料),這種口輸出沒有高阻態,輸入不能鎖存,故不是真正的雙向 I/O 口。 P2 口與 P1 口相似。 P3 準雙向 8 位 I/O 口,每個口可獨立控制,內帶上拉電阻。此口第一功能當做普通 I/O 口。第二功能定義如下: P3.0: RXD 串行口輸入 P3.1: TXD 串行口輸出 P3.2: INT0 外部中斷 0 輸入 P3.3: INT1外部中斷 1 輸入 P3.4: T0 定時器 0外部輸入 P3.5: T1 定時器 1 外部輸入 P3.6: WR 外部寫控制 P3.7: RD 外部讀控制 2.2 單片機的電平特性 單片機是數字集成芯片,所以其工作是由數字電平控制方式。數字電路只有兩種電平,高( 1)和低( 0)。常用邏輯電平有 TTL,CMOS,LVTTL,ECL,PECL 等等很多,我們用的最多的是 TTL 和 CMOS。 5V TTL 和 5V CMOS 是通用的邏輯電平。 TTL 電平信號用的最多,這是因為,數據表示通常采用二進制, +5V 等價于邏輯 1, 0V 等價于邏輯0.這被稱為 TTL(晶體管 -晶體管邏輯電平)信號系統,這是計算機處理器控制的設備內部之間通信的標準技術。 TTL 型通信大多數情況下 是采用并行數據傳輸方式。 CMOS 電平 VCC 可達 12V, CMOS 電路輸出高電平約為 0.9VCC,而輸出低電平約為 0.1VCC 。 CMOS 電路中不使用的輸入端不能懸空,否則會造成邏輯混亂。另外 CMOS集成電路電源電壓可以在較大的范圍內變化,因而對電源的要求不像 TTL 那么嚴格。TTL 和 CMOS 的邏輯電平關系如下: VOH-邏輯電平 1 的輸出電壓 VOL-邏輯電平 0 的輸出電壓 VIH-邏輯電平 1 的輸入電壓 桂林電子科技大學畢業設計(論文)報告用紙 第 6 頁 共 36 頁 VIL-邏輯電平 0 的輸入電壓 TTL 臨界值: VOHmin=2.4V, VOLmax=0.4V。 VIHmin=2.0V, VILmax=0.8V TTL 電平范圍 05V。 CMOS 電平臨界值: ( 1) VOHmin=4.99V, VOLmax=0.01V。 ( 2) VIHmin=3.5V, VILmax=1.5V TTL 和 CMOS 邏輯電平的轉換: CMOS 電平能驅動 TTL 電平,但 TTL 電平不能驅動 CMOS 電平,需加上拉電阻。 2.3 C51 復位電路 單片機復位電路由主要有兩種: ( 1) 上電復位 RC 上電復位電路,在單片機上電后,對復位電路的電容充電。如圖 2-2 所示。在上電 瞬間, RST 端的電位與 Vcc 相同,隨著充電電流的減少, RST 的電位逐漸下降。只要保證 RST 為高電平的時間大于 2 個機器周期,就能正常復位。電路中的電容和電阻取值可根據晶振的頻率而定,我們使用 11.0592MHZ,所以應該使用 10uF 電容和 8.2K電阻(本畢設使用 10K)。 RCV C CC 5 1R S TG N D R1CV C CC 5 1R S TG N DR2S1 圖 2-2 RC 上電復位電路 圖 2-3 按鍵復位電路 ( 2) 按鍵復位 按鍵復位又稱手動復位,按鍵電平復位相當于 RST 端通過電阻與電源接通實現的。該電路除具有上電復位功能外,如果要在程 序運行中復位,只需要按下如圖 2-3 的那個鍵,此時電源被 R1, R2 分壓,在 RST 端產生一個復位的高電平,從而達到復位作用。 2.4 時鐘電路 8051 的時鐘有兩種方式,一種是片內時鐘震蕩方式,另外一種是外部時鐘方式。 ( 1) 內部時鐘方式 桂林電子科技大學畢業設計(論文)報告用紙 第 7 頁 共 36 頁 MCS-51 單片機芯片內部有一個 高增益反相放大器 ,其輸入端為 XTAL1,輸出端為 XTAL2。在 XTAL1 和 XTAL2 之間跨接晶振和微調電容,從而構成一個穩定的自激振蕩器,這就是單片機的內部時鐘電路。如圖 2-4 圖 2-4 內部時鐘電路 圖 2-5 HMOS 型單片機外部時鐘電路 (2)外部時鐘方式 對于 HMOS 型單片機( 8051),可用來輸入外部脈沖信號 ,XTAL1 接地, XTAL2 接外部時鐘, 由于 XTAL2 的邏輯電平與 TTL 電平不兼容 ,所以應接一個上拉電阻。如圖2-5。對于 CHMOS 單片機( 80C51),外部時鐘要由 XTAL1 引入,而 XTAL2 引腳應懸空。 3 溫控系統的硬件 設計 3.1 溫度檢測模塊 3.1.1 溫度傳感器的概述 溫度傳感器是各種傳感器中最常用的一種,早期使用的是模擬溫度傳感器,比如熱敏電阻,隨著溫度的變化,它的阻值也發生了 類似線性的變化 ,通過處理器采集電阻兩端的阻值,再通過某個公式就可計算出當前的溫度。隨著科技的進步,現代的溫度傳感器已經走向數字化。 DALLAS 半導體公司推出的數字化溫度傳感器 DS18B20 采用單總線協議,即與單片機接口僅需占用一個 I/O 口,無須任何的外部元件,直接將環境溫度轉化為數字信號,以 數字碼 的方式串行輸出。 DS18B20 是 DALLAS 公司推出的第一片支持“一總線”接口的的溫度傳感器,它具有微型化、低功耗、高性能、抗干擾能力強、易配微處理器等優點。 ( 1) DS18B20 的特性: 適應電壓范圍寬,電壓范圍在 3.05.5V,在 寄生電源方式 下可以由數據線供電。 獨特的單線接口方式,它與處理器連接時僅需要一個 I/O 口就可以和微處理器雙向通信。 支持多點組網功能,多個 DS18B20 可以并聯在唯一 單總線上 ,實現組網多點測溫。 Y11 2 MC12 0 p FC22 0 p FX T A L 2X T A L 18 0 C 5 11 2AV C C外部輸入信號 X T A L 2X T A L 1T T L 門8 0 5 1桂林電子科技大學畢業設計(論文)報告用紙 第 8 頁 共 36 頁 負壓特性。電源極性接反時不會因為發熱而燒壞,但是不能正常工作。 測量范圍在 -55 +125,在 -10 +85時精度 為 0.5。 在使用中不需要任何外圍的元件,全部傳感元件和轉換電路都集成在一個 三極管的集成電路內 。 測量結果直接輸出數字信號,通過單總線串行傳送給微處理器,同時可傳送CRC 校驗碼,具有很強的抗干擾糾錯能力。 可編程分辨率為 9-12 位,對應的可分辨溫度分別為 0.5 ,0.25 ,0.125 和0.0625,可實現高精度測溫。 ( 2) 引腳簡介 DS18B20 有兩種封裝形式,一種是三腳直插型,是使用最普遍的一種封裝。和八腳 SOSI 貼片式封裝。如下圖 3-1所示 圖 3-1 DS18B20 的兩種封裝 GND-電源負極 DQ-信號輸入輸出 VDD -電源正極 NC-空引腳 ( 3) DS18B20 與單片機硬件連接圖 前文提到 DS18B20 具有單總線,單片機與外設之間進行串行傳輸的串行總線主要有 I2C, SPI 和 SCI 總線。其中 I2C 總線以同步串行二線方式進行通信(一條時鐘線一條數據線), SPI 總線則以同步串行三線方式進行通信(一條時鐘線,一條數據輸入線,一條數據輸出線),而 SCI 總線是以異步方式進行通信(一條數據輸入線,一條數據輸出線)。這些總線需 要兩條或者兩條以上的的信號線。但是 DS18B20 采用的單總線技術與桂林電子科技大學畢業設計(論文)報告用紙 第 9 頁 共 36 頁 上述的總線不同,它采用了單條信號線,既可傳輸時鐘,又可傳輸數據,而且數據傳輸是雙向的,因而這種單總線技術具有線路簡單,硬件開銷少,成本低廉,便于總線擴展和維護等優點。單總線使用與單主機系統,可以控制一個或多個從機設備。 圖 3-2 DS18B20 與微處理器典型連接電路 主機可以是微控制器,從機可以是單總線器件,它們之間的數據交換至通過一條信號線。當只有一個從機設備時,系統可按單節點系 統操作;當有多個從機設備時,系統則按多節點系統操作。本畢設單片機只是與一個 DS18B20 通信,如果要控制多個DS18B20 進行溫度采集,只要將所有 DS18B20 的 I/O 口全部接到一起就可以了。具體操作時,通過讀取每個 DS18B20 內部芯片的序列號來識別。 3.1.2 DS18B20 的工作原理和工作時序圖 單片機要讀出 DS18B20 的溫度數據,首先要知道控制 DS18B20 的指令。 33H-讀 ROM,讀 DS18B20 溫度傳感器 ROM 中的編碼( 64 位地址) 55H-匹配 ROM。發出此命令之后,接著發出 64 位 ROM 編碼,訪問單總線上與該編碼相對應的 DS18B20 并使之做出響應,為下一步對該 DS18B20 的讀 /寫作準備。 F0H-搜索 ROM。用于確定掛接在同一總線上 DS18B20 的個數,識別 64 位ROM 地址,為操作各器件做好準備。 CCH-跳過 ROM。忽略 64 位 ROM 地址,直接向 DS18B20 發溫度轉換命令,使用與一個從機工作。 ECH-告警搜索命令。執行后只有溫度超過設定值上限或下限的,芯片才做出響應。 ROM 的作用是使每個 DS18B20 都各不相同,這樣就可以實現一條總線上掛接多個 DS18B20 的 目的。當主機需要對眾多在線 DS18B20 中的某一個進行操作時,主機應先逐個與 DS18B20 掛接,讀出其序列號;然后再將所有的 DS18B20 掛接到總線上,單片機發出匹配 ROM 命令,緊接著主機提供的 64 位序列號之后的操作就是針對該DS18B20。 如果主機只對一個 DS18B20 進行操作,就不需要讀取 ROM 編碼和匹配,直接跳過ROM 命令,就可以進行溫度轉換和讀取。其操作如下 44H-溫度轉換。啟動 DS18B20 進行溫度轉換,結果存入 9 字節的 RAM 中。 桂林電子科技大學畢業設計(論文)報告用紙 第 10 頁 共 36 頁 BEH-讀暫存器。讀內部 RAM 中 9 字節的溫度數據。 4EH-寫暫存器。發出向內部 RAM 的第 2,3 字節寫上、下限溫度數據命令,緊跟該命令之后,是傳送兩字節數據。其他指令在這里就不做詳細介紹。 DS18B20 在出廠時默認配置為 12 位 ,其中最高位為符號位,即溫度值共 11 位,單片機在讀數據時,一次會讀兩字節共 16 位, 讀完后將低 11 位的二進制數轉化為十進制數后再乘以 0.0625 便為所測的實際溫度值。 另外,還需要判斷溫度的正負。前 5 個字符為符號位,這 5 位同時變化,我們只需要判斷 11 位就可以了。 前 5 位為 1 時,讀取的溫度為負值,且測到的數值需要取反加 1 再乘以 0.0625 才得到實際溫度值。 前 5 位為 0時,讀取溫度位為正值,只需要將數值乘 0.0625 即可。 下面是 DS18B20 的工作時序簡介 (1)初始化時序圖 圖 3-3 初始化時序圖 先將數據線置高電平 1。 延時(時間要求不是很嚴格,但 最好盡可能短 )。 數據線拉倒低電平 0。 延時 800s(時間可以在 480s960s 中選 ) 數據線拉高到電平 1。 延時等待。如果初始化成功則在 1560s 內產生一個由 DS18B20 返回的低電平0。這個可以確定它的 存在。 如果 CPU 讀到數據線上的低電平后,還要進行延時,時間從發出高電平算起不少于 480s。 將數據線再次拉到低電平后結束。 桂林電子科技大學畢業設計(論文)報告用紙 第 11 頁 共 36 頁 ( 2) DS18B20 的寫和讀數據 寫時序圖: 圖 3-4 DS18B20 讀時序圖 數據線先置低電平 0。 延時確定的時間為 15s。 按從低位到高位的順序發送數據 延時時間為 45s。 數據線拉倒高電平 1。 重復前面五步,直到發送完整一個字節。 最后將數據線拉高到 1。 讀時序圖: 圖 3-5 讀時序圖 桂林電子科技大學畢業設計(論文)報告用紙 第 12 頁 共 36 頁 圖 3-6 控制器讀 1 的詳細時序 圖 3-7 芯片資料推薦的控制器讀 1時序 結合上面 3-5,3-6, 3-7 圖,我們可以知道 將數據線拉高到 1。 延時 2s。 將數據線拉低到 0. 延時 5s。(時間大于 1s) 將數據線拉高到 1. 延時 4s。 讀數據線的狀態得到下一個狀態位,并進行數據處理。 延時 30s。 重復以上所有步驟,直到讀取完一個字節。 3.2 顯示模塊 3.2.1 數碼管簡介 桂林電子科技大學畢業設計(論文)報告用紙 第 13 頁 共 36 頁 為了顯示方便和節省成本,溫度的顯示我們采用共陰單位數碼管顯示。首 先簡單說明共陰數碼管的內部結構。如圖 3-8 圖 3-8 共陰數碼管內部結構 對于共陰數碼管來說,其 8 個發光二極管的陰極在數碼管內部是連接在一起的,而它們的陽極是獨立的,通常在設計電路時一般把陰極接地。當我們要顯示某個數時,按照共陰數碼管編碼表,對單片機相應的 I/O 口賦值就可以顯示相應的數字。例如我們要顯示 8,那就是除了 dp,其他七個發光二極管都亮。假如數碼管和單片機的連接 P0口。則 P0=0x7f,數碼管的各引腳排列可以通過萬用表測得。 圖 3-9 單位共陰數碼管引腳 一般的單位數碼管有 10 個引腳,就共陰單位數碼管來說,中間兩個對稱的引腳是相通的,既它們的共陰極。 桂林電子科技大學畢業設計(論文)報告用紙 第 14 頁 共 36 頁 圖 3-10 單片機與數碼管連接圖 如圖 3-10 數碼管的輸入端連接單片機的 P0 口,同時在 P0 口加上拉電阻。數碼管的 WX1, WX2,WX3 是它們的位選端,每個數碼管對應一個位選端,它們分別與 U3鎖存器的數據輸出端的低三位相連, U3 的數據輸入端也連接到單片機的 P0口。兩個鎖存器的鎖存端分別與單片機的 P2.6 和 P2.7 相連。因為用單片機可以控制鎖存器的鎖存端,進而控制鎖存器的數據輸出,這種分時控制的方法可以很方便的控制任意的數碼管顯示任意數字。當我們要用第一個數碼管顯示一個數字時,第二,第三個的位選就要關閉。即將數據從單片機的 I/O 口直接送到 U3 鎖存器的鎖存端一個高電平,然后將數據從單片機的 P0 口直接送出到鎖存器 U3 的數據輸出端,然后關閉 U3 的鎖存端。因為數碼管為共陰極,所以位選通時為低電平,位選關閉時為高電平,即只有 WX1 端對應數據為 0,其他都為 1。 3.2.2 74HC573 鎖存器的結構及原理 74HC573 鎖存器 是一種數字芯片。其引腳圖如下: OE 是三態允許輸出端,通常叫做輸出使能端。D0-D8 為數據輸入端, Q0-Q8 為數據輸出端; LE 為鎖存允許端。 表 3-1 74HC573 的真值表 INPUTS OUTPUT P 1 .01P 1 .12P 1 .23P 1 .34P 1 .45P 1 .56P 1 .67P 1 .78R S T9P 3 .0 /R X D10P 3 .1 /T X D11P 3 .2 /I N T 012P 3 .3 /I N T 113P 3 .4 /T 014P 3 .5 /T 115P 3 .6 /W R16P 3 .7 /R D17X T A L 218X T A L 119G N D20P 2 .021P 2 .122P 2 .223P 2 .324P 2 .425P 2 .526P 2 .627P 2 .728P S E N29A L E / P R O G30E A / V p p31P 0 .7 /A D 732P 0 .6 A D 633P 0 .5 /A D 534P 0 .4 /A D 435P 0 .3 /A D 336P 0 .2 /A D 237P 0 .1 /A D 138P 0 .0 /A D 039V c c40U1S T C 8 9 C 5 2X2X1V C C V C CD0D1D2D3D4D5D6D7E1D02D13D24D35D46D57D68D797Q126Q135Q144Q153Q162Q171Q180Q19L11G N D10V c c20U27 4 H C 5 7 3E1D02D13D24D35D46D57D68D797Q126Q135Q144Q153Q162Q171Q180Q19L11G N D10V c c20U37 4 H C 5 7 3V C CV C CD0D1D2D3D4D5D6D7W E L AW E 1W E 2W E 3D0D1D2D3D4D5D6D7D U L AabcdefghW E L AD U L AFMR X DT X D123456789P11 0 Kg1f2r3a4b5dp6c7v8d9e10abcdefg1g1f2r3a4b5dp6c7v8d9e10abcdefg2g1f2r3a4b5dp6c7v8d9e10abcdefg3e e ed d dc c ch h hb b ba a aW E 1 W E 2 W E 3f ffg g gV C CR S TC A S DC A S D桂林電子科技大學畢業設計(論文)報告用紙 第 15 頁 共 36 頁 OE LE D Q L H H H L H L L L L X Q0 H X X Z 圖 3-11 74HC573 引腳圖 由真值表可以看出,當 OE 為高電平時,無論 LE 與為何電平狀態,其輸出都是高阻態( Z)。這種情況下芯片是處于不可控狀態的,因此,我們將 OE 接低電平( L),即接地。當 OE 為低電平時,再結合 LE 端的輸入狀態,當 LE 端為高電平( H)時 , Q 端的狀態和 D 端的一樣。當 LE 為低電平時,無論 D 端的電平是什么, Q 端都保持上一次的數據狀態。 3.3 溫超報警模塊 溫度警報本畢設采用蜂鳴器進行報警,其電路如下圖 3-12 圖 3-12 蜂鳴器報警連接圖 圖中 PNP 三極管是采用了 S8550,它是一種普通的硅三極管,但是可以滿足蜂鳴器大電流的要求。可以采用 SS8550,聲音會更大些。 3.4 串口通信模塊 ( 1)通信有并行和串行兩種方式。在單片機系統以及現代單片機測控系統中,信息的交換多采用 串行通信方式。 相對于并行通信,串行通信的速度比較慢,這種方式所用的傳輸線少(例如二根),因而在通信時可降低成本,比較經濟。另外,它還可以借助于現存的電話網進行數據傳送,因此串行通信適合于遠距離且傳送速度要求不很高的通信。 串行通信有三種傳輸制式,這就是單工( Simplex)方式、半雙工( Half-Duplex) 和全雙工( Full-Duplex)方式。 單工。單工是指數據傳輸僅能沿一個方向,不能反向傳輸。 Q1P N PFMV C CR51KFMC 5 1桂林電子科技大學畢業設計(論文)報告用紙 第 16 頁 共 36 頁 半雙工。半雙工是指數據可以沿兩個方向, 但需要分時進行。 全雙工。全雙工是指數據可以同時進行雙向傳輸。 異步通信方式 :串行異步通信方式是以字符為單位進行傳輸的,異步通信所采用的數據格式是以一組可變 位數 的數組成的。第一位稱起始位,它的寬度為 1bit,低電平;接著傳送一個數據 5 8bit,以高電平為 1,低電平 為 0;也可有一位奇偶校驗位;后是停止位,寬度可以是 1bit、 1.5bit 或 2bit,在兩個數據位之間可有空閑位。 圖 3-13 異步通信的數據格式 同步通信協議 :在同步通信時所使用的數據格式根據控制規程常分為:面向字符及面向比特兩種。同步通信方式在每個數據前后不加起 始位和停止位,而是將數據順序連接起來,以一個數據塊為傳輸單位, 每個數據塊附加一個或二個同步字符,最后以校驗字符結束。串行通信的傳送速率:在串行通信中常用波特率( Band Rate)來表示數據傳送的速率。所謂傳輸率就是指每秒傳輸多少位,即波特率。國際上規定了一個標準波特率系列,標準波特率也是最常用的波特率。標準波特率系列 為 :110、 300、 600、 1200、 1800、2400、 4800、 9600 和 19200。 圖 3-14 同步通信傳輸格式 ( 2) 串口連接原理圖以及發送接 收原理 我們使用 MAX232 把 TTL 電平從 0V 和 5V 轉換到 3V 到 5V 或 -3V 到 -15V 之間。MAX232 包含兩路接收器和驅動器的 IC 芯片,它的內部有一個電源電壓變換器,可以把輸入的 +5V 電源電壓變換成 RS232 輸出電平所需的 +10V 電壓。如圖 3-15 桂林電子科技大學畢業設計(論文)報告用紙 第 17 頁 共 36 頁 如左圖,按照芯片手冊我們可以知道 C3、 C5、 C6、 C7 應取 0.1F/16V的電解電容,經過實驗和總結前人經驗,我們可以選用 0.1F 的非極性的瓷片電容代替電解電容。在布線時,這四個電容要盡量靠近 MAX232 芯片,以提高抗干擾能力。 MAX232 的 11 和12 引 腳分別連接單片機的 P3.1 和P3.0,這兩個發送和接收端口,MAX232 也可以使用 9 和 10 引腳作為一對發送和接收端口, 但是要注意組引腳要對應 。 TTL 電平從單片機的TXD 發出,經過 MAX232 轉換 RS232 圖 3-15 串口連接部分圖 平后從 MAX232 的 14 引腳 T1OUT 發出, 再連接到串口座的第 3 引腳,再經過隨機配送的交叉串口線后,連接到 PC 機的串口座的第 2 腳 RXD,這時候計算機就可以接收到數據了。 PC 機發送數據時從計算機的串口座的第 3 引腳 TXD 端發出的數據,再逆向流向單片機的 RXD 端即 P3.0 口接收數據。 4 軟件設計 4.1 系統整體設計 ( 1)如圖 4-1,主程序流程圖 主程序首先進行串口初始化,以及鎖存器鎖存端置低電平。然后 DS18B20 開始檢測溫度,見得到的溫度數據通過單總線傳輸到 51 單片 機,進行溫度處理,通過 I/O 即P0 口輸出到數碼管進行顯示。如果溫度超過設定范圍蜂鳴器將報警,同時加大制冷制熱的設備將會工作。溫度數據通過串口發送到上位機,實現了實時監控。 主程序 main() 初始化串口以及鎖存器控制端置低電平 溫度檢測 162738495J1 D B 9C 1 +1V+2C 1 -3C 2 -5C 2 +4V-6T 2 O U T7R 2 I N8R 2 O U T9T 2 IN10T 1 IN11R 1 O U T12R 1 I N13T 1 O U T14G N D15V c c16U4M A X 2 3 2T X DR X DC3 1 0 4V C CC41 0 4C51 0 4 / 0 . 1 u FC61 0 4C71 0 4桂林電子科技大學畢業設計(論文)報告用紙 第 18 頁 共 36 頁 圖 4-1 主程序流程圖 ( 2)主程序的 C 代碼如下 : void main()/主函數 uchar buff4,i; kz1=0; kz2=0; init_com(); while(1) tempchange();/溫度轉換函數 for(i=10;i0;i-) dis_temp(get_temp();/獲取溫度并顯示 deal(temp); /進行溫度處理 sprintf(buff,%f,f_temp);/將浮點型溫度格式化為字符型 獲取溫度并顯示 溫度顯示 串口發送數據 溫度顯示 溫度處理 溫超報警 開啟制冷 /制熱 桂林電子科技大學畢業設計(論文)報告用紙 第 19 頁 共 36 頁 for(i=10;i0;i-) dis_temp(get_temp();/溫度顯示 comm(buff); /串口發送數據 for(i=10;i0;i-) dis_temp(get_temp(); 4.2 溫度獲取并轉換 ( 1) 溫度獲取與轉換子程序流程圖,如圖 4-2 溫度獲取與轉換子程序 , C 源程序如下: void tempchange(void)/DS18B20 開始獲取溫度并轉換 dsreset(); delay(1); tempwritebyte(0xcc);/跳過讀 ROM 指令 tempwritebyte(0x44);/寫溫度裝換指 令 uint get_temp()/讀取寄存器中存儲的溫度數據 uchar a,b; 圖 4-2 溫度獲取與轉換子程序流程圖 桂林電子科技大學畢業設計(論文)報告用紙 第 20 頁 共 36 頁 dsreset(); delay(1); tempwritebyte(0xcc); tempwritebyte(0xbe); a=tempread();/讀低 8 位 b=tempread();/讀高 8 位 temp=b; temp=8;/兩個字節組合為一個字 temp=temp|a; f_temp=temp*0.0625;/溫度在寄存器中為 12 位,分辨率為 0.0625 temp=f_temp*10+0.5;/乘以 10 表示小數點后面只取 1 位,加 0.5 是四舍五入 f_temp=f_temp+0.05; return temp; 4.3 溫度控制 我們將檢測到的溫度數據對其進行 A/D 轉換并顯示,這并不是我們主要的目的,我們的目的是控溫。當空間溫度在 26 -28 范圍時,并不需要對被檢測空間進行熱量的交換。當被檢測空間溫度在 24 T26 時,系統將模擬開啟制熱設備,即 DBJ 亮,當空間溫度持續降低到 24 以下時,系統模擬加大制熱設備功率。如果被檢測空間溫度在28 T30 范圍時,系統將模擬開啟制冷設備,即 GBJ 亮,空間溫度持續上升超過 30時,系統會自動加大制冷功率。其程 序流程圖,如下圖 4-3 T24 24 T26 28 T30 DBJ、 DJD 亮,蜂鳴器急鳴 DBJ 亮,蜂鳴器慢鳴 GBJ 亮,蜂鳴器慢響 GBJ、 GDJ 亮,蜂鳴器急響 低溫報警 溫度控制 高溫報警 桂林電子科技大學畢業設計(論文)報告用紙 第 21 頁 共 36 頁 圖 4-3 溫度控制流程圖 其 C 程序代碼如下: void deal(uint t)/溫度控制函數 uchar i; if(twarn_l2)&(t=warn_l1)/大于 24度小于 26度 warn(40,0x01);/第一個亮,蜂鳴器發出“滴”聲 else if(t=warn_l2) warn(10,0x03); else if(t=warn_h1)/第一第二個燈亮。蜂鳴器發出“滴”聲 warn(40,0x04); else if(t=warn_h2) warn(10,0x0c); else /在 26度和 28 度之間時只是調用顯示函數延時 i=40; while(i-) dis_temp(get_temp(); 指示燈、蜂鳴器不工作 桂林電子科技大學畢業設計(論文)報告用紙 第 22 頁 共 36 頁 5 單片機與上位機通信 單片機與上位機通信的時候需要借助串口傳輸和接收信號,在我們做 PCB 板時候需要對串口進行調試,以確保其能正常通信。本畢設僅是采用 VB6.0 調用 MSComm 控件接收、處理和顯示溫度數據。在新建工程添加完 MSComm 控件和 TextBox 控件后,雙擊 【 TextBox】 控件在 Private Sub From_load()函數中增加如下代碼: MSComm1.Settings = 9600,N,8,1 波特率 9600bit/s,無校驗, 8 位數據, 1 位停止位 MSComm1.CommPort = 3 設定串口, 3 為 com3(視具體情況而定,我的是使用 com3) MSComm1.InBufferSize = 8 設置返回接受緩沖區的大小,以字符為單位 MSComm1.OutBufferSize = 2 If MSComm1.PortOpen = True Then MSComm1.PortOpen = False 關串口 MSComm1.RThreshold = 4 設置并返回產生 oncomm 事件的字符數,以字符為單位 Rthreshold 為 1,接收 緩沖區收到每一個字符都會產生 MSComm 控件產生 OnComm 事件 MSComm1.SThreshold = 1 MSComm1.InputMode = comInputModeText 以文本方式接收 If MSComm1.PortOpen = False Then MSComm1.PortOpen = True MSComm1.InBufferCount = 0 清空接收緩存區 Me.Caption = 溫度 編輯完以上代碼雙擊窗體內 MSComm 控件,在 Private Sub MSComm1_OnComm()函數中添加如下接收數據的代碼: Dim rec As String Select Case MSComm1.CommEvent Case comEvReceive rec = MSComm1.Input Text1.Text = rec MSComm1.InBufferCount = 0 清空緩存區 End Select 編輯完代碼后,按 F5 鍵,運行程序。 在文本框中顯示如下圖 5-1 桂林電子科技大學畢業設計(論文)報告用紙 第 23 頁 共 36 頁 圖 5-1 VB 顯示溫度數據效果圖 結論 本次畢設是以 51 單片機為基礎,采用 DS18B20 溫度傳感 器檢測溫度,數碼管顯示溫度以及通過串口與上位機通信用 VB 顯示溫度數據。經過努力,我終于完成了本次課題設計,在此期間,遇到了不少困難,但是通過動手查閱資料和努力思考最終還是將問題解決了,從而培養了我愛思考,愛動手的好習慣。本次課題的研究讓我對單片機有更深的認識,學到了很多細節上應該注意的問題。對系統程序流程有了更深入的了解。同時提高了我的編程能力。但是我經驗尚淺,設計中難免會有不足的地方,謹盼老師給予指點。我會不斷的去實踐,在邁向社會之前,我們要謙虛踏實敢于實踐,從中探究真理,不斷學習。 桂林電子科技大學畢業設計(論文)報告用紙 第 24 頁 共 36 頁 謝 辭 本畢業設計得以順利完成我要謝謝很多人的幫助。感謝我的指導老師宋老師的悉心指導。是他那嚴謹求實的教學作風、誨人不倦的耐心精神才使我的畢業設計順利完成,不積跬步無以至千里,所以我要更虛心的向老師學習,充實自我。為今后順利的開展工作打下良好的基礎,特別是對認識問題、分析問題、解決問題的能力有了大大的提高,自己收獲卻是很大。我有幸得到老師和學長的每一個階段的幫助和耐心指導,在此謹向所有老師特別是我的指導老師宋老師致以誠摯的謝意和崇高的敬意。 桂林電子科技大學畢業設計(論文)報告用紙 第 25 頁 共 36 頁 參考文獻 1 劉剛 . Protel DXP 2004 SP2 原理圖與 PCB 設計 (第 2 版 )M. 北京: 電子工業出版社 , 2011, 1. 2 李秀霞 . Protel DXP2004 電路設計與仿真教程 (第 2 版 )M. 北京: 北京航空航天大學出版社 , 2010, 8. 3 王冬 . Protel DXP 2004應用 100例 M. 北京 : 電子 工業出版社 , 2011, 1. 4 Liu Dan, Wang Yufeng. Digital Speed Measurement System in the Rubber Production Domain J. Sensor World. 2003, (4): 2831. 5 李學海 . PIC 單片機實用教程 -基礎篇 (第 2 版 ) M. 北京: 北京航空航天大學出版社 , 2007, 2. 6 李學海 . PIC 單片機實用教程:提高篇 (第 2 版 )M. 北京: 北京航空航天大學出版社 , 2007, 2. 7 丁躍軍 . PIC 單片機基礎教程 M. 北京: 北京航空航天大學出版社 , 2005, 7. 8 何橋 . 單 片機原理及應用 M. 北京: 中國鐵道出版社 , 2006, 7. 9 李榮正 . PIC 單片機初級教程 M. 北京: 北京航空航天大學出版社 , 2006, 3. 10 李中華 . 8 位單片機 C 語言編程:基于 PIC16M. 北京:人民郵電出版社 , 2006, 8. 桂林電子科技大學畢業設計(論文)報告用紙 第 26 頁 共 36 頁 附 錄 附錄 1 電路總原理圖 桂林電子科技大學畢業設計(論文)報告用紙 第 27 頁 共 36 頁 附錄 2 完整 C 程序代碼: P 1 .01P 1 .12P 1 .23P 1 .34P 1 .45P 1 .56P 1 .67P 1 .78R S T9P 3 .0 /R X D10P 3 .1 /T X D11P 3 .2 /I N T 012P 3 .3 /I N T 113P 3 .4 /T 014P 3 .5 /T 115P 3 .6 /W R16P 3 .7 /R D17X T A L 218X T A L 119G N D20P 2 .021P 2 .122P 2 .223P 2 .324P 2 .425P 2 .526P 2 .627P 2 .728P S E N29A L E / P R O G30E A / V p p31P 0 .7 /A D 732P 0 .6 A D 633P 0 .5 /A D 534P 0 .4 /A D 435P 0 .3 /A D 336P 0 .2 /A D 237P 0 .1 /A D 138P 0 .0 /A D 039V c c40U1S T C 8 9 C 5 2X2X1Y11 1 .0 5 9 2 MC12 0 p FC22 0 p FS1R C 11KR C 21 0 K+C J 11 0 u FV C CR S TV C C V C CD0D1D2D3D4D5D6D7G N D1I /O2V c c3T1D S 1 8 B 2 0E1D02D13D24D35D46D57D68D797Q126Q135Q144Q153Q162Q171Q180Q19L11G N D10V c c20U27 4 H C 5 7 3E1D02D13D24D35D46D57D68D797Q126Q135Q144Q153Q162Q171Q180Q19L11G N D10V c c20U37 4 H C 5 7 3V C CV C CD0D1D2D3D4D5D6D7W E L AW E 1W E 2W E 3D0D1D2D3D4D5D6D7D U L AabcdefghW E L AD U L AQ1P N PFMV C CR51KFMFMX1X2162738495J1 D B 9C 1 +1V+2C 1 -3C 2 -5C 2 +4V-6T 2 O U T7R 2 I N8R 2 O U T9T 2 IN10T 1 IN11R 1 O U T12R 1 I N13T 1 O U T14G N D15V c c16U4M A X 2 3 2R X DT X DT X DR X DC31 0 4V C CC41 0 4C51 0 4 / 0 . 1 u FC61 0 4C71 0 4123456789P11 0 K12345P21 0 Kg1f2r3a4b5dp6c7v8d9e10abcdefg1g1f2r3a4b5dp6c7v8d9e10abcdefg2g1f2r3a4b5dp6c7v8d9e10abcdefg3e e ed d dc c ch h hb b ba a aW E 1 W E 2 W E 3f ffg g gD B 1D B 2D B 3D B 4V C CR C 31 0 K+C T 14 7 u FD B 7V C C-4D13D22+1U S B 1U S BR11K253146S W 1V C CR S TC A S DC A S DV C C桂林電子科技大學畢業設計(論文)報告用紙 第 28 頁 共 36 頁 #include #include #define uchar unsigned char #define uint unsigned int sbit DQ=P22; sbit kz1=P26; sbit kz2=P27; sbit beep=P23; uint temp;/定義整型的溫度數據 float f_temp;/定義浮點型溫度數據 uint warn_l1=260;/定義溫度下限值 是溫度乘 10 以后的結果 uint warn_l2=240;/定義溫度下限值 uint warn_h1=280; uint warn_h2=300; sbit DBJ=P10; sbit DJD=P11; sbit GBJ=P12; sbit GJD=P13; unsigned char code table= 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,/帶小數點的共陰數碼管編碼 0-9 0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef;/不帶小數點的。 void delay(uint z) uint x,y; for (x=z;x0;x-) for(y=110;y0;y-); void dsreset(void)/DS1820 復位,初始化函數 uint i; DQ=0; i=103; while(i0)i-; 桂林電子科技大學畢業設計(論文)報告用紙 第 29 頁 共 36 頁 DQ=1; i=4; while(i0)i-; bit tempreadbit(void)/讀一位數據函數 uint i; bit dat; DQ=0; i+;/起延時作用 DQ=1; i+; i+; dat=DQ; i=8; while(i0)i-; return(dat); uchar tempread(void)/讀一個字節數據 uchar i,j,dat; dat=0; for(i=1;i=8;i+) j=t

溫馨提示

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

評論

0/150

提交評論