畢業(yè)設(shè)計(論文)基于單片機的液晶顯示高精度溫度計設(shè)計_第1頁
畢業(yè)設(shè)計(論文)基于單片機的液晶顯示高精度溫度計設(shè)計_第2頁
畢業(yè)設(shè)計(論文)基于單片機的液晶顯示高精度溫度計設(shè)計_第3頁
畢業(yè)設(shè)計(論文)基于單片機的液晶顯示高精度溫度計設(shè)計_第4頁
畢業(yè)設(shè)計(論文)基于單片機的液晶顯示高精度溫度計設(shè)計_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 i 摘 要 【摘要】在日常生活及工業(yè)生產(chǎn)過程中經(jīng)常要用到溫度的檢測及控制溫度是生產(chǎn)過程和科學實驗中普遍而且重要的物理參數(shù)之一。在生產(chǎn)過程中為了高效地進行生產(chǎn)必須對它的主要參數(shù)如溫度、壓力、流量等進行有效的控制。溫度控制在生產(chǎn)過程中占有相當大的比例。溫度測量是溫度控制的基礎(chǔ)技術(shù)已經(jīng)比較成熟。傳統(tǒng)的測溫元件有熱電偶和二電阻。而熱電偶和熱電阻測出的一般都是電壓再轉(zhuǎn)換成對應的溫度這些方法相對比較復雜需要比較多的外部硬件支持。我們用一種相對比較簡單的方式來測量。我們采用美國dallas半導體公司繼ds1820之后推出的一種改進型智能溫度傳感器ds18b20作為檢測元件溫度范圍為-55125 oc,最高

2、分辨率可達0.0625 oc。ds18b20可以直接讀出被側(cè)溫度值而且采用三線制與單片機相連減少了外部的硬件電路具有低成本和易使用的特點。 本文主要介紹高精度溫度計的設(shè)計。本設(shè)計大體分三個工作過程首先,由ds18b20溫度傳感器芯片測量當前的溫度,并將結(jié)果送入單片機。然后,通過at89c51單片機對送來的溫度進行計算和轉(zhuǎn)換,并將此結(jié)果送入液晶顯示模塊。最后,由1602液晶顯示器將溫度顯示出來。 【關(guān)鍵詞】: 溫度控制、溫度測試、at89c51、1602lcd、ds18b20溫度傳感器 目 錄第一章 緒論 . 1 第二章 系統(tǒng)硬件的設(shè)計 . 2 2.1 硬件設(shè)計 . 2 2.1.1功能要求 .

3、2 2.1.2方案論證 . 2 2.2 系統(tǒng)硬件電路的設(shè)計.2 2.2.1 at89c51單片機 . 2 at89c51簡介及引腳功能說明.2 復位電路.4 時鐘(晶振)電路 . 4 2.2.2 1602液晶顯示器 . 5 1602lcd 基本參數(shù)及引腳功能說明.5 1602lcd 指令說明及時序.6 1602lcd 標準字符庫.8 1602lcd 顯示電路圖.9 2.2.3 ds18b20 溫度傳感器.10 ds18b20 結(jié)構(gòu)及引腳功能說明.10

4、ds18b20 內(nèi)部結(jié)構(gòu).10 ds18b20 初始化和讀/寫時序.12 ds18b20 常用指令.13 ds18b20 溫度采集電路圖.14 第三章 系統(tǒng)程序的設(shè)計 . 15 3.1 主程序 . 15 3.2 ds18b20模塊程序 . 15 3.3 1602液晶模塊程序. 16 第四章 應用的相關(guān)軟件 . 18 4.1 keil uvision3編輯軟件 . 18 4.2 protel 99se 電路板設(shè)計軟件 . 18 4.3 智能高速通用編輯器 . 18 第五章 實物效果展示 . 20 第六章 結(jié)論與心得 . 21 致謝 . 22 參考文

5、獻 . 23 附錄a. 高精度溫度計電路原理圖 . 24 附錄b. 材料清單 . 25 附錄c. 源程序 . 26 第一章 緒論 隨著科學技術(shù)的發(fā)展和現(xiàn)代工業(yè)技術(shù)的需要測溫技術(shù)也在不斷地改進和提高由于測溫范圍越來越廣根據(jù)不同的要求又制造出不同需要的測溫儀器現(xiàn)實社會發(fā)展的許多情況下需要測量溫度參數(shù)。 ds18b20是美國dallas半導體公司繼ds1820之后最新推出的一種改進型智能溫度傳感器。與傳統(tǒng)的熱敏電阻相比他能夠直接讀出被測溫度并且可根據(jù)實際要求通過簡單的編程實現(xiàn)912位的數(shù)字值讀數(shù)方式。可以分別在93.75 ms和750 ms內(nèi)完成9位和12位的數(shù)字量并且從ds18b20讀出的信息或?qū)?/p>

6、入ds18b20的信息僅需要一根口線單線接口讀寫,溫度變換功率來源于數(shù)據(jù)總線總線本身也可以向所掛接的ds18b20供電而無需額外電源。因而使用ds18b20可使系統(tǒng)結(jié)構(gòu)更趨簡單可靠性更高。他在測溫精度、轉(zhuǎn)換時間、傳輸距離、分辨率等方面較ds1820有了很大的改進給用戶帶來了更方便的使用和更令人滿意的效果。 隨著微電子技術(shù)的不斷發(fā)展微處理器芯片的集成程度越來越高單片機已可以在一塊芯片上同時集成cpu、存儲器、定時器計數(shù)器、并行和串行接口、前置放大器、ad轉(zhuǎn)換器、da轉(zhuǎn)換器等多種電路這就很容易將計算機技術(shù)與測量控制技術(shù)結(jié)合組成智能化測量控制系統(tǒng)。at89c51單片機是美國atmel公司推出的單片機

7、它與mcs51完全兼容4k程序存儲器采用閃速存儲技術(shù)設(shè)有三級加密不易仿制其寬電壓范圍2767v及低功耗的特點特別適用于微型儀器儀表。 lcd應用于智能儀表、通信和辦公自動化等領(lǐng)域,它的主要作用是顯示ascii碼字符,因此又被稱作字符型顯示器件。利用點陣字形特點可自定義漢字字庫讓其顯示漢字。該液晶顯示模塊具有體積小、功耗低、顯示內(nèi)容豐富、超薄輕巧等優(yōu)點,在袖珍式儀表和低功耗應用系統(tǒng)中得到廣泛的應用。目前字符型液晶顯示模塊已經(jīng)是單片機應用設(shè)計中最常用的信息顯示器件。lcd1602液晶顯示模塊可以顯示兩行,每行16個字符,采用單+5v電源供電,外圍電壓。 我們設(shè)計的溫度系統(tǒng)是由中央控制器、溫度檢測器

8、及顯示器組成。控制器采用單片機at89s51溫度檢測部分采用ds18b20溫度傳感器用1602lcd做顯示器。溫度傳感器ds18b20采集溫度信號送該給單片機處理存儲器通過單片機對某些時間點的數(shù)據(jù)進行存儲單片機再把溫度數(shù)據(jù)送lcd顯示已達到顯示當前溫度的目的。 .2 protel 99se 電路板設(shè)計軟件 .q系統(tǒng)硬件的設(shè)計 畢業(yè)設(shè)計論文 2 第二章 系統(tǒng)硬件的設(shè)計 2.1 硬件設(shè)計 2.1.1功能要求 在智能最小系統(tǒng)的基礎(chǔ)上使用單個ds18b20采集環(huán)境溫度并用1602液晶顯示器顯示溫度結(jié)果測量范圍在10500c之間,精度0.010c。 2.1.2方案論證 該設(shè)計方案是以at89c51單片機

9、為控制核心用溫度傳感器ds18b20進行溫度采集繼而顯示在1602lcd上從而達到顯示當前環(huán)境溫度的目的。在論證過程中我們需要將溫度精確到0.010c已達到對溫度的精準。整個系統(tǒng)硬件部分包括單片機、溫度檢測系統(tǒng)、液晶顯示器。高精度溫度計設(shè)計方案框圖見圖 2-1。 圖2-1 高精度溫度計系統(tǒng)方案 2.2 系統(tǒng)硬件電路的設(shè)計 2.2.1 a89c51單片機 at89c51是一種帶4k字節(jié)閃爍可編程可擦除只讀存儲器fperomflash programmable and erasable read only memory的低電壓高性能cmos 8位微處理器俗稱單片機。該器件采用atmel高密度非易失

10、存儲器制造技術(shù)制造與工業(yè)標準的mcs-51指令集和輸出管腳相兼容。由于將多功能8位cpu和閃爍存儲器組合在單個芯片中atmel的at89c51是一種高效微控制器。at89c單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。 at89c51引腳功能說明 掌握at89c51單片機應首先了解at89c51的引腳熟悉并牢記各引腳的功能。at89c51 p3 p2 按鍵復位 晶振電路 ds18b20 1602lcd 畢業(yè)設(shè)計論文 高精度溫度計 3 at89c51有40條引腳。這40條引腳可分為i/o端口線32條、控制線4條、電源線2條、外接晶體線2條四部分,at89c51引腳排列

11、如圖2-2所示。 圖2-2 at89c51芯片引腳圖 at89c51共有40個引腳大致可分為4類 (1) 電源引腳 vcc:電源端+5v。 vss: 接地端(gnd)。 (2) 時鐘電路引腳 xtal1:外接晶振輸入端。 xtal2:外接晶振輸出端。 (3) i/o引腳 p0.pp0.7/ad0ad7: 一組8位漏極開路型雙向i/o口也是地址/總線復用口。作入/輸出口時必須外接上拉電阻它可驅(qū)動8個ttl門電路。當訪問片外存儲器時用作地址/總線分時復用口線。 p1.0p1.7: 一組內(nèi)部帶上拉電阻的8位準雙向i/o口可驅(qū)動4個ttl門電路。 p2.0p2.7/a8a15: 一組內(nèi)部帶上拉電阻的8

12、位準雙向i/o口可驅(qū)動4個ttl門電路。當訪問片外存儲器時用作高8位地址總線。 p3.0p3.7: 一組內(nèi)部帶上拉電阻的8位準雙向i/o口。出于芯片引腳數(shù)的限制p3端口每個引腳具有第二功能。 (4) 控制線引腳 rst: 復位端。當reset端出現(xiàn)持續(xù)兩個機器周期以上的高電平時可實現(xiàn)復位操作。 ea: 片外程序存儲器選擇端。若要訪問外部程序存儲器則ea端必須保持低電2.1.1 at89c51引腳功能說明 -系統(tǒng)硬件的設(shè)計 畢業(yè)設(shè)計論文 4 平。 ale: 地址鎖存允許端。當訪問外部程序存儲器或數(shù)據(jù)存儲器時ale輸出脈沖用于鎖存p0口分時送出的低8位地址下降沿有效。不訪問外部存儲器時該端以時鐘頻

13、率的1/6輸出固定的正脈沖信號可用作外部時鐘。對內(nèi)部flash存儲器編程期間該引腳用于輸入編程脈沖。 psen: 讀片外程序存儲器選通信號輸出端。當89c51從外部程序存儲器取指令時該腳有效(上升沿)。每個機器周期psen均產(chǎn)生兩次有效輸出信號。 復位電路 rst引腳是復位信號的輸入端。復位信號是高電平有效。高電平有效的持續(xù)時間應為24個振蕩周期以上。若時鐘頻率為6mhz則復位信號至少應持續(xù)4微秒以上才可以使單片機復位。本次設(shè)計中采用按鍵復位的方法進行復位操作。如下圖2-3所示。 圖2-3 按鍵復位電路 按鍵復位是利用開關(guān)按鈕來實現(xiàn)的即通電后按下開關(guān)使得瞬間rst端的電位與vc

14、c相同隨著電容上儲能增加電容電壓也增大充電電流減少reset端的電位逐漸下降。這樣在rst端就會建立一個脈沖電壓調(diào)節(jié)電容與電阻的大小可對脈沖持續(xù)的時間進行調(diào)節(jié)。 時鐘(晶振)電路 時鐘電路對單片機系統(tǒng)而言是必需的.由于單片機內(nèi)部是由各種各樣的數(shù)字邏輯器件(如觸發(fā)器寄存器存儲器等)構(gòu)成,這些數(shù)字器件的工作必須按時間順序完成,這種時間順序就稱為時序.時鐘電路就是提供單片機內(nèi)部各種操作的時間基準的電路,沒有時鐘電路單片機就無法工作。此次設(shè)計中我們采用由由內(nèi)部方式產(chǎn)生時鐘的方法形成時鐘電路具體如圖2-4所示。 畢業(yè)設(shè)計論文 高精度溫度計 5 圖2-4 時鐘電路 內(nèi)部方式在xtal1和x

15、tal2端外接石英晶體作定時元件內(nèi)部反相放大器自激振蕩產(chǎn)生時鐘。時鐘發(fā)生器對振蕩脈沖二分頻即若石英頻率fosc6mhz則時鐘頻率3mh2因此時鐘是一個雙相信號由p1相和p2相構(gòu)成。fosc可在2mhz12mhz選擇。小電容可以取30pf左右。 2.2.2 1602液晶顯示器 字符型液晶顯示模塊是一種專門用于顯示字母、數(shù)字、符號等點陣式lcd目前常用16*116*220*2和40*2行等的模塊。1602lcd應用于智能儀表、通信和辦公自動化等領(lǐng)域,它的主要作用是顯示ascii碼字符,因此又被稱作字符型顯示器件。利用點陣字形特點可自定義漢字字庫讓其顯示漢字。 1602 lcd 基本

16、參數(shù)及引腳功能說明 1、1602lcd主要技術(shù)參數(shù) 顯示容量:162個字符 芯片工作電壓:4.55.5v 工作電流:2.0ma(5.0v) 模塊最佳工作電壓:5.0v 字符尺寸:2.954.35(wh)mm 2、引腳功能說明 1602lcd采用標準的14腳無背光或16腳帶背光接口各引腳接口說如表2.1所示 表2.1 1602 lcd 引腳接口說明表 編號 符號 引腳說明 編號 符號 引腳說明 1 vss 電源地 9 d2 數(shù)據(jù) 2 vdd 電源正極 10 d3 數(shù)據(jù) 3 vl 液晶顯示偏壓 11 d4 數(shù)據(jù) 4 rs 數(shù)據(jù)/命令選擇 12 d5 數(shù)據(jù) 鞅匭氚詞奔淥承蟯瓿?這種時間?系統(tǒng)硬件的設(shè)

17、計 畢業(yè)設(shè)計論文 6 5 r/w 讀/寫選擇 13 d6 數(shù)據(jù) 6 e 使能信號 14 d7 數(shù)據(jù) 7 d0 數(shù)據(jù) 15 bla 背光源正極 8 d1 數(shù)據(jù) 16 blk 背光源負極 第1腳vss為地電源。 第2腳vdd接5v正電源。 第3腳vl為液晶顯示器對比度調(diào)整端接正電源時對比度最弱接地時對比度最高對比度過高時會產(chǎn)生“鬼影”使用時可以通過一個10k的電位器調(diào)整對比度。 第4腳rs為寄存器選擇高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。 第5腳r/w為讀寫信號線高電平時進行讀操作低電平時進行寫操作。當rs和r/w共同為低電平時可以寫入指令或者顯示地址當rs為低電平r/w為高電平時可以讀

18、忙信號當rs為高電平r/w為低電平時可以寫入數(shù)據(jù)。 第6腳e端為使能端當e端由高電平跳變成低電平時液晶模塊執(zhí)行命令。 第714腳d0d7為8位雙向數(shù)據(jù)線。 第15腳背光源正極。 第16腳背光源負極。 1602 lcd 指令說明及時序 1、1602液晶模塊內(nèi)部的控制器共有11條控制指令如表2.2所示 表2.2 1602 lcd 控制命令表 序號 指令 rs r/w d7 d6 d5 d4 d3 d2 d1 d0 1 清顯示 0 0 0 0 0 0 0 0 0 1 2 光標返回 0 0 0 0 0 0 0 0 1 * 3 置輸入模式 0 0 0 0 0 0 0 1 i/d s 4

19、顯示開/關(guān)控制 0 0 0 0 0 0 1 d c b 5 光標或字符移位 0 0 0 0 0 1 s/c r/l * * 6 置功能 0 0 0 0 1 dl n f * * 7 置字符發(fā)生存貯器地址 0 0 0 1 字符發(fā)生存貯器地址 8 置數(shù)據(jù)存貯器地址 0 0 1 顯示數(shù)據(jù)存貯器地址 9 讀忙標志或地址 0 1 bf 計數(shù)器地址 10 寫數(shù)到cgram或ddram 1 0 要寫的數(shù)據(jù)內(nèi)容 畢業(yè)設(shè)計論文 高精度溫度計 7 11 從cgram或ddram讀數(shù) 1 1 讀出的數(shù)據(jù)內(nèi)容 1602液晶模塊的讀寫操作、屏幕和光標的操作都是通過指令編程來實現(xiàn)的。說明1為高電平、0為低電平 指令1清顯

20、示指令碼01h,光標復位到地址00h位置。 指令2光標復位光標返回到地址00h。 指令3光標和顯示模式設(shè)置 i/d光標移動方向高電平右移低電平左移 s:屏幕上所有文字是否左移或者右移。高電平表示有效低電平則無效。 指令4顯示開關(guān)控制。 d控制整體顯示的開與關(guān)高電平表示開顯示低電平表示關(guān)顯示 c控制光標的開與關(guān)高電平表示有光標低電平表示無光標 b控制光標是否閃爍高電平閃爍低電平不閃爍。 指令5光標或顯示移位 s/c高電平時移動顯示的文字低電平時移動光標。 指令6功能設(shè)置命令 dl高電平時為4位總線低電平時為8位總線 n低電平時為單行顯示高電平時雙行顯示 f: 低電平時顯示5x7的點陣字符高電平時

21、顯示5x10的點陣字符。 指令7字符發(fā)生器ram地址設(shè)置。 指令8ddram地址設(shè)置。 指令9讀忙信號和光標地址 bf為忙標志位高電平表示忙此時模塊不能接收命令或者數(shù)據(jù)如果為低電平表示不忙。 指令10寫數(shù)據(jù)。 指令11讀數(shù)據(jù)。 2、1602 讀/寫時序 當 rs=0、rw=0時為寫指令 rs=0、rw=1時為讀指令 rs=1、rw=0時為寫數(shù)據(jù) rs=1、rw=1時為讀數(shù)據(jù)。 具體的1602讀寫操作時序如圖2-5和2-6所示。 貯器地址 9 讀忙標志或地址 0 1系統(tǒng)硬件的設(shè)計 畢業(yè)設(shè)計論文 8 圖2-5 讀操作時序 圖2-6 寫操作時序 1602 lcd 標準字符庫 1602

22、液晶模塊內(nèi)部的字符發(fā)生存儲器cgrom)已經(jīng)存儲了不同的點陣字符圖形這些字符有阿拉伯數(shù)字、英文字母的大小寫、常用的符號、和日文假名等每一個字符都有一個固定的代碼其中數(shù)字與字母同ascii碼兼容對應關(guān)系如下表所示。其內(nèi)部還有自定義字符cgram可用于存儲自已定義的字符。 表2.3為1602標準字符庫 畢業(yè)設(shè)計論文 高精度溫度計 9 高位 低 位 0000 0010 0011 0100 0101 0110 0111 1010 1011 1100 1101 1110 1111 0000 cgra(1) 0 p p - p 0001 (2) ! 1 a q a q ? ? q 0010 (3) ” 2

23、 b r b r 0011 (4) # 3 c s c s 0100 (5) $ 4 d t d t 0101 (6) % 5 e u e u ? 0110 (7) & 6 f v f v 0111 (8) 7 g w g w g 1000 (1) ( 8 h x h x x 1001 (2) ) 9 i y i y y 1010 (3) * : j z j z j 千 1011 (4) + ; k k 萬 1100 (5) , n n n 1111 (8) / ? o - o ? 1602 lcd 顯示電路圖 在此次設(shè)計中1602lcd作為顯示端顯示由p2口輸入ds18b20

24、采集的數(shù)據(jù)1602硬件接口如圖2-7所示。 當 rs=0、rw=0時為寫指令 rs=0、rw=1時為讀指令 rs=#系統(tǒng)硬件的設(shè)計 畢業(yè)設(shè)計論文 10 圖2-7 1602字符液晶顯示電路接口圖 2.2.3 ds18b20 溫度傳感器 ds18b20是dallas公司生產(chǎn)的單總線數(shù)字溫度傳感器具有3引腳to92小體積封裝形式溫度測量范圍為55125,可編程為9位12位a/d轉(zhuǎn)換精度對應的可辨溫度分別為0.5、0.25、0.125和0.0625被測溫度用符號擴展的16位數(shù)字量方式串行輸出支持3v5.5v的電壓范圍使系統(tǒng)設(shè)計更靈活、方便,其工作電源既可在遠端引入也可采用寄生電源方式產(chǎn)生.同時多個ds

25、18b20可以并聯(lián)到3根或2根線上cpu只需一根端口線就能與諸多ds18b20通信占用處理器的端口較少可節(jié)省大量的引線和邏輯電路。以上特點使ds18b20非常適用于遠距離多點溫度檢測系統(tǒng)。 ds18b20結(jié)構(gòu)及引腳功能說明 ds18b20的引腳 圖2-8 溫度傳感器ds18b20引腳圖 表2.4 溫度傳感器ds18b20引腳功能表 序號 名稱 引腳功能描述 1 gnd 地信號 2 dq 數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引腳。當被用在寄生電源下也可以向器件提供電源。 3 vdd 外接供電電源輸入端。當工作于寄生電源時此引腳必須接地。 ds18b20 內(nèi)部結(jié)構(gòu) d

26、s18b20內(nèi)部結(jié)構(gòu)主要由四部分組成64位光刻rom、溫度傳感器、非易失性溫om當 rs=0、rw=0時為寫指?畢業(yè)設(shè)計論文 高精度溫度計 11 度報警觸發(fā)器th和tl、配置寄存器。具體結(jié)構(gòu)如圖2-9所示。 圖2-9 ds18b20內(nèi)部結(jié)構(gòu)圖 1 64位激光rom。64位激光rom從高位到低位依次為8位crc、48位序列號和8位家族代碼(28h)組成。 2 溫度靈敏元件。用于采集溫度并轉(zhuǎn)換成電信號。 3 非易失性溫度報警觸發(fā)器th和tl??赏ㄟ^軟件寫入用戶報警上下限值。 4 高速暫存存儲器 高速暫存存儲器由9個字節(jié)組成其分配圖2-10所示。當溫度轉(zhuǎn)換命令發(fā)布后經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補碼形式

27、存放在高速暫存存儲器的第0和第1個字節(jié)。單片機可通過單線接口讀到該數(shù)據(jù)讀取時低位在前高位在后數(shù)據(jù)格式如圖2-11所示。對應的溫度計算當符號位s=0時直接將二進制位轉(zhuǎn)換為十進制當s=1時先將補碼變?yōu)樵a再計算十進制值。 8位crc 保留 保留 保留 配置 tl th 溫度高位 溫度低位 msb lsb 圖2-10 ds18b20存儲器映像圖 圖2-11 ds18b20溫度存儲器數(shù)據(jù)格式 5 配置寄存器。配置寄存器為高速暫存存儲器中的第五個字節(jié)。ds18b20在工作時按此寄存器中的分辨率將溫度轉(zhuǎn)換成相應精度的數(shù)值其各位定義如圖2-四部分組成64位光刻rom、溫度?系統(tǒng)硬件的設(shè)計 畢業(yè)設(shè)計論文 12

28、 所示。其中tm測試模式標志位出廠時被寫入0不能改變r0、r1溫度計分辨率設(shè)置位其對應四種分辨率如表2.5所列出廠時r0、r1置為缺省值r0=1r1=1即12位分辨率用戶可根據(jù)需要改寫配置寄存器以獲得合適的分辨率。 tm r1 r0 1 1 1 1 1 圖2-12 ds18b20配置寄存器結(jié)構(gòu)圖 表2.5 配置寄存器與分辨率關(guān)系表 r0 r1 溫度計分辨率/bit 最大轉(zhuǎn)換時間/ms 0 0 9 93.75 0 1 10 187.5 1 0 11 375 1 1 12 750 ds18b20 初始化和讀/寫時序 由于ds18b20采用的是1wire總線協(xié)議方式即在一根數(shù)據(jù)線實現(xiàn)

29、數(shù)據(jù)的雙向傳輸而對at89c51單片機來說硬件上并不支持單總線協(xié)議因此我們必須采用軟件的方法來模擬單總線的協(xié)議時序來完成對ds18b20芯片的訪問。從而對讀寫的數(shù)據(jù)位有著嚴格的時序要求。ds18b20有嚴格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號的時序初始化時序、讀時序、寫時序。所有時序都是將主機作為主設(shè)備單總線器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機主動啟動寫時序開始如果要求單總線器件回送數(shù)據(jù)在進行寫命令后主機需啟動讀時序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。 1、ds18b20的初始化時序 圖2-13 ds18b20的初始化時序圖 2、ds18b2

30、0的讀/寫時序 控制器在寫時序?qū)憯?shù)據(jù)到ds18b20,在讀時序從ds18b20中讀取數(shù)據(jù).每一總線時序傳送一位數(shù)據(jù)。 凈虻刂?0 1畢業(yè)設(shè)計論文 高精度溫度計 13 1讀流程時序 對于ds18b20的讀時序分為讀0時序和讀1時序兩個過程。 對于ds18b20的讀時隙是從主機把單總線拉低之后在15秒之內(nèi)就得釋放單總線以讓ds18b20把數(shù)據(jù)傳輸?shù)絾慰偩€上。ds18b20在完成一個讀時序過程至少需要60us才能完成。 2寫流程時序 對于ds18b20的寫時序仍然分為寫0時序和寫1時序兩個過程。 對于ds18b20寫0時序和寫1時序的要求不同當要寫0時序時單總線要被拉低至少60us保證ds18b20

31、能夠在15us到45us之間能夠正確地采樣io總線上的“0”電平當要寫1時序時單總線被拉低之后在15us之內(nèi)就得釋放單總線。 圖2-14 ds18b20的/讀寫時序 ds18b20常用指令 ds18b20的操作分為rom操作指令和ram操作指令兩類。 表2.6 rom操作指令 指令 約定代碼 功能 讀rom 33h 讀ds18b20 rom中的編碼(即64位地址) 符合rom 55h 發(fā)出此命令之后,接著發(fā)出64位rom編碼,訪問總線上與該編碼相對應的ds18b20使之作出響應,為下一步對該ds18b20的讀寫做準備 dir=c:windows系統(tǒng)硬件的設(shè)計 畢業(yè)設(shè)計論文 14

32、 搜索rom 0f0h 用于確定掛在同一總線上ds18b20的個數(shù)和識別64位rom地址,為操作各器件作好準備 跳過rom 0cch 忽略64位rom地址,直接向ds18b20發(fā)溫度變換命令,適用于單片工作 告警搜索命令 0ech 執(zhí)行后只有溫度超過設(shè)定值上限或下限的片子才作出響應 表2.7 ram操作指令 指令 約定代碼 功能 溫度變換 44h 啟動ds18b20進行溫度轉(zhuǎn)換,轉(zhuǎn)換時間最長500ms(典型為200ms),結(jié)果存入內(nèi)部9字節(jié)ram中 讀存儲器 0beh 讀內(nèi)部ram中9字節(jié)的內(nèi)容 寫存儲器 4eh 發(fā)出向內(nèi)部ram的3、4字節(jié)寫上、下限溫度數(shù)據(jù)命令緊跟該命令之后是傳送兩字節(jié)的數(shù)

33、據(jù) 復制存儲器 48h 將ram中3、4字節(jié)的內(nèi)容復制到eeprom中 重調(diào)eeprom 0b8h 將eeprom中的內(nèi)容恢復到ram中的3、4字節(jié) 讀供電方式 0b4h 讀ds18b20的供電模式寄生供電時ds18b20發(fā)送“0”外接電源供電ds18b20發(fā)送“1” ds18b20 溫度采集電路圖 在本設(shè)計中由ds18b20組建溫度采集系統(tǒng)。其中1腳gnd2腳為數(shù)據(jù)輸入端3腳vcc2腳與3腳間接上一個4.7k的電阻形成上拉電阻。詳細的采集電路如圖2-15所示。 圖2-15 ds18b20溫度采集電路 詈螳粗骰?需啟動讀時序完成?畢業(yè)設(shè)計論文 高精度溫度計 15 第三章 系統(tǒng)程

34、序的設(shè)計 3.1 主程序 在主程序流程圖中初始化液晶模塊然后延時一段時間進入while循環(huán)讀取溫度將溫度顯示在lcd液晶屏上。主程序的流程圖如下 圖 3-1主程序流程圖 3.2 ds18b20模版程序 首先ds18b20初始化復位ds18b20然后單片機等待ds18b20的應答脈沖。一旦單片機檢測到應答脈沖便發(fā)起跳過rom匹配操作命令。成功執(zhí)行了rom操作命令后就可以使用內(nèi)存操作命令啟動溫度轉(zhuǎn)換延時一段時間后等待溫度轉(zhuǎn)換完成。再發(fā)起跳過rom匹配操作命令然后讀暫存器將轉(zhuǎn)換結(jié)果讀出并轉(zhuǎn)為顯示碼送到液晶顯示。ds18b20模塊程序流程圖如圖3-2所示。 while(1) 讀取溫度值 溫度值顯示 開

35、始 液晶模塊初始化 延時 jectx.wonibo.c系統(tǒng)程序的設(shè)計 畢業(yè)設(shè)計論文 16 圖3-2 ds18b20模塊程序流程圖 3.3 1602液晶模塊程序 首先對1602液晶顯示器進行初始化按鍵復位后延時15ms進行初始化設(shè)置依次為顯示關(guān)閉、顯示清屏、顯示光標移動設(shè)置最后進行寫操作。1602液晶驅(qū)動程序流程圖如圖3-3所示。 啟動溫度轉(zhuǎn)換 讀取溫度 溫度處理 跳過rom匹配 ds18b20復位 跳過rom匹配 ds18b20復位 畢業(yè)設(shè)計論文 高精度溫度計 17 圖3-3 1602液晶驅(qū)動程序流程圖 延時15ms 顯示模式設(shè)置 延時5ms 顯示關(guān)閉 顯示清屏 延時5ms 延

36、時5ms 顯示光標移動設(shè)置 延時5ms 顯示開及光標設(shè)置 顯示位置設(shè)置 延時 顯示溫度各位數(shù)值 1602初始化 telementsbytagname(head)0.appendchild(a);pdc._l應用的相關(guān)軟件 畢業(yè)設(shè)計論文 18 第四章 應用的相關(guān)軟件 4.1 keil uvision3編輯軟件 keil c51是美國keil software公司出品的51系列兼容單片機c語言軟件開發(fā)系統(tǒng)與匯編相比c語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢因而易學易用。用過匯編語言后再使用c來開發(fā)體會更加深刻。 keil c51軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具全wind

37、ows界面。另外重要的一點只要看一下編譯后生成的匯編代碼就能體會到keil c51生成的目標代碼效率非常之高多數(shù)語句生成的匯編代碼很緊湊容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。 本次設(shè)計中主要使用keil軟件對高精度溫度計的源程序c語言進行編輯和檢驗。 4.2 protel 99se 電路板設(shè)計軟件 protel 99se是prokltechnology公司開發(fā)的基于windows環(huán)境下的電路板設(shè)計軟件。該軟件功能強大人機界面友好易學易用仍然是大中院校電學專業(yè)必學課程同時也是業(yè)界人士首選的電路板設(shè)計工具。 protel 99se 由兩大部分組成電路原理圖設(shè)計advanced sche

38、matic和多層印刷電路板設(shè) 計advanced pcb。其中advanced schematic由兩部分組成電路圖編輯器schematic和 元件庫編輯器schematic library。 由于高精度溫度是一個具體的實物因此在設(shè)計中要進行實物制作為了方便制作我們要用到protel 99se進行原理圖設(shè)計。 4.3 智能高速通用編輯器 該編輯器編程速度無與倫比逼近芯片理論極限。基本配置48腳流行驅(qū)動電路一顆通用適配器插在dip48鎖緊座上支持同封裝所有類型器件48腳及以下dip器件無需適配器直接支持。通用適配器保證快速新器件支持。i/o電平由dac控制直接支持低達1.5v的低壓器件。更先進的

39、波形驅(qū)動電路極大抑制工作噪聲配合ic廠家認證的算法無論是低電壓器件、二手器件還是低品質(zhì)器件均能保證極高的編程良品率。編程結(jié)果可選擇高低雙電壓校驗保證結(jié)果持久穩(wěn)固。支持90多個廠家9000多種flash、eprom、eeprom、mcu、pld等器件。支持新器件僅需升級軟件免費??蓽y試sram、標準ttl/coms電路并能自動判斷型號。自動檢測芯片錯插和管腳接觸不良避免損壞器件??蓽y試和自動識別標準ttl/cmos邏輯電路和用戶自定義測試向量的非標準邏輯電路。工程project將用戶關(guān)于對象器件的各種操作、設(shè)置包括器件型號設(shè)定、燒寫文件的調(diào)入、配置位的設(shè)定、批處理命令等保存在工程文件浮?指令5光

40、標或顯示移位 s/c高礹畢業(yè)設(shè)計論文 高精度溫度計 19 中每次運行時一步進入寫片操作。器件型號選擇和文件載入均有歷史history記錄方便再次選擇。批處理auto命令允許用戶將擦除、查空、編程、校驗、加密等常用命令序列隨心所欲地組織成一步完成的單一命令。量產(chǎn)模式下一旦芯片正確插入cpu即自動啟動批處理命令無須人工按鍵。自動序列號功能按用戶要求自動生成并寫入序列號。借助于開放的api用戶可以在線動態(tài)修改數(shù)據(jù)buffer使每片芯片內(nèi)容均不同。器件型號選錯軟件按照實際讀出的id提示相近的候選型號。自動識別文件格式, 自動提示文件地址溢出。完善的過流保護功能避免損壞編程器。邏輯測試功能。 圖4-1為學校中使用的280 智能高速通用編輯器 圖4-1 智能高速通用編輯器 實物效果展示 畢業(yè)設(shè)計論文 20 第五章 實物效果展示 本次畢業(yè)設(shè)計主題為高精度溫度計。我們須將硬件設(shè)備與軟件編程結(jié)合才能具體的展示所做的溫度計的實物效果。 在將程序下載進單片機后我們接通電源來觀測現(xiàn)象。該溫度計是用1602lcd來展示成果的。我們可以通過調(diào)節(jié)與1602相連的電位器來改變1602上顯示溫度字符的光亮程度以適應在不同環(huán)境下可以清晰地顯示溫度。 另外在檢測ds18b20是否能正常工作時我們使用了直接的手觸方式。結(jié)果顯示在同一環(huán)境下不同的人具有不同的溫度我們發(fā)現(xiàn)ds18b20能夠快

溫馨提示

  • 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

提交評論