




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 開封大學畢業設計 指導老師 肖興達09電氣一班葉彬彬2011/12/27目 錄1 設計內容及性能指標32系統框架43系統器件選擇53.1 單片機的選擇53.2 89S51引腳介紹53.3溫度傳感器的選擇64 硬件設計電路134.1顯示電路144.2 溫度檢測電路144.3 溫度報警電路165軟件設計175.1 概述 175.2主程序模塊 175.3各模塊流程設計 186.源程序22附錄1:參考文獻34附錄2:元件清單 35附錄3: 電氣原理圖36 摘要隨著人們生活水平的不斷提高,單片機控制無疑是人們追求的目標之一,它所給人帶來的方便也是不可否定的,其中數字溫度計就是一個典型的例子,但人們對它
2、的要求越來越高,要為現代人工作、科研、生活、提供更好的更方便的設施就需要從數單片機技術入手,一切向著數字化控制,智能化控制方向發展。隨著時代的進步和發展,單片機技術已經普及到我們生活,工作,科研,各個領域,已經成為一種比較成熟的技術,單片機已經在測控領域中獲得了廣泛的應用本設計所介紹的數字溫度計與傳統的溫度計相比,具有讀數方便,測溫范圍廣,測溫準確,其輸出溫度采用數字顯示,該設計控制器使用單片機AT89S51,測溫傳感器使用DS18B20,用LCD數碼管以串口傳送數據,實現溫度顯示,能準確達到以上要求。關鍵詞 AT89S51 單片機 傳感器 DS18B201 設計內容及性能指標本設計主要是介紹
3、了單片機控制下的溫度檢測系統,詳細介紹了其硬件和軟件設計,并對其各功能模塊做了詳細介紹,其主要功能和指標如下:利用溫度傳感器(DS18B20)測量某一點環境溫度測量范圍為-50150,精度為±0.5用液晶進行實際溫度值顯示能夠根據需要方便設定上下限報警溫度2系統框架采用數字溫度芯片DS18B20 測量溫度,輸出信號全數字化。便于單片機處理及控制,省去傳統的測溫方法的很多外圍電路。且該芯片的物理化學性很穩定,它能用做工業測溫元件,此元件線形較好。在0100 攝氏度時,最大線形偏差小于1 攝氏度。DS18B20 的最大特點之一采用了單總線的數據傳輸,由數字溫度計DS18B20和微控制器A
4、T89S51構成的溫度測量裝置,它直接輸出溫度的數字信號,可直接與計算機連接。這樣,測溫系統的結構就比較簡單,體積也不大。采用51 單片機控制,軟件編程的自由度大,可通過編程實現各種各樣的算術算法和邏輯控制,而且體積小,硬件實現簡單,安裝方便。既可以單獨對多DS18B20控制工作,還可以與PC 機通信上傳數據,另外AT89S51 在工業控制上也有著廣泛的應用,編程技術及外圍功能電路的配合使用都很成熟。該系統利用AT89S51芯片控制溫度傳感器DS18B20進行實時溫度檢測并顯示,能夠實現快速測量環境溫度,并可以根據需要設定上下限報警溫度。該系統擴展性非常強,它可以在設計中加入時鐘芯片DS130
5、2以獲取時間數據,在數據處理同時顯示時間,并可以利用AT24C16芯片作為存儲器件,以此來對某些時間點的溫度數據進行存儲,利用鍵盤來進行調時和溫度查詢,獲得的數據可以通過MAX232芯片與計算機的RS232接口進行串口通信,方便的采集和整理時間溫度數據。圖 3.3 系統框圖 3系統器件選擇3.1 單片機的選擇AT89S51 是CMOS8 位單片機,它集 Flash 程序存儲器既可在線編程(ISP),也可用傳統方法進行編程,所以低價位 AT89S51單片機可為提供許多高性價比的應用場合,可靈活應用于各種控制領域,對于簡單的測溫系統已經足夠。單片機AT89S51 具有低電壓供電和體積小等特點,四個
6、端口只需要兩個口就能滿足電路系統的設計需要,很適合便攜手持式產品的設計使用系統可用二節電池供電。主要特性如下與MCS-51 兼容4K字節可編程閃爍存儲器壽命:1000寫/擦循環數據保留時間:10年全靜態工作:0Hz-24Hz三級程序存儲器鎖定128*8位內部RAM32可編程I/O線兩個16位定時器/計數器5個中斷源 圖 4.1 AT89S51單片機引腳圖可編程串行通道低功耗的閑置和掉電模式片內振蕩器和時鐘電路 3.2 89S51 引腳功能介紹 AT89S51 單片機為40 引腳雙列直插式封裝。 其引腳排列和邏輯符號如圖4.1 所示。各引腳功能簡單介紹如下:VCC:供電電壓 GND:接地 P0口
7、:P0口為一個8位漏級開路雙向I/O口,每個管腳可吸收8TTL門電流。當P1口的管腳寫“1”時,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在FLASH編程時,P0口作為原碼輸入口,當FLASH進行校驗時,P0輸出原碼,此時P0外部電位必須被拉高。P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入“1”后,電位被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。P2口:P2口為一個內部上拉電阻的8位雙向I/
8、O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳電位被內部上拉電阻拉高,且作為輸入。作為輸入時,P2口的管腳電位被外部拉低,將輸出電流,這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉的優勢,當對外部八位地址數據存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。RST:復
9、位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。ALE / PROG :當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取址期間,每個機器周期PSEN兩次有效。但在訪問外部數據存儲器時,這兩次有效的PSEN信號將不出現。EA/VPP:當EA保持低電平時,訪問外部ROM;注意加密方式1時,EA將內部鎖定為RESET;當EA端保持高電平時,訪問
10、內部ROM。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。3.3溫度傳感器的選擇由于傳統的熱敏電阻等測溫元件測出的一般都是電壓,再轉換成對應的溫度,需要比較多的外部元件支持,且硬件電路復雜,制作成本相對較高。這里采用DALLAS公司的數字溫度傳感器DS18B20作為測溫元件。3.3.1 DS18B20的介紹DALLAS 最新單線數字溫度傳感器DS18B20是一種新型的“一線器件”,其體積更小、更適用于多種場合、且適用電壓更寬、更經濟。DALLAS 半導體公司的數字化溫度傳感器DS18B
11、20是世界上第一片支持“一線總線”接口的溫度傳感器。溫度測量范圍為-50+150 攝氏度,可編程為9位12 位轉換精度,測溫分辨率可達0.0625攝氏度,分辨率設定參數以及用戶設定的報警溫度存儲在EEPROM 中,掉電后依然保存。被測溫度用符號擴展的16位數字量方式串行輸出;其工作電源既可以在遠端引入,也可以采用寄生電源方式產生;多個DS18B20可以并聯到3 根或2 根線上,CPU只需一根端口線就能與諸多DS18B20 通信,占用微處理器的端口較少,可節省大量的引線和邏輯電路。因此用它來組成一個測溫系統,具有線路簡單,在一根通信線,可以掛很多這樣的數字溫度計,十分方便。DS18B20 的性能
12、特點如下: 獨特的單線接口方式,DS18B20在與微處理器連接時僅需要一條口線即可實現微處理器與DS18B20的雙向通訊 DS18B20支持多點組網功能,多個DS18B20可以并聯在唯一的三線上,實現組網多點測溫 DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉換電路集成在形如一只三極管的集成電路內 適應電壓范圍更寬,電壓范圍:3.05.5V,在寄生電源方式下可由數據線供電 溫范圍-50150 零待機功耗 可編程的分辨率為912位,對應的可分辨溫度分別為0.5、0.25、0.125和0.0625,可實現高精度測溫 在9位分辨率時最多在93.75ms內把溫度轉換為數字,12位分辨率時最
13、多在750ms內把溫度值轉換為數字,速度更快 用戶可定義報警設置 報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件 測量結果直接輸出數字溫度信號,以"一線總線"串行傳送給CPU,同時可傳送CRC校驗碼,具有極強的抗干擾糾錯能力 負電壓特性,電源極性接反時,溫度計不會因發熱而燒毀,但不能正常工作3.3.2 DS18B20 使用中的注意事項DS18B20 雖然具有測溫系統簡單、測溫精度高、連接方便、占用口線少等優點,但在實際應用中也應注意以下幾方面的問題:DS18B20 從測溫結束到將溫度值轉換成數字量需要一定的轉換時間,這是必須保證的,不然會出現轉換錯誤的現象,使
14、溫度輸出總是顯示85。在實際使用中發現,應使電源電壓保持在5V 左右,若電源電壓過低,會使所測得的溫度精度降低。在對DS1820進行讀寫編程時,必須嚴格的保證讀寫時序,否則將無法讀取測溫結果。在使用PL/M、C等高級語言進行系統程序設計時,對DS1820操作部分最好采用匯編語言實現。在DS18B20的有關資料中均未提及單總線上所掛DS18B20 數量問題,容易使人誤認為可以掛任意多個DS18B20,在實際應用中并非如此,當單總線上所掛DS18B20 超過8 個時,就需要解決微處理器的總線驅動問題,這一點在進行多點測溫系統設計時要加以注意。在DS18B20測溫程序設計中,向DS18B20 發出溫
15、度轉換命令后,程序總要等待DS18B20的返回信號,一旦某個DS18B20 接觸不好或斷線,當程序讀該DS18B20 時,將沒有返回信號,程序進入死循環,這一點在進行DS18B20硬件連接和軟件設計時也要給予一定的重視。3.3.3 DS18B20 內部結構圖為DS1820的內部框圖,它主要包括寄生電源、溫度傳感器、64位激光ROM單線接口、存放中間數據的高速暫存器(內含便箋式RAM),用于存儲用戶設定的溫度上下限值的TH和TL觸發器存儲與控制邏輯、8位循環冗余校驗碼(CRC)發生器等七部分。DS18B20采用腳PR35 封裝或腳SOIC封裝,其內部結構框圖如圖 4.4所示圖 4.4 DS18B
16、20內部結構框圖64 b閃速ROM的結構如下:開始位是產品類型的編號,接著是每個器件的惟一的序號,共有48 位,最后位是前面56 位的CRC 檢驗碼,這也是多個DS18B20 可以采用一線進行通信的原因。溫度報警觸發器和,可通過軟件寫入戶報警上下限。主機操作ROM的命令有五種,如表所列指 令說 明讀ROM(33H)讀DS1820的序列號匹配ROM(55H)繼讀完64位序列號的一個命令,用于多個DS1820時定位跳過ROM(CCH)此命令執行后的存儲器操作將針對在線的所有DS1820搜ROM(F0H)識別總線上各器件的編碼,為操作各器件作好準備報警搜索(ECH)僅溫度越限
17、的器件對此命令作出響應DS18B20 溫度傳感器的內部存儲器還包括一個高速暫存和一個非易失性的可電擦除的EERAM。高速暫存RAM 的結構為字節的存儲器,結構如圖 4.5所示。 圖 4.5 高速暫存RAM結構圖前個字節包含測得的溫度信息,第和第字節和的拷貝,是易失的,每次上電復位時被刷新。第個字節,為配置寄存器,它的內容用于確定溫度值的數字轉換分辨率。DS18B20工作時寄存器中的分辨率轉換為相應精度的溫度數值。溫度低位溫度高位THTL配置保留保留保留8位CRCLSB MSB當DS18B20接收到溫度轉換命令后,開始啟動轉換。轉換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存
18、存儲器的第1,2字節。單片機可通過單線接口讀到該數據,讀取時低位在前,高位在后,數據格式以0.062 5 /LSB形式表示。溫度值格式如下:這是12位轉化后得到的12位數據,存儲在18B20的兩個8比特的RAM中,二進制中的前面5位是符號位,如果測得的溫度大于0,這5位為0,只要將測到的數值乘于0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數值需要取反加1再乘于0.0625即可得到實際溫度。圖中,S表示位。對應的溫度計算:當符號位S=0時,表示測得的溫度植為正值,直接將二進制位轉換為十進制;當S=1時,表示測得的溫度植為負值,先將補碼變換為原碼,再計算十進制值。例如+125的
19、數字輸出為07D0H,+25.0625的數字輸出為0191H,-25.0625的數字輸出為FF6FH,-55的數字輸出為FC90H。DS18B20完成溫度轉換后,就把測得的溫度值與RAM中的TH、TL字節內容作比較,若T>TH或T<TL,則將該器件內的告警標志置位,并對主機發出的告警搜索命令作出響應。因此,可用多只DS18B20同時測量溫度并進行告警搜索。在64位ROM的最高有效字節中存儲有循環冗余校驗碼(CRC)。主機根據ROM的前 56位來計算CRC值,并和存入DS18B20中的CRC值做比較,以判斷主機收到的ROM數 據是否正確。3.3.4 DS18B20測溫原理DS18B2
20、0的測溫原理如圖2所示,圖中低溫度系數晶振的振蕩頻率受溫度的影響很小用于產生固定頻率的脈沖信號送給減法計數器1,高溫度系數晶振隨溫度變化其震蕩頻率明顯改變,所產生的信號作為減法計數器2的脈沖輸入,圖中還隱含著計數門,當計數門打開時,DS18B20就對低溫度系數振蕩器產生的時鐘脈沖后進行計數,進而完成溫度測量.計數門的開啟時間由高溫度系數振蕩器來決定,每次測量前,首先將50 所對應的基數分別置入減法計數器1和溫度寄存器中,減法計數器1和溫度寄存器被預置在50 所對應的一個基數值。減法計數器1對低溫度系數晶振產生的脈沖信號進行減法計數,當減法計數器1的預置值減到0時溫度寄存器的值將加1,減法計數器
21、 1的預置將重新被裝入,減法計數器1重新開始對低溫度系數晶振產生的脈沖信號進行計數,如此循環直到減法計數器2計數到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數值即為所測溫圖2中的斜率累加器用于補償和修正測溫過程中的非線性其輸出用,于修正減法計數器的預置值,只要計數門仍未關閉就重復上述過程,直至溫度寄存器值達到被測溫度值,這就是DS18B20的測溫原理。另外,由于DS18B20單線通信功能是分時完成的,他有嚴格的時隙概念,因此讀寫時 序很重要。系統對DS18B20的各種操作必須按協議進行。操作協議為:初始化DS18B20 (發復位脈沖)發ROM功能命令發存儲器操作命令處理數據。圖(2) D
22、S18B20測溫原理圖3.3.5 提高DS1820測溫精度的途徑 1 .DS1820高精度測溫的理論依據 DS1820正常使用時的測溫分辨率為0.5,這對于水輪發電機組軸瓦溫度監測來講略顯不足,在對DS1820測溫原理詳細分析的基礎上,我們采取直接讀取DS1820內部暫存寄存器的方法,將DS1820的測溫分辨率提高到0.10.01DS1820內部暫存寄存器的分布如表1所示,其中第7字節存放的是當溫度寄存器停止增值時計數器1的計數剩余值,第8字節存放的是每度所對應的計數值,這樣,我們就可以通過下面的方法獲得高分辨率的溫度測量結果。首先用DS1820提供的讀暫存寄存器指令(BEH)讀出以0.5為分
23、辨率的溫度測量結果,然后切去測量結果中的最低有效位(LSB),得到所測實際溫度整數部分T整數,然后再用BEH指令讀取計數器1的計數剩余值M剩余和每度計數值M每度,考慮到DS1820測量溫度的整數部分以0.25、0.75為進位界限的關系,實際溫度T實際可用下式計算得到:T實際=(T整數0.25)+(M每度M剩余)/M每度。表1 DS18B20暫存寄存器分布該字節各位的定義如下:TM R1 R0 1 1 1 1 1低5位一直都是1,TM是測試模式位,用于設置DS18B20在工作模式還是在測試模式。在DS18B20出廠時該位被設置為0,用戶不要去改動,R1和R0決定溫度轉換的精度位數,即是來設置分辨
24、率,如表1所示(DS18B20出廠時被設置為12位)。 表2 R1和R2模式表R1R0分辨率溫度最大轉換時/mm009位93.750110位187.751011位275.001112位750.00由表1可見,設定的分辨率越高,所需要的溫度數據轉換時間就越長。因此,在實際應用中要在分辨率和轉換時間權衡考慮。高速暫存存儲器除了配置寄存器外,還有其他8個字節組成,其分配如下所示。其中溫度信息(第1,2字節)、TH和TL值第3,4字節、第68字節未用,表現為全邏輯1;第9字節讀出的是前面所有8個字節的CRC碼,可用來保證通信正確。 根據DS18B20的通訊協議,主機控制DS18B20完成溫度轉換必須經
25、過三個步驟:每一次讀寫之前 都要對DS18B20進行復位,復位成功后發送一條ROM指令,最后發送RAM指令,這樣才能對DS18B20進行預定的操作。復位要求主CPU將數據線下拉500微秒,然后釋放,DS18B20收到信號后等待1660微秒左右,后發出60240微秒的存在低脈沖,主CPU收到此信號表示復位成功。2 .測量數據比較表2為采用直接讀取測溫結果方法和采用計算方法得到的測溫數據比較,通過比較可以看出,計算方法在DS1820測溫中不僅是可行的,也可以大大的提高DS1820的測溫分率。表3 DS18B20 直度測溫結果與計算測溫結果數據比較4 硬件設計電路溫度計電路設計原理圖如圖5.1所示,
26、控制器使用單片機AT89C2051,溫度計傳感器使用DS18B20,用液晶實現溫度顯示。本溫度計大體分三個工作過程。首先,由DS18820溫度傳感器芯片測量當前的溫度,并將結果送入單片機。然后,通過AT89S51單片機芯片對送來的測量溫度讀數進行計算和轉換,井將此結果送入液晶顯示模塊。最后,SMC1602A芯片將送來的值顯示于顯示屏上。 由圖1可看到,本電路主要由DSl8820溫度傳感器芯片、SMCl602A液晶顯示模塊芯片和AT89S51單片機芯片組成。其中,DSI8B20溫度傳感器芯片采用“一線制”與單片機相連,它獨立地完成溫度測量以及將溫度測量結果送到單片機的工作。4.1 顯示
27、電路顯示電路采用SMCI602A液晶顯示模塊芯片該芯片可顯示16×2個字符,比以前的七段數碼管LED顯示器在顯示字符的數量上要多得多。另外,由于SMCl602芯片編程比較簡單,界面直觀,因此更加易于使用者操作和觀測。SMCl602A芯片的接口信號說明如表1所列。表1 SMCl602A芯片的接口信號說明4.2 溫度檢測電路DS18B20 最大的特點是單總線數據傳輸方式,DS18B20 的數據I/O 均由同一條線來完成。DS18B20 的電源供電方式有2 種: 外部供電方式和寄生電源方式。工作于寄生電源方式時, VDD 和GND 均接地, 他在需要遠程溫度探測和空間受限的場合特別有用,
28、原理是當1 W ire 總線的信號線DQ 為高電平時, 竊取信號能量給DS18B20 供電, 同時一部分能量給內部電容充電, 當DQ為低電平時釋放能量為DS18B20 供電。但寄生電源方式需要強上拉電路, 軟件控制變得復雜(特別是在完成溫度轉換和拷貝數據到E2PROM 時) , 同時芯片的性能也有所降低。因此, 在條件允許的場合, 盡量采用外供電方式。無論是內部寄生電源還是外部供電,I/O口線要接5K左右的上拉電。在這里采用前者方式供電。DS18B20與芯片連接電路如圖 5.2所示:圖 5.2 DS18B20與單片機的連接外部電源供電方式是DS18B20最佳的工作方式,工作穩定可靠,抗干擾能力
29、強,而且電路也比較簡單,可以開發出穩定可靠的多點溫度監控系統。使用外部電源供電方式,畢竟比寄生電源方式只多接一根VCC引線。在外接電源方式下,可以充分發揮DS18B20寬電源電壓范圍的優點,即使電源電壓VCC 降到3V 時,依然能夠保證溫度量精度。由于DS18B20 只有一根數據線,因此它和主機(單片機)通信是需要串行通信,而AT89S51 有兩個串行端口,所以可以不用軟件來模擬實現。經過單線接口訪問DC18B20 必須遵循如下協議:初始化、ROM 操作命令、存儲器操作命令和控制操作。要使傳感器工作,一切處理均嚴格按照時序。主機發送(Tx)-復位脈沖(最短為480s 的低電平信號)。接著主機便
30、釋放此線并進入接收方式(Rx)??偩€經過4.7K的上拉電阻被拉至高電平狀態。在檢測到I/O 引腳上的上升沿之后,DS18B20 等待1560s,并且接著發送脈沖(60240s 的低電平信號)。然后以存在復位脈沖表示DS18B20 已經準備好發送或接收,然后給出正確的ROM 命令和存儲操作命令的數據。DS18B20 通過使用時間片來讀出和寫入數據,時間片用于處理數據位和進行何種指定操作的命令。它有寫時間片和讀時間片兩種:l 寫時間片:當主機把數據線從邏輯高電平拉至邏輯低電平時,產生寫時間片。有兩種類型的寫時間片:寫1 時間片和寫0 時間片。所有時間片必須有60 微秒的持續期,在各寫周期之間必須有
31、最短為1微秒的恢復時間.l 讀時間片:從DS18B20 讀數據時,使用讀時間片。當主機把數據線從邏輯高電平拉至邏輯低電平時產生讀時間片。數據線在邏輯低電平必須保持至少1 微秒;來自DS18B20 的輸出數據在時間下降沿之后的15 微秒內有效。為了讀出從讀時間片開始算起15微秒的狀態,主機必須停止把引腳驅動拉至低電平。在時間片結束時,I/O 引腳經過外部的上拉電阻拉回高電平,所有讀時間片的最短持續期為60 微秒,包括兩個讀周期間至少1s 的恢復時間。一旦主機檢測到DS18B20 的存在,它便可以發送一個器件ROM 操作命令。所有ROM 操作命令均為8位長。所有的串行通訊,讀寫每一個bit 位數據
32、都必須嚴格遵守器件的時序邏輯來編程,同時還必須遵守總線命令序列,對單總線的DS18B20 芯片來說,訪問每個器件都要遵守下列命令序列:首先是初始化;其次執行ROM 命令;最后就是執行功能命令(ROM 命令和功能命令后面以表格形式給出)。如果出現序列混亂,則單總線器件不會響應主機。當然,搜索ROM命令和報警搜索命令,在執行兩者中任何一條命令之后,要返回初始化?;趩慰偩€上的所有傳輸過程都是以初始化開始的,初始化過程由主機發出的復位脈沖和從機響應的應答脈沖組成。應答脈沖使主機知道,總線上有從機,且準備就緒。在主機檢測到應答脈沖后,就可以發出ROM 命令。這些命令與各個從機設備的唯一64 位ROM
33、代碼相關。在主機發出ROM命令,以訪問某個指定的DS18B20,接著就可以發出DS18B20支持的某個功能命令。這些命令允許主機寫入或讀出DS18B20便箋式RAM、啟動溫度轉換。軟件實現DS18B20的工作嚴格遵守單總線協議:(1)主機首先發出一個復位脈沖,信號線上的DS18B20 器件被復位。(2)接著主機發送ROM命令,程序開始讀取單個在線的芯片ROM編碼并保存在單片機數據存儲器中,把用到的DS18B20 的ROM 編碼離線讀出,最后用一個二維數組保存ROM 編碼,數據保存在X25043中。(3)系統工作時,把讀取了編碼的DS18B20 掛在總線上。發溫度轉換命令,再總線復位。(4)然后
34、就可以從剛才的二維數組匹配在線的溫度傳感器,隨后發溫度讀取命令就可以獲得對應的度值了。在主機初始化過程,主機通過拉低單總線至少480us,來產生復位脈沖。接著,主機釋放總線,并進入接收模式。當總線被釋放后,上拉電阻將單總線拉高。在單總線器件檢測到上升沿后,延時1560us,接著通過拉低總線60240us,以產生應答脈沖。寫時序均起始于主機拉低總線,產生寫1 時序的方式:主機在拉低總線后,接著必須在15us之內釋放總線。產生寫0 時序的方式:在主機拉低總線后,只需在整個時序期間保持低電平即可(至少60us)。在寫字節程序中的寫一個bit 位的時候,沒有按照通常的分別寫0時序和寫1 時序,而是把兩
35、者結合起來,當主機拉低總線后在15us 之內將要寫的位c 給DO:如果c 是高電平滿足15us 內釋放總線的要求,如果c是低電平,則DOc這條語句仍然是把總線拉在低電平,最后都通過延時58us 完成一個寫時序(寫時序0或寫時序1)過程。寫時間時序:當主機把數據從邏輯高電平拉到邏輯低電平的時候,寫時間隙開始。有兩種寫時間隙,寫1 時間隙和寫0 時間隙。所有寫時間隙必須最少持續60s,包括兩個寫周期至少1s 的恢復時間。I/O線電平變低后,DS18B20 在一個15s 到60s 的窗口內對I/O 線采樣。如果線上事高電平,就是寫1,如果是低電平,就是寫0。主機要生成一個寫時間隙,必須把數據線拉到低
36、電平然后釋放,在寫時間隙開始后的15s 內允許數據線拉到高電平。主機要生成一個寫0 時間隙,必須把數據線拉到低電平并保存60s。每個讀時隙都由主機發起,至少拉低總線1us,在主機發起讀時序之后,單總線器件才開始在總線上發送0 或1。所有讀時序至少需要60us。4.3溫度報警電路本此設計可以采用發光二級管報警電路,如過需要報警,則只需將相應位置1,當參數判斷完畢后,再看報警模型單元ALARM 的內容是否與預設一樣,如不一樣,則發光報警。但本次設計采軟件處理報警,利用有源蜂鳴器進行報警輸出,采用直流供電。當所測溫度超過獲低于所預設的溫度時,數據口相應拉高電平,報警輸出。報警電路硬件連接見圖 5.1
37、0。圖 5.10蜂鳴器電路連接圖5 軟件設計5.1 概述整個系統的功能是由硬件電路配合軟件來實現的,當硬件基本定型后,軟件的功能也就基本定下來了。從軟件的功能不同可分為兩大類:一是監控軟件(主程序),它是整個控制系統的核心,專門用來協調各執行模塊和操作者的關系。二是執行軟件(子程序),它是用來完成各種實質性的功能如測量、計算、顯示、通訊等。每一個執行軟件也就是一個小的功能執行模塊。這里將各執行模塊一一列出,并為每一個執行模塊進行功能定義和接口定義。各執行模塊規劃好后,就可以規劃監控程序了。首先要根據系統的總體功能選擇一種最合適的監控程序結構,然后根據實時性的要求,合理地安排監控軟件和各執行模塊
38、之間地調度關系。5.2主程序模塊主程序需要調用4 個子程序,分別為數碼管顯示程序,溫度測試及處理子程序,報警子程序,中斷設定子程序。各模塊程序功能如下:數碼管顯示程序:向數碼的顯示送數,控制系統的顯示部分。溫度測試及處理程序:對溫度芯片送過來的數據進行處理,進行判斷和顯示。報警子程序:進行溫度上下限判斷及報警輸出。中斷設定程序:實現設定上下限報警功能。圖 6.1主程序 圖 6.2 DS18B20初始化流程圖 5.3各模塊流程設計下面對主要子程序的流程圖做介紹5.3.1 溫度檢測流程DS18B20在單片機控制下分三個階段:18B20 初始化:初始化流程圖見讀18B20時序:讀DS18B20流程見
39、圖 6.3:寫18B20時序:寫18B20 流程見圖6.4圖 6.3讀DS18B20流程圖 圖 6.4寫DS18B20流程圖5.3.2 中斷設定流程中斷模塊采用了外中斷和內中斷套用方法。當設計需要實現上下限報警時,利用INT0口進行中斷,set 鍵進行上下限報警溫度設定,進入溫度設定狀態后(按一下溫度設定鍵),首先會提示顯示“UP”字母,表示要用戶設定高溫報警溫度,按S3 鍵 ,表示本位數字+1,按S4 表示移向下一位,如果4 位高溫設定完畢,則顯示“DO”,表示要用戶設定低溫報警溫度。4位低溫設定完畢,如果用戶設置的高溫比設定的低溫高的話則顯示“ERRO”表示錯誤提示,同時會有蜂鳴器及時報警
40、提示,然后自動顯示“UP”,讓用戶重新進行溫度設定。中斷設定子程序流程圖見下圖圖6.6 中斷設定子程序流程圖源程序TIMEL EQU 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,#60
41、HCLSMEM: MOV R0,#20H MOV R1,#60HCLSMEM1: MOV R0,#00H INC R0 DJNZ R1,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 CJ
42、NE R7,#32H,T0IT1 MOV R7,#00H SETB TIME1SOKT0IT1: POP PSW RETI;MAIN: 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 R
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 茶園有機種植與產品銷售合同
- 現代化工廠廠長任用與職業規劃合同
- 老師制作課件的職業
- 金屬材料典當質押貸款協議
- 美術臉譜說課課件
- 美術開學介紹課件
- 美術創意兒童課件
- 安全生產事故會議內容
- 安全生產智慧化管理
- 安全行車心得體會部隊
- 醫院檢驗科設備管理與維護制度
- 醫療集團醫保統一管理制度
- 西藏山南市完全中學2023-2024學年七年級下學期期末測試歷史試題
- 醫療質量和醫療安全培訓
- 口腔解剖生理學-第八章(動脈)
- 梅尼埃綜合征
- 國家開放大學專科《法理學》期末紙質考試第四大題名詞解釋題庫2025珍藏版
- 網絡安全攻防演練護網工作報告
- 商貿公司保障服務方案
- 形勢與政策臺灣政治生態分析
- 2024年北京市西城區中考生物真題(含解析)
評論
0/150
提交評論