![畢業(yè)設(shè)計(論文)基于單片機的數(shù)字溫度計設(shè)計_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/20/634bb61d-6733-4980-9739-56ef1cd93d42/634bb61d-6733-4980-9739-56ef1cd93d421.gif)
![畢業(yè)設(shè)計(論文)基于單片機的數(shù)字溫度計設(shè)計_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/20/634bb61d-6733-4980-9739-56ef1cd93d42/634bb61d-6733-4980-9739-56ef1cd93d422.gif)
![畢業(yè)設(shè)計(論文)基于單片機的數(shù)字溫度計設(shè)計_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/20/634bb61d-6733-4980-9739-56ef1cd93d42/634bb61d-6733-4980-9739-56ef1cd93d423.gif)
![畢業(yè)設(shè)計(論文)基于單片機的數(shù)字溫度計設(shè)計_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/20/634bb61d-6733-4980-9739-56ef1cd93d42/634bb61d-6733-4980-9739-56ef1cd93d424.gif)
![畢業(yè)設(shè)計(論文)基于單片機的數(shù)字溫度計設(shè)計_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/20/634bb61d-6733-4980-9739-56ef1cd93d42/634bb61d-6733-4980-9739-56ef1cd93d425.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、摘要 溫度是一種最基本的環(huán)境參數(shù),人們生活與環(huán)境溫度息息相關(guān),在工 業(yè)生產(chǎn)過程中需要實時測量溫度,在工業(yè)生產(chǎn)中也離不開溫度的測量,因 此研究溫度的測量方法和控制具有重要的意義。 本論文介紹了一種以單片機12為主要控制器件,以 ds18b20345為 溫度傳感器的新型數(shù)字溫度計。主要包括硬件電路的設(shè)計和系統(tǒng)程序的設(shè) 計。硬件電路主要包括主控制器,測溫控制電路和顯示電路等,主控制器 采用單片機 stc89c52,溫度傳感器采用美國 dallas 半導(dǎo)體公司生產(chǎn)的 ds18b20,顯示電路采用 8 位共陰極 led 數(shù)碼管6,74hc5957為驅(qū)動的動 態(tài)掃描直讀顯示。系統(tǒng)程序主要包括主程序,測溫子
2、程序和顯示子程序等。 ds18b20 新型單總線數(shù)字溫度傳感器是 dallas 公司生產(chǎn)的單線數(shù)字溫度 傳感器,集溫度測量和 a /d 轉(zhuǎn)換于一體 ,直接輸出數(shù)字量,具有接口簡單、 精度高、抗干擾能力強、工作穩(wěn)定可靠等特點。 由于采用了改進型智能溫度傳感器 ds18b20 作為檢測元件,與傳統(tǒng)的 溫度計相比,本數(shù)字溫度計減少了外部的硬件電路,具有低成本和易使用 的特點。ds18b20 溫度計還可以在高溫報警、遠距離多點測溫控制等方面 進行應(yīng)用開發(fā),具有很好的發(fā)展前景。此外,還介紹了系統(tǒng)的調(diào)試和性能 分析。 關(guān)鍵詞:單片機關(guān)鍵詞:單片機;stc89c52;stc89c52;溫度傳感器溫度傳感器;
3、ds18b20;ds18b20;單總線單總線 the design of ds18b20 digit thermometer abstract temperature is a basic parameters of the environment, peoples lives and the environment are closely related to temperature. in the course of industrial production immediate need for temperature measurement in industrial producti
4、on has to do with temperature measurement, the study of the temperature measurement and control is of great significance. the paper introduced one kind new digital thermometer that take the micro controller unit as the primary control component and take ds18b20 as the temperature sensor. mainly incl
5、uded the design of the hardware electric circuit and the design of the system program .the hardware electric circuit mainly included the master controller, the temperature measured electric circuit and the display circuit and so on, the master controller used micro controller unit stc89c52, the temp
6、erature sensor used ds18b20 which the american dallas semiconductor company produces, the display circuit used 8 altogether anodes led numerical code tube by the dynamic scanning method straight to read the demonstration.uln2803a- driven dynamic scan showed straight time. temperature control circuit
7、 from temperature sensors and preset temperature value compared alarm circuit components, when measured temperature greater than preset temperature value, issued warning signal that the bright light emitting diodes. the system program mainly included the master routine, the temperature subroutine, t
8、he data renovates subroutine and so on. ds18b20 is a digital temperature sensor of single bus .it is producted by dallas cooperation . ds18b20 assembles temperature measure and a /d converter, exports digital signal directly, operation easily, better precise, protecting disturb, running steably and
9、so on. becausused the advanced version intelligence temperature sensor ds18b20 as the examine part, compared with the traditional thermometer, this digital thermometer reduced the exterior hardware electric circuit, has characteristic that the low cost and was easy to use. the ds18b20 thermometer al
10、so may used to the high temperature warning, the long-distance range multi- spots temperature measured aspect and so on temperature control carries on the application development, has the very good prospects for development. in addition, introduced the system debugging and the performance analysis.
11、keywords: microcontroller unit ; stc89c52; temperature sensor; ds18b20; 1-wire 目錄目錄 摘要 i abstract .ii 第一章 設(shè)計任務(wù)及方案分析 .1 1.1 設(shè)計任務(wù)及要求.1 1.2 設(shè)計總體方案及方案論證.1 1.3 溫度測量的方案與分析.1 1.31 芯片選擇 .1 1.32 實現(xiàn)方法簡介 .2 1.33 方案設(shè)計 .2 第二章 芯片簡介 .4 2.1 stc89c52 芯片簡介 .4 2.11 引腳功能說明 .4 2.2 ds18b20 簡介 .7 2.21 芯片簡介 .7 2.22 ds18b20
12、 外形和內(nèi)部結(jié)構(gòu).8 2.24 ds18b20 的工作時序.11 2.25 ds18b20 與單片機的典型接口設(shè)計.12 226 ds18b20 的各個 rom 命令 .13 2.3 74hc595 簡介.15 2.31 芯片簡介 .15 2.32 74hc595 特點:.15 2.33 引腳圖及各引腳功能.16 第三章 系統(tǒng)硬件電路的設(shè)計 .17 3.1 主控制電路和測溫控制電路原理圖 .17 3.2 驅(qū)動電路與顯示電路模塊原理圖 .17 第四章 軟件編程與功能調(diào)試 .19 4.2 系統(tǒng)軟件設(shè)計.19 4.2.1 系統(tǒng)軟件設(shè)計整體思路.19 4.2.2 系統(tǒng)程序流圖 .20 4.3 系統(tǒng)的程
13、序.23 第四章 仿真分析與實物制作 .51 4.1 protues 軟件簡介 .51 4.2 實物制作.51 第五章 總結(jié) .52 致謝 .53 第一章 設(shè)計任務(wù)及方案分析 1.1 設(shè)計任務(wù)及要求 設(shè)計一個以單片機為核心的溫度測量系統(tǒng),可實現(xiàn)的功能為: (1)測量溫度值精度為1。 (2)系統(tǒng)允許的誤差范圍為 1以內(nèi)。 (3)系統(tǒng)可由用戶預(yù)設(shè)溫度值,測溫范圍為55125。 1.2 設(shè)計總體方案及方案論證 在日常生活及工農(nóng)業(yè)生產(chǎn)中經(jīng)常要用到溫度的檢測及控制,傳統(tǒng)的測溫元 件有熱電偶和熱點阻。而熱電偶和熱電阻測出的一般都是電壓,再轉(zhuǎn)換成對應(yīng) 的溫度,需要比較多的外部硬件支持,硬件電路復(fù)雜,軟件調(diào)試
14、復(fù)雜,制作成 本高。 本數(shù)字溫度計設(shè)計采用美國 dallas 半導(dǎo)體公司繼 ds18b20 之后推出的 一種改進智能溫度傳感器 ds18b20 作為檢測元件,測溫范圍為 55125,最大分辨率可達 0.0625。ds18b20 可以直接讀出被測量 的溫度值,而采用 3 線制與單片機相連,減少了外部的硬件電路,具有低成本 和易使用的特點。 按照系統(tǒng)設(shè)計功能的要求,確定系統(tǒng)由 5 個模塊組成:主控制器 stc89c52,溫度傳感器 ds18b20,驅(qū)動顯示電路。數(shù)字溫度計總體電路框圖 如圖 1-1 所示。 圖 1-1 總體電路圖 ds18b20 傳感器 顯示電 路 stc89c52 1.3 溫度測
15、量的方案與分析 1.31 芯片選擇 本設(shè)計的測溫系統(tǒng)采用芯片 ds18b20, ds18b20 是 dallas 公司的最新 單線數(shù)字溫度傳感器,它的體積更小、適用電壓更寬、更經(jīng)濟,ds18b20 是世 界上第一片支持“一線總線”接口的溫度傳感器,具有一線總線獨特而且經(jīng)濟 的特點。采用智能溫度傳感器 ds18b20 作為檢測元件,測溫范圍為 55125,最大分辨率可達 0.0625。ds18b20 可以直接讀出被測量 的溫度值,而且采用 3 線制與單片機相連,減少了外部的硬件電路,具有低成 本和易使用的特點。 1.32 實現(xiàn)方法簡介 ds18b20 采用外接電源方式工作,一線測溫的一線與 st
16、c89c5289的 p3.7 連并加上上拉電阻使其工作,測出的數(shù)據(jù)存放在寄存器 10h-12h 中,將數(shù)據(jù) 經(jīng)過 bcd 碼轉(zhuǎn)換后送 led 顯示。具體實現(xiàn)步驟見軟件設(shè)計章節(jié)。 1.控制部分 單片機 stc89s52 具有低電壓供電和體積小等特點,四個端口只需要兩個口 就能滿足電路系統(tǒng)的設(shè)計需要,很適合便攜手持式產(chǎn)品的設(shè)計使用,系統(tǒng)應(yīng)用 三節(jié)電池供電。 2. 顯示部分 顯示電路采用 6 位共陰 7 段 led 數(shù)碼管,采用 74hc595 移位寄存器進行驅(qū) 動,其中一個數(shù)碼管顯示通道數(shù),另外 5 個數(shù)碼管顯示該通道的溫度值,實現(xiàn) 實時 測量。 3. 溫度采集部分 ds18b20 溫度傳感器是美
17、國 dallas 半導(dǎo)體公司最新推出的一種改進型智 能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫。這 一部分主要完成對溫度信號的采集和轉(zhuǎn)換工作,由 ds18b20 數(shù)字溫度傳感器及 其與單片機的接口部分組成。數(shù)字溫度傳感器 ds18b20 把采集到的溫度通過數(shù) 據(jù)引腳傳到單片機的 p1.0 口,單片機接受溫度并存儲。此部分只用到 ds18b20 和單片機,硬件很簡單方案設(shè)計 。 1.33 方案設(shè)計 方案一: p1.0-p1.7 各與一個 ds18b20 相連,實現(xiàn) 8 通道自動溫度檢測系 統(tǒng);其中一個數(shù)碼管顯示通道號,另外五個顯示溫度。 方案二:p2.5 與兩個 ds18b
18、20 相連,p2.6 與另外兩個 ds18b20 相連。用 一個開關(guān)顯示不同通道的溫度。其中顯示部分用 max72191011驅(qū)動 8 個數(shù)碼 管。方案比較:雖然方案二硬件系統(tǒng)比較簡單,但是軟件部分比較復(fù)雜。另外 鑒于現(xiàn)在的水平,故選擇比較簡單的方案一。 第二章 芯片簡介 2.1 stc89c52 芯片簡介 stc89c52 是美國 atmel 公司生產(chǎn)的低電平,高性能 cmos 8 位單片機,片 內(nèi)含 8k bytes 的可反復(fù)擦寫的只讀程序存儲器(perom)和 256 bytes 的隨機存取 數(shù)據(jù)存儲器(ram ),器件采用 atmel 公司的高密度、非易失性存儲技術(shù)生產(chǎn), 與標準 mc
19、s-51 指令系統(tǒng)及 8052 產(chǎn)品引腳兼容,片內(nèi)置通用 8 位中央處理器 (cpu)和 flash 存儲單元,32 個可編程 i/o 口線, 3 個 16 位定時/計數(shù)器, 低 功耗空閑和掉電模式。功能強大的 stc89c52 單片機適合于許多較為復(fù)雜控制 應(yīng)用場合。 2.11 引腳功能說明 (1)vcc:電源電壓 (2)gnd:地 (3) p0 口:p0 口是一組 8 位漏極開路型雙向 i/o 口,也即地址/數(shù)據(jù)總線復(fù) 用口。作為輸出口用時,每位能吸收電流的方式驅(qū)動 8 個 ttl 邏輯門電路,對 端口 p0 寫“1”時可作為高阻抗輸入端用。 在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分
20、時轉(zhuǎn)換地址(低 8 位) 和數(shù)據(jù)總線復(fù)位,在訪問期間激活內(nèi)部上拉電阻。 (4)p1 口:p1 是一個帶內(nèi)部上拉電阻的 8 位雙向 i/o 口,p1 的輸出緩沖級可 驅(qū)動(吸收或輸出電流)4 個 tte 邏輯門電路。對端口寫“1” ,通過內(nèi)部的上拉 電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內(nèi)部存在上 拉電阻,某個引腳被外部信號拉低時會輸出一個電流(ill)。 與 at89c51 不同之處是,p1.0 和 p1.1 還可分別作為定時/計數(shù)器 2 的外部 計數(shù)輸入(p 1.0/t2)和輸入(p 1.1/t2ex ),參見表 4-1。 flash 編程和程序校驗期間,p1 接收低 8
21、 位地址。 表 2-1 p1.0 和 p1.1 的第二功能 引 腳 號 功能特性 p1.0 t2(定時/計數(shù)器 2 外部計數(shù)脈沖輸入) ,時鐘輸出 p1.1 t2ex(定時/計數(shù) 2 捕獲/重裝載觸發(fā)和方向控制) (5)p2 口:p2 是一個帶有內(nèi)部上拉電阻的 8 位雙向 i/o 口,p2 的輸出緩沖級 可驅(qū)動(吸收或輸出電流)4 個 ttl 邏輯門電路。對端口 p2 寫“1” ,通過內(nèi)部的 上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內(nèi)部存 在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(ill)。 在訪問外部程序存儲器或 16 位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行 mov
22、x dptr 指令)時,p2 口送出高 8 位地址數(shù)據(jù)。在訪問 8 位地址的外部數(shù)據(jù)存儲 器(如執(zhí)行 movx ri 指令)時,p2 口輸出 p2 鎖存器的內(nèi)容。 (6)p3 口:p3 口是一組帶有內(nèi)部上拉電阻的 8 位雙向 i/o 口。p3 口輸出緩沖 級可驅(qū)動(吸收或輸出電流)4 個 ttl 邏輯門電路。對 p3 口寫入“1”時,它們 被內(nèi)部上拉電阻拉高并可作為輸入端口。此時,被外部拉低的 p3 口將用上拉 電阻輸出電流(ill)。 p3 口除了作為一般的 i/o 口線外,更重要的用途是它的第二功能,如表 4- 2 所示。 (7)rst:復(fù)位輸入。當振蕩器工作時,rst 引腳出現(xiàn)兩個機器周
23、期以上高 電平將使單片機復(fù)位。 表 2-2 p3 口的第二功能 端口引 腳 第二功能 p3.0 rxd(串行輸入口) p3.1 txd(串行輸出口) p3.2 (外中斷 0)int0 p3.3 (外中斷 1)int1 p3.4 t0(定時/計數(shù) 0) p3.5 t1(定時/計數(shù) 1) p3.6 (外部數(shù)據(jù)存儲器寫選通)wr p3.7 (外部數(shù)據(jù)存儲器讀選通)rd (8)/vpp:外部訪問允許。欲使 cpu 僅訪問外部程序存儲器(地址為 0000h-ea ffffh ) 。端必須保持低電平(接地)。需注意的是:如果加密位 lb1 被編程,ea 復(fù)位時內(nèi)部會鎖存端狀態(tài)。ea 如端為高電平(接 vc
24、c 端),cpu 則執(zhí)行內(nèi)部程序存儲器中的指令。ea flash 存儲器編程時,該引腳加上+12v 的編程允許電源 vpp,當然這必須 是該器件是使用 12v 編程電壓 vcc 。 (9)xtal1: :振蕩器反相放大器的及內(nèi)部時鐘發(fā)生器的輸入端。 (10)xtal2:振蕩器反相放大器的輸出端。 (11)數(shù)據(jù)存儲器: stc89c52 有 256 個字節(jié)的內(nèi)部 ram,80h-ffh 高 128 個字節(jié)與特殊功能寄存 器(sfr)地址是重疊的,也就是高 128。 字節(jié)的 ram 和特殊功能寄存器的地址是相同的,但在物理上它們是分開的。 當一條指令訪問 7fh 以上的內(nèi)部地址單元時,指令中使用的
25、尋址方式是不 同的,也即尋址方式?jīng)Q定是訪問高 128 字節(jié)。 ram 還是訪問特殊功能寄存器。如果指令是直接尋址方式則為訪問特殊功 能寄存器。 (12)中斷: stc89c52 共有 6 個中斷向量:兩個外中斷(int0 和 int1) ,3 個定時器中 斷(定時器 0, 1, 2)和串行口中斷。 (13)時鐘振蕩器: stc89c52 中有一個用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳 xtal1 和 xtal2 分別是該放大器的輸入端和輸出端。 這個放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構(gòu)成自激振 蕩器,振蕩電路參見圖 4-1(a)圖所示。 外接石英晶體(或陶瓷諧振器)及電容
26、c1、c2 接在放大器的反饋回路中 構(gòu)成并聯(lián)振蕩電路,對外接電容 c1、c2 雖然沒有十分嚴格的要求,但電容容 量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程度 及溫度穩(wěn)定性,如果使用石英晶體,我們推薦電容使用 30pf 士 10pf,而如果 使用陶瓷諧振器,建議選擇 40pf 士 l0pf。 (14) 單片機最小系統(tǒng) 要想使單片機正常工作單片機最少包含的部分。如下圖: 圖 2-1:最小系統(tǒng) 2.2 ds18b20 簡介 2.21 芯片簡介 (1) 適應(yīng)電壓范圍更寬,電壓范圍:3.0 v5.5v,在寄生電源方式下可由 數(shù)據(jù)線供電。 (2) 獨特的單線接口方式,ds18b20
27、 在與微處理器連接時僅需要一條口線即 可實現(xiàn)微處理器與 ds18b20 的雙向通訊。 (3) ds18b20 在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成 在形如一只三極管的集成電路內(nèi)。 (4) 測溫范圍55125,在-10+85時精度為0.5。 (5) 可編程的分辨率為 912 位,對應(yīng)的可分辨溫度分別為 0.5、0.25、 0.125和 0.0625,可實現(xiàn)高精度測溫。 (6) 在 9 位分辨率時最多在 93.75ms 內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12 位分辨率時最 多在 750ms 內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快。 (7) 測量結(jié)果直接輸出數(shù)字溫度信號,以“一線總線”串行傳送給 cpu
28、,同 時可傳送 crc 校驗碼,具有極強的抗干擾糾錯能力。 (8) 負壓特性:電源極性接反時,芯片不會因發(fā)熱而燒毀,但不能正常工作。 2.22 ds18b20 外形和內(nèi)部結(jié)構(gòu) ds18b20 內(nèi)部結(jié)構(gòu)如圖 2-2 所示,主要由 4 部分組成:64 位 rom、溫度傳 感器、非揮發(fā)的溫度報警觸發(fā)器 th 和 tl、配置寄存器。ds18b20 的外形及管 腳排列如 2-3 及引腳定義如表 2-1. 圖 2-2 ds18b20 內(nèi)部結(jié)構(gòu) c i/o vdd 圖 2-3 ds18b20 的管腳排列 64 位 rom 和單線 接 口 高速緩存 存儲器 存儲器和控制器 8 位 crc 生成器 溫度傳感器
29、低溫觸發(fā)器 tl 高溫觸發(fā)器 th 配置寄存器 電 源 檢 測 表 2-1 ds18b20 引腳定義: 序號名稱引腳功能描述 1gnd 地信號 2dq 數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引腳。當被用 著在寄生電源下,也可以向器件提供電源。 3vdd 可選擇的 vdd 引腳。當工作于寄生電源時,此引腳必 須接地。 (1) 64 位 rom rom 中的 64 位序列號是出廠前被光刻好的,它可以看作是該 ds18b20 的地 址序列碼,每個 ds18b20 的 64 位序列號均不相同。64 位 rom 的循環(huán)冗余校驗 碼。rom 的作用是使每一個 ds18b20 中的溫度傳感器完成對溫度的測量,用
30、 16 位符號擴展的二進制補碼讀數(shù)形式提供,以 0.0625/lsb 形式表達,其中 s 為 符號位。ds18b20 溫度格式表 2-2 如下所示。 這是 12 位轉(zhuǎn)化后得到的 12 位數(shù)據(jù),存儲在 ds18b20 的兩個 8 比特的 ram 中,二進制中的前面 5 位是符號位,如果測得的溫度大于 0,這 5 位為 0,只 要將測到的數(shù)值乘于 0.0625 即可得到實際溫度;如果溫度小于 0,這 5 位為 1,測到的數(shù)值需要取反加 1 再乘于 0.0625 即可得到實際溫度。例如 25.0625的數(shù)字輸出為 0191h,25.0625的數(shù)字輸出為 ff6fh。 表 2-2 ds18b20 溫度
31、值格式表 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 ls byte 2 3 2 2 212 0 2 1 2 2 2 3 2 4 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 ms byte s ssss 2 6 2 5 2 4 (2)高低溫報警觸發(fā)器 th 和 tl ds18b20 溫度傳感器的內(nèi)部存儲器包括一個高速暫存 ram 和一個非易失性 的可電擦除的 eepram,后者存放高溫度和低溫度觸發(fā)器 th、tl 和結(jié)構(gòu)寄存器。 (3)配置寄存器 該字節(jié)各位的意義如下表 2-3 所示。 表 2-3:配置寄存器結(jié)
32、構(gòu) tmr1r011111 低五位一直都是“1”,tm 是測試模式位,用于設(shè)置 ds18b20 在工作模式 還是在測試模式。在 ds18b20 出廠時該位被設(shè)置為 0,用戶不要去改動。r1 和 r0 用來設(shè)置分辨率,如下表 4-6 所示(ds18b20 出廠時被設(shè)置為 12 位)。 (4)高速暫存器是一個 9 字節(jié)的存儲器。開始兩個字節(jié)包含被測溫度的數(shù)字 量信息;第 3、4、5 字節(jié)分別是 th、tl、配置寄存器的臨時拷貝,每一次上電 復(fù)位時被刷新;第 6、7、8 字節(jié)未用,表現(xiàn)為全邏輯 1;第 9 字節(jié)讀出的是前 面所有 8 個字節(jié)的 crc 碼,可用來保證通信正確。高速暫存器 ram 結(jié)構(gòu)
33、圖如下 表 2-4 所示。 表 2-4: 溫度分辨率設(shè)置表 r1r0 分辨率溫度最大轉(zhuǎn)換時間 00 9 位 93.75ms 01 10 位 187.5ms 10 11 位 375ms 11 12 位 750ms 2.24 ds18b20 的工作時序 ds18b20 的一線工作協(xié)議流程是:初始化rom 操作指令存儲器操作指 令數(shù)據(jù)傳輸。其工作時序包括初始化時序、寫時序如圖 2-4 (a)(b)所 3 示。 表 2-5: ds18b20 暫存寄存器分布 寄存器內(nèi)容 字節(jié)地址 溫度值低位 (ls byte) 0 溫度值高位 (ms byte) 1 高溫限值(th) 2 低溫限值(tl) 3 配置寄存
34、器 4 保留 5 保留 6 保留 7 crc 校驗值 8 圖 2-4(a)初始化時序 ds18b20 等待 ds18b20tx 產(chǎn) 生 15us16us 脈沖 60-240 主機復(fù)位脈沖 vcc 480ustx960us 主機 rx min480us 1-wire bus gnd 主機控制 ds18b20 完成任何操作之前必須先初始化,即主機發(fā)一復(fù)位脈沖 (最短為 480us 的低電平),接著主機釋放總線進入接收狀態(tài),ds18b20 在檢測 到 i/o 引腳上的上升沿之后,等待 15-60us 然后發(fā)出存在脈沖(60-240us 的低 電平)。 寫時間片:將數(shù)據(jù)從高電平拉至低電平,產(chǎn)生寫起始信
35、號。在 15us 之內(nèi) 將所需寫的位送到數(shù)據(jù)線上,在 15us 到 60us 之間對數(shù)據(jù)線進行采樣,如果采 樣為高電平,就寫 1,如果為低電平,寫 0 就發(fā)生。在開始另一個寫周期前必 須有 1us 以上的高電平恢復(fù)期。 讀時間片:主機將數(shù)據(jù)線從高電平拉至低電平 1us 以上,再使數(shù)據(jù)線升為 高電平,從而產(chǎn)生讀起始信號。主機在讀時間片下降沿之后 15us 內(nèi)完成讀位。 每個讀周期最短的持續(xù)期為 60us,各個讀周期之間也必須有 1us 以上的高電平 恢復(fù) 圖 2-4(b)寫時序 主機寫“0”時隙 主機寫“1”時隙 vcc 60ustx120us 1ustxcc25mhz 2. 標準串行(spi)
36、接口 3. cmos 串行輸出,可用于多個設(shè)備的級聯(lián) 4. 低功耗:ta =25時,icc=4a(max) 2.33 引腳圖及各引腳功能 表 2-6 引腳功能 管腳編號管腳名管腳定義功能 1,2,3,4, 5,6,7,15 qa-qh 三態(tài)輸出管腳 8,16gnd,vcc 電源地,電源端 9,10sqh,sclr 串行數(shù)據(jù)輸出管腳 , 清零端 11sck 數(shù)據(jù)輸入時鐘線 12rck 數(shù)據(jù)輸出時鐘線 13oe 輸出使能 14si 數(shù)據(jù)線 第三章 系統(tǒng)硬件電路的設(shè)計 3.13.1 主控制電路和測溫控制電路原理圖111213 主控制電路由 stc89c52 及外圍元件構(gòu)成,測溫電路由 ds18b20
37、。stc89c52 是此硬件電路設(shè)計的核心,通過 stc89c52 的管腳 p10-p17 與 8 個 ds18b20 相 連,控制溫度的讀出和顯示。6 個數(shù)碼管與單片機的 p1 口相連,其中數(shù)碼管 1 顯示通道數(shù),其他數(shù)碼管顯示這一通道所在的溫度值,從而實現(xiàn) 8 通道實時顯 示功能。硬件電路的功能都是與軟件編程相結(jié)合而實現(xiàn)的。具體電路原理圖如 下圖 3-1 所示。 圖 3-1 主控制電路和測溫控制電路原理圖 3.2 驅(qū)動電路與顯示電路模塊原理圖 驅(qū)動電路由 74hc595 組成,通過網(wǎng)絡(luò)標號 p00-p07 與單片機相連,通過 網(wǎng)絡(luò)標號與顯示電路數(shù)碼管相連,實現(xiàn)位控制功能。具體電路如下圖 3
38、-2 所示。 顯示部分由 6 個數(shù)碼管組成,其中一個數(shù)碼管顯示通道數(shù),另外 5 個數(shù) 碼管顯示該通道的溫度,并且這 5 個數(shù)碼管分別和 74hc595 的輸出端相連。從 而達到實時顯示的目的。 圖 3-2 驅(qū)動電路與顯示原理圖 第四章 軟件編程與功能調(diào)試 4.2 系統(tǒng)軟件設(shè)計1415 4.2.1 系統(tǒng)軟件設(shè)計整體思路 一個應(yīng)用系統(tǒng)要完成各項功能,首先必須有較完善的硬件作保證。同時還 必須得到相應(yīng)設(shè)計合理的軟件的支持,尤其是微機應(yīng)用高速發(fā)展的今天,許多 由硬件完成的工作,都可通過軟件編程而代替。甚至有些必須采用很復(fù)雜的硬 件電路才能完成的工作,用軟件編程有時會變得很簡單,如數(shù)字濾波,信號處 理等
39、。因此充分利用其內(nèi)部豐富的硬件資源和軟件資源,采用與 s51 系列單片 機相對應(yīng)的 51 匯編語言和結(jié)構(gòu)化程序設(shè)計方法進行軟件編程。 程序設(shè)計語言16有三種:機器語言、匯編語言和高級語言。機器語言是機 器唯一能“懂”的語言,用匯編語言或高級語言編寫的程序(稱為源程序)最 終都必須翻譯成機器語言的程序(成為目標程序) ,計算機才能“看懂” ,然后 逐一執(zhí)行。 高級語言是面向問題和計算過程的語言,它可通過于各種不同的計算機, 用戶編程時不必仔細了解所用的計算機的具體性能與指令系統(tǒng),而且語句的功 能強,常常一個語句已相當于很多條計算機指令,于是用高級語言編制程序的 速度比較快,也便于學習和交流,但是
40、本系統(tǒng)卻選用了匯編語言。原因在于, 本系統(tǒng)是編制程序工作量不大、規(guī)模較小的單片機微控制系統(tǒng),使用匯編語言 可以不用像高級語言那樣占用較多的存儲空間,適合于存儲容量較小的系統(tǒng)。 同時,本系統(tǒng)對位處理要求很高,需要解決大量的邏輯控制問題。 mcs51 指令系統(tǒng)的指令長度較短,它在存儲空間和執(zhí)行時間方面具有較 高的效率,編成的程序占用內(nèi)存單元少,執(zhí)行也非常的快捷,與本系統(tǒng)的應(yīng)用 要求很適合。而且 mcs51 指令系統(tǒng)有豐富的位操作(或稱位處理)指令,可 以形成一個相當完整的位操作指令子集,這是 mcs51 指令系統(tǒng)主要的優(yōu)點之 一。對于要求反應(yīng)靈敏與控制及時的工控、檢測等實時控制系統(tǒng)以及要求體積 小
41、、系統(tǒng)小的許多“電腦化”產(chǎn)品,可以充分體現(xiàn)出匯編語言簡明、整齊、執(zhí) 行時間短和易于使用的特點。 本裝置的軟件包括主程序、讀出溫度子程序、復(fù)位應(yīng)答子程序、寫入子程 序、以及有關(guān) ds18b20 的程序(初始化子程序、寫程序和讀程序) 4.2.2 系統(tǒng)程序流圖 系統(tǒng)程序17主要包括主程序,讀出溫度子程序,復(fù)位應(yīng)答子程序,寫入子 程序等。 1)主程序 主程序的主要功能是負責溫度的實時顯示、讀出并處理 ds18b20 的測量的 當前溫度值,溫度測量每 1s 進行一次。這樣可以在一秒之內(nèi)測量一次被測溫度, 其程序流程見圖 4-1 所示。 通過調(diào)用讀溫度子程序把存入內(nèi)存儲中的整數(shù)部分與小數(shù)部分分開存放在不
42、同 的兩個單元中,然后通過調(diào)用顯示子程序顯示出來圖 4-1 主程序流程圖 開始 調(diào)用溫度子程 序 數(shù)字溫度變換 程序 顯示子程序 圖 4-2 讀出溫度子程序 2)讀出溫度子程序 讀出溫度子程序的主要功能是讀出 ram 中的 9 字節(jié),在讀出時需進行 crc 校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫。 ds18b20 的各個命令對時序的要求特別嚴格,所以必須按照所要求的時序才能 達到預(yù)期的目的,同時,要注意讀進來的是高位在后低位在前,共有 12 位數(shù), 小數(shù) 4 位,整數(shù) 7 位,還有一位符號位。 3)復(fù)位、應(yīng)答子程序 圖 4-3 復(fù)位、應(yīng)答子程序 跳過 rom 匹配命令 寫入子程序 溫度轉(zhuǎn)換命令
43、顯示子程序(延時) 寫入子程序 寫入子程序 ds18b20 復(fù)位、應(yīng)答子程 序 ds18b20 復(fù)位、應(yīng)答子程 序 跳過 rom 匹配命令 讀溫度命令子程序 終 止 4)寫入子程序 圖 4-4 寫入子程序 開始 p1.0 口清 0 延時 537us p1.0 口置 1 標志位置 1 50us 是否有低電 平 有 234us 低電 平 p1.0 口置 1 終止 標志位置 1 是 否 4.3 系統(tǒng)的程序 clr p3.7 main:mov 38h,#00h mov 39h,#00h mov 3ah,#00h mov 3bh,#00h lcall get_temper lcall temprro m
44、ov p2,#06h lcall pro ;- 進位 c 清 0 p1.0 清 0 延時 12us 帶進位右移 延時 46us p1.0 置 0 r2 是否為 0 終止 開始 mov 38h,#00h mov 39h,#00h mov 3ah,#00h mov 3bh,#00h lcall get_temper2 lcall temprro mov p2,#5bh lcall pro ;- mov 38h,#00h mov 39h,#00h mov 3ah,#00h mov 3bh,#00h lcall get_temper3 lcall temprro mov p2,#4fh lcall p
45、ro ;- mov 38h,#00h mov 39h,#00h mov 3ah,#00h mov 3bh,#00h lcall get_temper4 lcall temprro mov p2,#66h lcall pro ;- mov 38h,#00h mov 39h,#00h mov 3ah,#00h mov 3bh,#00h lcall get_temper5 lcall temprro mov p2,#6dh lcall pro ;- mov 38h,#00h mov 39h,#00h mov 3ah,#00h mov 3bh,#00h lcall get_temper6 lcall
46、temprro mov p2,#7dh lcall pro ;- mov 38h,#00h mov 39h,#00h mov 3ah,#00h mov 3bh,#00h lcall get_temper7 lcall temprro mov p2,#07h lcall pro ;- mov 38h,#00h mov 39h,#00h mov 3ah,#00h mov 3bh,#00h lcall get_temper8 lcall temprro mov p2,#7fh lcall pro ljmp main ;=chl1 get_temper: setb p1.0h ; 定時入口 bcd:
47、lcall init_1820 jb 00h,s22 ljmp bcd ; 若 ds18b20 不存在則返回 s22: lcall delay1 mov a,#0cch ; 跳過 rom 匹配-0cc 命令 lcall write_1820 mov a,#44h ; 發(fā)出溫度轉(zhuǎn)換命令 lcall write_1820 nop lcall delay1 cba:lcall init_1820 jb 00h,abc ljmp cba abc:lcall delay1 mov a,#0cch ; 跳過 rom 匹配 lcall write_1820 mov a,#0beh ; 發(fā)出讀溫度命令 lca
48、ll write_1820 lcall read_18200 ;read_1820 ret ;= read_1820: mov r2,#8 re1: clr c setb p1.0h nop nop clr p1.0h nop nop nop setb p1.0h mov r3,#7 djnz r3,$ mov c,p1.0h mov r3,#23 djnz r3,$ rrc a djnz r2,re1 ret ;= write_1820: mov r2,#8 clr c wr1: clr p1.0h mov r3,#6 djnz r3,$ rrc a mov p1.0h,c mov r3,#
49、23 djnz r3,$ setb p1.0h nop djnz r2,wr1 setb p1.0h ret ;= read_18200: mov r4,#2 ; 將溫度高位和低位從 ds18b20 中讀出 mov r1,#31h ; 低位存入 30h(temper_l),高位存入 31h(temper_h) re00: mov r2,#8 re01: clr c setb p1.0h nop nop clr p1.0h nop nop nop setb p1.0h mov r3,#7 djnz r3,$ mov c,p1.0h mov r3,#23 djnz r3,$ rrc a djnz
50、r2,re01 mov r1,a dec r1 djnz r4,re00 ret ;= init_1820: setb p1.0h nop clr p1.0h mov r0,#250 tsr1: djnz r0,tsr1 ; 延時 520us setb p1.0h mov r0,#25h ;96us-25h tsr2: djnz r0,tsr2 jnb p1.0h,tsr3;如 d0 為低則復(fù)位成功,ds18b20 存在 ljmp tsr4 ; 延時 tsr3: setb 00h ; 置標志位,表示 ds1820 存在 ljmp tsr5 tsr4: clr 00h ; 清標志位,表示 ds1
51、820 不存在 ljmp tsr7 tsr5: mov r0,#06bh ;200us tsr6: djnz r0,tsr6 ; 延時 tsr7: setb p1.0h ;拉高總線 ret ;= get_temper2: setb p1.1h ; 定時入口 bcd2: lcall init_18202 jb 00h,s222 ljmp bcd2 ; 若 ds18b20 不存在則返回 s222: lcall delay1 mov a,#0cch ; 跳過 rom 匹配-0cc 命令 lcall write_18202 mov a,#44h ; 發(fā)出溫度轉(zhuǎn)換命令 lcall write_18202
52、 nop lcall delay1 cba2:lcall init_18202 jb 00h,abc2 ljmp cba2 abc2:lcall delay1 mov a,#0cch ; 跳過 rom 匹配 lcall write_18202 mov a,#0beh ; 發(fā)出讀溫度命令 lcall write_18202 lcall read_182002 ;read_1820 ret ;= read_18202: mov r2,#8 re12: clr c setb p1.1h nop nop clr p1.1h nop nop nop setb p1.1h mov r3,#7 djnz r
53、3,$ mov c,p1.1h mov r3,#23 djnz r3,$ rrc a djnz r2,re12 ret ;= write_18202: mov r2,#8 clr c wr12: clr p1.1h mov r3,#6 djnz r3,$ rrc a mov p1.1h,c mov r3,#23 djnz r3,$ setb p1.1h nop djnz r2,wr12 setb p1.1h ret ;= read_182002: mov r4,#2 ; 將溫度高位和低位從 ds18b20 中讀出 mov r1,#31h ; 低位存入 30h(temper_l),高位存入 31
54、h(temper_h) re002: mov r2,#8 re012: clr c setb p1.1h nop nop clr p1.1h nop nop nop setb p1.1h mov r3,#7 djnz r3,$ mov c,p1.1h mov r3,#23 djnz r3,$ rrc a djnz r2,re012 mov r1,a dec r1 djnz r4,re002 ret ;= init_18202: setb p1.1h nop clr p1.1h mov r0,#250 tsr12: djnz r0,tsr12 ; 延時 520us setb p1.1h mov
55、r0,#25h ;96us-25h tsr22: djnz r0,tsr22 jnb p1.1h,tsr32;如 d0 為低則復(fù)位成功,ds18b20 存在 ljmp tsr42 ; 延時 tsr32: setb 00h ; 置標志位,表示 ds1820 存在 ljmp tsr52 tsr42: clr 00h ; 清標志位,表示 ds1820 不存在 ljmp tsr72 tsr52: mov r0,#06bh ;200us tsr62: djnz r0,tsr62 ; 延時 tsr72: setb p1.1h ;拉高總線 ret ;= get_temper3: setb p1.2h ; 定
56、時入口 bcd3: lcall init_18203 jb 00h,s223 ljmp bcd3 ; 若 ds18b20 不存在則返回 s223: lcall delay1 mov a,#0cch ; 跳過 rom 匹配-0cc 命令 lcall write_18203 mov a,#44h ; 發(fā)出溫度轉(zhuǎn)換命令 lcall write_18203 nop lcall delay1 cba3:lcall init_18203 jb 00h,abc3 ljmp cba3 abc3:lcall delay1 mov a,#0cch ; 跳過 rom 匹配 lcall write_18203 mov
57、 a,#0beh ; 發(fā)出讀溫度命令 lcall write_18203 lcall read_182003 ;read_1820 ret ;= read_18203: mov r2,#8 re13: clr c setb p1.2h nop nop clr p1.2h nop nop nop setb p1.2h mov r3,#7 djnz r3,$ mov c,p1.2h mov r3,#23 djnz r3,$ rrc a djnz r2,re13 ret ;= write_18203: mov r2,#8 clr c wr13: clr p1.2h mov r3,#6 djnz r3
58、,$ rrc a mov p1.2h,c mov r3,#23 djnz r3,$ setb p1.2h nop djnz r2,wr13 setb p1.2h ret ;= read_182003: mov r4,#2 ; 將溫度高位和低位從 ds18b20 中讀出 mov r1,#31h ; 低位存入 30h(temper_l),高位存入 31h(temper_h) re003: mov r2,#8 re013: clr c setb p1.2h nop nop clr p1.2h nop nop nop setb p1.2h mov r3,#7 djnz r3,$ mov c,p1.2h
59、 mov r3,#23 djnz r3,$ rrc a djnz r2,re013 mov r1,a dec r1 djnz r4,re003 ret ;= init_18203: setb p1.2h nop clr p1.2h mov r0,#250 tsr13: djnz r0,tsr13 ; 延時 520us setb p1.2h mov r0,#25h ;96us-25h tsr23: djnz r0,tsr23 jnb p1.2h,tsr33;如 d0 為低則復(fù)位成功,ds18b20 存在 ljmp tsr43 ; 延時 tsr33: setb 00h ; 置標志位,表示 ds18
60、20 存在 ljmp tsr53 tsr43: clr 00h ; 清標志位,表示 ds1820 不存在 ljmp tsr73 tsr53: mov r0,#06bh ;200us tsr63: djnz r0,tsr63 ; 延時 tsr73: setb p1.2h ;拉高總線 ret ;= get_temper4: setb p1.3h ; 定時入口 bcd4: lcall init_18204 jb 00h,s224 ljmp bcd4 ; 若 ds18b20 不存在則返回 s224: lcall delay1 mov a,#0cch ; 跳過 rom 匹配-0cc 命令 lcall w
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度漁船交易與漁需物資采購合同3篇
- 二零二五年度汽車零部件研發(fā)與創(chuàng)新合作協(xié)議
- 法律合作保密協(xié)議書(2篇)
- 二零二五年度派遣人員勞動合同及競業(yè)限制合同
- 2025年度事業(yè)單位退休人員返聘工作協(xié)議書標準
- 二零二五年度智能穿戴設(shè)備技術(shù)員聘用合同
- 二零二五年度高檔陶瓷原料供應(yīng)合作協(xié)議
- 2024 年個人述職報告
- 二零二五年美團外賣商家入駐后支持服務(wù)合同
- 2025年樂器進口代理及銷售采購合同范本3篇
- 涉詐風險賬戶審查表
- 2023年大學英語四級考試模擬真題及答案
- 四年級數(shù)學上冊口算天天練4
- 蘇教版二年級數(shù)學寒假輔導(dǎo)提高班課件 第1講 眼花繚亂的數(shù)據(jù)(66張PPT)
- 水利水電工程監(jiān)理平行檢測表部分
- 分部分項工程質(zhì)量檢驗計劃表
- 社區(qū)衛(wèi)生服務(wù)中心醫(yī)療服務(wù)推薦病-2023版1-4-10
- HY/T 266-2018外壓中空纖維超濾膜表面親水性的測試接觸角法
- 【英文原版小說】the things they carried《負荷》
- 領(lǐng)導(dǎo)干部如何管理壓力與情緒課件
- 2022-2023年度神農(nóng)中華農(nóng)業(yè)科技獎科研和科普類推薦書和摘要表(樣本)
評論
0/150
提交評論