




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 開封大學(xué)畢業(yè)設(shè)計 指導(dǎo)老師09電氣一班目 錄1 設(shè)計內(nèi)容及性能指標32系統(tǒng)框架43系統(tǒng)器件選擇53.1 單片機的選擇53.2 89s51引腳介紹53.3溫度傳感器的選擇64 硬件設(shè)計電路134.1顯示電路144.2 溫度檢測電路144.3 溫度報警電路165軟件設(shè)計175.1 概述 175.2主程序模塊 175.3各模塊流程設(shè)計 186.源程序22附錄1:參考文獻34附錄2:元件清單 35附錄3: 電氣原理圖36 摘要隨著人們生活水平的不斷提高,單片機控制無疑是人們追求的目標之一,它所給人帶來的方便也是不可否定的,其中數(shù)字溫度計就是一個典型的例子,但人們對它的要求越來越高,要為現(xiàn)代人工作、科
2、研、生活、提供更好的更方便的設(shè)施就需要從數(shù)單片機技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。隨著時代的進步和發(fā)展,單片機技術(shù)已經(jīng)普及到我們生活,工作,科研,各個領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù),單片機已經(jīng)在測控領(lǐng)域中獲得了廣泛的應(yīng)用本設(shè)計所介紹的數(shù)字溫度計與傳統(tǒng)的溫度計相比,具有讀數(shù)方便,測溫范圍廣,測溫準確,其輸出溫度采用數(shù)字顯示,該設(shè)計控制器使用單片機at89s51,測溫傳感器使用ds18b20,用lcd數(shù)碼管以串口傳送數(shù)據(jù),實現(xiàn)溫度顯示,能準確達到以上要求。關(guān)鍵詞 at89s51 單片機 傳感器 ds18b201 設(shè)計內(nèi)容及性能指標本設(shè)計主要是介紹了單片機控制下的溫度檢測系統(tǒng),詳細
3、介紹了其硬件和軟件設(shè)計,并對其各功能模塊做了詳細介紹,其主要功能和指標如下:利用溫度傳感器(ds18b20)測量某一點環(huán)境溫度測量范圍為-50150,精度為0.5用液晶進行實際溫度值顯示能夠根據(jù)需要方便設(shè)定上下限報警溫度2系統(tǒng)框架采用數(shù)字溫度芯片ds18b20 測量溫度,輸出信號全數(shù)字化。便于單片機處理及控制,省去傳統(tǒng)的測溫方法的很多外圍電路。且該芯片的物理化學(xué)性很穩(wěn)定,它能用做工業(yè)測溫元件,此元件線形較好。在0100 攝氏度時,最大線形偏差小于1 攝氏度。ds18b20 的最大特點之一采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計ds18b20和微控制器at89s51構(gòu)成的溫度測量裝置,它直接輸出溫度
4、的數(shù)字信號,可直接與計算機連接。這樣,測溫系統(tǒng)的結(jié)構(gòu)就比較簡單,體積也不大。采用51 單片機控制,軟件編程的自由度大,可通過編程實現(xiàn)各種各樣的算術(shù)算法和邏輯控制,而且體積小,硬件實現(xiàn)簡單,安裝方便。既可以單獨對多ds18b20控制工作,還可以與pc 機通信上傳數(shù)據(jù),另外at89s51 在工業(yè)控制上也有著廣泛的應(yīng)用,編程技術(shù)及外圍功能電路的配合使用都很成熟。該系統(tǒng)利用at89s51芯片控制溫度傳感器ds18b20進行實時溫度檢測并顯示,能夠?qū)崿F(xiàn)快速測量環(huán)境溫度,并可以根據(jù)需要設(shè)定上下限報警溫度。該系統(tǒng)擴展性非常強,它可以在設(shè)計中加入時鐘芯片ds1302以獲取時間數(shù)據(jù),在數(shù)據(jù)處理同時顯示時間,并可
5、以利用at24c16芯片作為存儲器件,以此來對某些時間點的溫度數(shù)據(jù)進行存儲,利用鍵盤來進行調(diào)時和溫度查詢,獲得的數(shù)據(jù)可以通過max232芯片與計算機的rs232接口進行串口通信,方便的采集和整理時間溫度數(shù)據(jù)。圖 3.3 系統(tǒng)框圖 3系統(tǒng)器件選擇3.1 單片機的選擇at89s51 是cmos8 位單片機,它集 flash 程序存儲器既可在線編程(isp),也可用傳統(tǒng)方法進行編程,所以低價位 at89s51單片機可為提供許多高性價比的應(yīng)用場合,可靈活應(yīng)用于各種控制領(lǐng)域,對于簡單的測溫系統(tǒng)已經(jīng)足夠。單片機at89s51 具有低電壓供電和體積小等特點,四個端口只需要兩個口就能滿足電路系統(tǒng)的設(shè)計需要,很
6、適合便攜手持式產(chǎn)品的設(shè)計使用系統(tǒng)可用二節(jié)電池供電。主要特性如下與mcs-51 兼容4k字節(jié)可編程閃爍存儲器壽命:1000寫/擦循環(huán)數(shù)據(jù)保留時間:10年全靜態(tài)工作:0hz-24hz三級程序存儲器鎖定128*8位內(nèi)部ram32可編程i/o線兩個16位定時器/計數(shù)器5個中斷源 圖 4.1 at89s51單片機引腳圖可編程串行通道低功耗的閑置和掉電模式片內(nèi)振蕩器和時鐘電路 3.2 89s51 引腳功能介紹 at89s51 單片機為40 引腳雙列直插式封裝。 其引腳排列和邏輯符號如圖4.1 所示。各引腳功能簡單介紹如下:vcc:供電電壓 gnd:接地 p0口:p0口為一個8位漏級開路雙向i/o口,每個管
7、腳可吸收8ttl門電流。當p1口的管腳寫“1”時,被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在flash編程時,p0口作為原碼輸入口,當flash進行校驗時,p0輸出原碼,此時p0外部電位必須被拉高。p1口:p1口是一個內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入“1”后,電位被內(nèi)部上拉為高,可用作輸入,p1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗時,p1口作為第八位地址接收。p2口:p2口為一個內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個ttl門電流
8、,當p2口被寫“1”時,其管腳電位被內(nèi)部上拉電阻拉高,且作為輸入。作為輸入時,p2口的管腳電位被外部拉低,將輸出電流,這是由于內(nèi)部上拉的緣故。p2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,p2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉的優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗時接收高八位地址信號和控制信號。p3口:p3口管腳是8個帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個ttl門電流。當p3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。rst:復(fù)位輸入。當振蕩器復(fù)位器件時,要保持rst腳兩個
9、機器周期的高電平時間。ale / prog :當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時,ale端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。psen:外部程序存儲器的選通信號。在由外部程序存儲器取址期間,每個機器周期psen兩次有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的psen信號將不出現(xiàn)。ea/vpp:當ea保持低電平時,訪問外部rom;注意加密方式1時,ea將內(nèi)部鎖定為reset;當ea端保持高電平時,訪問內(nèi)部rom。在flash編程期間,此引腳也用于
10、施加12v編程電源(vpp)。xtal1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。xtal2:來自反向振蕩器的輸出。3.3溫度傳感器的選擇由于傳統(tǒng)的熱敏電阻等測溫元件測出的一般都是電壓,再轉(zhuǎn)換成對應(yīng)的溫度,需要比較多的外部元件支持,且硬件電路復(fù)雜,制作成本相對較高。這里采用dallas公司的數(shù)字溫度傳感器ds18b20作為測溫元件。3.3.1 ds18b20的介紹dallas 最新單線數(shù)字溫度傳感器ds18b20是一種新型的“一線器件”,其體積更小、更適用于多種場合、且適用電壓更寬、更經(jīng)濟。dallas 半導(dǎo)體公司的數(shù)字化溫度傳感器ds18b20是世界上第一片支持“一線總線”接口的溫度傳
11、感器。溫度測量范圍為-50+150 攝氏度,可編程為9位12 位轉(zhuǎn)換精度,測溫分辨率可達0.0625攝氏度,分辨率設(shè)定參數(shù)以及用戶設(shè)定的報警溫度存儲在eeprom 中,掉電后依然保存。被測溫度用符號擴展的16位數(shù)字量方式串行輸出;其工作電源既可以在遠端引入,也可以采用寄生電源方式產(chǎn)生;多個ds18b20可以并聯(lián)到3 根或2 根線上,cpu只需一根端口線就能與諸多ds18b20 通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。因此用它來組成一個測溫系統(tǒng),具有線路簡單,在一根通信線,可以掛很多這樣的數(shù)字溫度計,十分方便。ds18b20 的性能特點如下: 獨特的單線接口方式,ds18b20
12、在與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與ds18b20的雙向通訊 ds18b20支持多點組網(wǎng)功能,多個ds18b20可以并聯(lián)在唯一的三線上,實現(xiàn)組網(wǎng)多點測溫 ds18b20在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi) 適應(yīng)電壓范圍更寬,電壓范圍:3.05.5v,在寄生電源方式下可由數(shù)據(jù)線供電 溫范圍-50150 零待機功耗 可編程的分辨率為912位,對應(yīng)的可分辨溫度分別為0.5、0.25、0.125和0.0625,可實現(xiàn)高精度測溫 在9位分辨率時最多在93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快
13、用戶可定義報警設(shè)置 報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件 測量結(jié)果直接輸出數(shù)字溫度信號,以一線總線串行傳送給cpu,同時可傳送crc校驗碼,具有極強的抗干擾糾錯能力 負電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作3.3.2 ds18b20 使用中的注意事項ds18b20 雖然具有測溫系統(tǒng)簡單、測溫精度高、連接方便、占用口線少等優(yōu)點,但在實際應(yīng)用中也應(yīng)注意以下幾方面的問題:ds18b20 從測溫結(jié)束到將溫度值轉(zhuǎn)換成數(shù)字量需要一定的轉(zhuǎn)換時間,這是必須保證的,不然會出現(xiàn)轉(zhuǎn)換錯誤的現(xiàn)象,使溫度輸出總是顯示85。在實際使用中發(fā)現(xiàn),應(yīng)使電源電壓保持在5v 左右,
14、若電源電壓過低,會使所測得的溫度精度降低。在對ds1820進行讀寫編程時,必須嚴格的保證讀寫時序,否則將無法讀取測溫結(jié)果。在使用pl/m、c等高級語言進行系統(tǒng)程序設(shè)計時,對ds1820操作部分最好采用匯編語言實現(xiàn)。在ds18b20的有關(guān)資料中均未提及單總線上所掛ds18b20 數(shù)量問題,容易使人誤認為可以掛任意多個ds18b20,在實際應(yīng)用中并非如此,當單總線上所掛ds18b20 超過8 個時,就需要解決微處理器的總線驅(qū)動問題,這一點在進行多點測溫系統(tǒng)設(shè)計時要加以注意。在ds18b20測溫程序設(shè)計中,向ds18b20 發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待ds18b20的返回信號,一旦某個ds18b
15、20 接觸不好或斷線,當程序讀該ds18b20 時,將沒有返回信號,程序進入死循環(huán),這一點在進行ds18b20硬件連接和軟件設(shè)計時也要給予一定的重視。3.3.3 ds18b20 內(nèi)部結(jié)構(gòu)圖為ds1820的內(nèi)部框圖,它主要包括寄生電源、溫度傳感器、64位激光rom單線接口、存放中間數(shù)據(jù)的高速暫存器(內(nèi)含便箋式ram),用于存儲用戶設(shè)定的溫度上下限值的th和tl觸發(fā)器存儲與控制邏輯、8位循環(huán)冗余校驗碼(crc)發(fā)生器等七部分。ds18b20采用腳pr35 封裝或腳soic封裝,其內(nèi)部結(jié)構(gòu)框圖如圖 4.4所示圖 4.4 ds18b20內(nèi)部結(jié)構(gòu)框圖64 b閃速rom的結(jié)構(gòu)如下:開始位是產(chǎn)品類型的編號,
16、接著是每個器件的惟一的序號,共有48 位,最后位是前面56 位的crc 檢驗碼,這也是多個ds18b20 可以采用一線進行通信的原因。溫度報警觸發(fā)器和,可通過軟件寫入戶報警上下限。主機操作rom的命令有五種,如表所列指 令說 明讀rom(33h)讀ds1820的序列號匹配rom(55h)繼讀完64位序列號的一個命令,用于多個ds1820時定位跳過rom(cch)此命令執(zhí)行后的存儲器操作將針對在線的所有ds1820搜rom(f0h)識別總線上各器件的編碼,為操作各器件作好準備報警搜索(ech)僅溫度越限的器件對此命令作出響應(yīng)ds18b20 溫度傳感器的內(nèi)部存儲器還包括一個高速暫存和一個非易失性的
17、可電擦除的eeram。高速暫存ram 的結(jié)構(gòu)為字節(jié)的存儲器,結(jié)構(gòu)如圖 4.5所示。 圖 4.5 高速暫存ram結(jié)構(gòu)圖前個字節(jié)包含測得的溫度信息,第和第字節(jié)和的拷貝,是易失的,每次上電復(fù)位時被刷新。第個字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。ds18b20工作時寄存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。溫度低位溫度高位thtl配置保留保留保留8位crclsb msb當ds18b20接收到溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1,2字節(jié)。單片機可通過單線接口讀到該數(shù)據(jù),讀取時低位在前,高位在后,數(shù)據(jù)格式以0.
18、062 5 /lsb形式表示。溫度值格式如下:這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲在18b20的兩個8比特的ram中,二進制中的前面5位是符號位,如果測得的溫度大于0,這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于0.0625即可得到實際溫度。圖中,s表示位。對應(yīng)的溫度計算:當符號位s=0時,表示測得的溫度植為正值,直接將二進制位轉(zhuǎn)換為十進制;當s=1時,表示測得的溫度植為負值,先將補碼變換為原碼,再計算十進制值。例如+125的數(shù)字輸出為07d0h,+25.0625的數(shù)字輸出為0191h,-25.0625的數(shù)字輸出為ff
19、6fh,-55的數(shù)字輸出為fc90h。ds18b20完成溫度轉(zhuǎn)換后,就把測得的溫度值與ram中的th、tl字節(jié)內(nèi)容作比較,若tth或ttl,則將該器件內(nèi)的告警標志置位,并對主機發(fā)出的告警搜索命令作出響應(yīng)。因此,可用多只ds18b20同時測量溫度并進行告警搜索。在64位rom的最高有效字節(jié)中存儲有循環(huán)冗余校驗碼(crc)。主機根據(jù)rom的前 56位來計算crc值,并和存入ds18b20中的crc值做比較,以判斷主機收到的rom數(shù) 據(jù)是否正確。3.3.4 ds18b20測溫原理ds18b20的測溫原理如圖2所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器1
20、,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器2的脈沖輸入,圖中還隱含著計數(shù)門,當計數(shù)門打開時,ds18b20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖后進行計數(shù),進而完成溫度測量.計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將50 所對應(yīng)的基數(shù)分別置入減法計數(shù)器1和溫度寄存器中,減法計數(shù)器1和溫度寄存器被預(yù)置在50 所對應(yīng)的一個基數(shù)值。減法計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當減法計數(shù)器1的預(yù)置值減到0時溫度寄存器的值將加1,減法計數(shù)器 1的預(yù)置將重新被裝入,減法計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到減法計數(shù)器2計
21、數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫圖2中的斜率累加器用于補償和修正測溫過程中的非線性其輸出用,于修正減法計數(shù)器的預(yù)置值,只要計數(shù)門仍未關(guān)閉就重復(fù)上述過程,直至溫度寄存器值達到被測溫度值,這就是ds18b20的測溫原理。另外,由于ds18b20單線通信功能是分時完成的,他有嚴格的時隙概念,因此讀寫時 序很重要。系統(tǒng)對ds18b20的各種操作必須按協(xié)議進行。操作協(xié)議為:初始化ds18b20 (發(fā)復(fù)位脈沖)發(fā)rom功能命令發(fā)存儲器操作命令處理數(shù)據(jù)。圖(2) ds18b20測溫原理圖3.3.5 提高ds1820測溫精度的途徑 1 .ds1820高精度測溫的理論依據(jù) ds
22、1820正常使用時的測溫分辨率為0.5,這對于水輪發(fā)電機組軸瓦溫度監(jiān)測來講略顯不足,在對ds1820測溫原理詳細分析的基礎(chǔ)上,我們采取直接讀取ds1820內(nèi)部暫存寄存器的方法,將ds1820的測溫分辨率提高到0.10.01ds1820內(nèi)部暫存寄存器的分布如表1所示,其中第7字節(jié)存放的是當溫度寄存器停止增值時計數(shù)器1的計數(shù)剩余值,第8字節(jié)存放的是每度所對應(yīng)的計數(shù)值,這樣,我們就可以通過下面的方法獲得高分辨率的溫度測量結(jié)果。首先用ds1820提供的讀暫存寄存器指令(beh)讀出以0.5為分辨率的溫度測量結(jié)果,然后切去測量結(jié)果中的最低有效位(lsb),得到所測實際溫度整數(shù)部分t整數(shù),然后再用beh指
23、令讀取計數(shù)器1的計數(shù)剩余值m剩余和每度計數(shù)值m每度,考慮到ds1820測量溫度的整數(shù)部分以0.25、0.75為進位界限的關(guān)系,實際溫度t實際可用下式計算得到:t實際=(t整數(shù)0.25)+(m每度m剩余)/m每度。表1 ds18b20暫存寄存器分布該字節(jié)各位的定義如下:tm r1 r0 1 1 1 1 1低5位一直都是1,tm是測試模式位,用于設(shè)置ds18b20在工作模式還是在測試模式。在ds18b20出廠時該位被設(shè)置為0,用戶不要去改動,r1和r0決定溫度轉(zhuǎn)換的精度位數(shù),即是來設(shè)置分辨率,如表1所示(ds18b20出廠時被設(shè)置為12位)。 表2 r1和r2模式表r1r0分辨率溫度最大轉(zhuǎn)換時/m
24、m009位93.750110位187.751011位275.001112位750.00由表1可見,設(shè)定的分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時間就越長。因此,在實際應(yīng)用中要在分辨率和轉(zhuǎn)換時間權(quán)衡考慮。高速暫存存儲器除了配置寄存器外,還有其他8個字節(jié)組成,其分配如下所示。其中溫度信息(第1,2字節(jié))、th和tl值第3,4字節(jié)、第68字節(jié)未用,表現(xiàn)為全邏輯1;第9字節(jié)讀出的是前面所有8個字節(jié)的crc碼,可用來保證通信正確。 根據(jù)ds18b20的通訊協(xié)議,主機控制ds18b20完成溫度轉(zhuǎn)換必須經(jīng)過三個步驟:每一次讀寫之前 都要對ds18b20進行復(fù)位,復(fù)位成功后發(fā)送一條rom指令,最后發(fā)送ram指令,這
25、樣才能對ds18b20進行預(yù)定的操作。復(fù)位要求主cpu將數(shù)據(jù)線下拉500微秒,然后釋放,ds18b20收到信號后等待1660微秒左右,后發(fā)出60240微秒的存在低脈沖,主cpu收到此信號表示復(fù)位成功。2 .測量數(shù)據(jù)比較表2為采用直接讀取測溫結(jié)果方法和采用計算方法得到的測溫數(shù)據(jù)比較,通過比較可以看出,計算方法在ds1820測溫中不僅是可行的,也可以大大的提高ds1820的測溫分率。表3 ds18b20 直度測溫結(jié)果與計算測溫結(jié)果數(shù)據(jù)比較4 硬件設(shè)計電路溫度計電路設(shè)計原理圖如圖5.1所示,控制器使用單片機at89c2051,溫度計傳感器使用ds18b20,用液晶實現(xiàn)溫度顯示。本溫度計大體分三個工作
26、過程。首先,由ds18820溫度傳感器芯片測量當前的溫度,并將結(jié)果送入單片機。然后,通過at89s51單片機芯片對送來的測量溫度讀數(shù)進行計算和轉(zhuǎn)換,井將此結(jié)果送入液晶顯示模塊。最后,smc1602a芯片將送來的值顯示于顯示屏上。由圖1可看到,本電路主要由dsl8820溫度傳感器芯片、smcl602a液晶顯示模塊芯片和at89s51單片機芯片組成。其中,dsi8b20溫度傳感器芯片采用“一線制”與單片機相連,它獨立地完成溫度測量以及將溫度測量結(jié)果送到單片機的工作。4.1 顯示電路顯示電路采用smci602a液晶顯示模塊芯片該芯片可顯示162個字符,比以前的七段數(shù)碼管led顯示器在顯示字符的數(shù)量上
27、要多得多。另外,由于smcl602芯片編程比較簡單,界面直觀,因此更加易于使用者操作和觀測。smcl602a芯片的接口信號說明如表1所列。表1 smcl602a芯片的接口信號說明4.2 溫度檢測電路ds18b20 最大的特點是單總線數(shù)據(jù)傳輸方式,ds18b20 的數(shù)據(jù)i/o 均由同一條線來完成。ds18b20 的電源供電方式有2 種: 外部供電方式和寄生電源方式。工作于寄生電源方式時, vdd 和gnd 均接地, 他在需要遠程溫度探測和空間受限的場合特別有用, 原理是當1 w ire 總線的信號線dq 為高電平時, 竊取信號能量給ds18b20 供電, 同時一部分能量給內(nèi)部電容充電, 當dq為
28、低電平時釋放能量為ds18b20 供電。但寄生電源方式需要強上拉電路, 軟件控制變得復(fù)雜(特別是在完成溫度轉(zhuǎn)換和拷貝數(shù)據(jù)到e2prom 時) , 同時芯片的性能也有所降低。因此, 在條件允許的場合, 盡量采用外供電方式。無論是內(nèi)部寄生電源還是外部供電,i/o口線要接5k左右的上拉電。在這里采用前者方式供電。ds18b20與芯片連接電路如圖 5.2所示:圖 5.2 ds18b20與單片機的連接外部電源供電方式是ds18b20最佳的工作方式,工作穩(wěn)定可靠,抗干擾能力強,而且電路也比較簡單,可以開發(fā)出穩(wěn)定可靠的多點溫度監(jiān)控系統(tǒng)。使用外部電源供電方式,畢竟比寄生電源方式只多接一根vcc引線。在外接電源
29、方式下,可以充分發(fā)揮ds18b20寬電源電壓范圍的優(yōu)點,即使電源電壓vcc 降到3v 時,依然能夠保證溫度量精度。由于ds18b20 只有一根數(shù)據(jù)線,因此它和主機(單片機)通信是需要串行通信,而at89s51 有兩個串行端口,所以可以不用軟件來模擬實現(xiàn)。經(jīng)過單線接口訪問dc18b20 必須遵循如下協(xié)議:初始化、rom 操作命令、存儲器操作命令和控制操作。要使傳感器工作,一切處理均嚴格按照時序。主機發(fā)送(tx)-復(fù)位脈沖(最短為480s 的低電平信號)。接著主機便釋放此線并進入接收方式(rx)。總線經(jīng)過4.7k的上拉電阻被拉至高電平狀態(tài)。在檢測到i/o 引腳上的上升沿之后,ds18b20 等待1
30、560s,并且接著發(fā)送脈沖(60240s 的低電平信號)。然后以存在復(fù)位脈沖表示ds18b20 已經(jīng)準備好發(fā)送或接收,然后給出正確的rom 命令和存儲操作命令的數(shù)據(jù)。ds18b20 通過使用時間片來讀出和寫入數(shù)據(jù),時間片用于處理數(shù)據(jù)位和進行何種指定操作的命令。它有寫時間片和讀時間片兩種:l 寫時間片:當主機把數(shù)據(jù)線從邏輯高電平拉至邏輯低電平時,產(chǎn)生寫時間片。有兩種類型的寫時間片:寫1 時間片和寫0 時間片。所有時間片必須有60 微秒的持續(xù)期,在各寫周期之間必須有最短為1微秒的恢復(fù)時間.l 讀時間片:從ds18b20 讀數(shù)據(jù)時,使用讀時間片。當主機把數(shù)據(jù)線從邏輯高電平拉至邏輯低電平時產(chǎn)生讀時間片
31、。數(shù)據(jù)線在邏輯低電平必須保持至少1 微秒;來自ds18b20 的輸出數(shù)據(jù)在時間下降沿之后的15 微秒內(nèi)有效。為了讀出從讀時間片開始算起15微秒的狀態(tài),主機必須停止把引腳驅(qū)動拉至低電平。在時間片結(jié)束時,i/o 引腳經(jīng)過外部的上拉電阻拉回高電平,所有讀時間片的最短持續(xù)期為60 微秒,包括兩個讀周期間至少1s 的恢復(fù)時間。一旦主機檢測到ds18b20 的存在,它便可以發(fā)送一個器件rom 操作命令。所有rom 操作命令均為8位長。所有的串行通訊,讀寫每一個bit 位數(shù)據(jù)都必須嚴格遵守器件的時序邏輯來編程,同時還必須遵守總線命令序列,對單總線的ds18b20 芯片來說,訪問每個器件都要遵守下列命令序列:
32、首先是初始化;其次執(zhí)行rom 命令;最后就是執(zhí)行功能命令(rom 命令和功能命令后面以表格形式給出)。如果出現(xiàn)序列混亂,則單總線器件不會響應(yīng)主機。當然,搜索rom命令和報警搜索命令,在執(zhí)行兩者中任何一條命令之后,要返回初始化。基于單總線上的所有傳輸過程都是以初始化開始的,初始化過程由主機發(fā)出的復(fù)位脈沖和從機響應(yīng)的應(yīng)答脈沖組成。應(yīng)答脈沖使主機知道,總線上有從機,且準備就緒。在主機檢測到應(yīng)答脈沖后,就可以發(fā)出rom 命令。這些命令與各個從機設(shè)備的唯一64 位rom 代碼相關(guān)。在主機發(fā)出rom命令,以訪問某個指定的ds18b20,接著就可以發(fā)出ds18b20支持的某個功能命令。這些命令允許主機寫入或
33、讀出ds18b20便箋式ram、啟動溫度轉(zhuǎn)換。軟件實現(xiàn)ds18b20的工作嚴格遵守單總線協(xié)議:(1)主機首先發(fā)出一個復(fù)位脈沖,信號線上的ds18b20 器件被復(fù)位。(2)接著主機發(fā)送rom命令,程序開始讀取單個在線的芯片rom編碼并保存在單片機數(shù)據(jù)存儲器中,把用到的ds18b20 的rom 編碼離線讀出,最后用一個二維數(shù)組保存rom 編碼,數(shù)據(jù)保存在x25043中。(3)系統(tǒng)工作時,把讀取了編碼的ds18b20 掛在總線上。發(fā)溫度轉(zhuǎn)換命令,再總線復(fù)位。(4)然后就可以從剛才的二維數(shù)組匹配在線的溫度傳感器,隨后發(fā)溫度讀取命令就可以獲得對應(yīng)的度值了。在主機初始化過程,主機通過拉低單總線至少480u
34、s,來產(chǎn)生復(fù)位脈沖。接著,主機釋放總線,并進入接收模式。當總線被釋放后,上拉電阻將單總線拉高。在單總線器件檢測到上升沿后,延時1560us,接著通過拉低總線60240us,以產(chǎn)生應(yīng)答脈沖。寫時序均起始于主機拉低總線,產(chǎn)生寫1 時序的方式:主機在拉低總線后,接著必須在15us之內(nèi)釋放總線。產(chǎn)生寫0 時序的方式:在主機拉低總線后,只需在整個時序期間保持低電平即可(至少60us)。在寫字節(jié)程序中的寫一個bit 位的時候,沒有按照通常的分別寫0時序和寫1 時序,而是把兩者結(jié)合起來,當主機拉低總線后在15us 之內(nèi)將要寫的位c 給do:如果c 是高電平滿足15us 內(nèi)釋放總線的要求,如果c是低電平,則d
35、oc這條語句仍然是把總線拉在低電平,最后都通過延時58us 完成一個寫時序(寫時序0或?qū)憰r序1)過程。寫時間時序:當主機把數(shù)據(jù)從邏輯高電平拉到邏輯低電平的時候,寫時間隙開始。有兩種寫時間隙,寫1 時間隙和寫0 時間隙。所有寫時間隙必須最少持續(xù)60s,包括兩個寫周期至少1s 的恢復(fù)時間。i/o線電平變低后,ds18b20 在一個15s 到60s 的窗口內(nèi)對i/o 線采樣。如果線上事高電平,就是寫1,如果是低電平,就是寫0。主機要生成一個寫時間隙,必須把數(shù)據(jù)線拉到低電平然后釋放,在寫時間隙開始后的15s 內(nèi)允許數(shù)據(jù)線拉到高電平。主機要生成一個寫0 時間隙,必須把數(shù)據(jù)線拉到低電平并保存60s。每個讀
36、時隙都由主機發(fā)起,至少拉低總線1us,在主機發(fā)起讀時序之后,單總線器件才開始在總線上發(fā)送0 或1。所有讀時序至少需要60us。4.3溫度報警電路本此設(shè)計可以采用發(fā)光二級管報警電路,如過需要報警,則只需將相應(yīng)位置1,當參數(shù)判斷完畢后,再看報警模型單元alarm 的內(nèi)容是否與預(yù)設(shè)一樣,如不一樣,則發(fā)光報警。但本次設(shè)計采軟件處理報警,利用有源蜂鳴器進行報警輸出,采用直流供電。當所測溫度超過獲低于所預(yù)設(shè)的溫度時,數(shù)據(jù)口相應(yīng)拉高電平,報警輸出。報警電路硬件連接見圖 5.10。圖 5.10蜂鳴器電路連接圖5 軟件設(shè)計5.1 概述整個系統(tǒng)的功能是由硬件電路配合軟件來實現(xiàn)的,當硬件基本定型后,軟件的功能也就基
37、本定下來了。從軟件的功能不同可分為兩大類:一是監(jiān)控軟件(主程序),它是整個控制系統(tǒng)的核心,專門用來協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系。二是執(zhí)行軟件(子程序),它是用來完成各種實質(zhì)性的功能如測量、計算、顯示、通訊等。每一個執(zhí)行軟件也就是一個小的功能執(zhí)行模塊。這里將各執(zhí)行模塊一一列出,并為每一個執(zhí)行模塊進行功能定義和接口定義。各執(zhí)行模塊規(guī)劃好后,就可以規(guī)劃監(jiān)控程序了。首先要根據(jù)系統(tǒng)的總體功能選擇一種最合適的監(jiān)控程序結(jié)構(gòu),然后根據(jù)實時性的要求,合理地安排監(jiān)控軟件和各執(zhí)行模塊之間地調(diào)度關(guān)系。5.2主程序模塊主程序需要調(diào)用4 個子程序,分別為數(shù)碼管顯示程序,溫度測試及處理子程序,報警子程序,中斷設(shè)定子程序。各
38、模塊程序功能如下:數(shù)碼管顯示程序:向數(shù)碼的顯示送數(shù),控制系統(tǒng)的顯示部分。溫度測試及處理程序:對溫度芯片送過來的數(shù)據(jù)進行處理,進行判斷和顯示。報警子程序:進行溫度上下限判斷及報警輸出。中斷設(shè)定程序:實現(xiàn)設(shè)定上下限報警功能。圖 6.1主程序 圖 6.2 ds18b20初始化流程圖 5.3各模塊流程設(shè)計下面對主要子程序的流程圖做介紹5.3.1 溫度檢測流程ds18b20在單片機控制下分三個階段:18b20 初始化:初始化流程圖見讀18b20時序:讀ds18b20流程見圖 6.3:寫18b20時序:寫18b20 流程見圖6.4圖 6.3讀ds18b20流程圖 圖 6.4寫ds18b20流程圖5.3.2
39、 中斷設(shè)定流程中斷模塊采用了外中斷和內(nèi)中斷套用方法。當設(shè)計需要實現(xiàn)上下限報警時,利用int0口進行中斷,set 鍵進行上下限報警溫度設(shè)定,進入溫度設(shè)定狀態(tài)后(按一下溫度設(shè)定鍵),首先會提示顯示“up”字母,表示要用戶設(shè)定高溫報警溫度,按s3 鍵 ,表示本位數(shù)字+1,按s4 表示移向下一位,如果4 位高溫設(shè)定完畢,則顯示“do”,表示要用戶設(shè)定低溫報警溫度。4位低溫設(shè)定完畢,如果用戶設(shè)置的高溫比設(shè)定的低溫高的話則顯示“erro”表示錯誤提示,同時會有蜂鳴器及時報警提示,然后自動顯示“up”,讓用戶重新進行溫度設(shè)定。中斷設(shè)定子程序流程圖見下圖圖6.6 中斷設(shè)定子程序流程圖源程序timel equ
40、0e0htimeh equ 0b1htemphead equ 36h;bitst data 20htime1sok bit bitst.1temponeok bit bitst.2templ data 26htemph data 27htemphc data 28htemplc data 29h;tempdin bit p3.7; org 0000h ljmp start org 00bh ljmp t0it; org 100hstart: mov sp,#60hclsmem: mov r0,#20h mov r1,#60hclsmem1: mov r0,#00h inc r0 djnz r1
41、,clsmem1 mov tmod,#00100001b mov th0,#timel mov tl0,#timeh sjmp initerror: nop ljmp start nopinit: nop setb et0 setb tr0 setb ea mov psw,#00h clr temponeok ljmp main;toit: push psw mov psw,#10h mov th0,#timeh mov tl0,#timel inc r7 cjne r7,#32h,t0it1 mov r7,#00h setb time1sokt0it1: pop psw reti;main:
42、 lcall disp1 jnb time1sok,mian clr time1sok jnb temponeok,main2 lcall readtemp1 lcall convtemp lcall dispbcd lcall disp1mian: lcall readtemp setb temponeok;initds1820: setb tempdin nop nop clr tempdin mov r6,#0a0h djnz r6,$ mov r6,#0a0h djnz r6,$ setb tempdin mov r6,#32h djnz r6,$ mov r6,#3chloop1820: mov c,tempdin jc initds1820out djnz r6,loop1820 mov r6,#064h djnz r6,$ sjmp initds1820 retinitds18
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)務(wù)科日常工作職責
- 美術(shù)教師創(chuàng)作教學(xué)心得體會
- 人音版七年級上冊音樂學(xué)校發(fā)展計劃
- 2024-2025年小學(xué)英語六年級課程教學(xué)計劃
- 吉林省長春市長春汽車經(jīng)濟技術(shù)開發(fā)區(qū)2025屆九年級下學(xué)期中考一模數(shù)學(xué)試卷(含解析)
- 游戲運營部崗位職責
- 二年級道法心理健康教育教學(xué)計劃
- 小學(xué)一年級下班主任節(jié)假日安全計劃
- 汽車行業(yè)商務(wù)總監(jiān)職責
- 環(huán)保行業(yè)會務(wù)服務(wù)質(zhì)量管理措施
- LY/T 1279-2020聚氯乙烯薄膜飾面人造板
- GB/T 879.2-2018彈性圓柱銷直槽輕型
- GB/T 24218.2-2009紡織品非織造布試驗方法第2部分:厚度的測定
- GA/T 1144-2014信息安全技術(shù)非授權(quán)外聯(lián)監(jiān)測產(chǎn)品安全技術(shù)要求
- 懸索橋施工控制課件
- 證券從業(yè)資格考試2023年歷年真題匯總
- 中醫(yī)四大經(jīng)典題目及答案
- 高三學(xué)生復(fù)讀第一課-主題班會課件(共68張PPT)
- 審判流程管理信息表
- 303093 池國華 《內(nèi)部控制與風險管理(第3版)》思考題和案例分析答案
- 沈陽市生產(chǎn)性服務(wù)業(yè)調(diào)研報告
評論
0/150
提交評論