基于ds189b20的溫度控制設計報告_第1頁
基于ds189b20的溫度控制設計報告_第2頁
基于ds189b20的溫度控制設計報告_第3頁
基于ds189b20的溫度控制設計報告_第4頁
基于ds189b20的溫度控制設計報告_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于ds189b20的溫度控制設計報告摘 要本文主要介紹了一個基于at89c51單片機的測溫系統(tǒng),詳細描述了利用數字溫度傳感器ds18b20開發(fā)測溫系統(tǒng)的過程,重點對傳感器在單片機下的硬件連接,軟件編程以及各模塊系統(tǒng)流程進行了詳盡分析,對各部分的電路也一一進行了介紹,該系統(tǒng)可以方便的實現溫度采集和顯示,并可根據需要任意設定上下限溫度,它使用起來相當方便,具有精度高、量程寬、靈敏度高、體積小、功耗低等優(yōu)點,適合于我們日常生活和工、農業(yè)生產中的溫度測量,也可以當作溫度處理模塊嵌入其它系統(tǒng)中,作為其他主系統(tǒng)的輔助擴展。ds18b20與at89c52結合實現最簡溫度檢測系統(tǒng),該系統(tǒng)結構簡單,抗干擾能力

2、強,適合于惡劣環(huán)境下進行現場溫度測量,有廣泛的應用前景。 關鍵詞:at89c51、ds18b20、溫控、自動目 錄第一章 概述4第二章 單片機人機接口系統(tǒng)的軟件設計62.1 at89c5262.2 系統(tǒng)組成72.4 顯示按鍵電路設計7第三章 溫度測量模塊的設計83.1 ds18b20介紹83.2 ds18b20 內部結構103.3溫度驅動模塊11第四章 溫度控制模塊設計124.1光電隔離控制電路的設計124.2風扇pwm驅動134.3制冷片的控制以及程序設計13第五章 溫度測量試驗與分析145.1基本任務14第六章 溫度控制試驗與分析15總結16參 考 文 獻17附錄一18第一章 概述測控系統(tǒng)

3、綜合課程設計,是一項重要的實踐訓練,它涉及單片機原理與應用、可編程控制器、傳感器技術、測控電路和電子電力技術等課程,是多門課程的綜合性設計。1.課程設計任務分解溫度測控系統(tǒng)的設計溫度控制系統(tǒng)的設計智能測控系統(tǒng)的設計風扇控制電路設計溫度傳感器程序設計數據處理程序設計風扇控制器程序設計數碼管顯示程序設計鍵盤操作程序設計制冷片控制電路設計制冷片控制程序設計圖1.1 課程設計的任務分解2主要儀器設備元件ds18b20,單片機實訓板、可編程控制器實驗臺、場效應管、玻璃溫度計、小風扇、多功能面包板、插線、萬用表,計算機,其它元器件,調試工具等。3課程設計的基本流程課程設計的流程中控制電路的焊接、軟件設計和

4、加溫系統(tǒng)組裝以及箱體制作部分是課程設計的三大核心模塊。電路設計與焊接部分主要是18b20的接口電路、光電隔離與場效應管驅動電路以及驅動電路的接口。軟件設計主要包括鍵盤掃描程序、四位數碼管動態(tài)顯示程序、任意浮點數顯示程序、輸入參數合成、計時器程序、風扇控制程序、制冷片控制程序以及串口通訊程序等。加溫系統(tǒng)組裝調試以及箱體制作主要完成加溫系統(tǒng)中制冷片、散熱片、風扇的組裝以及上電試運行,箱體制作主要是用硬紙箱板按照參考尺寸15厘米,做一個15x15x15的箱子就可以,同時考慮加溫系統(tǒng)的安裝以及溫度傳感器的布置。溫度測量試驗主要是在一系列標準溫場下,用傳感器測量的數據與標準玻璃溫度計的數據對比,分析測量

5、的精度,根據儀器的引用誤差定設備的級別。溫度控制試驗分加溫和降溫兩部分,通過設定一個比現場溫度低或者高的溫度,然后系統(tǒng)開始工作,并按照一定的時間間隔將溫度和加/降溫的時間的數值統(tǒng)計出來。分析溫度系統(tǒng)的工作效率。當達到設定值后,將其穩(wěn)定住,并按照一定的時間間隔采集數據,分析系統(tǒng)的穩(wěn)定性。第二章 單片機人機接口系統(tǒng)的軟件設計2.1 at89c52at89c52是一種低功耗、高性能cmos8位微控制器,具有8k在系統(tǒng)可編程flash 存儲器。使用atmel公司高密度非易失性存儲器技術制造。片上flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位cpu 和在系統(tǒng),可編程

6、flash,使得at89c52為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。at89c52具有以下標準功能: 8k字節(jié)flash,256字節(jié)ram, 32 位i/o 口線,看門狗定時器,2 個數據指針,三個16 位 定時器/計數器,一個6向量2級中斷結構,全雙工串行口, 片內晶振及時鐘電路。另外,at89c52可降至0hz 靜態(tài)邏 輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,cpu 停止工作,允許ram、定時器/計數器、串口、中斷繼續(xù)工 作。掉電保護方式下,ram內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。8 位微控制器 8k 字節(jié)在系統(tǒng)可編程 fl

7、ash at89c52。2.2 系統(tǒng)組成本系統(tǒng)是通過單片機控制ds18b20 來完成溫度測量的全過程的,系統(tǒng)主要由at89c52單片機、電源、時鐘、加熱、測溫、顯示、鍵盤、報警、復位等電路組成,系統(tǒng)組成框圖如圖3 所示系統(tǒng)組成圖2.2系統(tǒng)的組成2.4 顯示按鍵電路設計顯示電路由三片74hc595 驅動三塊led 數碼顯示器組成,用于顯示三位溫度值,兩位整數,一位小數。該顯示電路是at89c52單片機串行口工作于方式0 的典型應用。74hc595 是一個8 位的串入并出移位寄存器, 與74hc164 類似,但其性能優(yōu)于74hc164,因為74hc595 內部含有一個鎖存器,可用于鎖存顯示數據,這

8、就使得74hc595 在同步移位時,led 數碼顯示器上不會出現亂碼。電路中,74hc595 的ser 端與at89c51 的rxd 端相連, 用以接收來自at89c51 的串行輸入信號;74hc595 的srclk 端與at89c51 的txd 端相連, 用以接收來自at89c51的同步移位時鐘脈沖信號;而74hc595 的鎖存信號rclk 則由at89c51 的p2.0 控制;74hc595 的第9 位輸出q8 用于多片74hc595 的級聯(lián)。本系統(tǒng)中由于按鍵個數較少, 為簡化系統(tǒng)設計而采用獨立式按鍵。三個按鍵分別連接到at89c52 的p0.0,p0.1,p0.2。at89c52單片機共

9、有四個并行i/o 口:p0p3 口。其中p0口有三種用途:用作8 位數據總線db;與p2 口共同構成16 位地址總線ab,p0 口為低8 位ab;用作一般i/o 口。由p0 口的內部結構可知,其輸出驅動級為開漏電路,因而當p0 口用作一般i/o 口時,需外接上拉電阻。按鍵功能如下:k1:加熱控制鍵。按下k1,cpu 執(zhí)行指令“clr p1.1”,將p1.1 口的電平拉低,經74ls04 反相后變高,使發(fā)光管d1 點亮,繼電器j 動作,j1 閉合,加熱器開始加熱。k2:禁止加熱鍵。按下k2,cpu 執(zhí)行指令“setb p1.1”,將p1.1 口的電平拉高,經74ls04 反相后變低,發(fā)光管d1

10、熄滅,繼電器動作,j1 斷開,加熱器停止加熱。k3: 恒溫控制鍵。按下k3,cpu 將當前溫度值讀入并儲存、比較,當溫度高于儲存值時,執(zhí)行k2 鍵功能;當溫度低于儲存值時,執(zhí)行k1 鍵功能。第三章 溫度測量模塊的設計3.1 ds18b20介紹dallas最新單線數字溫度傳感器ds18b20是一種新型的“一線器件”,其體積更小、更適用于多種場合、且適用電壓更寬、更經濟。dallas 半導體公司的數字化溫度傳感器ds18b20是世界上第一片支持“一線總線”接口的溫度傳感器。溫度測量范圍為-55+125 攝氏度,可編程為9位12 位轉換精度,測溫分辨率可達0.0625攝氏度,分辨率設定參數以及用戶設

11、定的報警溫度存儲在eeprom中,掉電后依然保存。被測溫度用符號擴展的16位數字量方式串行輸出;其工作電源既可以在遠端引入,也可以采用寄生電源方式產生;多個ds18b20可以并聯(lián)到3根或2根線上,cpu只需一根端口線就能與諸多ds18b20 通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。因此用它來組成一個測溫系統(tǒng),具有線路簡單,在一根通信線,可以掛很多這樣的數字溫度計,十分方便。其最大的特點是單總線數據傳輸方式,ds18b20 的數據i/o 均由同一條線來完成。ds18b20 的電源供電方式有2 種: 外部供電方式和寄生電源方式。工作于寄生電源方式時, vdd 和gnd 均接地,

12、他在需要遠程溫度探測和空間受限的場合特別有用, 原理是當1 w ire 總線的信號線dq 為高電平時, 竊取信號能量給ds18b20 供電, 同時一部分能量給內部電容充電, 當dq為低電平時釋放能量為ds18b20 供電。但寄生電源方式需要強上拉電路, 軟件控制變得復雜(特別是在完成溫度轉換和拷貝數據到e2prom 時) , 同時芯片的性能也有所降低。因此, 在條件允許的場合, 盡量采用外供電方式。無論是內部寄生電源還是外部供電,i/o口線要接5k左右的上拉電。在這里采用前者方式供電。如圖3.1所示:圖3.1 ds18b20與單片機接口原理圖3.2 ds18b20 內部結構圖3.2 ds18b

13、20 的內部結構ds18b20 內部整體結構ds18b20 內部由64 位光刻rom、溫度傳感器、暫存器、eeprom 等組成,其整體結構如圖1 所示。ds18b20 暫存器結構ds18b20 內部有一個9 字節(jié)的數據暫存器, 用于溫度數據的存放、eeprom 中的內容拷貝、循環(huán)冗余檢驗碼的存放以及內部計算中間結果的暫存等,ds18b20 暫存器結構如圖2 所示。3.3溫度驅動模塊加熱測溫電路由加熱器、繼電器、ds18b20 等組成。系統(tǒng)上電復位時,p1 口為高電平,繼電器j 不動作,j1 斷開,加熱器不工作。根據ds18b20 的工作原理, 當總線上只有一個ds18b20 時,不需要對ds1

14、8b20 的id 進行識別,單片機不必提供ds18b20 的64 位rom 編碼,而只要使用一條“跳過rom”命令,然后就可直接對ds18b20 的存儲器進行操作。在這種情況下,單片機啟動ds18b20 開始進行溫度轉換、讀取溫度數據的流程如圖3.3圖3.3溫度轉換、讀取數據流程第四章 溫度控制模塊設計4.1光電隔離控制電路的設計光電耦合器亦稱光電隔離器,簡稱光耦。光電耦合器以光為媒介傳輸電信號。它對輸入、輸出電信號有良好的隔離作用。光耦合器一般由三部分組成:光的發(fā)射、光的接收及信號放大。輸入的電信號驅動發(fā)光二極管(led),使之發(fā)出一定波長的光,被光探測器接收而產生光電流,再經過進一步放大后

15、輸出。這就完成了電光電的轉換,從而起到輸入、輸出、隔離的作用。由于光耦合器輸入輸出間互相隔離,電信號傳輸具有單向性等特點,因而具有良好的電絕緣能力和抗干擾能力。對于開關電路,往往要求控制電路和開關電路之間要有很好的電隔離,這對于一般的電子開關來說是很難做到的,但采用光電耦合器就很容易實現了。圖4.1中所示電路就是用光電耦合器組成的開關電路。在圖4.1中,在光電耦合器輸入端加電信號使發(fā)光源發(fā)光,光的強度取決于激勵電流的大小,此光照射到封裝在一起的受光器上后,因光電效應而產生了光電流,由受光器輸出端引出,這樣就實現了電一光一電的轉換。圖4.1光電隔離控制電路的設計4.2風扇pwm驅動如圖4.2所示

16、是風扇pwm的電路。由單片機控制光電耦合器開關來控制場效應管的導通。導通后給風扇很大的電流以驅動風扇轉動圖4.2 風扇電路4.3制冷片的控制以及程序設計制冷(制熱)工作原理半導體溫差致冷是建立在法國物理學家peltien帕爾帖效應(即溫差效應)基礎上的具體應用。當電流流經兩種不同性質的導體形成接點時,其接點會產生放熱和吸熱現象,即其兩端形成溫差而實現制冷和制熱。如圖 圖4.3 制冷片的工作原理依據上述原理,利用半導體材料制成的致冷器稱為半導體致冷器,其工作原理圖如圖1所示。為了便于敘述起見,以一對n/p型半導體材料構成的電偶對介紹工作原理,所謂電偶對就是摜np結的數量。圖1中的n/p型半導體元

17、件通過銅導流片連接起來,當由n通過銅導流片到p通以正向直流電時,在電場作用下,n型半導體中的電子和p型半導體中的空穴背向導流(朝接頭)運動,即在導流片接頭處n型和p型分別產生電子、空穴。電子、空穴產生的能量來自晶格振動的熱能,于是在導流片上產生吸熱現象,而在n/p型的另一端產生放熱現象,從而產生溫差。當放熱的高溫側的熱量能有效地放熱時,吸熱的低溫側不斷地吸熱,使其起到致冷的作用。第五章 溫度測量試驗與分析5.1基本任務1 溫度測量精度:1;2 溫度控制精度:3;3 制冷片輸出功率可調;4 測量溫度值led顯示;5 控制溫度值可通過鍵盤設定;1. 溫度測量實驗ds18b20測量值28.128.7

18、29.429.930.330.831.532.133玻璃溫度計值28.328.529.630.130.431.631.732.333.42數據處理與誤差分析(最大的引用誤差)ds18b20 的測量范圍為 -55 + 125 ;在 -10+ 85范圍內,精度為0.5c ,測量的精度是很高的。通過數字轉換用數碼管顯示出來的溫度和實際溫度相差不大。而玻璃溫度計本身測量的誤差就大,人在讀溫度的時候由于光線的折射,讀取的溫度就更不準確,所以ds18b20和玻璃溫度計的測量值有很大的差別。相比較而言ds18b20的溫度測量值更準確。第六章 溫度控制試驗與分析*基本任務 1升溫 溫度測量數值表序號12345

19、6789系統(tǒng)測量值28.127.327.527.82828.228.428.628.9時間50s54s49s59s 58s56s56s55s56s 2.降溫 溫度測量數值表序號123456789系統(tǒng)測量值3231.931.831.731.631.531.431.331.2時間106s110s113s114s116s118s120s121s122s3 恒溫表3 溫度控制性能數據表控制溫度值: 32 時間:分鐘時間102030405060708090系統(tǒng)測量值31.831.932.132.132.332.131.93232.2總結通過這幾天的的單片機課程設計,我終于完成了數字溫度計的設計。在本次設

20、計的過程中,我發(fā)現很多的問題,雖然學過單片機的設計,但是真的并不太懂實際的設計。通過這次設計真的讓我長進了很多,單片機課程設計重點就在于軟件算法的設計,需要有很巧妙的程序算法,雖然以前寫過幾次程序,但我覺的寫好一個程序并不是一件簡單的事,有好多的東西,只有我們去試著做了,才能真正的掌握,只學習理論有些東西是很難理解的,更談不上掌握。從這次的課程設計中,我真真正正地意識到,在以后的學習中,要理論聯(lián)系實際,把我們所學的理論知識用到實際當中,學習單機片機更是如此,程序只有在經常的寫與讀的過程中才能提高,這就是我在這次課程設計中的最大收獲。參 考 文 獻1 李朝青. 單片機原理及接口技術. 北京航空航

21、天大學出版社,20052 馬忠梅等. 單片機的c語言應用程序設計(第4版),20073 江世明. 基于proteus的單片機應用技術. 電子工業(yè)出版社,20094 彭偉. 單片機c語言程序設計實訓100例. 電子工業(yè)出版社,20095 唐穎.單片機原理與應用及c51程序設計.北京大學出版社,2008附錄一溫控系統(tǒng)的程序/安裝目錄下的exe文件打開后可在電腦上顯示當前溫度值#include #define uchar unsigned char#define uint unsigned intsbit ds=p22; /define interfacesbit dula=p26;sbit wel

22、a=p27;sbit li=p31;sbit wai=p30;sbit hot=p32; sbit up=p35;sbit down=p36;unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;unsigned char code table1=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd, 0x87,0xff,0xef; uint temp; / variable of temperature uint aa=

23、25,bb=0,cc=0,dd=0;void delay(uint count) /delay uint i; while(count) i=200; while(i0) i-; count-; void dsreset(void) /send reset and initialization command uint i; ds=0; i=103; while(i0)i-; ds=1; i=4; while(i0)i-;bit tmpreadbit(void) /read a bit uint i; bit dat; ds=0;i+; /i+ for delay ds=1;i+;i+; da

24、t=ds; i=8;while(i0)i-; return (dat);uchar tmpread(void) /read a byte date uchar i,j,dat; dat=0; for(i=1;i=8;i+) j=tmpreadbit(); dat=(j1); /讀出的數據最低位在最前面,這樣剛好一個字節(jié)在dat里 return(dat);void tmpwritebyte(uchar dat) /write a byte to ds18b20 uint i; uchar j; bit testb; for(j=1;j1; if(testb) /write 1 ds=0; i+;

25、i+; ds=1; i=8;while(i0)i-; else ds=0; /write 0 i=8;while(i0)i-; ds=1; i+;i+; void tmpchange(void) /ds18b20 begin change dsreset(); delay(1); tmpwritebyte(0xcc); / address all drivers on bus tmpwritebyte(0x44); / initiates a single temperature conversionuint tmp() /get the temperature float tt; uchar a,b; dsreset(); delay(1); tmpwritebyte(0xcc); tmpwritebyte(0xbe); a=tmpread(); b=tmpread(); temp=b; temp0;a-) for(b=60;b0;b-); void display(uint temp)/顯示程序 uchar a1,a2,a2t,a3,ser; ser=temp/10; sbuf=ser; a1=temp/100; a2t=temp%

溫馨提示

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