




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、西安電子科技大學(xué) 單片機(jī)大作業(yè) 學(xué) 院:電子工程學(xué)院班 級(jí):02121X班姓 名:XXX學(xué) 號(hào):0212XXX指導(dǎo)老師:XXX溫度控制系統(tǒng)設(shè)計(jì)一、溫度控制系統(tǒng)設(shè)計(jì)發(fā)展歷史及意義 在工業(yè)企業(yè)中,如何提高溫度控制對(duì)象的運(yùn)行性能一直以來(lái)都是控制人員和現(xiàn)場(chǎng)技術(shù)人員努力解決的問(wèn)題。這類控制對(duì)象慣性大,滯后現(xiàn)象嚴(yán)重,存在很多不確定的因素,難以建立精確的數(shù)學(xué)模型,從而導(dǎo)致控制系統(tǒng)性能不佳,甚至出現(xiàn)控制不穩(wěn)定、失控現(xiàn)象。傳統(tǒng)的繼電器調(diào)溫電路簡(jiǎn)單實(shí)用 ,但由于繼電器動(dòng)作頻繁 ,可能會(huì)因觸點(diǎn)不良而影響正常工作。控制領(lǐng)域還大量采用傳統(tǒng)的PID控制方式,但PID控制對(duì)象的模型難以建立,并且當(dāng)擾動(dòng)因素不明確時(shí),參數(shù)調(diào)整
2、不便仍是普遍存在的問(wèn)題。而采用數(shù)字溫度傳感器DS18B20,因其內(nèi)部集成了A/D轉(zhuǎn)換器,使得電路結(jié)構(gòu)更加簡(jiǎn)單,而且減少了溫度測(cè)量轉(zhuǎn)換時(shí)的精度損失,使得測(cè)量溫度更加精確。數(shù)字溫度傳感器DS18B20只用一個(gè)引腳即可與單片機(jī)進(jìn)行通信,大大減少了接線的麻煩,使得單片機(jī)更加具有擴(kuò)展性。由于DS18B20芯片的小型化,更加可以通過(guò)單跳數(shù)據(jù)線就可以和主電路連接,故可以把數(shù)字溫度傳感器DS18B20做成探頭,探入到狹小的地方,增加了實(shí)用性。更能串接多個(gè)數(shù)字溫度傳感器DS18B20進(jìn)行范圍的溫度檢測(cè)。2、 DS18B20工作原理DS18B20的讀寫(xiě)時(shí)序和測(cè)溫原理與DS1820相同,只是得到的溫度值的位數(shù)因分辨
3、率不同而不同,且溫度轉(zhuǎn)換時(shí)的延時(shí)時(shí)間由2s減為750ms。 DS18B20測(cè)溫原理如圖3所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給計(jì)數(shù)器1。高溫度系數(shù)晶振隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號(hào)作為計(jì)數(shù)器2的脈沖輸入。計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55所對(duì)應(yīng)的一個(gè)基數(shù)值。計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)計(jì)數(shù)器1的預(yù)置值減到0時(shí),溫度寄存器的值將加1,計(jì)數(shù)器1的預(yù)置將重新被裝入,計(jì)數(shù)器1重新開(kāi)始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度。斜率累加器用
4、于補(bǔ)償和修正測(cè)溫過(guò)程中的非線性,其輸出用于修正計(jì)數(shù)器1的預(yù)置值。三、系統(tǒng)軟件流程圖四、電路原理圖1.DS18B20溫度傳感器檢測(cè)電路 溫度采集通過(guò)數(shù)字化的溫度傳感器DS18B20,通過(guò)QD接向單片機(jī)的P3.0口。DS18B20溫度傳感器電路如圖5.3所示。2.二極管顯示報(bào)警電路 二極管顯示報(bào)警電路如下圖所示。通過(guò)單片機(jī)的P3.4和P3.5兩個(gè)端口送出,采用的是高電平驅(qū)動(dòng),使其發(fā)光發(fā)出警告。二極管顯示電路3.整體原理圖五、程序設(shè)計(jì)1)讀出溫度子程序讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時(shí)需進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫(xiě),程序流程圖如圖5.10所示。 DS18B20
5、的各個(gè)命令對(duì)時(shí)序的要求特別嚴(yán)格,所以必須按照所要求的時(shí)序才能達(dá)到預(yù)期的目的,同時(shí),要注意讀進(jìn)來(lái)的是高位在后低位在前,共有12位數(shù),小數(shù)4位,整數(shù)7位,還有一位符號(hào)位。 讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時(shí)需進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫(xiě),程序流程圖如圖5.10所示。 DS18B20的各個(gè)命令對(duì)時(shí)序的要求特別嚴(yán)格,所以必須按照所要求的時(shí)序才能達(dá)到預(yù)期的目的,同時(shí),要注意讀進(jìn)來(lái)的是高位在后低位在前,共有12位數(shù),小數(shù)4位,整數(shù)7位,還有一位符號(hào)位。2)寫(xiě)入子程序?qū)懭胱映绦虻牧鞒虉D如5.11所示。六、主要程序#include<reg51.h>#incl
6、ude<intrins.h>#define uchar unsigned char#define uint unsigned int#define duan P0#define wei P1sbit DSPORT=P37;void Delay1ms(uint y);void Delay5ms();uchar Ds18b20Init();void Ds18b20WriteByte(uchar dat);uchar Ds18b20ReadByte();void Ds18b20ChangTemp();void Ds18b20ReadTempCom();int Ds18b20ReadTem
7、p();void DigDisplay();void LcdDisplay(int temp);uchar code segta10=0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90;unsigned char DisplayData8;void main()while(1)LcdDisplay(Ds18b20ReadTemp();void Delay1ms(uint y)uint x;for( ; y>0; y-)for(x=110; x>0; x-);/* 函 數(shù) 名 : Ds18b20Init* 函數(shù)功能 : 初始化* 輸 入
8、 : 無(wú)* 輸 出 : 初始化成功返回1,失敗返回0*/uchar Ds18b20Init()uchar i;DSPORT = 0; /將總線拉低480us960usi = 70;while(i-);/延時(shí)642usDSPORT = 1;/然后拉高總線,如果DS18B20做出反應(yīng)會(huì)將在15us60us后總線拉低i = 0;while(DSPORT)/等待DS18B20拉低總線Delay1ms(1);i+;if(i>5)/等待>5MSreturn 0;/初始化失敗return 1;/初始化成功/* 函 數(shù) 名 : Ds18b20WriteByte* 函數(shù)功能 : 向18B20寫(xiě)入一個(gè)
9、字節(jié)* 輸 入 : com* 輸 出 : 無(wú)*/void Ds18b20WriteByte(uchar dat)uint i, j;for(j=0; j<8; j+)DSPORT = 0; /每寫(xiě)入一位數(shù)據(jù)之前先把總線拉低1usi+;DSPORT = dat & 0x01; /然后寫(xiě)入一個(gè)數(shù)據(jù),從最低位開(kāi)始i=6;while(i-); /延時(shí)68us,持續(xù)時(shí)間最少60usDSPORT = 1;/然后釋放總線,至少1us給總線恢復(fù)時(shí)間才能接著寫(xiě)入第二個(gè)數(shù)值dat >>= 1;/* 函 數(shù) 名 : Ds18b20ReadByte* 函數(shù)功能 : 讀取一個(gè)字節(jié)* 輸 入 :
10、 com* 輸 出 : 無(wú)*/uchar Ds18b20ReadByte()uchar byte, bi;uint i, j;for(j=8; j>0; j-)DSPORT = 0;/先將總線拉低1usi+;DSPORT = 1;/然后釋放總線i+;i+;/延時(shí)6us等待數(shù)據(jù)穩(wěn)定bi = DSPORT; /讀取數(shù)據(jù),從最低位開(kāi)始讀取/*將byte左移一位,然后與上右移7位后的bi,注意移動(dòng)之后移掉那位補(bǔ)0。*/byte = (byte >> 1) | (bi << 7); i = 4;/讀取完之后等待48us再接著讀取下一個(gè)數(shù)while(i-);return by
11、te;/* 函 數(shù) 名 : Ds18b20ChangTemp* 函數(shù)功能 : 讓18b20開(kāi)始轉(zhuǎn)換溫度* 輸 入 : com* 輸 出 : 無(wú)*/void Ds18b20ChangTemp()Ds18b20Init();Delay1ms(1);Ds18b20WriteByte(0xcc);/跳過(guò)ROM操作命令 Ds18b20WriteByte(0x44); /溫度轉(zhuǎn)換命令/Delay1ms(100);/等待轉(zhuǎn)換成功,而如果你是一直刷著的話,就不用這個(gè)延時(shí)了 /* 函 數(shù) 名 : Ds18b20ReadTempCom* 函數(shù)功能 : 發(fā)送讀取溫度命令* 輸 入 : com* 輸 出 : 無(wú)*/v
12、oid Ds18b20ReadTempCom()Ds18b20Init();Delay1ms(1);Ds18b20WriteByte(0xcc); /跳過(guò)ROM操作命令Ds18b20WriteByte(0xbe); /發(fā)送讀取溫度命令/* 函 數(shù) 名 : Ds18b20ReadTemp* 函數(shù)功能 : 讀取溫度* 輸 入 : com* 輸 出 : 無(wú)*/int Ds18b20ReadTemp()int temp = 0;uchar tmh, tml;Ds18b20ChangTemp(); /先寫(xiě)入轉(zhuǎn)換命令Ds18b20ReadTempCom();/然后等待轉(zhuǎn)換完后發(fā)送讀取溫度命令tml = D
13、s18b20ReadByte();/讀取溫度值共16位,先讀低字節(jié)tmh = Ds18b20ReadByte();/再讀高字節(jié)temp = tmh;temp <<= 8;temp |= tml;return temp;/* 函 數(shù) 名 : LcdDisplay()* 函數(shù)功能 : LCD顯示讀取到的溫度* 輸 入 : v* 輸 出 : 無(wú)*/void LcdDisplay(int temp) /lcd顯示 float tp; if(temp< 0)/當(dāng)溫度值為負(fù)數(shù) DisplayData0 = 0x40; /因?yàn)樽x取的溫度是實(shí)際溫度的補(bǔ)碼,所以減1,再取反求出原碼temp=t
14、emp-1;temp=temp;tp=temp;temp=tp*0.0625*100+0.5;/留兩個(gè)小數(shù)點(diǎn)就*100,+0.5是四舍五入,因?yàn)镃語(yǔ)言浮點(diǎn)數(shù)轉(zhuǎn)換為整型的時(shí)候把小數(shù)點(diǎn)/后面的數(shù)自動(dòng)去掉,不管是否大于0.5,而+0.5之后大于0.5的就是進(jìn)1了,小于0.5的就/算由?.5,還是在小數(shù)點(diǎn)后面。 else DisplayData0 = 0x00;tp=temp;/因?yàn)閿?shù)據(jù)處理有小數(shù)點(diǎn)所以將溫度賦給一個(gè)浮點(diǎn)型變量/如果溫度是正的那么,那么正數(shù)的原碼就是補(bǔ)碼它本身temp=tp*0.0625*100+0.5;/留兩個(gè)小數(shù)點(diǎn)就*100,+0.5是四舍五入,因?yàn)镃語(yǔ)言浮點(diǎn)數(shù)轉(zhuǎn)換為整型的時(shí)候把小數(shù)點(diǎn)/后面的數(shù)自動(dòng)去掉,不管是否大于0.5,而+0.5之后大于0.5的就是進(jìn)1了,小于0.5的就/算加上0.5,還是在小數(shù)點(diǎn)后面。DisplayData1 = segtatemp / 10000;DisplayData2 = segtatemp % 10000 / 1000;DisplayData3 = segtatemp % 1000 / 100 | 0x80;DisplayData4 = segtatemp % 1
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全國(guó)二卷高考英語(yǔ)作文深度解析及寫(xiě)作指導(dǎo)
- 壽險(xiǎn)公司客戶經(jīng)營(yíng)研究
- 公司宣傳車輛管理制度
- 公司洗錢(qián)風(fēng)險(xiǎn)管理制度
- 公司現(xiàn)行運(yùn)營(yíng)管理制度
- 公司電商部門(mén)管理制度
- 公司裝修工程管理制度
- 錳基納米反應(yīng)器的構(gòu)建及其在協(xié)同激活STING信號(hào)通路的應(yīng)用
- 廣東省汕頭市2024-2025學(xué)年高二下冊(cè)第一次月考數(shù)學(xué)試卷附解析
- 2025年中考語(yǔ)文(長(zhǎng)沙用)課件:主題12 漢字的魅力專題研討活動(dòng)
- 托里縣鐵廠溝鎮(zhèn)工業(yè)固廢垃圾填埋場(chǎng)項(xiàng)目環(huán)境影響報(bào)告書(shū)
- 金山區(qū)2024-2025學(xué)年六年級(jí)上學(xué)期期中考試數(shù)學(xué)試卷及答案(上海新教材)
- T/CUWA 60054-2023飲用水納濾阻垢劑性能試驗(yàn)方法
- 恒生筆試題及答案
- 傳染病防治法試題(答案)
- 2025-2031年中國(guó)垃圾處理市場(chǎng)競(jìng)爭(zhēng)策略及行業(yè)投資潛力預(yù)測(cè)報(bào)告
- 《神經(jīng)系統(tǒng)疾病概述》課件2
- 2025年入團(tuán)考試必考題目試題及答案
- 人工智能訓(xùn)練師(三級(jí))職業(yè)技能鑒定理論考試題(附答案)
- 2025年全國(guó)保密教育線上培訓(xùn)考試試題庫(kù)帶答案(典型題)含答案詳解
- 亞歷山大大帝傳
評(píng)論
0/150
提交評(píng)論