




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
水溫控制系統(tǒng)設(shè)計(jì)論文學(xué)校:系別:專業(yè):指導(dǎo)教師:姓名及學(xué)號(hào):2011年5月目錄TOC\o"1-5"\h\z標(biāo)題 2摘要 2\o"CurrentDocument"一、設(shè)計(jì)要求 2\o"CurrentDocument"二、設(shè)計(jì)方案及論證 2\o"CurrentDocument"三、 硬件設(shè)計(jì)及實(shí)現(xiàn) 31、 主控系統(tǒng)設(shè)計(jì) 32、溫度采集系統(tǒng) 4\o"CurrentDocument"四、 系統(tǒng)軟件設(shè)計(jì) 71系統(tǒng)軟件流程圖 72系統(tǒng)軟件 9結(jié)束語 10參考文獻(xiàn) 10水溫控制系統(tǒng)摘要:設(shè)計(jì)關(guān)鍵詞:AT89C52單片機(jī) 數(shù)字溫度傳感器DS18B20八段數(shù)碼管顯示獨(dú)立鍵盤輸入 溫度采集與轉(zhuǎn)換
、設(shè)計(jì)要求1、 溫度設(shè)定范圍為40?90°C,最小區(qū)分度為1°C,標(biāo)定溫度小于等于1°C。2、 環(huán)境溫度降低時(shí),(如用電風(fēng)扇降溫)溫度控制的靜態(tài)誤差小于等于1C。3、 用十進(jìn)制數(shù)碼管顯示水的實(shí)際溫度。二、設(shè)計(jì)方案及論證1、 控制器模塊:采用AT89C52作為系統(tǒng)控制器。2、 溫度采集模塊:采用數(shù)字溫度傳感器DS18B20,如圖1所示。圖1DS18B20測溫電路3、顯示模塊:采用三位LED七段數(shù)碼管分別顯示溫度的十位、個(gè)位和小數(shù)位。按鍵采用單列3按鍵進(jìn)行溫度設(shè)定。系統(tǒng)框圖如圖2所示:圖2三、硬件設(shè)計(jì)與實(shí)現(xiàn)系統(tǒng)硬件電路主要由AT89C52單片機(jī)開發(fā)板、DS18B20單線數(shù)字溫度傳感器組成。1、主控系統(tǒng)設(shè)計(jì)
圖3系統(tǒng)硬件模塊關(guān)系圖2、溫度采集部分設(shè)計(jì)本系統(tǒng)采用半導(dǎo)體溫度傳感器作為敏感元件。傳感器我們采用了DS18B20單總線可編程溫度傳感器,來實(shí)現(xiàn)對(duì)溫度的采集和轉(zhuǎn)換,直接輸出數(shù)字量,可以直接和單片機(jī)進(jìn)行通訊,大大簡化了電路的復(fù)雜度。DS18B20應(yīng)用廣泛,性能可以滿足題目的設(shè)計(jì)要求。DS18B20的測溫電路如圖4所示。圖4DS18B20測溫電路(1)DSI8B20的測溫功能的實(shí)現(xiàn):其測溫電路的實(shí)現(xiàn)是依靠單片機(jī)軟件的編程上。當(dāng)DSI8B20接收到溫度轉(zhuǎn)換命令后,開始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存存儲(chǔ)器的0,1字節(jié)。單片機(jī)可通過單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后,數(shù)據(jù)格式以0.0625°C/LSB形。溫式表示度值格式如表1所示,其中“S”為標(biāo)志位,對(duì)應(yīng)的溫度計(jì)算:當(dāng)符號(hào)位S=0時(shí),直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)S=1時(shí),先將補(bǔ)碼變換為原碼,再計(jì)算十進(jìn)制值°DSI8B20完成溫度轉(zhuǎn)換后,就把測得的溫度值與TH做比較,若T>TH或T<TL,則將該器件內(nèi)的告警標(biāo)志置位,并對(duì)主機(jī)發(fā)出的告警搜索命令做出響應(yīng)。(2) 溫度轉(zhuǎn)換算法及分析由于DS18B20轉(zhuǎn)換后的代碼并不是實(shí)際的溫度值,所以要進(jìn)行計(jì)算轉(zhuǎn)換。溫度高字節(jié)(MSByte)高5位是用來保存溫度的正負(fù)(標(biāo)志為S的bit11?bit15),高字節(jié)(MSByte)低3位和低字節(jié)來保存溫度值(bit0~bit10)。其中低字節(jié)(LSByte)的低4位來保存溫度的小數(shù)位(bit0-bit3)。由于本程序采用的是0.0625的精度,小數(shù)部分的值,可以用后四位代表的實(shí)際數(shù)值乘以0.0625,得到真正的數(shù)值,數(shù)值可能帶幾個(gè)小數(shù)位,所以采取小數(shù)舍入,保留一位小數(shù)即可。也就說,本系統(tǒng)的溫度精確到了0.1度。算法核心:首先程序判斷溫度是否是零下,如果是,則DS18B20保存的是溫度的補(bǔ)碼值,需要對(duì)其低8位(LSByte)取反加一變成原碼。處理過后把DS18B20的溫度Copy到單片機(jī)的RAM中,里面已經(jīng)是溫度值的Hex碼了,然后轉(zhuǎn)換Hex碼到BCD碼,分別把小數(shù)位,個(gè)位,十位的BCD碼存入RAM中。(3) 鍵盤、顯示系統(tǒng)鍵盤使用AT89C52單片機(jī)開發(fā)板上自帶鍵盤進(jìn)行鍵盤輸入操作。數(shù)字顯示部分第一種方法是采用采用數(shù)碼管,由于要求的測量精度為忍1。所以本系統(tǒng)采用三位數(shù)碼管進(jìn)行顯示。數(shù)碼管顯示圖如圖5圖5本系統(tǒng)通過鍵盤設(shè)定溫度并可以進(jìn)行復(fù)位,其電路圖如圖6四、系統(tǒng)軟件設(shè)計(jì)1、系統(tǒng)軟件流程圖系統(tǒng)軟件主要由溫度采集、鍵盤掃描、數(shù)碼管顯示、報(bào)警子程序、中間接口程序組成。其主程序流程圖如圖7,溫度采集子程序流程圖如圖3.2,鍵盤掃描子程序流程圖如圖8。其主程序流程圖如圖7,圖7主程序流程圖讀取溫度DS18B20模塊的流程圖8溫度采集子程序流程圖鍵盤掃描處理流程圖9鍵盤掃描子程序流程圖注:顯示溫度未插DS18B20時(shí),數(shù)碼管顯示設(shè)定值50.插入DS18B20時(shí),數(shù)碼管顯示當(dāng)前溫度XX.X2、系統(tǒng)軟件系統(tǒng)軟件的源程序:#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintsbitDS=P2”0; 〃定義DS18B20接口TOC\o"1-5"\h\zsbit DAT_595_PIN = P1”2;sbit SCK_595_PIN = P1”0;sbit RCK_595_PIN = P1”1;sbit BUZZ=P3”3;inttemp,seding;ucharflag1,sebai=0,seshi=5,sege=0,sexiao=0;voiddisplay(unsignedchar*lp,unsignedcharlc);//數(shù)字的顯示函數(shù);Ip為指向數(shù)組的地址,lc為顯示的個(gè)數(shù)voidWrite_595(uchar*lp);//voiddelay(void);//延時(shí)子函數(shù),5個(gè)空指令//voiddelay10ms(void);//voidreadrom(void);codeunsignedchartable□={0xf5,0x05,0xb3,0x97,0x47,0xd6,0xf6,0x85,0xf7,0xd7,TOC\o"1-5"\h\z//0 1 2 3 4 56 7 8 90xfd,0x0d,0xbb,0x9f,0x4f,0xde,0xfe,0x8d,0xff,0xdf,0x00};//0. 1.2. 3. 4. 5.6. 7.8. 9.滅〃共陰數(shù)碼管0-9-_空表uchar code bit_buf[8] ={0xdf,0xbf,0x7f,0xef,0xfd,0xfb,0xf7,0xfe};//0xf7,0xef,0xdf,0xbf,0x7f};unsignedcharl_tmpdate[8]=(0,0,0,0,0,0,0,0};//定義數(shù)組變量,并賦值1,2,3,4,5,6,7,8,就是//本程序顯示的八個(gè)數(shù)inttmp(void);voidtmpchange(void);voidtmpwritebyte(uchardat);uchartmpread(void);bittmpreadbit(void);voiddsreset(void);voiddelayb(uintcount);voidScan_Key(void);voidDelayk(void);voidmain() //主函數(shù)(intl_tmp;BUZZ=1;while(1)(Scan_Key();//設(shè)定溫度上限if(sebai==0)l_tmpdate[4]=20;elsel_tmpdate[4]=sebai;l_tmpdate[5]=seshi;l_tmpdate[6]=sege+10;l_tmpdate[7]=20;tmpchange(); 〃溫度轉(zhuǎn)換l_tmp=tmp();if(l_tmp<0)l_tmpdate[0]=10;//判斷溫度為負(fù)溫度,前面加〃-〃else(l_tmpdate[0]=temp/1000;〃顯示百位,這里用1000,是因?yàn)槲覀冎肮砸?0位了if(l_tmpdate[0]==0)l_tmpdate[0]=20;//判斷溫度為正溫度且沒有上百,前面不顯示}l_tmp=temp%1000;l_tmpdate[1]=l_tmp/100;//獲取十位l_tmp=l_tmp%100;l_tmpdate[2]=l_tmp/10;//獲取個(gè)位l_tmpdate[2]+=10;l_tmpdate[3]=l_tmp%10;//獲取小數(shù)第一位seding=sebai*100+seshi*10+sege;if(temp>10*seding) 〃超過設(shè)定值報(bào)警BUZZ=0;elseBUZZ=1;display(l_tmpdate,5);}}voiddisplay(unsignedchar*lp,unsignedcharlc)//顯示(uchari;for(i=0;i<lc;i++)(Write_595(lp);}}voidWrite_595(uchar*lp) //寫數(shù)到595,數(shù)碼管顯示(uchari,j;uintdat;for(i=0;i<8;i++)(RCK_595_PIN=0;dat=bit_buf[i];dat=dat<<8;
dat|=table[lp[i]];for(j=0;j<16;j++)(SCK_595_PIN=0;if(dat&0x8000)(DAT_595_PIN=1;}else(DAT_595_PIN=0;}dat=dat<<1;SCK_595_PIN=1;}RCK_595_PIN=1;}}//空//空5個(gè)指令(_nop_();_nop_();_nop_();_nop_();_nop_();}*/voiddelayb(uintcount)(uinti;while(count)voiddelayb(uintcount)(uinti;while(count)(i=200;while(i>0)i--;count--;}}voiddsreset(void)(uinti;DS=0;i=103;while(i>0)i--;DS=1;i=4;while(i>0)i--;}bittmpreadbit(void)(//delay//DS18B20初始化//讀一位uinti;bitdat;〃小延時(shí)一下DS=0;i++;〃小延時(shí)一下DS=1;i++;i++;dat=DS;i=8;while(i>0)i--;return(dat);}uchartmpread(void) 〃讀一個(gè)字節(jié)(uchari,j,dat;dat=0;for(i=1;i<=8;i++)(j=tmpreadbit();dat=(j<<7)|(dat>>1); 〃讀出的數(shù)據(jù)最低位在最前面,這樣剛好//一個(gè)字節(jié)在DAT里}return(dat); //將一個(gè)字節(jié)數(shù)據(jù)返回}voidtmpwritebyte(uchardat)//寫一個(gè)字節(jié)到DS18B20里(uinti;ucharj;bittestb;for(j=1;j<=8;j++)(testb=dat&0x01;dat=dat>>1;if(testb)//寫1部分(DS=0;i++;i++;DS=1;i=8;while(i>0)i--;}else(DS=0; 〃寫0部分i=8;while(i>0)i--;DS=1;i++;i++;}}}voidtmpchange(void)〃發(fā)送溫度轉(zhuǎn)換命令(dsreset(); //初始化DS18B20delayb(1); //延時(shí)tmpwritebyte(0xcc);//跳過序列號(hào)命令tmpwritebyte(0x44);//發(fā)送溫度轉(zhuǎn)換命令
}inttmp()(floattt;uchara,b;}inttmp()(floattt;uchara,b;dsreset();delayb(1);tmpwritebyte(0xcc);tmpwritebyte(0xbe);a=tmpread();b=tmpread();temp=b;temp<<=8;temp二temp|a;tt=temp*0.0625;〃獲得溫度〃發(fā)送讀取數(shù)據(jù)命令//連續(xù)讀兩個(gè)字節(jié)數(shù)據(jù)//兩字節(jié)合成一個(gè)整型變量?!ǖ玫秸鎸?shí)十進(jìn)制溫度值,因?yàn)镈S18B20可以精確到0.0625度,所以讀回//數(shù)據(jù)的最低位代表的是0.0625度?!ǚ糯笫?,這樣做的目的將小數(shù)點(diǎn)后第一位temp二tt*10+0.5;//也轉(zhuǎn)換為可顯示數(shù)字,同時(shí)進(jìn)行一個(gè)四舍五入操作。returntemp; //返回溫度值}voidScan_Key(void)(ucharkey_value;P2=0xff;if((P2&0x0f)!=0x0f)(Delayk();if((P2&0x0f)!=0x0f)(key_value=(P2&0x0f);while((P2&0x0f)!=0x0f);switch(key_value)(case0x07:sebai=++sebai%10;break;case0x0b:seshi=++seshi%10;break;case0x0d:sege
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 供應(yīng)鏈合作居間協(xié)議
- 2024年廈門市集美區(qū)蔡林學(xué)校數(shù)學(xué)教師招聘考試真題
- 會(huì)議費(fèi)用預(yù)算審核協(xié)議
- 影樓入股合同范本
- 2024年南平武夷山國家公園管理局招聘考試真題
- 獸藥原料銷售合同范本
- 占地補(bǔ)償合同范本
- 石勒粉石黑粉與石墨烯的生產(chǎn)關(guān)系研究
- 電子游戲的物理引擎與動(dòng)畫設(shè)計(jì)
- 電梯承建合同范本
- 第二編 債權(quán)總論
- 試用期考核合格證明表
- 常見八種疾病
- 膠粘劑基礎(chǔ)知識(shí)及產(chǎn)品詳解(課堂PPT)
- 完整版三措兩案范文
- 鐵路總公司近期處理的七起突出質(zhì)量問題的通報(bào)
- 常用洪水預(yù)報(bào)模型介紹
- 援外項(xiàng)目鋼結(jié)構(gòu)運(yùn)輸包裝作業(yè)指導(dǎo)書(共13頁)
- 髖關(guān)節(jié)置換術(shù)男性患者留置尿管最佳時(shí)機(jī)探析和對(duì)策
- [爆笑小品校園劇本7人]爆笑小品校園劇本
- 同步帶輪設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論