DS18B20溫度恒定上下限可調報警器匯總_第1頁
DS18B20溫度恒定上下限可調報警器匯總_第2頁
DS18B20溫度恒定上下限可調報警器匯總_第3頁
DS18B20溫度恒定上下限可調報警器匯總_第4頁
DS18B20溫度恒定上下限可調報警器匯總_第5頁
已閱讀5頁,還剩27頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、目錄內容提要1關鍵字1引言1二、設計方案 2 21 設計任務和要求 22 2 方案辯證 31 溫度計軟件設計流程圖 32 元器件的選取 4 3系統最終設計方案 4三、設計方案的總體設計框圖 43 1 硬件電路框圖 43 2 硬件電路概述 533 主控電路 534 顯示電路 635 報警溫度調節電路 736溫度傳感器及 DS18B20測溫原理 7 3.7 升降溫調節電路 7四、系統軟件算法設計 84.1 主程序 9 42 讀出溫度子程序 94. 3 溫度轉換命令子程序 1044 計算溫度子程序 104 5 顯示數據刷新子程序 10 4 6 1602 的液晶顯示 10五、軟件仿真 10 5 1 系

2、統仿真設計 11 5 2系統仿真原理圖 13 5 2系統原理圖 14結與體會 15 附錄 15 一【內容摘要】 隨著時代的進步和發展,單片機技術已經普及到我們生活,工 作,科研,各個領域,已經成為一種比較成熟的技術 ,單片機具有體積小、功耗 低、控制功能強、 擴展靈活、微型化和使用方便等優點, 廣泛應用于儀器儀表中, 結合不同種類的傳感器,可實現諸如電壓、濕度、溫度、速度、硬度、壓力等的 物理量的測量。本文將介紹一種基于單片機控制理論及其應用系統設計的數字溫 度計。本文主要介紹了一個基于 AT89C51單片機的測溫系統, 詳細描述了利用數字 溫度傳感器 DS18B20 開發測溫系統的過程,重點

3、對傳感器在單片機喜愛的硬件 連接,軟件編程以及各模塊系統流程進行了詳盡分析, 對各部分的電路也進行一 一介紹,該系統可以方便的是實現溫度采集和顯示, 并可以根據需要任意設定上 下限報警溫度,它使用起來方便,具有精度高、量程寬、靈敏度高、體積小、功 耗低等優點, 適合我們日常生活和工農業生產中的溫度測量, 也可以當做溫度處 理模塊嵌入其他系統中,作為其他主系統的輔助擴展。 DS18B20和 AT89C51 結 合實現最簡溫度檢測系統, 該系統結構簡單, 抗干擾能力強, 適合與惡劣環境下 進行現場溫度測量,有廣泛的應用前景。本設計首先是確定目標,氣候是各個功能模塊的設計,再在 Proteus 軟件

4、上 進行仿真,修改,仿真。本溫度計屬于多功能溫度計, 可以設置上下報警溫度, 當溫度不在設置范圍 內時,可以報警,同時根據設定的溫度范圍通過升降溫電路控制環境的溫度達到 恒溫效果。【關鍵詞】 單片機,數字控制,溫度計, DS18B20,STC89C52RC【引言】 單片機技術作為計算機技術的一個分支,廣泛地應用于工業控制,智能 儀器儀表,機電一體化產品,家用電器等各個領域。 “單片機原理與應用”在工科 院校各專業中已作為一門重要的技術基礎課而普遍開設。學生在課程設計,畢業 設計, 科研項目中會廣泛應用到單片機知識, 而且,進入社會后也會廣泛接觸到單 片機的工程項目。鑒于此,提高“單片機原理及應

5、用”課的教學效果,讓學生參 與課程設計實習甚為重要。單片機應用技術涉及的內容十分廣泛,如何使學生在 有限的時間內掌握單片機應用的基本原理及方法,是一個很有價值的教學項目。 為此,我們進行了“單片機的學習與應用”方面的課程設計,鍛煉學生的動腦動 手以及協作能力。單片機課程設計是針對模擬電子技術,數字邏 輯電路,電路,單片機的原理 及應用課程的要求,對我們進行綜合性實踐訓練的實踐學習環節,它包括選擇課 設任務、軟件設計,硬件設計,調試和編寫課設報告等實踐內容。通過此次課程 設計實現以下三個目標 : 第一,讓學生初步掌握單片機課程的試驗、設計方法,即 學生根據設計要求和性能約束,查閱文獻資料,收集、

6、分析類似的相關題目,并 通過元器件的組裝調試等實踐環節,使最終硬件電路達到題目要求的性能指標;通過第二,課程設計為后續的畢業設計打好基礎,畢業設計是系統的工程設計實踐, 而課程設計的著眼點是讓學生開始從理論學習的軌道上逐漸引向實際運用,從已 學過的定性分析、定量計算的方法,逐步掌握工程設計的步驟和方法,了解科學 實驗的程序和實施方法。第三,培養學生勤于思考樂于動手的習慣,同時通過設 計并制作單片機類產品,使學生能夠自己不斷地學習接受新知識(如在本課設題 目中存在智能測溫器件 DS18B20,就是課堂環節中不曾提及的“新器件” ), 多人的合作解決現實中存在的問題,從而不斷地增強學生在該方面的自

7、信心及興 趣,也提高了學生的動手能力,對學生以后步入社會參加工作打下一定良好的實 踐基礎。溫度可調上下限檢測報警恒溫設計二、設計方案21 設計務任和要求1、基本范圍 -55 125 2、精度誤差小于 0.5 3、LCD 數碼直讀顯示4、可以任意設定溫度的上下限報警功能22 方案辯證1 溫度計軟件設計流程圖:開始2 元器件的選取:單片機芯片的選取:采用 89C51芯片作為硬件核心,利用 Flash ROM,內部具有 4KB ROM存 儲 空間,能于3V的超低壓工作,而且與 MCS-51系列單片機完全兼容 ,但是運用于電 路設計中時由于不具備 ISP在線編程技術 , 當在對電路進行調試時,由于程序

8、的 錯誤修改或對程序的新增功能需要燒入程序時, 對芯片的多次拔插會對芯片造成 一定的損壞。采用 STC89C52R單C 片機作為硬件核心, 該單片機指令代碼完全兼容傳統的8051單片機。 STC89C52R的C工作電壓為 序存儲器 flash 容量為 8KB,隨機存儲器 度控制系統的要求。綜上所述:本課設中單片機芯片采用5.5-3.4V ,工作頻率范圍 0-80MHz,程RAM空間為 512 字節,完全滿足設計溫STC89C52R。C溫度傳感器的選取 :方案一: 采用熱敏電阻傳感器。 利用熱敏電阻隨溫度變化而顯著變化, 能直接將溫度 的變化轉換為能量的變化, 進而制成溫度計。 但是其測溫傳感器

9、比較復雜, 而且 不易通過編制程序來控制測溫精度,增大系統設計的難度。方案二:采用 DS18B20溫度傳感器。 DS18B20的內部 3 腳(或 8 腳)封裝;使用特 有的溫度測量技術,將被測溫度轉換成數值信號; 3.0 5.5V 的電源供電方式和 寄生電源供電方式; ROM由 64 位二進制數字組成,共分為 8 個字節; RAM由 9 個字節的高速暫存器和非易失性電擦寫 ROM組成。綜上所述:溫度傳感器選取智能測溫器件 DS18B20。 本設計顯示電路采用 1602 液晶顯示模塊芯片。3 系統最終設計方案:綜上各方案所述 , 對此次課設的方案選定 : 采用 STC89C52RC作為主控制系統

10、 ; 1602液晶顯示模塊芯片作為溫度數據顯示裝置 ; 而智能溫度傳感器 DS18B20器件 作為測溫電路主要組成部分。至此,系統最終方案確定。三、設計方案的總體設計框圖 溫度計電路設計總體設計方框圖如圖所示,控制器采用單片機 STC89C52RC, 溫度傳感器采用 DS18B20,用 1602 液晶顯示屏以串口傳送數據實現溫度顯示。3.1 硬件電路框圖 :圖 總體設計方框圖3.2 硬件電路概述 : 系統由單片機最小系統、顯示電路、按鍵、溫度傳感器等組成。本電路是由 STC89C52R單C 片機為控制核心,具有與 8051 系列單片機完全兼容,程序加密等功能, 8KB字節可編程閃存,工作電壓范

11、圍為 2.7 6V,全靜態工作頻率為 024MHZ;顯示電路由 1602 液晶顯示模塊芯片,可以進行多行顯 示;溫度報警按鍵設為五個,可以顯示華氏溫度,調節高低報警溫度;溫度傳感 器電路主要由 DS18B20測溫器件構成, 該器件主要功能有: 采用單總線技術; 每 只 DS18B20具有一個獨立的不可修改的 64 位序列號;低壓供電,電源范圍為 3 5V;測溫范圍為 -55 +125,誤差為 0.5 ;復位電路是 10K電阻構成的上 電自動復位。3.3 主控電路單片機 STC89C52RC具 有低電壓供電和體積小等特點, 四個端口只需要兩個 口就能滿足電路系統的設計需要, 很適合便攜手持式產品

12、的設計使用系統可用二 節電池供電。晶振采用 12MHZ。復位電路采用上電加自動復位。主控芯片 8051晶振電路復位電路3.4 顯示電路本設計顯示電路采用 1602液晶顯示模塊芯片, 該芯片可現實 16x2 個字符,比 以前的七段數碼管 LED 顯示器在顯示字符的數量上要多得多。另外,由于 1602 芯片編程比較簡單,界面直觀,因此更加易于使用者的操作和觀測。1602A 芯片的接口信號說明圖 液晶顯示電路35報警溫度調節電路本系統一共設置了四個按鍵, K1 鍵只是按一下上限報警溫度加 1,松開后 恢復顯示正常溫度, K2 鍵按一下上限報警溫度減 1,松開后恢復顯示正常溫度, 當調節的上限報警溫度

13、與環境實際的溫度相比, 環境實際溫度高于上限報警溫度 時系統會出現聲音報警及燈光警示,同理, K3 ,K4 的調節方法一樣,當環境實 際溫度低于下限報警溫度時,系統出現報警報警點調節電路3.6 溫度傳感器及 DS18B20測溫原理64 位 ROM的結構開始 8 位是產品類型的編號, 接著是每個器件的惟一的序 號,共有 48位,最后 8位是前面 56位的 CRC檢驗碼,這也是多個 DS18B20可以 采用一線進行通信的原因。溫度報警觸發器 TH和 TL,可通過軟件寫入戶報警上 下限。DS18B20 溫度傳感器的內部存儲器還包括一個高速暫存RAM和一個非易失性的可電擦除的 EERA。M高速暫存 R

14、AM的結構為 8 字節的存儲器,結構如圖 4 所 示。頭2個字節包含測得的溫度信息, 第3和第 4字節TH和TL的拷貝,是易失 的,每次上電復位時被刷新。第 5 個字節,為配置寄存器,它的內容用于確定溫 度值的數字轉換分辨率。 DS18B20工作時寄存器中的分辨率轉換為相應精度的溫 度數值。該字節各位的定義如圖 5 所示。低 5 位一直為 1,TM是工作模式位,用 于設置 DS18B20在工作模式還是在測試模式, DS18B20出廠時該位被設置為 0, 用戶不要去改動, R1和 R0決定溫度轉換的精度位數,來設置分辨率。 DS18B20的測溫原理是這這樣的 , 器件中低溫度系數晶振的振蕩頻率受

15、溫度的影 響很小,用于產生固定頻率的脈沖信號送給減法計數器 1;高溫度系數晶振隨溫 度變化其振蕩頻率明顯改變, 所產生的信號作為減法計數器 2的脈沖輸入。 器件 中還有一個計數門,當計數門打開時, DS18B20就對低溫度系數振蕩器產生的時 鐘脈沖進行計數進而完成溫度測量。 計數門的開啟時間由高溫度系數振蕩器來決 定,每次測量前,首先將最低溫所對應的一個基數分別置入減法計數器1、溫度 寄存器中,計數器 1 和溫度寄存器被預置在最低溫所對應的一個基數值。 減法計數器 1 對低溫度系數晶振產生的脈沖信號進行減法計數, 當減法計數器 1 的預置值減到 0 時,溫度寄存器的值將加 1,減法計數器 1

16、的預置將重新被裝入, 減法計數器 1 重新開始對低溫度系數晶振產生的脈沖信號進行計數, 如此循環直 到減法計數器計數到 0 時,停止溫度寄存器的累加, 此時溫度寄存器中的數值就 是所測溫度值。 其輸出用于修正減法計數器的預置值, 只要計數器門仍未關閉就 重復上述過程,直到溫度寄存器值大致被測溫度值。測溫電路3.6 升溫、降溫控制電路加溫電路 系統在檢測到當前溫度低于設定的下限值時,在報警器啟動報警同時,升溫 電路開始工作, 使得 Q2 三極管導通, 繼電器 RL1 吸合加熱燈開始點亮加熱, 起 到升溫的效果,此時升溫指示燈點亮,表示升溫系統開始工作。降溫電路系統在檢測到當前溫度超高設定的上限值

17、時,在報警器啟動報警同時,降溫 電路開始工作,使得Q3三極管導通,繼電器RL2吸合風扇開始吹風, 起到降溫 的效果,此時降溫指示燈點亮,表示降溫系統開始工作。四、系統軟件算法設計整個系統是由硬件配合軟件來實現的, 在硬件確定后, 編寫的軟件的功能也就基本定型了。 所以軟件的功能大致可分為兩個部分: 一是監控, 這也是系統的核心部分,二是執行部分,完成各個具體的功能。系統程序主要包括主程序,讀 出溫度子程序,溫度轉換命令子程序, 計算溫度子程序, 顯示數據刷新子程序等。 4.1 主程序主程序的主要功能是負責溫度的實時顯示、 讀出并處理 DS18B20的測量的當 前溫度值,溫度測量每 1s 進行一

18、次。這樣可以在一秒之內測量一次被測溫度, 其程序流程見圖所示。發 DS18B20 復位命令圖 2 讀溫度流程圖圖 1 主程序流程圖CRC4.2 讀出溫度子程序 讀出溫度子程序的主要功能是讀出 RAM中的 9 字節,在讀出時需進行 校驗,校驗有錯時不進行溫度數據的改寫。其程序流程圖如圖示圖 溫度轉換流程圖4.3 溫度轉換命令子程序 溫度轉換命令子程序主要是發溫度轉換開始命令, 當采用 12 位分辨率時轉換時間約為 750ms,在本程序設計中采用 1s 顯示程序延時法等待轉換的完成。 溫度轉換命令子程序流程圖如上圖,圖 9 所示4.4 計算溫度子程序 計算溫度子程序將 RAM中讀取值進行 BCD碼

19、的轉換運算,并進行溫度值正負 的判定,其程序流程圖如圖所示。圖 計算溫度流程圖圖 顯示數據刷新流程圖4.5 顯示數據刷新子程序 顯示數據刷新子程序主要是對顯示緩沖器中的顯示數據進行刷新操作, 當最 高顯示位為 0 時將符號顯示位移入下一位。程序流程圖如圖。1602液晶顯示流程圖4.6 1602 的液晶顯示五、軟件仿真5.1 系統仿真設計本設計是在 Proteus 環境下進行仿真的,仿真所用到的器件有:單片機 AT89C51,DS1820溫度傳感器,蜂鳴器,液晶顯示器,一些電阻,電容等。仿真結果如下:顯示器顯示傳感器溫度5.2 系統仿真原理圖5.3 系統原理圖六、總結與體會#include #i

20、nclude #define uint unsigned int#define uchar unsigned charsbit DQ=P23;/ds18b20與單片機連接口 sbit RS=P25;sbit RW=P26;sbit EN=P27;uchar data disdata5;uint tvalue,CurrentT=0;/ 溫度值 uchar tflag;/溫度正負標志 #define LCD_BUS P0sbit SetKey = P22;sbit UpKey = P21; sbit DnKey = P20; sbit BEEP = P24;sbit Heat sbit Cool=

21、 P10;= P11;unsigned char AlarmTempLow=10,AlarmTempTop=40,Set=0,NG=0;void delayms(uint ms)/延時 xx 毫秒uchar i;while(ms-) for(i=0;i0;i-)DQ H 0- daVVHl -CD H - - =ss=k(dq)dafll0x80;desryJI8B2ouo=raum(da);void dsl820wr(uchar wdasr)rw達a*_ 宀unsigned char -Ho-fo 二亓 8 二 V5?!)宀DQDQ H wdasreooxol;desryJI8B2ouo=D

22、Q +wdasrVVHl ;unsigned inf ReadlTemperaure(void=s*/宀uchar pbd 叟 820ra(=d 叟 820wr(0xcc)w漠KSHI旦4n丄 d叟82OWI-OX44)詩訶劇餡岡二 d 叟 820ra(= d 叟 820wr(0xcc)w漠KSHI旦4n丄 d 叟 820wr-(0xbe)w*s丄 and 叟 820rd(= bud 叟 8203(= fva-ueub fva-ueccuo? fva-uelva-ue-a; if(fva-uecoxofff) ffsrguo; e-se 宀 fva-ueva-ue-M nfsrgHl fva_

23、uelva_ue*(0625)wag 血芳”亠0 迤譴蠱la、達0cs35H?m-CQ-raum(fva-ue);void Display_Temperature() /顯示溫度uchar flagdat;disdata0=tvalue/1000+0x30;/百位數 disdata1=tvalue%1000/100+0x30;/十位數 disdata2=tvalue%100/10+0x30;/個位數 disdata3=tvalue%10+0x30;/小數位if(tflag=0) flagdat=0x20;/正溫度不顯示符號else flagdat=0x2d;/負溫度顯示負號 :-/if(dis

24、data0=0x30)/ disdata0=0x20;/如果百位為 0,不顯示/ if(disdata1=0x30) disdata1=0x20;/如果百位為 0,十位為 0 也不顯 示/if(tflag=1)writeChar(10,0,flagdat);/wr_com(0x8a);wr_dat(flagdat);/ 顯示符號位 writeChar(11,0,disdata0);/wr_com(0x8b);wr_dat(disdata0);/顯示百 位writeChar(12,0,disdata1);/wr_com(0x8c);wr_dat(disdata1);/顯示十 位writeChar

25、(13,0,disdata2);/wr_com(0x8d);wr_dat(disdata2);/顯示個 位writeChar(14,0,0X2E);/wr_com(0x8e);wr_dat(0x2e);/顯示小數點 writeChar(15,0,disdata3);/wr_com(0x8f);wr_dat(disdata3);/ 顯示小數位else writeChar(10,0,disdata0);/wr_com(0x8a);wr_dat(disdata0);/顯示百 位writeChar(11,0,disdata1);/wr_com(0x8b);wr_dat(disdata1);/顯示十 位

26、writeChar(12,0,disdata2);/wr_com(0x8c);wr_dat(disdata2);/顯示個 位writeChar(13,0,0X2e);/wr_com(0x8d);wr_dat(0x2e);/顯示小數點 writeChar(14,0,disdata3);/wr_com(0x8e);wr_dat(disdata3);/顯示小 數位void SetFun(void)unsigned char i1=0,i2=0,i3=0,i4=0,i5=0,i6=0; if(SetKey=0)delayms(20); if(SetKey=0) if(Set);writestring(

27、8,1, );break; case 2: writestring(0,1, );writestring(8,1,);break; while(SetKey=0);if(UpKey=0)&(Set!=0)delayms(20);if(UpKey=0)switch(Set)case 1: if(AlarmTempLow99) AlarmTempLow+;else AlarmTempLow=99; break;case 2: if(AlarmTempTop0) AlarmTempLow-;else AlarmTempLow=0; break;case 2: if(AlarmTempTop0) Al

28、armTempTop-;else AlarmTempTop=0; break;i1= AlarmTempLow/100;/獲得溫度值的百位i2= AlarmTempLow%100/10;/獲得溫度值的十位/獲得溫度值的百位/獲得溫度值的十位/獲得溫度值的個位i3= AlarmTempLow%10;/獲得溫度值的個位i4= AlarmTempTop/100;i5= AlarmTempTop%100/10;i6= AlarmTempTop%10;writestring(5,1, ); writestring(13,1, ); if(i1!=0) writeChar(5,1,i1+0); if(i1=0)&(i2!=0) writeChar(5,1,i2+0); if(i1!=0) writeChar(6,1,i2+0); if(i1=0)&(i2=0) writeChar(5,1,i3+0); else if(i1=0)&(i2!=0)writeChar(6,1,i3+0);if(i1!=0) writeChar(7,1,i3+0);if(i4!=0) writeChar

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論