




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 課程設(shè)計(jì)說(shuō)明書(shū)題 目:半導(dǎo)體制冷片溫度控制 院 (系):xxxxxxxxxxx學(xué)院xxxxx 專 業(yè): xxxxxxxxxxxx 學(xué)生姓名: XXXX 學(xué) 號(hào): xxxxxxxxxxxx 指導(dǎo)教師: xxxxxxxxxxxxxxx 2012 年 3 月 10 日摘 要溫度是工業(yè)中非常關(guān)鍵的一項(xiàng)物理量,在農(nóng)業(yè),現(xiàn)代科學(xué)研究和各種高新技術(shù)的開(kāi)發(fā)和研究中也是一個(gè)非常普遍和常用的測(cè)量參數(shù)。溫度控制的原理主要是:將隨溫度變化而變化的物理參數(shù),通過(guò)溫度傳感器轉(zhuǎn)變成電信號(hào),傳給計(jì)算機(jī),與給定溫度相減后得到偏差,經(jīng)過(guò)控制器后輸出給控制對(duì)象達(dá)到控溫的目的。半導(dǎo)體制冷片是利用半導(dǎo)體材料的Peltier效應(yīng),當(dāng)直
2、流電通過(guò)兩種不同半導(dǎo)體材料串聯(lián)成的電偶時(shí),在電偶的兩端即可分別吸收熱量和放出熱量,可以實(shí)現(xiàn)制冷的目的。制冷速度與通過(guò)的電流大小成正比。本設(shè)計(jì)針對(duì)用半導(dǎo)體對(duì)水箱的制冷模型設(shè)計(jì)了相應(yīng)模糊PI控制器對(duì)水箱進(jìn)行計(jì)算機(jī)恒溫控制。關(guān)鍵詞: 半導(dǎo)體制冷 ;STC12C5A08S2;模糊PI;PWM; 引言11 課程設(shè)計(jì)概述11.1 課程設(shè)計(jì)題目11.2 主要儀器設(shè)備12 硬件設(shè)計(jì)12.1 單片機(jī)部分12.2 串行接口部分22.3驅(qū)動(dòng)電路部分23 軟件設(shè)計(jì)33.1 流程圖設(shè)計(jì)33.1.1 溫度控制主程序流程圖33.2 控制算法設(shè)計(jì)43.2.1 控制對(duì)象模型43.2.2 PI控制器設(shè)計(jì)53.2.3 控制器的設(shè)計(jì)
3、54 系統(tǒng)調(diào)試54.1 單片機(jī)程序仿真54.2 STC12C5A08S2單片機(jī)系統(tǒng)電路調(diào)試64.3 驅(qū)動(dòng)電路調(diào)試74.4 系統(tǒng)調(diào)試75總結(jié)與改進(jìn)展望76 謝辭8 引言 溫度作為一項(xiàng)熱工參數(shù),在工業(yè)現(xiàn)場(chǎng)和過(guò)程控制中具有至關(guān)重要的作用。半導(dǎo)體制冷相對(duì)于傳統(tǒng)制冷方式,有著體積小,重量輕,無(wú)制冷劑而不污染環(huán)境,作用速度快,使用壽命長(zhǎng),且易于控制。本文介紹了使用DS18B20作為溫度傳感器的PWM半導(dǎo)體制冷控制系統(tǒng)。1 課程設(shè)計(jì)概述1.1 課程設(shè)計(jì)題目設(shè)計(jì)半導(dǎo)體制冷片的線性驅(qū)動(dòng)電路和熱敏元件的測(cè)溫電路,再設(shè)計(jì)PI控制器來(lái)調(diào)節(jié)制冷電壓,實(shí)現(xiàn)溫度控制,控制范圍1525度,控制精度±0.5度,通過(guò)鍵
4、盤進(jìn)行溫度設(shè)置,實(shí)際溫度可以實(shí)時(shí)顯示。*附加要求:通過(guò)RS232或RS485接口與PC機(jī)通信,在PC機(jī)上進(jìn)行參數(shù)顯示和設(shè)置。1.2 主要儀器設(shè)備半導(dǎo)體制冷片(連水箱) 1臺(tái)示波器 1臺(tái)直流穩(wěn)壓電源 1臺(tái)數(shù)字萬(wàn)用表 1塊PC機(jī) 1臺(tái)2 硬件設(shè)計(jì)整個(gè)系統(tǒng)以單片機(jī)STC12C5A08S2為核心部件。在08S2最小系統(tǒng)外圍添加了按鍵,顯示,與PC機(jī)的通信接口,以及光電耦合PC817和MOS管IRF9540構(gòu)成的驅(qū)動(dòng)電路。2.1 單片機(jī)部分 本設(shè)計(jì)選擇的單片機(jī)芯片是STC12C5A08S2,其原理圖如2-1所示。該芯片的P0.0-P0.3用作鍵盤數(shù)字量輸入,加入了上拉電阻按鍵未按下時(shí)始終處于高電平狀態(tài),
5、讀按鍵值前先給P0口賦值為0;P1.0作為DS18B20的數(shù)據(jù)輸入端口;P2.0-P2.7作LCD1602的數(shù)據(jù)輸出端口;P4.4-P4.6作LCD1602的控制信號(hào);P1.3作為光耦合的控制信號(hào);P3.0和P3.1是STC12C5A08S2的串口,實(shí)現(xiàn)上電復(fù)位程序下載。圖 2-1 STC12C5A08S2最小系統(tǒng)原理圖2.2 串行接口部分 MAX232通過(guò)內(nèi)部電壓倍增及電壓反向電路,把TTL電平與RS232電平互換,實(shí)現(xiàn)單片機(jī)與PC機(jī)的串口通信。圖 2-2 MAX232及串行接口原理圖2.3驅(qū)動(dòng)電路部分JPWM為P1.3口的PWM信號(hào)輸入,作為光耦PC817的觸發(fā)導(dǎo)通信號(hào),從而產(chǎn)生MOS管I
6、RP9540導(dǎo)通的觸發(fā)信號(hào),實(shí)現(xiàn)對(duì)右端負(fù)載的控制。如圖2-3所示,本電路中還加入了撥動(dòng)開(kāi)關(guān)可對(duì)系統(tǒng)進(jìn)行開(kāi)關(guān)控制。圖 2-3 驅(qū)動(dòng)部分原理圖3 軟件設(shè)計(jì)3.1 流程圖設(shè)計(jì)3.1.1 溫度控制主程序流程圖溫度控制主程序流程圖設(shè)計(jì)如圖 3-1所示。STC12C5A08S2中的主程序需要完成下幾個(gè)工作:1. 調(diào)用子函數(shù)對(duì)系統(tǒng)初始化,其中包括對(duì)自身的定時(shí)器T0,T1,I/O口,PWM口(P1.3),串口的初始化,以及對(duì)外部器件DS18B20和LCD1602的初始化;延時(shí)2S鐘顯示歡迎屏幕,等整個(gè)系統(tǒng)電壓穩(wěn)定后讀取開(kāi)機(jī)時(shí)的溫度;2. 調(diào)用子函數(shù)讀取當(dāng)前溫度值3. 調(diào)用子函數(shù)把當(dāng)前讀取的溫度以及設(shè)定值通過(guò)串
7、口送入PC機(jī)顯示;4. 調(diào)用子函數(shù)判斷PC機(jī)是否有新的數(shù)據(jù)傳送到單片機(jī);5. 調(diào)用子函數(shù),把設(shè)定值與當(dāng)前值相比較,對(duì)輸出PWM進(jìn)行控制;6. 調(diào)用子函數(shù)刷新當(dāng)前頁(yè)面;7. 調(diào)用子函數(shù)進(jìn)行按鍵判斷,依據(jù)按鍵值調(diào)用不同的子函數(shù)進(jìn)行翻頁(yè)或者設(shè)置;圖 3-1溫度控制主程序流程圖3.2 控制算法設(shè)計(jì)3.2.1 控制對(duì)象模型 制冷片的水箱模型可近似地認(rèn)為成一階慣性環(huán)節(jié),從而測(cè)量系統(tǒng)階躍響應(yīng)可模擬出系統(tǒng)的數(shù)學(xué)模型,G(s)=1/(T*s+1),其中T等于階躍響應(yīng)中調(diào)節(jié)時(shí)間Ts的四分之一。給電流I=0.5A時(shí)階躍響應(yīng)數(shù)據(jù)記錄如下,其中t=0時(shí),溫度約為27;t=100時(shí),溫度約為24。取終值11K的98%,T
8、s約為54min=3240s,則G(s)=1/(810*s+1)。 1.由此看出,制冷系統(tǒng)是大慣性系統(tǒng),制冷需要一段時(shí)間之后溫度才開(kāi)始下降;2.至停止制冷后,溫度還會(huì)有小幅度的下降,而設(shè)定溫度越低,下降的幅度越小;3.由于與外界的熱交換,溫度越低時(shí),水箱的自然升溫速度越快。圖 3-2 對(duì)象階躍響應(yīng)擬合曲線3.2.2 PI控制器設(shè)計(jì) PI調(diào)節(jié)器的微分方程為:y(t)=Kpe(t)+1/Ti*e(t)dt。控制器有兩種算法,位置型和增量型。位置型算法時(shí),計(jì)算每次實(shí)際值與設(shè)定值的偏差為e0,上次的偏差為e1,則控制量u=kp*e0+ki*(e0+e1)。增量型算法時(shí),u+=e0*ki+(e1-e0)
9、*kp。本次系統(tǒng)中選用的是位置型算法。3.2.3 控制器的設(shè)計(jì) 根據(jù)制冷片的滯后特點(diǎn),為了使制冷片能迅速達(dá)到設(shè)定的溫度,應(yīng)該在離設(shè)定溫度較遠(yuǎn)時(shí)給負(fù)載加上最大功率;又為了防止制冷片的大慣性的特性使系統(tǒng)產(chǎn)生嚴(yán)重的超調(diào),需要提前在一定的范圍內(nèi)進(jìn)行PI控制以達(dá)到最佳效果;而最后階段,需要預(yù)先判斷系統(tǒng)的停止工作點(diǎn),讓制冷片的溫度擴(kuò)散的整個(gè)水箱,此時(shí)停止制冷。 若設(shè)定溫度大于當(dāng)前溫度時(shí),系統(tǒng)也將停止制冷,等溫度慢慢回升。現(xiàn)設(shè)定開(kāi)始進(jìn)入PI控制的溫度上限為設(shè)定值T+1,而停止制冷的溫度,根據(jù)多次實(shí)驗(yàn)建立的數(shù)據(jù)庫(kù)如下:設(shè)定值溫度范圍T停止制冷溫度t23<=TT*0.00619<=T<23T+
10、0.7T<19T4 系統(tǒng)調(diào)試4.1 單片機(jī)程序仿真由于PROTEUS中沒(méi)有我們選用的STC12C5A08S2型號(hào)的單片機(jī),因此使用AT89S2的單片機(jī)代替。仿真電路如下圖所示,仿真時(shí)除初始化時(shí)當(dāng)前溫度顯示為85以外,一切工作正常。圖 4-1 系統(tǒng)控制電路仿真電路圖4.2 STC12C5A08S2單片機(jī)系統(tǒng)電路調(diào)試 STC12C5A08S2最小系統(tǒng)包括晶振和復(fù)位電路,按鍵電路,LCD顯示,以及通信下載接口。由于以前沒(méi)有使用過(guò)這個(gè)型號(hào)的單片機(jī),也沒(méi)有做過(guò)串口下載器,所以先把串口接口芯片MAX232及其外部電容和單片機(jī)的晶振電路接在面包板上,通過(guò)串口與單片機(jī)連接調(diào)試下載功能,由于一開(kāi)始電源和地
11、之間沒(méi)有接電容,因此系統(tǒng)不是很穩(wěn)定,有時(shí)可以下載,有時(shí)不可以,接入電容之后系統(tǒng)比較穩(wěn)定了。依據(jù)插在面包板的電路圖畫(huà)原理圖以及PCB,板子做出來(lái)之后,用萬(wàn)用表測(cè)試各點(diǎn)的連接特性,正常。上電,電源指示燈偏暗,把10K的限流電阻換為1K的之后指示燈工作正常。由于STC12C5A08S2單片機(jī)運(yùn)算速度比89S52快,因此程序中延時(shí)子函數(shù)一律乘以12。修改管腳使其適應(yīng)實(shí)際的電路板,重新編譯后下載程序。液晶沒(méi)有顯示,調(diào)節(jié)液晶顯示偏壓信號(hào)端的電壓,使其接近地,液晶顯示正常。接上DS18B20,溫度顯示正常。用按鍵進(jìn)行翻頁(yè)及設(shè)置,按鍵功能正常。據(jù)此,單片機(jī)系統(tǒng)板及程序完全工作正常。4.3 驅(qū)動(dòng)電路調(diào)試驅(qū)動(dòng)電路
12、板做好后進(jìn)行測(cè)試。用外用表測(cè)量,各點(diǎn)連接特性正常。分別把PWM輸入端接地和接VCC,用示波器觀察負(fù)載輸出電壓,輸出電壓對(duì)應(yīng)為零和為12伏,工作正常,接入PWM信號(hào)后,輸出變?yōu)榱?,不正常。用示波器觀察MOS管G極電壓,發(fā)現(xiàn)為鋸齒波,上升部分傾斜,下降部分豎直。分析原因?yàn)镸OS管的S極與電源之間的電阻太大,使通過(guò)MOS管的電流太小,MOS管的電容特性使其在一定充電時(shí)間內(nèi)電壓不能達(dá)到導(dǎo)通,因此輸出恒為零。把電阻調(diào)小,鋸齒波頂部逐漸變平,電阻繼續(xù)調(diào)小,輸出的最低電壓開(kāi)始升高不為零。此時(shí)繼續(xù)調(diào)節(jié)電阻已沒(méi)有意義,在程序中把PWM輸出的波形頻率降低,降到最低14HZ。此時(shí)G極波形已為方波,繼續(xù)減小電阻,直到
13、G極輸出的最低電壓恰好為零,使其能通過(guò)更高頻率的信號(hào)。最后稍微增大該電阻,使其電壓被允許在一定范圍內(nèi)波動(dòng)。測(cè)量連接負(fù)載的D極,D極波形為與輸入的PWM反向的方波,驅(qū)動(dòng)電路工作正常。4.4 系統(tǒng)調(diào)試各個(gè)部分的調(diào)試完成以后,對(duì)整個(gè)系統(tǒng)進(jìn)行調(diào)試,從室溫約27.5開(kāi)始,設(shè)置水箱的溫度分別為26,23,20。具體記錄的數(shù)據(jù)如下所示。表 6-5-1設(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é)與
14、改進(jìn)展望本次設(shè)計(jì)中,我完成了包括資料收集,系統(tǒng)設(shè)計(jì)及仿真,程序編寫,電路圖與PCB板的繪制腐蝕焊接及調(diào)試的全過(guò)程,整個(gè)系統(tǒng)完成測(cè)試后,性能穩(wěn)定,基本達(dá)到了預(yù)期的目標(biāo)。 水箱溫度在2910攝氏度范圍內(nèi)可控(設(shè)置值不大于當(dāng)前室溫),LCD液晶溫度顯示穩(wěn)定,與之前購(gòu)買的溫度計(jì)有大約恒定1的溫差。傳送到PC機(jī)的數(shù)據(jù)顯示正常,可以從PC機(jī)接收數(shù)據(jù)對(duì)各個(gè)參數(shù)進(jìn)行設(shè)置。 溫度控制算法的設(shè)計(jì),在原模糊分段控制的基礎(chǔ)上,加上了PI控制,雖然最后由于時(shí)間關(guān)系,參數(shù)中只使用了P,但是可以證明,加入了PI控制的模糊算法比單純的模糊分段控制取得了更好的效果。 在本次設(shè)計(jì)中,也存在著可以改進(jìn)的地方。例如程序中有部分程序段
15、是幾乎重復(fù)使用的,但在各種情況下,只使用了switch函數(shù)分情況討論,沒(méi)有總結(jié)出特定的函數(shù)對(duì)所有的情況進(jìn)行處理,這導(dǎo)致了程序過(guò)長(zhǎng),應(yīng)該還有可以壓縮的空間。還有對(duì)于參數(shù)的調(diào)整,只使用了P,沒(méi)有用到I,而且對(duì)于停止控制的位置,也還應(yīng)該重新配合。這都是需要作出調(diào)整的,而且DS18B20檢測(cè)溫度只能精確到0.0625,若要再進(jìn)一步提升各種指標(biāo)的話,最好換一個(gè)精度更高的溫度檢測(cè)手段。6 謝辭本次設(shè)計(jì)能夠完成得到了許多幫助,首先感謝趙學(xué)軍老師,李平老師以及龍超老師的悉心指導(dǎo),為我們提供了設(shè)計(jì)的思路,為我們指出了設(shè)計(jì)的各種不足指出,并一次次為我們解決了調(diào)試過(guò)程中出現(xiàn)的各種問(wèn)題。正是有了他們的指導(dǎo),我的設(shè)計(jì)才
16、得以順利完成。感謝一同進(jìn)行設(shè)計(jì)的同學(xué)們,是他們?cè)谖覍?duì)著板子一籌莫展地時(shí)候給我指出了可能的錯(cuò)誤,在調(diào)試過(guò)程中給予我各種意見(jiàn),并且測(cè)量數(shù)據(jù)時(shí)給予我各種幫助,沒(méi)有他們的幫助,我的設(shè)計(jì)不能得以完善。 感謝一直教導(dǎo)我的任課老師,是任課老師的諄諄教導(dǎo),使得我們可以學(xué)以致用,完成本次設(shè)計(jì)一定是基于扎實(shí)的理論課基礎(chǔ)的。最后感謝在本次設(shè)計(jì)中所有幫助過(guò)我的老師同學(xué)們。參考文獻(xiàn)1 胡壽松. 自動(dòng)控制原理M . 北京:科學(xué)出版社,2007.2 華成英,童詩(shī)白. 模擬電子技術(shù)基礎(chǔ)M . 北京:高等教育出版社,2006.3 王再英,劉淮霞,陳毅靜. 過(guò)程控制系統(tǒng)與儀表M . 北京:機(jī)械工業(yè)出版社,2
17、006.4 馬淑華,王鳳文,張美金.單片機(jī)原理與接口技術(shù)M . 北京:郵電大學(xué)出版社,2007.5 潘新民,王燕芳. 微型計(jì)算機(jī)控制技術(shù)實(shí)用教程M . 北京:電子工業(yè)出版社,2006.6 譚浩強(qiáng). C程序設(shè)計(jì)M . 北京:清華大學(xué)出版社,2005.附 錄主要電路PCB:STC89C5A08S2最小系統(tǒng)驅(qū)動(dòng)電路STC12C5A08S2程序/*/#include<STC_NEW_8051.h>#include<DS18B20.h>#include<LCD1602.h>#define keys P0sbit PWM=P13;uchar settemp12='
18、;S','e','t',':',' ','2','6','.','0',' ',0xdf,'C'ucharnowtemp12='N','o','w',':','0','2','6','.','5','0',0xdf,'C'uchar welcome16=&
19、quot;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="Fu: 100 ",kps8="Kp: 050 ",kis8="Ki: 000 "int TN,TD,Ntemp100,Stemp100=2600,e1=0,e0=0,u=0;bit bu
20、sy;/*顯示設(shè)置*/void page0()/初始化歡迎頁(yè) 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;i+) /顯示學(xué)號(hào)姓名_1602_writedata(numberi);for(i=0;i<40;i+)delay(5000); void page1() /溫度顯示頁(yè)int i; _1602_writecode(0x00+
21、0x80);/設(shè)置顯示地址for(i=0;i<12;i+) /顯示設(shè)定溫度_1602_writedata(settempi);_1602_writecode(0x40+0x80);/設(shè)置顯示地址for(i=0;i<12;i+) /顯示現(xiàn)在溫度if(Stemp100>2300)stop=Stemp100*3/500;/關(guān)斷值的模糊控制else if(1900<Stemp100<=2300) stop=7;else stop=0;e1=e0;e0=Ntemp100-Stemp100;e3=e0%10;e2=(e0/10)%10;e1=(e0/100)%10;e0=(e
22、0/1000);_1602_writecode(0x0c+0x80);/設(shè)置顯示地址for(i=0;i<4;i+) /顯示誤差_1602_writedata(ei+0x30);if(stop<e0<fub)/PI運(yùn)算 u=e0*kp/10;u+=(e1+e0)*ki/10;if(u>255) u=255;if(u<0) u=0; if(e0>=fub) u=0xff; /全開(kāi)if(e0<=stop) u=0x00;/關(guān)斷us3=u%10;us2=(u/10)%10;us1=(u/100)%10;us0=(u/1000);_1602_writecode(
23、0x4c+0x80);/設(shè)置顯示地址for(i=0;i<4;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,come=0;keys=0x00;delay(2);key=keys&0x0f;if(key!=0)/防抖 s=settemp6-0x3
24、0;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;i<7;i+)s=fusi-0x30;s=seting2(i,s);fub=fub*10+s;fusi=s+0x30;break;case 1:kp=0; for(i=4;i<7;i+)s=kpsi-0x
25、30;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=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;i<4;i+)kisi+3=shoui;s=shoui-0x30;ki=ki*10+s;shou0=0;break;/*按鍵判斷處理*/
26、*PWM初始化*/void PWM_init()/PWM初始化TMOD=0x22;/T0工作在方式2,8位重裝TH0=0x00;TR0=1; /開(kāi)始計(jì)數(shù)CCON=0x00;/關(guān)PCA CH=0; CL=0;/計(jì)數(shù)寄存器清零CMOD=0x04;/始終工作;f=定時(shí)器0溢出頻率;PWM模式禁止中斷CCAPM0=0X42; /PCA0工作在PWM模式PCA_PWM0=0x00; /若此為為0x02,則輸出恒為0;若要調(diào)整占空比,需賦值為0;CCAP0H=0x00;/輸出占空比100% CR=1; /開(kāi)始計(jì)數(shù)/*PWM初始化*/*串口初始化*/void Uart_init(void)IE=0x90;v
27、oid main()uchar key,i;P4SW=0x70;/P4為IO口page=1;/默認(rèn)頁(yè)為第一頁(yè)P(yáng)WM_init();_1602_init();Uart_init();/串口初始化page0(); /顯示初始化歡迎頁(yè)_1602_writecode(0x01);/清屏delay(50);/清屏后若無(wú)延時(shí)則第一個(gè)字符顯示不出sent_pc(welcome,16);sent_pc_byte('r'); /13,10合起來(lái)為回車sent_pc_byte('n');sent_pc(settemp,10);sent_pc(nowtemp,10);while(1)
28、 k1:gets(); /讀取當(dāng)前溫度sent_pc_byte('r'); /13,10合起來(lái)為回車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)前溫度頁(yè)key=keyin();/判斷鍵值switch(key)case 1:CCAP0H=0x00;setingt(); goto k1; /進(jìn)行設(shè)置case 2: case 4: _1602_writecode(0x01);delay(5
29、0);/清屏page=2; /上下翻頁(yè) if(page=2)page2();/顯示參數(shù)設(shè)定頁(yè)key=keyin();/判斷鍵值switch(key) _1602_writedata(nowtempi);void page2()/參數(shù)顯示頁(yè) 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+) /顯示kp_1602_writedata(kpsi);for(i=0;
30、i<8;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() /讀取溫度并計(jì)算result_18b20();TL=read_18b20(); /先讀的是溫度值低位TH=read_18b20(); /接著讀的是溫度值高位TN=TH*1
31、6+TL/16;/整數(shù)部分TD=TL&0x0f; /小數(shù)部分TD=TD*100/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() /對(duì)PWM值進(jìn)行控制int i,stop;delay(10);key=keys&0x0f; if(key!=0)come=k
32、ey;while(keys); /等待彈起return(come);uchar seting2(uchar adr,uchar shezhi)/單個(gè)數(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); r
33、eturn(s);void setingt() /溫度設(shè)置uchar s,x;Stemp100=0;s=settemp5-0x30;x=seting2(0x05,s);settemp5=x+0x30;Stemp100+=x*1000;/依據(jù)從PC機(jī)一次性傳入的四位數(shù)據(jù)的第一位進(jìn)行判斷,本程序只用到以下幾個(gè)參數(shù),若有需要可隨時(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=sette
34、mp5-0x30;Stemp100+=s*1000;s=settemp6-0x30;Stemp100+=s*100;s=settemp8-0x30;Stemp100+=s*10;shou0=0;/清空暫存的首位break;case 'F':/修改模糊量,此處模糊量定義為系統(tǒng)開(kāi)始進(jìn)行PI運(yùn)算的上限fub=0;for(i=1;i<4;i+)fusi+3=shoui;s=shoui-0x30;fub=fub*10+s;shou0=0;break;case 'P':/變量kpkp=0;for(i=1;i<4;i+)SCON=0x50;/模式一:8位,波特率可
35、調(diào);不是地址篩選模式;可接收PCON=0x00;/SMOD=0TH1=253; /253,波特率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機(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,
36、標(biāo)示正忙SBUF=x;void sent_pc(char *s,int n) /從下位機(jī)到上位機(jī)發(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; /上下翻頁(yè)case 8:setingc(whi); for(i=0;i<3;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); DQ=1; delay_18b20(10); while(!DQ); uchar read_18b2
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年陪診師考試溫暖服務(wù)試題及答案
- 四年級(jí)上冊(cè)信息技術(shù)教學(xué)設(shè)計(jì)-第11課 家鄉(xiāng)美景巧保存 電子工業(yè)版(安徽)
- 企業(yè)文化建設(shè)的重要性試題及答案
- 投資咨詢中的數(shù)據(jù)保護(hù)問(wèn)題試題及答案
- 2024年人力資源管理師的前沿知識(shí)試題及答案
- 養(yǎng)老行業(yè)創(chuàng)業(yè)項(xiàng)目
- 無(wú)人機(jī)應(yīng)用技術(shù)專業(yè)(2021 級(jí))人才培養(yǎng)方案
- 2024年陪診師考試臨床決策試題及答案
- 中職電子商務(wù)教師資格證考試的試題及答案總結(jié)
- 黑龍江省七臺(tái)河市桃山區(qū)2025屆數(shù)學(xué)四年級(jí)第二學(xué)期期末綜合測(cè)試試題含解析
- 兒童營(yíng)養(yǎng)及營(yíng)養(yǎng)性疾病
- 專業(yè)設(shè)置可行性報(bào)告
- QC080000培訓(xùn)講義課件
- 病歷書(shū)寫規(guī)范細(xì)則(2024年版)
- 華南理工大學(xué)《統(tǒng)計(jì)學(xué)》2022-2023學(xué)年第一學(xué)期期末試卷
- GB/T 29468-2024潔凈室及相關(guān)受控環(huán)境圍護(hù)結(jié)構(gòu)夾芯板
- 爐襯材料與結(jié)構(gòu)的改進(jìn)
- DB11-238-2021 車用汽油環(huán)保技術(shù)要求
- 2024年湖南省高考化學(xué)試卷真題(含答案解析)
- 《永久基本農(nóng)田調(diào)整劃定工作方案》
- 藥學(xué)技能競(jìng)賽標(biāo)準(zhǔn)答案與評(píng)分細(xì)則處方
評(píng)論
0/150
提交評(píng)論