基于DS18B20的溫度測量和顯示系統(tǒng)設(shè)計與仿真
3 軟件設(shè)計
本系統(tǒng)的軟件設(shè)計主要包括三部分,一是溫度測量部分,二是溫度顯示部分,還有一個是報警部分。
DS18B20通過嚴格的單線通信協(xié)議來保證數(shù)據(jù)完整。該協(xié)議中定義了復(fù)位脈沖、存在脈沖、寫0、寫1、讀0、讀1等幾種信號形式。其中,只有存在脈沖是由總線受控(即DS18B20)發(fā)出,其他的全部由總線主控(即單片機)發(fā)出。
3.1 初始化
DS18B20的初始化包括來自單片機的復(fù)位脈沖和接下來由DS18B20發(fā)出的存在脈沖。其初始化時序圖如圖3所示。
當DS18B20響應(yīng)單片機的復(fù)位而發(fā)出存在脈沖時,單片機便知道DS18B20在線上并已準備好。單片機發(fā)送復(fù)位脈沖,即拉低總線至少480 μs,然后單片機釋放總線并進入接收模式。當DS18B20檢測到復(fù)位脈沖后,等待15~60 μs,然后發(fā)送存在脈沖,即拉低總線60~240μs。由于DS18B20的DQ引腳接了一個上拉電阻,所以,總線的空閑狀態(tài)為高電平,存在脈沖結(jié)束后,總線自動恢復(fù)到高電平狀態(tài)。單片機所要做的就是發(fā)出復(fù)位脈沖并檢測DS18B20的存在脈沖,其參考程序如下:
3.2 寫時序
單片機可在寫時隙向DS18B20寫入數(shù)據(jù),在讀時隙從DS18B20讀出數(shù)據(jù),每個時隙總線上只傳送一位數(shù)據(jù)。寫時隙有“寫1”時隙和“寫0”時隙兩種。單片機通過寫1時隙向DS18B20寫入一個邏輯1,并通過寫0時隙向DS18B20寫入一個邏輯0。所有的寫時隙必須至少持續(xù)60 μs,并在每個獨立的寫時隙之間至少有1 μs的恢復(fù)時間。兩種寫時隙都是由單片機拉低總線開始的,如圖3所示。本文引用地址:http://butianyuan.cn/article/192907.htm
評論