計算機控制課程設(shè)計報告.doc_第1頁
計算機控制課程設(shè)計報告.doc_第2頁
計算機控制課程設(shè)計報告.doc_第3頁
計算機控制課程設(shè)計報告.doc_第4頁
計算機控制課程設(shè)計報告.doc_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

2、端即可分別吸收熱量和放出熱量,可以實現(xiàn)制冷的目的。制冷速度與通過的電流大小成正比。本設(shè)計針對用半導(dǎo)體對水箱的制冷模型設(shè)計了相應(yīng)模糊PI控制器對水箱進(jìn)行計算機恒溫控制。關(guān)鍵詞: 半導(dǎo)體制冷 ;STC12C5A08S2;模糊PI;PWM; 引言11 課程設(shè)計概述11.1 課程設(shè)計題目11。2 主要儀器設(shè)備12 硬件設(shè)計12。1 單片機部分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è)計54 系統(tǒng)調(diào)試54.1 單片機程序仿真54.2 ST

3、C12C5A08S2單片機系統(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機通信,在PC機上進(jìn)行參數(shù)顯示和設(shè)置.1.2 主要儀器設(shè)備半導(dǎo)體制冷片(連水箱) 1臺示波器 1臺直流穩(wěn)壓電源 1臺數(shù)字萬用表 1塊PC機 1臺2 硬件設(shè)計整個系統(tǒng)以單片機STC12C5A08S2為核心部件。在08S2最小系統(tǒng)外圍添加了按鍵,顯示,與PC機的通信接口,以及光電耦合PC817和MOS管IRF9540構(gòu)成的驅(qū)動電路。2.1 單片機部分 本設(shè)計選擇的單片機芯片是STC12C5A08S2,其原理圖如2-1所示。該芯片的P0.0P0。3用作鍵盤數(shù)字量輸入,加入了上拉電阻按鍵未按下時始終處于高電平狀態(tài),讀按鍵值前先給P0口賦值為0;P1。0作為DS18B2

5、0的數(shù)據(jù)輸入端口;P2.0P2。7作LCD1602的數(shù)據(jù)輸出端口;P4。4P4。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)單片機與PC機的串口通信。圖 2-2 MAX232及串行接口原理圖2。3驅(qū)動電路部分JPWM為P1。3口的PWM信號輸入,作為光耦PC817的觸發(fā)導(dǎo)通信號,從而產(chǎn)生MOS管IRP9540導(dǎo)通的觸發(fā)信號,實現(xiàn)對右端負(fù)載的控制.如圖2-

6、3所示,本電路中還加入了撥動開關(guān)可對系統(tǒng)進(jìn)行開關(guān)控制.圖 23 驅(qū)動部分原理圖3 軟件設(shè)計3。1 流程圖設(shè)計3。1。1 溫度控制主程序流程圖溫度控制主程序流程圖設(shè)計如圖 31所示。STC12C5A08S2中的主程序需要完成下幾個工作:1. 調(diào)用子函數(shù)對系統(tǒng)初始化,其中包括對自身的定時器T0,T1,I/O口,PWM口(P1.3),串口的初始化,以及對外部器件DS18B20和LCD1602的初始化;延時2S鐘顯示歡迎屏幕,等整個系統(tǒng)電壓穩(wěn)定后讀取開機時的溫度;2. 調(diào)用子函數(shù)讀取當(dāng)前溫度值3. 調(diào)用子函數(shù)把當(dāng)前讀取的溫度以及設(shè)定值通過串口送入PC機顯示;4. 調(diào)用子函數(shù)判斷PC機是否有新的數(shù)據(jù)傳送

7、到單片機;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/(Ts+1),其中T等于階躍響應(yīng)中調(diào)節(jié)時間Ts的四分之一。給電流I=0。5A時階躍響應(yīng)數(shù)據(jù)記錄如下,其中t=0時,溫度約為27;t=100時,溫度約為24。取終值11K的98,Ts約為54min=3240s,則G(s)=1/(810s+1)。

8、1.由此看出,制冷系統(tǒng)是大慣性系統(tǒng),制冷需要一段時間之后溫度才開始下降;2.至停止制冷后,溫度還會有小幅度的下降,而設(shè)定溫度越低,下降的幅度越??;3。由于與外界的熱交換,溫度越低時,水箱的自然升溫速度越快。圖 32 對象階躍響應(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+=e0ki+(e1-e0)kp.本次系統(tǒng)中選用的是位置型算法。3.2.3 控制器的設(shè)計 根據(jù)制冷片

9、的滯后特點,為了使制冷片能迅速達(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)的停止工作點,讓制冷片的溫度擴散的整個水箱,此時停止制冷。 若設(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.7T<19T4 系統(tǒng)調(diào)試4.1 單片機程序仿真由于PROTEUS中沒有我們選用的

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

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

12、器觀察負(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-51設(shè)定值最小值最大值超調(diào)量誤差范圍2625。8226.180.69±0。692322.8823.180.52±0。782019.9420.060。3±0.3加入算法后,超調(diào)量被控制在1%以下,溫度下降速度較快,較穩(wěn)定。 5 總結(jié)與改進(jìn)展望本次設(shè)計中,我完成了包括資料收集,系統(tǒng)設(shè)計及仿真,程序編寫,電路圖與PCB板的繪制腐蝕焊

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

15、的情況進(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 。 北京:機械工業(yè)出版社,2006。4 馬淑華,王鳳文,張美金。單片機原理與接口技術(shù)M 。 北京:郵電大學(xué)出版社,2007.

17、5 潘新民,王燕芳. 微型計算機控制技術(shù)實用教程M . 北京:電子工業(yè)出版社,2006。6 譚浩強. C程序設(shè)計M . 北京:清華大學(xué)出版社,2005.附 錄主要電路PCB:STC89C5A08S2最小系統(tǒng)驅(qū)動電路STC12C5A08S2程序/*/include<STC_NEW_8051。hinclude<DS18B20。hincludeLCD1602.h>#define keys P0sbit PWM=P13;uchar settemp12='S',e',t,:', ,'2,'6,'。,'0','

18、; ',0xdf,'C;ucharnowtemp12=N,'o,w',:','0,'2,'6',。,'5',0,0xdf,'C'uchar welcome16=”Welcome! O(_)O";uchar number13=”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=

19、"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è)置顯示地址for(i=0;i<16;i+) /顯示歡迎_1602_writedata(welcomei);_1602_writecode(0x40+0x80);/設(shè)置顯示地址for(i=0;i<13

20、;i+) /顯示學(xué)號姓名_1602_writedata(numberi);for(i=0;i<40;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è)置顯示地址for(i=0;i12;i+) /顯示現(xiàn)在溫度if(Stemp1002300)stop=Stemp100*3/500;/關(guān)斷值的模糊控制else if(1900Stemp100

21、=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;i<4;i+) /顯示誤差_1602_writedata(ei+0x30);if(stope0fub)/PI運算 u=e0kp/10;u+=(e1+e0)*ki/10;if(u255) u=255;if(u0) u=0; if(e0=fub) u=0xff; /全開if(e0=stop) u=0x00;

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

23、;keys=0x00;delay(2);key=keys0x0f;if(key!=0)/防抖 s=settemp6-0x30;x=seting2(0x06,s);settemp6=x+0x30;Stemp100+=x100;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;i<7;i+)s=fusi0x30;s=seting2(i,s);fub=fub*10+s

24、;fusi=s+0x30;break;case 1:kp=0; for(i=4;i7;i+)s=kpsi0x30;s=seting2(i+0x40,s);kp=kp*10+s;kpsi=s+0x30;break;case 2:ki=0;for(i=4;i<7;i+)s=kisi-0x30;s=seting2(i+0x48,s);ki=ki10+s;kisi=s+0x30;break;kpsi+3=shoui;s=shoui-0x30;kp=kp10+s;shou0=0;break;case 'I:/變量kiki=0;for(i=1;i4;i+)kisi+3=shoui;s=sho

25、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ù)/*PWM

26、初始化*/*串口初始化*/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(set

27、temp,10);sent_pc(nowtemp,10);while(1) k1:gets(); /讀取當(dāng)前溫度sent_pc_byte(r'); /13,10合起來為回車sent_pc_byte('n');sent_pc(settemp,10); /給PC機送設(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

28、4: _1602_writecode(0x01);delay(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;i<8;i+) /顯示Fuzzy_1602_writedata(fusi);_1602_writecode(0x40+0x80);/設(shè)置顯示地址 for(i=0;i<8;i+) /顯示

29、kp_1602_writedata(kpsi);for(i=0;i8;i+) /顯示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(); /接著讀的

30、是溫度值高位TN=TH16+TL/16;/整數(shù)部分TD=TL0x0f; /小數(shù)部分TD=TD100/16;Ntemp100=TN*100+TD;nowtemp9=Ntemp10010+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=keys0x0f; if(key!=0)come=key

31、;while(keys); /等待彈起return(come);uchar seting2(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=s10;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); retu

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

33、0+=s*1000;s=settemp60x30;Stemp100+=s*100;s=settemp8-0x30;Stemp100+=s10;shou0=0;/清空暫存的首位break;case F:/修改模糊量,此處模糊量定義為系統(tǒng)開始進(jìn)行PI運算的上限fub=0;for(i=1;i4;i+)fusi+3=shoui;s=shoui0x30;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; /2

34、53,波特率9600;208,波特率600TL1=253;TR1=1;busy=0; /*串口中斷*/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機傳入的數(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) /從下

35、位機到上位機發(fā)送int i;for(i=0;i<n;i+)sent_pc_byte(*(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 chardefine 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); DQ=1; delay_18b20(10); while(!DQ); uchar read_18b20() /* 讀

溫馨提示

  • 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

提交評論