畢業(yè)論文:基于單片機的無線溫度監(jiān)控系統(tǒng)_第1頁
畢業(yè)論文:基于單片機的無線溫度監(jiān)控系統(tǒng)_第2頁
畢業(yè)論文:基于單片機的無線溫度監(jiān)控系統(tǒng)_第3頁
畢業(yè)論文:基于單片機的無線溫度監(jiān)控系統(tǒng)_第4頁
畢業(yè)論文:基于單片機的無線溫度監(jiān)控系統(tǒng)_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

PAGEPAGE11. 引言 21.1. 設計背景及意義 21.2. 系統(tǒng)簡介及組成 22. 系統(tǒng)器件選擇及論證 32.1. 控制器部分 32.1.1. Msp430系列單片機概述 32.1.2. MSP430硬件特點 32.1.3. 所應用的主要功能 42.2. 系統(tǒng)顯示模塊 52.2.1. 12864點陣液晶顯示屏簡介 52.2.2. 12864顯示屏的技術特點 52.3. 無線模塊 52.3.1. NRF2041無線模塊簡介 52.3.2. NRF2401外部接口 62.4. 傳感器模塊 6. Ds18b20溫度測量模塊簡介 62.4.2. DS18b20結構示意 62.5. 上位機部分 73. 硬件連接與設計 74. 軟件設計 74.1. 人機交互環(huán)節(jié) 74.1.1. 設計原理 74.1.2. 人機交互環(huán)節(jié)流程圖: 84.2. 溫度采集部分 84.2.1. 程序流程圖 84.2.2. 濾波算法 94.3. 數(shù)字PID控制算法 94.3.1. 位置式算式及PID參數(shù) 94.3.2. 算法流程圖: 104.4. 控制PWM脈寬輸出 104.4.1. 脈寬調制波產生 104.5. PC上位機監(jiān)控程序設計 114.5.1. 上位機監(jiān)控程序簡介 114.5.2. 功能模塊 115. 致謝 156. 參考文獻 15

基于單片機的無線溫度監(jiān)控系統(tǒng)自動化專業(yè)學生李盛葆指導教師李坤摘要:關鍵詞:TheSupervise&ControlWirelessSystemBasedOnMCUStudentmajoringinAutomationLiShengbaoTutorLiKunAbstract:××××××(五號TimesNewRomar,200—300個實詞)××××××××××××××××××××××……Keywords:×××;××××;×××××;×××(3-5實詞個,五號TimesNewRomar)

引言設計背景及意義溫度是表征物體冷熱程度基本物理量,在工業(yè)生產、日常生活中的各個領域中,其測量和控制都占有重要的地位,如何精確的測量溫度并快速、準確、穩(wěn)定的控制被控對象的溫度變量是一個經(jīng)久不衰的研究課題。在工業(yè)環(huán)境中,溫度的過高或者過低會導致設備損壞,造成生產危險;軍事應用中,溫度的異常會影響材料的組織結構和性能……工業(yè)領域中,鍋爐的爐溫、電機的軸溫、工業(yè)冷卻水的水溫、化學反應的溫度等等,都是我們需要精確測量并嚴格控制的。當然,在民用領域,新型的智能家居系統(tǒng)也需要通過測量室內溫度,而通過一系列控制算法控制制冷制熱系統(tǒng)的運轉而使室溫適宜人的居住。單片機等嵌入式技術的蓬勃發(fā)展、集成電路的微型化、儀器儀表的智能化為現(xiàn)代溫度測量控制大大促進了溫度監(jiān)控技術的發(fā)展。新一代計算機控制系統(tǒng)能夠實現(xiàn)實時數(shù)據(jù)采集、實施決策控制、實時控制輸出,其實時數(shù)據(jù)能夠實時顯示,并且可以查看歷史記錄,操作人員可以根據(jù)實際情況選擇手動或自動調節(jié)控制器的輸出。在熱工、化工、機械、冶金等部門已經(jīng)廣泛應用。系統(tǒng)簡介及組成本設計基于msp430系列低功耗單片機作為主控制器,利用ds18b20數(shù)字式低功耗溫度傳感器采集現(xiàn)場溫度,然后利用nrf2401系列無線射頻傳輸芯片將溫度信息傳送回主控制器,并在液晶顯示器上顯示。主控制器并可以與PC機經(jīng)過RS232連接,接收到的溫度歷史信息可以在PC機上顯示,并保存。通過比較給定值與測量變送值的偏差,利用PID算法,控制器輸出控制量給被控對象電爐,根據(jù)控制量的大小加熱爐可以通過加熱來使實際溫度值逐漸逼近給進值。另外系統(tǒng)也允許用戶手動調節(jié)控制量來控制加熱器的溫度。整個系統(tǒng)的特點在于:低功耗性:主控制器、測量變送元件、無線傳輸模組都是低功耗的精確性:傳感器無線性用戶友好性:PC機和液晶監(jiān)控屏雙重顯示,用戶可根據(jù)自己需要對系統(tǒng)進行自定義設置MSP430單片機被控對象18b20傳感器MSP430單片機被控對象18b20傳感器繼電器電熱絲液晶顯示屏微型計算機系統(tǒng)用戶鍵盤圖STYLEREF1\s1SEQ圖\*ARABIC\s11系統(tǒng)器件選擇及論證控制器部分Msp430系列單片機概述MSP430是德州公司新開發(fā)的一類具有16位總線的帶FLASH的單片機,由于其性價比和集成度高,受到廣大技術開發(fā)人員的青睞。它采用16位的總線,外設和內存統(tǒng)一編址,尋址范圍可達64K,還可以外擴展存儲器.具有統(tǒng)一的中斷管理,具有豐富的片上外圍模塊,可以在線對單片機進行調試和下載,且JTAG口直接和FET(FLASHEMULATIONTOOL)的相連,不須另外的仿真工具,方便實用,而且,可以在超低功耗模式下工作,對環(huán)境和人體的輻射小,可靠性能好,加強電干擾運行不受影響,適應工業(yè)級的運行環(huán)境,適合與做手柄之類的自動控制的設備。MSP430硬件特點—3.6V。超低功耗:μA@4kHz,2.2V;1605μA@1MHz,2.2V。五種節(jié)電模式:μA;μA。從等待方式喚醒:6μS。16位RISC結構,150nS指令周期?;緯r鐘模塊配置:高速晶體:最高8MHz;低速晶體:32768Hz;DCO。12位200kbps的A/D轉換器,自帶采樣保持。內部溫度傳感器。具有3個捕獲/比較寄存器的16位定時器Timer_A,Timer_B。兩通道串行通信接口可用于異步或同步(軟件選擇UART/SPI模式)。硬件乘法器。多達60KBFLASHROM和2KBRAM。串行在線編程。安全熔絲的程序代碼保護。所應用的主要功能通用外部中斷功能16位定時器A通用異步串行通信模塊(USAR)ADC12模數(shù)轉換模塊低功耗模式3(LPM3)系統(tǒng)顯示模塊12864點陣液晶顯示屏簡介帶中文字庫的128X64是一種具有4位/8位并行、2線或3線串行多種接口方式,內部含有國標一級、二級簡體中文字庫的點陣圖形液晶顯示模塊;其顯示分辨率為128×64,內置8192個16*16點漢字,和128個16*8點ASCII字符集.利用該模塊靈活的接口方式和簡單、方便的操作指令,可構成全中文人機交互圖形界面??梢燥@示8×4行16×16點陣的漢字.也可完成圖形顯示.低電壓低功耗是其又一顯著特點。由該模塊構成的液晶顯示方案與同類型的圖形點陣液晶顯示模塊相比,不論硬件電路結構或顯示程序都要簡潔得多,且該模塊的價格也略低于相同點陣的圖形液晶模塊。12864顯示屏的技術特點低電源電壓(VDD:+3.0--+5.5V)(2)、顯示分辨率:128×64點內置漢字字庫,提供8192個16×16點陣漢字(簡繁體可選)內置128個16×8點陣字符(5)、2MHZ時鐘頻率顯示方式:STN、半透、正顯(7)、驅動方式:1/32DUTY,1/5BIAS視角方向:6點背光方式:側部高亮白色LED,功耗僅為普通LED的1/5—1/10通訊方式:串行、并口可選(11)、內置DC-DC轉換電路,無需外加負壓無需片選信號,簡化軟件設計(13)、工作溫度:0℃-+55℃,存儲溫度:-20℃-+60℃無線模塊NRF2041無線模塊簡介nRF2401是單片射頻收發(fā)芯片,工作于2.4~2.5GHzISM頻段,芯片內置頻率合成器、功率放大器、晶體振蕩器和調制器等功能模塊,輸出功率和通信頻道可通過程序進行配置。芯片能耗非常低,以-5dBm的功率發(fā)射時,工作電流只有10.5mA,接收時工作電流只有18mA,多種低功率工作模式,節(jié)能設計更方便。其DuoCeiverTM技術使nRF2401可以使用同一天線,同時接收兩個不同頻道的數(shù)據(jù)。nRF2401適用于多種無線通信的場合,如無線數(shù)據(jù)傳輸系統(tǒng)、無線鼠標、遙控開鎖、遙控玩具等。NRF2401外部接口圖STYLEREF1\s2SEQ圖\*ARABIC\s11傳感器模塊Ds18b20溫度測量模塊簡介DS18B20是DALLAS公司生產的一線式數(shù)字溫度傳感器,具有3引腳TO-92小體積封裝形式;溫度測量范圍為-55℃~+125℃,可編程為9位~12位A/D轉換精度,測溫分辨率可達DS18b20結構示意圖STYLEREF1\s2SEQ圖\*ARABIC\s12上位機部分本系統(tǒng)使用普通的商用計算機作為遠程監(jiān)控機。對系統(tǒng)的基本硬件要求不高,能夠正常運行win32程序即可上位機要具有9針標準RS232接口,或者通用串行接口(USB)能夠在9600波特率下正常通信,具有彩色顯示器,以用來顯示實時溫度曲線。操作系統(tǒng)要求為Windows2000或WindowsXP,能正常運行VC監(jiān)控程序。硬件連接與設計軟件設計人機交互環(huán)節(jié)設計原理人機交互環(huán)節(jié)利用單片機系統(tǒng)版上的四個獨立式按鍵,和12864液晶顯示器構成,單片機上電后初始化液晶顯示器,并顯示文字:“請輸入設定值:”用來提示用戶輸入所想要的設定值,按鍵1、2、3分別用來滾動輸入百位、十位、個位數(shù)據(jù)(0~9),按鍵4用以確定輸入信息,一旦按鍵4按下,鍵處理程序立即置1標志位d,主程序查詢到標志位置位后將設定值存入相應的變量中,設定值設定完畢。同樣的原理,液晶顯示器依次顯示:“K:”,“Ti”,“Td”并等待按鍵輸入數(shù)據(jù),等待標志位置1后,將此時的按鍵信息存入相應的變量之中,完成參數(shù)設定。本設計中利用I/O中斷進行鍵掃描,按鍵直接接到I/O口的P1.0、P1.1、P1.2、P1.3上。在P1口的中斷服務子程序中進行鍵處理。當有鍵按下,觸發(fā)中斷,在中斷服務子程序中利用查詢相應的標志位來確定到底是那個鍵按下,從而執(zhí)行相應的操作,由于按鍵的機械特點,需要進行去抖處理,因此,在中斷子程序中加了一定時間的軟件延時,并在延時后清零標志位,從而就能很好的跳過鍵盤的抖動時間,實現(xiàn)對按鍵準確有效地識別。人機交互環(huán)節(jié)流程圖:開始開始初始化液晶顯示字符“請輸入設定值”開中斷d==0保存設定值,清零dd==0保存k,清零d保存ki,清零d保存kd,清零dd==0d==0YNYYYNNN關P1口中斷中斷服務子程序1按下2按下3按下4按下a=a+1a==9a=0中斷返回b==9b=b+1b=0c=c+1c=0c=9d=1YYYYYYNNNNNN圖STYLEREF1\s4SEQ圖\*ARABIC\s11溫度采集部分程序流程圖初始化初始化設置ACLK為ADC12主時鐘設置ADC12觸發(fā)方式開啟ADC12結束ADC12中斷子程序i++i=8Tmp+=ADC12MEM0Cpoint=Tmp/8再啟動ADC數(shù)據(jù)處理程序將數(shù)字量轉換成溫度值圖STYLEREF1\s4SEQ圖\*ARABIC\s12濾波算法由于被控對象溫度量受不確定因素影響或者溫度傳感器自身存在一定的系統(tǒng)誤差,在處理傳感器輸入量時需要進行平均濾波處理,具體做法是:將近十次結果相加然后在除以十平均,得到相對比較精確的溫度值。數(shù)字PID控制算法位置式算式及PID參數(shù)本設計利用了上面所介紹的位置式PID算法,位置式基本算式為:u(n)=Kpe(n)+KI∑e(n)+KD△e(n)

式中

n采樣序號;u(n)第n次采樣時刻的控制器輸出;e(n)第n次采樣時刻輸入的偏差;△e(n)第n次采樣時刻輸入的偏差與第n-1次采樣時刻輸入的偏差之差;KP比例增益;KI

積分系數(shù)(KI=KpT/TI);KD微分系數(shù)(KD=KPTD/T);T—采樣周期TI、TD分別為積分時間常數(shù)和微分時間常數(shù)。注:本設計中采樣周期為一秒。

控制程序得到當前溫度值后,調用sPID函數(shù),根據(jù)開始操作員所設定的控制參數(shù)運算產生輸出結果fOut。由于被控對象的時間滯后比較大,積分做用過強容易產生振蕩,致使控制品質變差,因此,在程序設計是采用積分分離法,當偏差在5℃算法流程圖:PID算法函數(shù)PID算法函數(shù)計算偏差e,并保存℃℃開始累計偏差u(n)=Kpe(n)+KI∑e(n)△e(n)

累計偏差項清零u(n)=Kpe(n)+KD△e(n)

輸出<100輸出=100返回輸出值NNYY圖STYLEREF1\s4SEQ圖\*ARABIC\s13控制PWM脈寬輸出脈寬調制波產生根據(jù)PID算法所產生的控制數(shù)據(jù)fout,利用定時器產生占空比為fout/100的控制PWM波。具體實現(xiàn)流程如下:定時器中斷定時器中斷m=m-1驅動繼電器斷開驅動繼電器吸合m!=0n!=0m=100,停止計數(shù)啟動AD開始一次溫度采集中斷返回NNYY圖STYLEREF1\s4SEQ圖\*ARABIC\s14程序中定時器的定時周期是1/100秒,標志量m的初始值為100,因此計數(shù)100次開啟一次數(shù)據(jù)采集,所以采樣周期為1秒。繼電器的通斷控制著加熱電阻絲電流通斷,從而控制加熱絲提供給鍋爐的熱功率。以達到控制溫度的效果。PC上位機監(jiān)控程序設計上位機監(jiān)控程序簡介本上位機是使用vc++6.0中提供的MFC編程方式編寫而成,其兩大功能模塊——InstallShieldforMicrosoftVisualC++6打包發(fā)布,生成可以在其它電腦上獨立使用的安裝包程序。功能模塊串口通信由MScomm控件來實現(xiàn),其主要設置如下:初始化設置以下MScomm的各個參數(shù)設置,通過修改參數(shù)來實現(xiàn)不同場合下的串口通信要求。本程序結合對話框,可以實現(xiàn)常用參數(shù)的選擇如:波特率、奇偶校驗位、串口等,從而使其具有通用性。m_mscom.SetCommPort(6);//串口設置為6m_mscom.SetInBufferSize(1024);//設置輸入緩沖區(qū)的大小,1024Bytesm_mscom.SetOutBufferSize(512);//設置輸入緩沖區(qū)的大小,512Bytes if(!m_mscom.GetPortOpen())//判斷串口是否打開{ m_mscom.SetPortOpen(true);//如果沒有打開串口 }m_mscom.SetInputMode(1);//設置輸入方式為二進制方m_mscom.SetSettings("9600,n,8,1");//設置波特率為9600,無校驗位,8bit數(shù)據(jù),//1bit停止位m_mscom.SetRThreshold(1);//為1表示有一個字符即引發(fā)事件串口響應if(2==m_mscom.GetCommEvent())//判斷是否是由于接收數(shù)據(jù)引起的響應{variant_inp=m_mscom.GetInput();safearray_inp=variant_inp; len=safearray_inp.GetOneDimSize();for(i=0;i<len;i++) { safearray_inp.GetElement(&i,&rxdata[i]);//數(shù)據(jù)轉換格式 } rxdata[i]='\0';m_nReData=rxdata[0];//賦值給設定變量}發(fā)送數(shù)據(jù)根據(jù)實際需要,可能實時改變溫度要求,因此可以通過控件向控制器發(fā)送設定值。CByteArraysendArr; WORDwLength=1; unsignedcharm_send=m_ndata;//數(shù)據(jù)類型轉換 sendArr.SetSize(wLength);//設置發(fā)送數(shù)據(jù)長度 sendArr.SetAt(0,m_send);//發(fā)送數(shù)據(jù)數(shù)據(jù)繪制曲線由MSChart控件來實現(xiàn),其參數(shù)設置如下:初始化設置MSChart需要在程序中預設置X、Y軸參數(shù),代碼分析如下:m_Chart.GetPlot().GetAxis(1,var).GetAxisTitle().SetText("tempreture");//設置y軸標//題 m_Chart.GetPlot().GetAxis(0,var).GetAxisTitle().SetText("time");//x軸標題 m_Chart.GetPlot().GetAxis(1,var).GetValueScale(). SetAuto(FALSE);//不自動標注y軸刻度 m_Chart.GetPlot().GetAxis(1,var).GetValueScale(). SetMaximum(100);//y軸最大刻度 m_Chart.GetPlot().GetAxis(1,var).GetValueScale(). SetMinimum(0);//y軸最小刻度 m_Chart.GetPlot().GetAxis(1,var).GetValueScale(). SetMajorDivision(5);//y軸刻度5等分 m_Chart.GetPlot().GetAxis(1,var).GetValueScale(). SetMinorDivision(10);//每刻度一個刻度線 m_Chart.SetColumnCount(2);//1個溫度項,2條曲線,1實時溫度,2設定值 m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetPen().GetVtColor().Set(0,255,255);//實時曲線綠色 m_Chart.GetPlot().GetSeriesCollection().GetItem(2).GetPen().GetVtColor().Set(255,0,0);//設定值紅色m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetPen().SetWidth(5);//線寬 m_Chart.SetRowCount(X_nrow);//一屏顯示60個采樣時刻m_Chart.GetPlot().GetAxis(0,var).GetCategoryScale().SetAuto(FALSE);//不自動//標注x軸刻度m_Chart.GetPlot().GetAxis(0,var).GetCategoryScale().SetDivisionsPerLabel(5);//x軸每時刻一個標注 m_Chart.GetPlot().GetAxis(0,var).GetCategoryScale().SetDivisionsPerTick(5);//每5時刻一個刻度線m_Chart.GetBackdrop().GetFill().SetStyle(1);//背景顏色為灰色m_Chart.GetBackdrop().GetFill().GetBrush().GetFillColor().Set(125,125,125);曲線繪制控件根據(jù)串口發(fā)送來的數(shù)據(jù),繪制相應曲線。當曲線超過X軸最大刻度后,通過程序設計實現(xiàn)曲線向左移動,當前數(shù)據(jù)在最大刻度處顯示。 m_Chart.SetRow(cnt);//設置顯示的x坐標 m_Chart.GetDataGrid().SetData(cnt,1,m_nReData,0);//繪制曲線程序發(fā)布由于不是每臺計算機上都裝有vc++6.0及其相應的控件,所以需要將其打包為可獨立安裝的應用程序。通常不需要特殊控件的程序可以直接設置編譯方式為“release”,本程序用到了兩個控件MScomm和MSChart,需要使用vc++6.0中的工InstallShieldforMicrosoftVisualC++6。方法是將程序用編譯為release版本后,調用該工具。對其進行相應設置后編譯即可。致謝本科期間這四年內,學院提供了很好的實驗環(huán)境,老師們諄諄教誨,使我受益匪淺,不論是從專業(yè)知識還是為人處世說起,我都取得了很大的進步,從一個懵懂的高中生,一步步成為掌握了一定專業(yè)技能的大學生,今后還要攻讀研究生。永遠忘不了在曲師大求學的這段歲月,使人難忘而溫暖。這次畢業(yè)設計進行的過程中,我的指導老師李坤老師給予我很大的幫助,不僅在技術問題上給予我很多指點,而且鼓勵我勇于面對困難。李老師作為一個經(jīng)驗豐富的工程師,他的研究求實的治學態(tài)度和誨人不倦的為師風范將使我在今后的學習和工作中受益匪淺。在此謹向李坤老師表示由衷的感謝!最后祝愿母校騰飛,自動化學院更上一個臺階,老師們工作順利,同學們前程似錦參考文獻馬江濤.單片機溫度控制系統(tǒng)的設計實現(xiàn)[J].計算機測量與控制,2004.12(12)魏小龍.MSP430系列單片機接口技術及系統(tǒng)設計實例(附光盤)[M].北京:北京航天航空大學出版社,2002.沈建華,揚艷琴,翟驍曙.MSP430系列16位超低功耗單片機實踐與系統(tǒng)設計(附光盤)/[M].北京:清華大學出版社,2005.謝楷,HYPERLINK"://sea

溫馨提示

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

評論

0/150

提交評論