半導(dǎo)體制冷片溫度控制課程設(shè)計報告_第1頁
半導(dǎo)體制冷片溫度控制課程設(shè)計報告_第2頁
半導(dǎo)體制冷片溫度控制課程設(shè)計報告_第3頁
半導(dǎo)體制冷片溫度控制課程設(shè)計報告_第4頁
半導(dǎo)體制冷片溫度控制課程設(shè)計報告_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、 課程設(shè)計說明書題 目:半導(dǎo)體制冷片溫度控制 院 (系):xxxxxxxxxxx學(xué)院xxxxx 專 業(yè): xxxxxxxxxxxx 學(xué)生姓名: xxxx 學(xué) 號: xxxxxxxxxxxx 指導(dǎo)教師: xxxxxxxxxxxxxxx 2012 年 3 月 10 日摘 要溫度是工業(yè)中非常關(guān)鍵的一項物理量,在農(nóng)業(yè),現(xiàn)代科學(xué)研究和各種高新技術(shù)的開發(fā)和研究中也是一個非常普遍和常用的測量參數(shù)。溫度控制的原理主要是:將隨溫度變化而變化的物理參數(shù),通過溫度傳感器轉(zhuǎn)變成電信號,傳給計算機(jī),與給定溫度相減后得到偏差,經(jīng)過控制器后輸出給控制對象達(dá)到控溫的目的。半導(dǎo)體制冷片是利用半導(dǎo)體材料的peltier效應(yīng),當(dāng)直

2、流電通過兩種不同半導(dǎo)體材料串聯(lián)成的電偶時,在電偶的兩端即可分別吸收熱量和放出熱量,可以實現(xiàn)制冷的目的。制冷速度與通過的電流大小成正比。本設(shè)計針對用半導(dǎo)體對水箱的制冷模型設(shè)計了相應(yīng)模糊pi控制器對水箱進(jìn)行計算機(jī)恒溫控制。關(guān)鍵詞: 半導(dǎo)體制冷 ;stc12c5a08s2;模糊pi;pwm; 引言11 課程設(shè)計概述11.1 課程設(shè)計題目11.2 主要儀器設(shè)備12 硬件設(shè)計12.1 單片機(jī)部分12.2 串行接口部分22.3驅(qū)動電路部分23 軟件設(shè)計33.1 流程圖設(shè)計33.1.1 溫度控制主程序流程圖33.2 控制算法設(shè)計43.2.1 控制對象模型43.2.2 pi控制器設(shè)計53.2.3 控制器的設(shè)計

3、54 系統(tǒng)調(diào)試54.1 單片機(jī)程序仿真54.2 stc12c5a08s2單片機(jī)系統(tǒng)電路調(diào)試64.3 驅(qū)動電路調(diào)試74.4 系統(tǒng)調(diào)試75總結(jié)與改進(jìn)展望76 謝辭8 引言 溫度作為一項熱工參數(shù),在工業(yè)現(xiàn)場和過程控制中具有至關(guān)重要的作用。半導(dǎo)體制冷相對于傳統(tǒng)制冷方式,有著體積小,重量輕,無制冷劑而不污染環(huán)境,作用速度快,使用壽命長,且易于控制。本文介紹了使用ds18b20作為溫度傳感器的pwm半導(dǎo)體制冷控制系統(tǒng)。1 課程設(shè)計概述1.1 課程設(shè)計題目設(shè)計半導(dǎo)體制冷片的線性驅(qū)動電路和熱敏元件的測溫電路,再設(shè)計pi控制器來調(diào)節(jié)制冷電壓,實現(xiàn)溫度控制,控制范圍1525度,控制精度0.5度,通過鍵盤進(jìn)行溫度設(shè)

4、置,實際溫度可以實時顯示。*附加要求:通過rs232或rs485接口與pc機(jī)通信,在pc機(jī)上進(jìn)行參數(shù)顯示和設(shè)置。1.2 主要儀器設(shè)備半導(dǎo)體制冷片(連水箱) 1臺示波器 1臺直流穩(wěn)壓電源 1臺數(shù)字萬用表 1塊pc機(jī) 1臺2 硬件設(shè)計整個系統(tǒng)以單片機(jī)stc12c5a08s2為核心部件。在08s2最小系統(tǒng)外圍添加了按鍵,顯示,與pc機(jī)的通信接口,以及光電耦合pc817和mos管irf9540構(gòu)成的驅(qū)動電路。2.1 單片機(jī)部分 本設(shè)計選擇的單片機(jī)芯片是stc12c5a08s2,其原理圖如2-1所示。該芯片的p0.0-p0.3用作鍵盤數(shù)字量輸入,加入了上拉電阻按鍵未按下時始終處于高電平狀態(tài),讀按鍵值前先

5、給p0口賦值為0;p1.0作為ds18b20的數(shù)據(jù)輸入端口;p2.0-p2.7作lcd1602的數(shù)據(jù)輸出端口;p4.4-p4.6作lcd1602的控制信號;p1.3作為光耦合的控制信號;p3.0和p3.1是stc12c5a08s2的串口,實現(xiàn)上電復(fù)位程序下載。圖 2-1 stc12c5a08s2最小系統(tǒng)原理圖2.2 串行接口部分 max232通過內(nèi)部電壓倍增及電壓反向電路,把ttl電平與rs232電平互換,實現(xiàn)單片機(jī)與pc機(jī)的串口通信。圖 2-2 max232及串行接口原理圖2.3驅(qū)動電路部分jpwm為p1.3口的pwm信號輸入,作為光耦pc817的觸發(fā)導(dǎo)通信號,從而產(chǎn)生mos管irp9540

6、導(dǎo)通的觸發(fā)信號,實現(xiàn)對右端負(fù)載的控制。如圖2-3所示,本電路中還加入了撥動開關(guān)可對系統(tǒng)進(jìn)行開關(guān)控制。圖 2-3 驅(qū)動部分原理圖3 軟件設(shè)計3.1 流程圖設(shè)計3.1.1 溫度控制主程序流程圖溫度控制主程序流程圖設(shè)計如圖 3-1所示。stc12c5a08s2中的主程序需要完成下幾個工作:1. 調(diào)用子函數(shù)對系統(tǒng)初始化,其中包括對自身的定時器t0,t1,i/o口,pwm口(p1.3),串口的初始化,以及對外部器件ds18b20和lcd1602的初始化;延時2s鐘顯示歡迎屏幕,等整個系統(tǒng)電壓穩(wěn)定后讀取開機(jī)時的溫度;2. 調(diào)用子函數(shù)讀取當(dāng)前溫度值3. 調(diào)用子函數(shù)把當(dāng)前讀取的溫度以及設(shè)定值通過串口送入pc機(jī)

7、顯示;4. 調(diào)用子函數(shù)判斷pc機(jī)是否有新的數(shù)據(jù)傳送到單片機(jī);5. 調(diào)用子函數(shù),把設(shè)定值與當(dāng)前值相比較,對輸出pwm進(jìn)行控制;6. 調(diào)用子函數(shù)刷新當(dāng)前頁面;7. 調(diào)用子函數(shù)進(jìn)行按鍵判斷,依據(jù)按鍵值調(diào)用不同的子函數(shù)進(jìn)行翻頁或者設(shè)置;圖 3-1溫度控制主程序流程圖3.2 控制算法設(shè)計3.2.1 控制對象模型 制冷片的水箱模型可近似地認(rèn)為成一階慣性環(huán)節(jié),從而測量系統(tǒng)階躍響應(yīng)可模擬出系統(tǒng)的數(shù)學(xué)模型,g(s)=1/(t*s+1),其中t等于階躍響應(yīng)中調(diào)節(jié)時間ts的四分之一。給電流i=0.5a時階躍響應(yīng)數(shù)據(jù)記錄如下,其中t=0時,溫度約為27;t=100時,溫度約為24。取終值11k的98%,ts約為54m

8、in=3240s,則g(s)=1/(810*s+1)。 1.由此看出,制冷系統(tǒng)是大慣性系統(tǒng),制冷需要一段時間之后溫度才開始下降;2.至停止制冷后,溫度還會有小幅度的下降,而設(shè)定溫度越低,下降的幅度越?。?.由于與外界的熱交換,溫度越低時,水箱的自然升溫速度越快。圖 3-2 對象階躍響應(yīng)擬合曲線3.2.2 pi控制器設(shè)計 pi調(diào)節(jié)器的微分方程為:y(t)=kpe(t)+1/ti*e(t)dt??刂破饔袃煞N算法,位置型和增量型。位置型算法時,計算每次實際值與設(shè)定值的偏差為e0,上次的偏差為e1,則控制量u=kp*e0+ki*(e0+e1)。增量型算法時,u+=e0*ki+(e1-e0)*kp。本次

9、系統(tǒng)中選用的是位置型算法。3.2.3 控制器的設(shè)計 根據(jù)制冷片的滯后特點,為了使制冷片能迅速達(dá)到設(shè)定的溫度,應(yīng)該在離設(shè)定溫度較遠(yuǎn)時給負(fù)載加上最大功率;又為了防止制冷片的大慣性的特性使系統(tǒng)產(chǎn)生嚴(yán)重的超調(diào),需要提前在一定的范圍內(nèi)進(jìn)行pi控制以達(dá)到最佳效果;而最后階段,需要預(yù)先判斷系統(tǒng)的停止工作點,讓制冷片的溫度擴(kuò)散的整個水箱,此時停止制冷。 若設(shè)定溫度大于當(dāng)前溫度時,系統(tǒng)也將停止制冷,等溫度慢慢回升?,F(xiàn)設(shè)定開始進(jìn)入pi控制的溫度上限為設(shè)定值t+1,而停止制冷的溫度,根據(jù)多次實驗建立的數(shù)據(jù)庫如下:設(shè)定值溫度范圍t停止制冷溫度t23=tt*0.00619=t23t+0.7t19t4 系統(tǒng)調(diào)試4.1 單

10、片機(jī)程序仿真由于proteus中沒有我們選用的stc12c5a08s2型號的單片機(jī),因此使用at89s2的單片機(jī)代替。仿真電路如下圖所示,仿真時除初始化時當(dāng)前溫度顯示為85以外,一切工作正常。圖 4-1 系統(tǒng)控制電路仿真電路圖4.2 stc12c5a08s2單片機(jī)系統(tǒng)電路調(diào)試 stc12c5a08s2最小系統(tǒng)包括晶振和復(fù)位電路,按鍵電路,lcd顯示,以及通信下載接口。由于以前沒有使用過這個型號的單片機(jī),也沒有做過串口下載器,所以先把串口接口芯片max232及其外部電容和單片機(jī)的晶振電路接在面包板上,通過串口與單片機(jī)連接調(diào)試下載功能,由于一開始電源和地之間沒有接電容,因此系統(tǒng)不是很穩(wěn)定,有時可以

11、下載,有時不可以,接入電容之后系統(tǒng)比較穩(wěn)定了。依據(jù)插在面包板的電路圖畫原理圖以及pcb,板子做出來之后,用萬用表測試各點的連接特性,正常。上電,電源指示燈偏暗,把10k的限流電阻換為1k的之后指示燈工作正常。由于stc12c5a08s2單片機(jī)運算速度比89s52快,因此程序中延時子函數(shù)一律乘以12。修改管腳使其適應(yīng)實際的電路板,重新編譯后下載程序。液晶沒有顯示,調(diào)節(jié)液晶顯示偏壓信號端的電壓,使其接近地,液晶顯示正常。接上ds18b20,溫度顯示正常。用按鍵進(jìn)行翻頁及設(shè)置,按鍵功能正常。據(jù)此,單片機(jī)系統(tǒng)板及程序完全工作正常。4.3 驅(qū)動電路調(diào)試驅(qū)動電路板做好后進(jìn)行測試。用外用表測量,各點連接特性

12、正常。分別把pwm輸入端接地和接vcc,用示波器觀察負(fù)載輸出電壓,輸出電壓對應(yīng)為零和為12伏,工作正常,接入pwm信號后,輸出變?yōu)榱悖徽?。用示波器觀察mos管g極電壓,發(fā)現(xiàn)為鋸齒波,上升部分傾斜,下降部分豎直。分析原因為mos管的s極與電源之間的電阻太大,使通過mos管的電流太小,mos管的電容特性使其在一定充電時間內(nèi)電壓不能達(dá)到導(dǎo)通,因此輸出恒為零。把電阻調(diào)小,鋸齒波頂部逐漸變平,電阻繼續(xù)調(diào)小,輸出的最低電壓開始升高不為零。此時繼續(xù)調(diào)節(jié)電阻已沒有意義,在程序中把pwm輸出的波形頻率降低,降到最低14hz。此時g極波形已為方波,繼續(xù)減小電阻,直到g極輸出的最低電壓恰好為零,使其能通過更高頻

13、率的信號。最后稍微增大該電阻,使其電壓被允許在一定范圍內(nèi)波動。測量連接負(fù)載的d極,d極波形為與輸入的pwm反向的方波,驅(qū)動電路工作正常。4.4 系統(tǒng)調(diào)試各個部分的調(diào)試完成以后,對整個系統(tǒng)進(jìn)行調(diào)試,從室溫約27.5開始,設(shè)置水箱的溫度分別為26,23,20。具體記錄的數(shù)據(jù)如下所示。表 6-5-1設(shè)定值最小值最大值超調(diào)量%誤差范圍%2625.8226.180.690.692322.8823.180.520.782019.9420.060.30.3加入算法后,超調(diào)量被控制在1%以下,溫度下降速度較快,較穩(wěn)定。 5 總結(jié)與改進(jìn)展望本次設(shè)計中,我完成了包括資料收集,系統(tǒng)設(shè)計及仿真,程序編寫,電路圖與pc

14、b板的繪制腐蝕焊接及調(diào)試的全過程,整個系統(tǒng)完成測試后,性能穩(wěn)定,基本達(dá)到了預(yù)期的目標(biāo)。 水箱溫度在2910攝氏度范圍內(nèi)可控(設(shè)置值不大于當(dāng)前室溫),lcd液晶溫度顯示穩(wěn)定,與之前購買的溫度計有大約恒定1的溫差。傳送到pc機(jī)的數(shù)據(jù)顯示正常,可以從pc機(jī)接收數(shù)據(jù)對各個參數(shù)進(jìn)行設(shè)置。 溫度控制算法的設(shè)計,在原模糊分段控制的基礎(chǔ)上,加上了pi控制,雖然最后由于時間關(guān)系,參數(shù)中只使用了p,但是可以證明,加入了pi控制的模糊算法比單純的模糊分段控制取得了更好的效果。 在本次設(shè)計中,也存在著可以改進(jìn)的地方。例如程序中有部分程序段是幾乎重復(fù)使用的,但在各種情況下,只使用了switch函數(shù)分情況討論,沒有總結(jié)出

15、特定的函數(shù)對所有的情況進(jìn)行處理,這導(dǎo)致了程序過長,應(yīng)該還有可以壓縮的空間。還有對于參數(shù)的調(diào)整,只使用了p,沒有用到i,而且對于停止控制的位置,也還應(yīng)該重新配合。這都是需要作出調(diào)整的,而且ds18b20檢測溫度只能精確到0.0625,若要再進(jìn)一步提升各種指標(biāo)的話,最好換一個精度更高的溫度檢測手段。6 謝辭本次設(shè)計能夠完成得到了許多幫助,首先感謝趙學(xué)軍老師,李平老師以及龍超老師的悉心指導(dǎo),為我們提供了設(shè)計的思路,為我們指出了設(shè)計的各種不足指出,并一次次為我們解決了調(diào)試過程中出現(xiàn)的各種問題。正是有了他們的指導(dǎo),我的設(shè)計才得以順利完成。感謝一同進(jìn)行設(shè)計的同學(xué)們,是他們在我對著板子一籌莫展地時候給我指出

16、了可能的錯誤,在調(diào)試過程中給予我各種意見,并且測量數(shù)據(jù)時給予我各種幫助,沒有他們的幫助,我的設(shè)計不能得以完善。感謝一直教導(dǎo)我的任課老師,是任課老師的諄諄教導(dǎo),使得我們可以學(xué)以致用,完成本次設(shè)計一定是基于扎實的理論課基礎(chǔ)的。最后感謝在本次設(shè)計中所有幫助過我的老師同學(xué)們。參考文獻(xiàn)1 胡壽松. 自動控制原理m . 北京:科學(xué)出版社,2007.2 華成英,童詩白. 模擬電子技術(shù)基礎(chǔ)m . 北京:高等教育出版社,2006.3 王再英,劉淮霞,陳毅靜. 過程控制系統(tǒng)與儀表m . 北京:機(jī)械工業(yè)出版社,2006.4 馬淑華,王鳳文,張美金.單片機(jī)原理與接口技術(shù)m . 北京:郵電大學(xué)出版社,2007.5 潘新

17、民,王燕芳. 微型計算機(jī)控制技術(shù)實用教程m . 北京:電子工業(yè)出版社,2006.6 譚浩強(qiáng). c程序設(shè)計m . 北京:清華大學(xué)出版社,2005.附 錄主要電路pcb:stc89c5a08s2最小系統(tǒng)驅(qū)動電路stc12c5a08s2程序/*/#include#include#include#define keys p0sbit pwm=p13;uchar settemp12=s,e,t,:, ,2,6,.,0, ,0xdf,c;ucharnowtemp12=n,o,w,:,0,2,6,.,5,0,0xdf,c;uchar welcome16=welcome! o(_)o;uchar number

18、13=0800320101 cc;uchar e4=0,0,0,0;uchar us4=0,0,0,0;uchar shou4;uchar tl,th,page,num=0,whi=0;int fub=100,ki=0,kp=50;uchar fus8=fu: 100 ,kps8=kp: 050 ,kis8=ki: 000 ;int tn,td,ntemp100,stemp100=2600,e1=0,e0=0,u=0;bit busy;/*顯示設(shè)置*/void page0()/初始化歡迎頁 int i;_1602_init();_1602_writecode(0x00+0x80);/設(shè)置顯示地

19、址for(i=0;i16;i+) /顯示歡迎_1602_writedata(welcomei);_1602_writecode(0x40+0x80);/設(shè)置顯示地址for(i=0;i13;i+) /顯示學(xué)號姓名_1602_writedata(numberi);for(i=0;i40;i+)delay(5000); void page1() /溫度顯示頁int i; _1602_writecode(0x00+0x80);/設(shè)置顯示地址for(i=0;i12;i+) /顯示設(shè)定溫度_1602_writedata(settempi);_1602_writecode(0x40+0x80);/設(shè)置顯示地

20、址for(i=0;i2300)stop=stemp100*3/500;/關(guān)斷值的模糊控制else if(1900stemp100=2300) stop=7;else stop=0;e1=e0;e0=ntemp100-stemp100;e3=e0%10;e2=(e0/10)%10;e1=(e0/100)%10;e0=(e0/1000);_1602_writecode(0x0c+0x80);/設(shè)置顯示地址for(i=0;i4;i+) /顯示誤差_1602_writedata(ei+0x30);if(stope0255) u=255;if(u=fub) u=0xff; /全開if(e0=stop)

21、u=0x00;/關(guān)斷us3=u%10;us2=(u/10)%10;us1=(u/100)%10;us0=(u/1000);_1602_writecode(0x4c+0x80);/設(shè)置顯示地址for(i=0;i4;i+) /顯示控制量_1602_writedata(usi+0x30); ccap0h=u;/*數(shù)據(jù)處理,控制*/改變占空比:ccap0h=0xff-0xff*占空比/100=0xff-51/20*占空比;0x00,輸出100%,停止制冷;/*按鍵判斷處理*/uchar keyin(void) /單按鍵值判斷,1-setting,2-up,4-down,8-enteruchar key

22、,come=0;keys=0x00;delay(2);key=keys&0x0f;if(key!=0)/防抖 s=settemp6-0x30;x=seting2(0x06,s);settemp6=x+0x30;stemp100+=x*100;s=settemp8-0x30;x=seting2(0x08,s);settemp8=x+0x30;stemp100+=x*10;void setingc(uchar n) /按鍵的參數(shù)設(shè)置uchar s,i;switch(n)case 0:fub=0; /模糊量for(i=4;i7;i+)s=fusi-0x30;s=seting2(i,s);fub=fu

23、b*10+s;fusi=s+0x30;break;case 1:kp=0; for(i=4;i7;i+)s=kpsi-0x30;s=seting2(i+0x40,s);kp=kp*10+s;kpsi=s+0x30;break;case 2:ki=0;for(i=4;i7;i+)s=kisi-0x30;s=seting2(i+0x48,s);ki=ki*10+s;kisi=s+0x30;break;kpsi+3=shoui;s=shoui-0x30;kp=kp*10+s;shou0=0;break;case i:/變量kiki=0;for(i=1;i4;i+)kisi+3=shoui;s=sho

24、ui-0x30;ki=ki*10+s;shou0=0;break;/*按鍵判斷處理*/*pwm初始化*/void pwm_init()/pwm初始化tmod=0x22;/t0工作在方式2,8位重裝th0=0x00;tr0=1; /開始計數(shù)ccon=0x00;/關(guān)pca ch=0; cl=0;/計數(shù)寄存器清零cmod=0x04;/始終工作;f=定時器0溢出頻率;pwm模式禁止中斷ccapm0=0x42; /pca0工作在pwm模式pca_pwm0=0x00; /若此為為0x02,則輸出恒為0;若要調(diào)整占空比,需賦值為0;ccap0h=0x00;/輸出占空比100% cr=1; /開始計數(shù)/*pw

25、m初始化*/*串口初始化*/void uart_init(void)ie=0x90;void main()uchar key,i;p4sw=0x70;/p4為io口page=1;/默認(rèn)頁為第一頁pwm_init();_1602_init();uart_init();/串口初始化page0(); /顯示初始化歡迎頁_1602_writecode(0x01);/清屏delay(50);/清屏后若無延時則第一個字符顯示不出sent_pc(welcome,16);sent_pc_byte(r); /13,10合起來為回車sent_pc_byte(n);sent_pc(settemp,10);sent_

26、pc(nowtemp,10);while(1) k1:gets(); /讀取當(dāng)前溫度sent_pc_byte(r); /13,10合起來為回車sent_pc_byte(n);sent_pc(settemp,10); /給pc機(jī)送設(shè)定溫度以及當(dāng)前溫度sent_pc(nowtemp,10);control(); /進(jìn)行控制if(page=1)page1();/顯示當(dāng)前溫度頁key=keyin();/判斷鍵值switch(key)case 1:ccap0h=0x00;setingt(); goto k1; /進(jìn)行設(shè)置case 2: case 4: _1602_writecode(0x01);dela

27、y(50);/清屏page=2; /上下翻頁 if(page=2)page2();/顯示參數(shù)設(shè)定頁key=keyin();/判斷鍵值switch(key) _1602_writedata(nowtempi);void page2()/參數(shù)顯示頁 int i; _1602_writecode(0x00+0x80);/設(shè)置顯示地址 for(i=0;i8;i+) /顯示fuzzy_1602_writedata(fusi);_1602_writecode(0x40+0x80);/設(shè)置顯示地址 for(i=0;i8;i+) /顯示kp_1602_writedata(kpsi);for(i=0;i8;i+

28、) /顯示ki_1602_writedata(kisi);_1602_writecode(0x0c+0x80);/設(shè)置顯示地址_1602_writedata(whi+0x30);_1602_writedata( );_1602_writedata( );_1602_writedata( );/*顯示設(shè)置*/*數(shù)據(jù)處理,控制*/void gets() /讀取溫度并計算result_18b20();tl=read_18b20(); /先讀的是溫度值低位th=read_18b20(); /接著讀的是溫度值高位tn=th*16+tl/16;/整數(shù)部分td=tl&0x0f; /小數(shù)部分td=td*100

29、/16;ntemp100=tn*100+td;nowtemp9=ntemp100%10+0x30;nowtemp8=(ntemp100/10)%10+0x30;nowtemp6=(ntemp100/100)%10+0x30;nowtemp5=(ntemp100/1000)%10+0x30;nowtemp4=(ntemp100/10000)+0x30;void control() /對pwm值進(jìn)行控制int i,stop;delay(10);key=keys&0x0f; if(key!=0)come=key;while(keys); /等待彈起return(come);uchar seting2

30、(uchar adr,uchar shezhi)/單個數(shù)字設(shè)置bit c=1;uchar s=shezhi,key;_1602_writecode(adr+0x80);while(c)key=keyin();switch(key)case 2: s+; s=s%10;goto k2;case 4: if(s=0) s=9; else s-;goto k2;case 8: c=0;_1602_writecode(adr+0x80);k2:if(key)_1602_writedata(s+0x30); return(s);void setingt() /溫度設(shè)置uchar s,x;stemp100

31、=0;s=settemp5-0x30;x=seting2(0x05,s);settemp5=x+0x30;stemp100+=x*1000;/依據(jù)從pc機(jī)一次性傳入的四位數(shù)據(jù)的第一位進(jìn)行判斷,本程序只用到以下幾個參數(shù),若有需要可隨時添加void setting_pc()/pc機(jī)的參數(shù)設(shè)置uchar i,s;switch(shou0)case s:/修改設(shè)定值settemp5=shou1;settemp6=shou2;settemp8=shou3;stemp100=0;s=settemp5-0x30;stemp100+=s*1000;s=settemp6-0x30;stemp100+=s*100

32、;s=settemp8-0x30;stemp100+=s*10;shou0=0;/清空暫存的首位break;case f:/修改模糊量,此處模糊量定義為系統(tǒng)開始進(jìn)行pi運算的上限fub=0;for(i=1;i4;i+)fusi+3=shoui;s=shoui-0x30;fub=fub*10+s;shou0=0;break;case p:/變量kpkp=0;for(i=1;i4;i+)scon=0x50;/模式一:8位,波特率可調(diào);不是地址篩選模式;可接收pcon=0x00;/smod=0th1=253; /253,波特率9600;208,波特率600tl1=253;tr1=1;busy=0;

33、/*串口中斷*/void uart() interrupt 4 if(ri)ri=0;if(num=4)num=0;shounum=sbuf; /一次性把4位數(shù)存入shou中num+;if(num=4) setting_pc(); /判斷pc機(jī)傳入的數(shù)據(jù)if(ti)/發(fā)送完成進(jìn)入中斷ti=0;busy=0;void sent_pc_byte(uchar x)while(busy);/等待上次傳送完成busy=1;/標(biāo)志位置1,標(biāo)示正忙sbuf=x;void sent_pc(char *s,int n) /從下位機(jī)到上位機(jī)發(fā)送int i;for(i=0;in;i+)sent_pc_byte(*(

34、s+i);case 1:whi+; if(whi=4) whi=0; goto k1; /進(jìn)行設(shè)置case 2: case 4: _1602_writecode(0x01);delay(50);/清屏 page=1; goto k1; /上下翻頁case 8:setingc(whi); for(i=0;i3;i+)delay(5000); ds18b20頭文件#ifndef _ds18b20_h_#define _ds18b20_h_#define uchar unsigned char#define uint unsigned intsbit dq=p10;bit flagt;void delay_18b20(uint i)i=i*12;while(i-);void start_18b20() /*初始化程序*/ dq=1; delay_18b20(15); dq=0; delay_18b20(80)

溫馨提示

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

評論

0/150

提交評論