版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、綜合設(shè)計(jì):基于DS18B20的智能溫度檢測(cè)系統(tǒng)電子系統(tǒng)綜合設(shè)計(jì)題 目 基于DS18B20的智能溫度檢測(cè)系統(tǒng) 學(xué) 號(hào) * 姓 名 轉(zhuǎn)載請(qǐng)注明出處 所 屬 系 機(jī)械工程學(xué)院 專(zhuān) 業(yè) 電子信息工程 班 級(jí) 10級(jí)電信本一班 指導(dǎo)教師 熊春如 基于DS18B20的智能溫度檢測(cè)系統(tǒng)的設(shè)計(jì) 摘 要在這次設(shè)計(jì)中,1.用STC89C52控制DS18B20,讀取數(shù)據(jù),并對(duì)DS18B20轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行處理,最后在數(shù)碼管上顯示DS18B20測(cè)出的溫度。2.使用4位數(shù)碼管顯示,最高位為符號(hào)位,如果溫度值為正,不顯示,如果溫度為負(fù),則顯示負(fù)號(hào)。3.測(cè)量的溫度上限到99度,下限超過(guò)50度。4.溫度的測(cè)量值要精確到小數(shù)點(diǎn)
2、的后1位。4.能設(shè)置上限溫度和下限溫度值,當(dāng)被測(cè)量溫度在上限溫度和下限溫度值之間時(shí)下四位燈全亮代表綠色LED亮,當(dāng)被測(cè)量溫度在上限溫度和下限溫度值之外時(shí)上四位燈全亮代表紅色LED亮,并蜂鳴器報(bào)警。6.設(shè)置的上限溫度和下限溫度值能夠斷電后保存(EEPROM)。7.實(shí)現(xiàn)上述功能人機(jī)界面簡(jiǎn)單。關(guān)鍵字:DS18B20; 數(shù)碼管; 單片機(jī); 目 錄摘 要11整體設(shè)計(jì)方案3 1.1系統(tǒng)設(shè)計(jì)結(jié)構(gòu)圖32智能溫度檢測(cè)系統(tǒng)的硬件設(shè)計(jì)43 智能溫度檢測(cè)系統(tǒng)的軟件設(shè)計(jì)5 3.1 各個(gè)程序流程圖5 3.1.1主程序流程圖6 3.1.2 定時(shí)器0流程圖6 3.1.3定時(shí)器1流程圖7 3.1.4設(shè)置上下限流程圖8 3.1.
3、5 led顯示和報(bào)警流程圖8 3.1.6獲取溫度值流程圖9 3.1.7按鍵掃描控制流程圖11 3.1.8 按鍵界面顯示流程圖12 3.2智能溫度檢測(cè)系統(tǒng)的源程序代碼13 4 系統(tǒng)硬件調(diào)試235 總結(jié)241整體設(shè)計(jì)方案1.1 系統(tǒng)設(shè)計(jì)結(jié)構(gòu)圖根據(jù)系統(tǒng)設(shè)計(jì)的要求和設(shè)計(jì)思路,確定該系統(tǒng)的系統(tǒng)設(shè)計(jì)結(jié)構(gòu)圖。如圖2.2所示。硬件電路主要由MCU微處理控制器單元、溫度檢測(cè)模塊、四個(gè)數(shù)碼管顯示模塊,鍵盤(pán)控制模塊,LED燈顯示模塊和蜂鳴器響應(yīng)模塊構(gòu)成。四個(gè)數(shù)碼管顯示 MCU微處理控制器單元溫度檢測(cè)LED燈顯示按鍵控制蜂鳴器響應(yīng) 圖1.1 系統(tǒng)結(jié)構(gòu)圖設(shè)計(jì) 2 智能溫度檢測(cè)系統(tǒng)的硬件設(shè)計(jì)硬件電路圖如下: 3智能溫度檢
4、測(cè)系統(tǒng)的軟件設(shè)計(jì) 3.1 系統(tǒng)的軟件設(shè)計(jì)也是工具系統(tǒng)功能的設(shè)計(jì)。各個(gè)程序流程圖如下: 開(kāi)始設(shè)置定時(shí)器0和1設(shè)置上下限溫度值Led掃描和報(bào)警判定 按鍵控制掃描 圖3.1.1 主程序流程圖 開(kāi)始N 定時(shí)中斷響應(yīng)Y次數(shù)清零,蜂鳴器響應(yīng) 結(jié)束 圖3.1.2 定時(shí)器0中斷函數(shù)流程圖 開(kāi)始 獲取溫度 定時(shí)中斷次數(shù) 四次 一次N N N N 三次 兩次Y Y Y Y顯示小數(shù),次數(shù)清零顯示整數(shù)個(gè)位顯示整數(shù)十位判斷正負(fù)號(hào)顯示符號(hào)位 結(jié)束 圖3.1.3 定時(shí)器1中斷數(shù)碼管顯示程序流程圖 開(kāi)始 寫(xiě)入上下限值 復(fù)制到EEPROM 結(jié)束 圖3.1.4 設(shè)置上下限并且復(fù)制到EEPROM 開(kāi)始 上下限之間上四位燈表示的紅燈
5、亮,蜂鳴器響應(yīng)下四位燈表示的綠燈亮,蜂鳴器不響應(yīng)Y N 結(jié)束 圖3.1.5 Led顯示和報(bào)警 開(kāi)始讀取當(dāng)前溫度值 整數(shù)溫度負(fù)數(shù) Y整數(shù)部分取反碼加一 N處理并合成整數(shù)溫度得到整數(shù)溫度取出小數(shù)部分溫度值 結(jié)束 圖3.1.6 獲取溫度值程序流程圖 開(kāi)始 N 有鍵按下Y 延時(shí)等待 N 確實(shí)按下YN N 確定鍵 按下 減鍵 按下 加鍵按下 調(diào)節(jié)鍵按下 N N 調(diào)節(jié)鍵次數(shù)清零對(duì)所調(diào)的數(shù)減一對(duì)所調(diào)的數(shù)加一兩次 一次調(diào)下限值調(diào)上限值顯示實(shí)時(shí)溫度數(shù)碼管顯示調(diào)節(jié)界面 結(jié)束 開(kāi)始 圖3.1.7 按鍵掃描控制程序流程讀出上下限值 是否負(fù)數(shù) N Y 反碼加一得到正數(shù)的上下限值調(diào)上或下限? 調(diào)下限 調(diào)上限顯示下限溫度值
6、個(gè)位顯示下限溫度值十位 判斷 是否負(fù)數(shù)第一個(gè)數(shù)管顯下限標(biāo)志標(biāo)志顯示上限溫度值個(gè)位顯示上限溫度值十位 判斷 是否負(fù)數(shù)第一個(gè)數(shù)管顯上限標(biāo)志標(biāo)志負(fù)數(shù)顯示負(fù)號(hào)標(biāo)志正數(shù),第二個(gè)數(shù)碼管消隱負(fù)數(shù)顯示負(fù)號(hào)標(biāo)志正數(shù),第二個(gè)數(shù)碼管消隱 結(jié)束 圖3.1.8 按鍵界面顯示程序流程圖 3.2智能溫度檢測(cè)系統(tǒng)的源程序代碼/* 用單片機(jī)實(shí)現(xiàn) */* 控制DS18B20并且用四個(gè)數(shù)碼管顯示實(shí)時(shí)溫度 */* 可設(shè)置上限溫度和下限溫度值并且可報(bào)警 */* 設(shè)置的上限溫度和下限溫度值能夠斷電后保存(EEPROM) */* 新余學(xué)院10屆電信本一班 余巍峰 制作 */* 轉(zhuǎn)載請(qǐng)注明出處 */#include#define uchar
7、 unsigned char#define uint unsigned int#define wei P2#define duan P0#define led P1sbit DQ=P37;sbit beep=P36;uchar tab2=0xbf,0xff,0xdf,0xfb;/數(shù)碼管顯示內(nèi)容,分別顯示負(fù)號(hào)標(biāo)志,消隱,上限標(biāo)志,下限標(biāo)志uchar table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/段碼顯示uchar tab1=0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x0
8、6,0x07,0x08,0x08,0x09,0x09;/小數(shù)表uchar readdat2;/取出溫度存儲(chǔ)的變量數(shù)組uchar hc9;char hc0=99;char hc1=-50;uchar flag=0; /負(fù)號(hào)標(biāo)志uchar i=0;uchar count=0;uchar m=0; /調(diào)上下限的標(biāo)志位char h; /上限值變量char l; /下限值變量void getwd();void Delay(uint j);void init();uchar readonebyte();void writeonebyte(uchar dat);void displayled();void
9、displaykey();void displayset();void delay1(uint z);void setlimite(char th,tl);/*/void main()TMOD=0x11;/開(kāi)兩個(gè)定時(shí)中斷TH1=-(1000/256);TL1=-(1000%256);TR1=1; /用于掃描顯示實(shí)時(shí)溫度TR0=0; /用于蜂鳴器報(bào)警ET1=1;ET0=1; TH0=-(1000/256);TL0=-(1000%256);EA=1;wei=0xff; setlimite(h,l);/首先設(shè)置的上下限溫度值while(1) displayled(); displaykey(); /
10、*/void wendu () interrupt 3/定時(shí)中斷1服務(wù)函數(shù)uchar temp;getwd();i+;switch(i)case 1: /判斷是否顯示負(fù)號(hào) if(flag=1) temp=tab20; else temp=tab21; wei=0xfe; duan=temp;break;case 2: /顯示整數(shù)溫度的十位 temp=hc2;/readdat1/10; wei=0xfd; duan=tabletemp;break;case 3: /顯示整數(shù)溫度的個(gè)位 temp=hc3;/readdat1%10; wei=0xfb; duan=tabletemp&0x7f;bre
11、ak;case 4: /顯示小數(shù)位 temp=hc4;/readdat0; wei=0xf7; duan=tabletemp;break;if(i=4)i=0;TH1=-(1000/256);TL1=-(1000%256);/*/void beep1 () interrupt 1/定時(shí)中斷0服務(wù)函數(shù) count+;if(count=100)count=0;beep=beep;/蜂鳴器發(fā)出警報(bào) TH0=-(1000/256); TL0=-(1000%256);/*/void Delay(uint j)/延時(shí)較短的函數(shù)while(j-);/*/void init()/初始化uchar x;DQ =
12、 1; /DQ復(fù)位Delay(8); /稍做延時(shí)DQ = 0; /單片機(jī)將DQ拉低Delay(80); /精確延時(shí) 大于 480usDQ = 1; /拉高總線(xiàn)Delay(14);x=DQ; /稍做延時(shí)后 如果x=0則初始化成功 x=1則初始化失敗Delay(20);/*/uchar readonebyte()/讀一個(gè)字節(jié)uchar i=0;uchar dat=0;for (i=8;i0;i-)DQ = 0; / 給脈沖信號(hào)dat=1;DQ = 1; / 給脈沖信號(hào)if(DQ)dat|=0x80;Delay(4);return(dat);/*/void writeonebyte(uchar da
13、t)/寫(xiě)一個(gè)字節(jié)uchar i=0;for (i=8; i0; i-)DQ = 0;DQ = dat&0x01;Delay(2);DQ = 1;dat=1;/*/void setlimite(char th,tl)/設(shè)置上下限溫度值同時(shí)把溫度值存入18b20的EEPROM函數(shù) init();writeonebyte(0xcc);writeonebyte(0x4e);/寫(xiě)入上下限值writeonebyte(th);writeonebyte(tl); init();writeonebyte(0xcc);writeonebyte(0x48);/把寫(xiě)入的上下限值復(fù)制到EEPROMDelay(20);/
14、*/void getwd()/獲取溫度值函數(shù) uint x,result;char re;init();writeonebyte(0xcc);writeonebyte(0x44); init();writeonebyte(0xcc);writeonebyte(0xbe);/讀取當(dāng)前的溫度readdat0=readonebyte();readdat1=readonebyte();re=readdat1;if(re&0xf8)!=0)/若溫度為負(fù)數(shù),則取反碼加一flag=1;readdat1=readdat1;readdat0=readdat0;result=readdat0+1; readdat
15、0=result;if(result255)readdat1+;readdat1=readdat14;x=x&0x0f;/取出讀出溫度2的高四位,即整數(shù)部分的低四位readdat1=readdat1|x; /合成整數(shù)部分溫度hc1=readdat1/100;hc2=readdat1%100/10;/轉(zhuǎn)化溫度為可以顯示hc3=readdat1%100%10;readdat0=readdat0&0x0f;/取出小數(shù)部分hc4=tab1readdat0;/*/void displayled()/led顯示和報(bào)警函數(shù)uchar s0;s0=(readdat1hc1)&(readdat199) h=0;
16、 if(m=2) l+; if(l99) l=0; if(lh|l=h)/如果所調(diào)的上下限值相等,則復(fù)位 TR0=1; l=-50; h=99; elseTR0=0;beep=1; setlimite(h,l); while(key&0xf0!=0xf0); break; case 0xd0: /對(duì)當(dāng)前所調(diào)的值減一if(m=1) h-; if(h-50) h=0; if(m=2) l-; if(lh|l=h)/如果所調(diào)的上下限值相等,則復(fù)位 TR0=1; l=-50; h=99; elseTR0=0;beep=1; setlimite(h,l); while(key&0xf0!=0xf0);
17、break; case 0xe0: m=0; /確定調(diào)好,返回顯示時(shí)間 TR1=1; while(key&0xf0!=0xf0); break; if(TR1=0) displayset();/*/void displayset()/按鍵時(shí)數(shù)碼管顯示掃描函數(shù) char k,p;uchar a,b,c,d;init();writeonebyte(0xcc);writeonebyte(0x44); init();writeonebyte(0xcc); writeonebyte(0xb8);/把EEPROM中的上下限值復(fù)制到暫存器中 init();writeonebyte(0xcc);writeon
18、ebyte(0xbe);/讀取暫存器中的內(nèi)容hc5=readonebyte();hc6=readonebyte();hc0=readonebyte();/所讀取的上下限溫度值hc1=readonebyte();/if(hc00)/p=hc0;p=p;p=p+1;elsep=hc0;a=p/10;b=p%10;if(hc10)/若為負(fù)數(shù),反碼加一k=hc1; k=k;k=k+1;elsek=hc1;c=k/10;d=k%10;if(m=1)/按一下顯示的上限溫度值 wei=0xfe; duan=tab22;/上限標(biāo)志delay1(5); wei=0xfd;if(hc00)duan=tab20;/若為負(fù)值,顯示負(fù)號(hào)elseduan=tab21;/消隱表示正delay1(5);wei=0xfb; duan=tablea;/顯示上限溫度值 delay1(5); wei=0xf7; duan=tableb
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年KTV特色主題活動(dòng)策劃與執(zhí)行合同3篇
- 2025版攤鋪機(jī)租賃及施工質(zhì)量保障合同范本6篇
- 個(gè)人健身教練合同:2024版專(zhuān)業(yè)輔導(dǎo)合同書(shū)
- 2025年度臨時(shí)用工勞務(wù)合同編制指南范本2篇
- 二零二五年度光伏電站運(yùn)維人工勞務(wù)合同范本3篇
- 2025年木材市場(chǎng)分析與預(yù)測(cè)合作合同范本
- 二零二五版木門(mén)行業(yè)展會(huì)參展與推廣服務(wù)合同4篇
- 二零二五年度數(shù)字貨幣技術(shù)研發(fā)與應(yīng)用合同集2篇
- 2025年戶(hù)外健身路徑欄桿設(shè)施采購(gòu)合同3篇
- 2025年度獵頭服務(wù)人才引進(jìn)與培養(yǎng)合作協(xié)議5篇
- 《電影之創(chuàng)戰(zhàn)紀(jì)》課件
- 社區(qū)醫(yī)療抗菌藥物分級(jí)管理方案
- 開(kāi)題報(bào)告-鑄牢中華民族共同體意識(shí)的學(xué)校教育研究
- 《醫(yī)院標(biāo)識(shí)牌規(guī)劃設(shè)計(jì)方案》
- 公司2025年會(huì)暨員工團(tuán)隊(duì)頒獎(jiǎng)盛典攜手同行共創(chuàng)未來(lái)模板
- 夜市運(yùn)營(yíng)投標(biāo)方案(技術(shù)方案)
- 電接點(diǎn) 水位計(jì)工作原理及故障處理
- 國(guó)家職業(yè)大典
- 2024版房產(chǎn)代持協(xié)議書(shū)樣本
- 公眾號(hào)運(yùn)營(yíng)實(shí)戰(zhàn)手冊(cè)
- 科研倫理與學(xué)術(shù)規(guī)范(研究生)期末試題庫(kù)及答案
評(píng)論
0/150
提交評(píng)論