過程控制系統(tǒng)課程設(shè)計[1]_第1頁
過程控制系統(tǒng)課程設(shè)計[1]_第2頁
過程控制系統(tǒng)課程設(shè)計[1]_第3頁
過程控制系統(tǒng)課程設(shè)計[1]_第4頁
過程控制系統(tǒng)課程設(shè)計[1]_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、過程控制系統(tǒng) 緒論 在科技高速發(fā)展的信息時代,電子技術(shù)、微型計算機技術(shù)的應(yīng)用更是空前廣泛,伴隨著科學(xué)技術(shù)和生產(chǎn)不斷發(fā)展,需要對各種參數(shù)進(jìn)行溫度測量。在單片機溫度測量系統(tǒng)中最關(guān)鍵的是測量溫度、控制溫度和保持溫度,溫度測量是對工業(yè)對象中主要的被控參數(shù)之一,因此單片機測量是對溫度的有效的測量,并能在工業(yè)生產(chǎn)中得到廣泛應(yīng)用。 本次課設(shè)所研究的課題是“基于單片機的熱水鍋爐溫度控制系統(tǒng)設(shè)計,主要介紹了對熱水鍋爐的溫度顯示、控制及報警、實現(xiàn)了溫度的實時顯示及控制。鍋爐水溫控制部分采用了AT89S52單片機、DS18B20溫度傳感器以及步進(jìn)電機來實現(xiàn),通過溫度傳感器DS18B20采集環(huán)境溫度,以單片機為核心控

2、制部件將采集到的溫度通過串口通信MAX232輸入到電腦中,在電腦中通過C語言編程來控制單片機的工作方式,將程序下載到單片機中,通過設(shè)定溫度與給定溫度的比較來控制電機的正反轉(zhuǎn)來模擬升溫和降溫使系統(tǒng)工作在設(shè)定的溫度范圍之內(nèi),當(dāng)溫度高于設(shè)定值時,通過電機正轉(zhuǎn)來模擬開大冷水閥,進(jìn)而使水溫降低;當(dāng)溫度低于設(shè)定值時,通過電機反轉(zhuǎn)來模擬關(guān)小冷水閥,進(jìn)而使水溫升高;直到在規(guī)定的溫度范圍內(nèi)進(jìn)行恒溫加熱。本次課設(shè)通過Labview來繪制人機交互界面設(shè)置溫度的上下限。并且通過該界面可以實時顯示當(dāng)前的溫度值,發(fā)出報警信號等,便于操作人員觀察。關(guān)鍵詞:AT89S52單片機 DS18B20溫度傳感器 串口通訊 Labvi

3、ew 步進(jìn)電機 一 設(shè)計任務(wù)、要求和技術(shù)指標(biāo)1.1設(shè)計任務(wù)系統(tǒng)構(gòu)成:系統(tǒng)主要由溫度傳感器,單片機控制系統(tǒng)、鍋爐溫度對象、執(zhí)行器(查找資料自己選擇)等組成。溫度傳感器、控制器、執(zhí)行器可查找資料自行選擇,控制器選擇單片機為控制器。單片機型號自選寫出溫度測量與控制過程,繪制溫度控制系統(tǒng)組成框圖。(1)系統(tǒng)硬件電路設(shè)計自選。溫度測量程序、溫度校準(zhǔn)程序、溫度控制程序等部分組成。1.2主要技術(shù)指標(biāo)(1) 溫度顯示誤差不超過1。(2) 溫度顯示范圍為099。二、總體設(shè)計方案2.1 設(shè)計思路本設(shè)計方案采用AT89S52單片機作為控制器,DS18B20芯片作為溫度傳感器,步進(jìn)電機作為執(zhí)行器構(gòu)成過程控制系統(tǒng),來模

4、擬熱水鍋爐溫度控制系統(tǒng)。通過溫度傳感器DS18B20采集鍋爐水溫,以單片機為核心控制部件將采集到的溫度通過串口輸入到電腦中,在電腦中通過labview組態(tài)軟件來顯示實時溫度和設(shè)置預(yù)置溫度,并根據(jù)實時溫度與預(yù)置溫度的偏差大小控制進(jìn)水閥門的開關(guān),進(jìn)而達(dá)到調(diào)節(jié)鍋灶水溫的目的。當(dāng)實時溫度高于設(shè)定值時,通過電機正轉(zhuǎn)來模擬開大冷水閥,進(jìn)而使水溫降低;當(dāng)溫度低于設(shè)定值時,通過電機反轉(zhuǎn)來模擬關(guān)小冷水閥,進(jìn)而使水溫升高;直到在規(guī)定的溫度范圍內(nèi)進(jìn)行恒溫加熱。本次課設(shè)通過Labview來繪制人機交互界面,設(shè)置所需溫度值。2.2系統(tǒng)總體框圖數(shù)據(jù)顯示上位機 越限報警 MAX232 電平轉(zhuǎn)換 芯片 DS18B20 溫度芯

5、片數(shù)據(jù)傳輸AT89S52 步進(jìn)電機ULN2003 2.3系統(tǒng)框圖 3、 控制器AT89S523.1 AT89S52簡介 AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可程Flash存儲器。使用Atmel公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程亦適于常規(guī)編程器在單芯片上擁有靈巧的8位CPU 和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash、256字節(jié)RAM、32 位I/O 口線、看門狗定時器,2 個

6、數(shù)據(jù)指針、三個16 位 定時器/計數(shù)器、一個6向量2級中斷結(jié)構(gòu)、全雙工串行口,片內(nèi)晶振及時鐘電路。另外AT89S52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工 作。掉電保護(hù)方式下,RAM內(nèi)容被保存振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。電路圖如下:4、 傳感器DS18B20DS18B20是美國DALLAS半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)9-12位的數(shù)字值讀數(shù)方式。DS18B20的性能特

7、點如下: 獨特的單線接口僅需一個端口引腳進(jìn)行通訊 簡單的多點分布應(yīng)用 無需外部器件 可通過數(shù)據(jù)線供電 零待機功耗 測溫范圍-55+125,以0.5遞增。華氏器件-67+2570F,以0.90F 遞增 溫度以9 位數(shù)字量讀出 溫度數(shù)字量轉(zhuǎn)換時間200ms(典型值) 用戶可定義的非易失性溫度報警設(shè)置 報警搜索命令識別并標(biāo)志超過程序限定溫度(溫度報警條件)的器件。DS18B20的測溫原理如圖3.3.3所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器2的脈沖輸入,圖中還隱含著計數(shù)門,當(dāng)計

8、數(shù)門打開時,DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖后進(jìn)行計數(shù),進(jìn)而完成溫度測量.計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55 所對應(yīng)的基數(shù)分別置入減法計數(shù)器1和溫度寄存器中,減法計數(shù)器1和溫度寄存器被預(yù)置在-55 所對應(yīng)的一個基數(shù)值。減法計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行減法計數(shù),當(dāng)減法計數(shù)器1的預(yù)置值減到0時溫度寄存器的值將加1,減法計數(shù)器 1的預(yù)置將重新被裝入,減法計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行計數(shù),如此循環(huán)直到減法計數(shù)器2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫圖2中的斜率累加器用于補償和修正測溫過程

9、中的非線性其輸出用,于修正減法計數(shù)器的預(yù)置值,只要計數(shù)門仍未關(guān)閉就重復(fù)上述過程,直至溫度寄存器值達(dá)到被測溫度值,這就是DS18B20的測溫原理。另外,由于DS18B20單線通信功能是分時完成的,他有嚴(yán)格的時隙概念,因此讀寫時序很重要。系統(tǒng)對DS18B20的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化DS18B20(發(fā)復(fù)位脈沖)發(fā)ROM功能命令發(fā)存儲器操作命令處理數(shù)據(jù)。圖3.3.3 DS18B20測溫原理圖 5、 接口通訊單元51單片機有一個全雙工的串行通訊口,所以單片機和電腦之間可以方便地進(jìn)行串口通訊。進(jìn)行串行通訊時要滿足一定的條件,比如電腦的串口是RS232電平的,而單片機的串口是TTL電平的

10、,兩者之間必須有一個電平轉(zhuǎn)換電路,因此采用專 用芯片MAX232進(jìn)行轉(zhuǎn)換。max232資料簡介:該產(chǎn)品是由德州儀器公司(TI)推出的一款兼容RS232標(biāo)準(zhǔn)的芯片。由于電腦串口rs232電平是-10v +10v,而一般的單片機應(yīng)用系統(tǒng)的信號電壓是ttl電平0 +5v,max232就是用來進(jìn)行電平轉(zhuǎn)換的,該器件包含2驅(qū)動器、2接收器和一個電壓發(fā)生器電路提供TIA/EIA-232-F電平。該器件符合TIA/EIA-232-F標(biāo)準(zhǔn),每一個接收器將TIA/EIA-232-F電平轉(zhuǎn)換成5-V TTL/CMOS電平。每一個發(fā)送器將TTL/CMOS電平轉(zhuǎn)換成TIA/EIA-232-F電平。主要特點 :1、單5

11、V電源工作2、 LinBiCMOSTM工藝技術(shù)3、 兩個驅(qū)動器及兩個接收器4、 ±30V輸入電平5、低電源電流:典型值是8mA6、符合甚至優(yōu)于ANSI標(biāo)準(zhǔn) EIA/TIA-232-E及ITU推薦標(biāo)準(zhǔn)V.287、ESD保護(hù)大于MIL-STD-883(方 法3015)標(biāo)準(zhǔn)的2000V5 1單片機有一個全雙工的串行通訊口,所以單片機和電腦之間可以方便地進(jìn)行串口通訊。進(jìn)行串行通訊時要滿足一定的條件,比如電腦的串口是RS232電平的,而單片機的串口是TTL電平的,兩者之間必須有一個電平轉(zhuǎn)換電路,我采用了專用芯片MAX232進(jìn)行轉(zhuǎn)換,雖然也可以用幾個三極管進(jìn)行模擬轉(zhuǎn)換,但是還是用專用芯片更簡單可

12、靠。3、 系統(tǒng)總工作原理工作原理本設(shè)計方案采用AT89S52單片機作為控制器,DS18B20芯片作為溫度傳感器,步進(jìn)電機作為執(zhí)行器構(gòu)成過程控制系統(tǒng),來模擬熱水鍋爐溫度控制系統(tǒng)。通過溫度傳感器DS18B20采集鍋爐水溫,以單片機為核心控制部件將采集到的溫度通過串口輸入到電腦中,在電腦中通過labview組態(tài)軟件來顯示實時溫度和設(shè)置預(yù)置溫度,并根據(jù)實時溫度與預(yù)置溫度的偏差大小控制進(jìn)水閥門的開關(guān),進(jìn)而達(dá)到調(diào)節(jié)鍋灶水溫的目的。當(dāng)實時溫度高于設(shè)定值時,通過電機正轉(zhuǎn)來模擬開大冷水閥,進(jìn)而使水溫降低;當(dāng)溫度低于設(shè)定值時,通過電機反轉(zhuǎn)來模擬關(guān)小冷水閥,進(jìn)而使水溫升高;直到在規(guī)定的溫度范圍內(nèi)進(jìn)行恒溫加熱。本次課

13、設(shè)通過Labview來繪制人機交互界面,設(shè)置所需溫度值。系統(tǒng)通過DS18B20檢測鍋爐的水溫,DS18B20作為全數(shù)字式的溫度傳感器,將所測溫度以數(shù)字量形式傳給AT89S52單片機,單片機先不直接處理所測溫度,而是將溫度傳給上位機,計算機通過labview對溫度信息進(jìn)行記錄和處理然后又發(fā)送到單片機通過單片機控制執(zhí)行器件。Labview先對溫度進(jìn)行中值濾波以消除隨機誤差。然后再與設(shè)定溫度相減以取得偏差,然后再根據(jù)偏差方向控制步進(jìn)電機的正反轉(zhuǎn)以調(diào)節(jié)冷水閥的開度。進(jìn)而達(dá)到控制鍋爐水溫的目的七、參考文獻(xiàn)1、 馬淑華 單片機原理與接口技術(shù) 北京郵電大學(xué)出版社2、 任彥碩 自動控制系統(tǒng) 北京郵電大學(xué)出版社

14、3、 譚浩強 C語言程序設(shè)計 清華大學(xué)出版社8、 結(jié)束語 通過本次課程設(shè)計,將之前所學(xué)的專業(yè)課單片機原理 、過程控制系統(tǒng) 、虛擬儀器 、C語言等課程有機的結(jié)合到了一起。將所學(xué)的知識付諸于實踐是一件很興奮的事情,這讓我明白了自己所學(xué)的知識與實際的生產(chǎn)生活有著很大的聯(lián)系。但通過本次課設(shè)我也發(fā)現(xiàn)了自己有很多不足之處,對編程缺乏興趣、對一些本專業(yè)的軟件不能熟練的掌握等缺點。因此,在即將到來的畢業(yè)設(shè)計中,我要主動去學(xué)習(xí)一些軟件的用法,不拿不敢興趣為理由,做出一個漂亮的作業(yè)。附錄1 源程序/*主程序*/#include<reg52.h> /包含單片機寄存器的頭文件#include<int

15、rins.h> /包含_nop_()函數(shù)定義的頭文件unsigned char jieshou;unsigned char flag,tltemp;unsigned code FFW8=0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09;unsigned code REV8=0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01;void delay1ms() unsigned char i,j; for(i=0;i<4;i+) for(j=0;j<33;j+) ; void delaynms(unsigned char n

16、) unsigned char i;for(i=0;i<n;i+) delay1ms(); /*步進(jìn)電機正轉(zhuǎn)*/void motor_ffw() unsigned char i; unsigned char j; for (j=0; j<8; j+) /轉(zhuǎn)1*n圈 if(jieshou=3) break; /退出此循環(huán)程序 for (i=0; i<8; i+) /一個周期轉(zhuǎn)45度 P1 = FFWi; /取數(shù)據(jù) delaynms(4); /調(diào)節(jié)轉(zhuǎn)速 /*步進(jìn)電機反轉(zhuǎn)*/void motor_rev() unsigned char i; unsigned int j; for

17、(j=0; j<8; j+) /轉(zhuǎn)1×n圈 if(jieshou=0) break; /退出此循環(huán)程序 for (i=0; i<8; i+) /一個周期轉(zhuǎn)45度 P1 = REVi; /取數(shù)據(jù) delaynms(4); /調(diào)節(jié)轉(zhuǎn)速 /串口初始化void UART_Init(void)SCON = 0x50; /串口工作方式為1 , 串行允許接收TMOD = 0x20; /定時器1 工作在方式2/PCON = 0x80; /SMOD = 1; 波特率加倍TH1 = 0xfd; /波特率 9600bps fosc="11".0592MHzTL1 = 0xf

18、d; ES = 1; /開串口中斷 TR1 = 1; /允許定時器1工作 EA = 1; /開總中斷/串口發(fā)送一個字節(jié)void Uart_SendChar(short int dat) SBUF = dat; /待發(fā)送的數(shù)據(jù)寫入緩沖區(qū) while(!TI); /等待發(fā)送完成 TI = 0; /清零發(fā)送標(biāo)志位/*以下是DS18B20的操作程序*/ sbit DQ=P33;unsigned char time; /設(shè)置全局變量,專門用于嚴(yán)格延時/*函數(shù)功能:將DS18B20傳感器初始化,讀取應(yīng)答信號*/bit Init_DS18B20(void) bit flag; DQ = 1; /先將數(shù)據(jù)線拉

19、高 for(time=0;time<2;time+) /略微延時約6微秒 ; DQ = 0; /再將數(shù)據(jù)線從高拉低,要求保持480960us for(time=0;time<200;time+) /略微延時約600微秒 ; /以向DS18B20發(fā)出一持續(xù)480960us的低電平復(fù)位脈沖 DQ = 1; /釋放數(shù)據(jù)線(將數(shù)據(jù)線拉高) for(time=0;time<10;time+) ; /延時約30us(釋放總線后需等待1560us讓DS18B20輸出存在脈沖) flag=DQ; /讓單片機檢測是否輸出了存在脈沖(DQ=0表示存在) for(time=0;time<20

20、0;time+) /延時足夠長時間,等待存在脈沖輸出完畢 ; return (flag); /返回檢測成功標(biāo)志/*函數(shù)功能:從DS18B20讀取一個字節(jié)數(shù)據(jù)出口參數(shù):dat*/ unsigned char ReadOneChar(void) unsigned char i=0;unsigned char dat; /儲存讀出的一個字節(jié)數(shù)據(jù)for (i=0;i<8;i+) DQ =1; / 先將數(shù)據(jù)線拉高 _nop_(); /等待一個機器周期 DQ = 0; /單片機從DS18B20讀書據(jù)時,將數(shù)據(jù)線從高拉低即啟動讀時序 _nop_(); /等待一個機器周期 DQ = 1; /將數(shù)據(jù)線&q

21、uot;人為"拉高,為單片機檢測DS18B20的輸出電平作準(zhǔn)備 for(time=0;time<2;time+) ; /延時約6us,使主機在15us內(nèi)采樣 dat>>=1; if(DQ=1) dat|=0x80; /如果讀到的數(shù)據(jù)是1,則將1存入datelsedat|=0x00;/如果讀到的數(shù)據(jù)是0,則將0存入dat /將單片機檢測到的電平信號DQ存入ri for(time=0;time<8;time+) ; /延時3us,兩個讀時序之間必須有大于1us的恢復(fù)期 return(dat); /返回讀出的十六進(jìn)制數(shù)據(jù)/*函數(shù)功能:向DS18B20寫入一個字節(jié)數(shù)據(jù)

22、入口參數(shù):dat*/ WriteOneChar(unsigned char dat)unsigned char i=0;for (i=0; i<8; i+) DQ =1; / 先將數(shù)據(jù)線拉高 _nop_(); /等待一個機器周期 DQ=0; /將數(shù)據(jù)線從高拉低時即啟動寫時序 DQ=dat&0x01; /利用與運算取出要寫的某位二進(jìn)制數(shù)據(jù), /并將其送到數(shù)據(jù)線上等待DS18B20采樣 for(time=0;time<10;time+) ;/延時約30us,DS18B20在拉低后的約1560us期間從數(shù)據(jù)線上采樣 DQ=1; /釋放數(shù)據(jù)線 for(time=0;time<

23、1;time+) ;/延時3us,兩個寫時序間至少需要1us的恢復(fù)期 dat>>=1; /將dat中的各二進(jìn)制位數(shù)據(jù)右移1位 for(time=0;time<4;time+) ; /稍作延時,給硬件一點反應(yīng)時間/*函數(shù)功能:做好讀溫度的準(zhǔn)備*/ void ReadyReadTemp(void) Init_DS18B20(); /將DS18B20初始化WriteOneChar(0xCC); / 跳過讀序號列號的操作WriteOneChar(0x44); / 啟動溫度轉(zhuǎn)換 delaynms(200); /轉(zhuǎn)換一次需要延時一段時間 Init_DS18B20(); /將DS18B20

24、初始化WriteOneChar(0xCC); /跳過讀序號列號的操作WriteOneChar(0xBE); /讀取溫度寄存器,前兩個分別是溫度的低位和高位 void main(void) unsigned char TL; /儲存暫存器的溫度低位 unsigned char TH; /儲存暫存器的溫度高位 unsigned char TN; /儲存溫度的整數(shù)部分 unsigned char TD; /儲存溫度的小數(shù)部分 unsigned char N=64; /N 步進(jìn)電機運轉(zhuǎn)圈數(shù) 因為我們的步進(jìn)電機是減速步進(jìn)電機 減速比是1/64 所以這里N=64時 步進(jìn)電機外部的主軸轉(zhuǎn)1圈 UART_Init(); /初始化串口 while(1) /不斷檢測并顯示溫度 ReadyReadTemp(); /讀溫度準(zhǔn)備 TL=ReadOneChar(); /先讀的是溫度值低位TH=ReadOneChar(); /接著讀的

溫馨提示

  • 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

提交評論