基于單片機的溫度測量控制系統設計說明_第1頁
基于單片機的溫度測量控制系統設計說明_第2頁
基于單片機的溫度測量控制系統設計說明_第3頁
基于單片機的溫度測量控制系統設計說明_第4頁
基于單片機的溫度測量控制系統設計說明_第5頁
已閱讀5頁,還剩21頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、 PAGE26 / NUMPAGES26基于單片機的溫度測量控制系統設計目錄1引言2 1.1問題的提出21.1.1什么是溫度控制2 1.2設計目的2 2設計方案3 2.1硬件設計方案3 2.2軟件設計方案3 3硬件設計5 3.1主控制部分AT89S51的設計方案5 3.2溫度采集模塊7 3.3顯示模塊7 4軟件設計9 4.1溫度采集9 4.2鍵盤輸入10 4.3 LCD顯示11 5總結12 6參考文獻15 附錄1設計原理圖14 附錄2設計程序151引言1.1問題的提出溫度是工業生產中主要的被控參數之一,與之相關的各種溫度控制系統廣泛應用于冶金、化工、機械、食品等領域。溫度控制是工業生產過程中經

2、常遇到的過程控制,有些工藝過程對其溫度的控制效果直接影響著產品的質量,因而設計一種較為理想的溫度控制系統是非常有價值的。1.11什么是溫度控制溫度控制系統由溫控器和熱電偶組成,熱電偶檢測溫度并轉換成電信號傳給溫控器,溫控器根據所設定的溫度發出控制信號,溫度高于設定溫度上限停止加熱系統或開啟降溫系統,低于設定溫度下線停止降溫系統或開啟加熱系統。1.2設計目的本設計以AT89C51單片機為核心的溫度控制系統的工作原理和設計方法。溫度信號由溫度芯片DS18B20采集,并以數字信號的方式傳送給單片機。由鍵盤輸入預設溫度,比較實際環境溫度與預設溫度再由單片機做出相應的處理已以達到溫度控制的目的。2設計方

3、案2.1硬件設計方案本課題設計的是一種以AT89C51單片機為主控制單元,以DS18B20為溫度傳感器的溫度控制系統。該控制系統可以實時存儲相關的溫度數據。其主要包括:溫度采集模塊、按鍵處理模塊、LCD顯示模塊、通訊模塊以與單片機最小系統。 本系統由溫度傳感器DS18B20、AT89C51、LCD顯示電路、軟件構成。DS18B20輸出表示攝氏溫度的數字量,然后用51單片機進行數據處理、譯碼、顯示、報警等。系統框圖如圖2.1所示圖2.1溫度傳感器DS18B20把所測得的溫度以數字信號的方式發送到AT89C51單片機上,經過51單片機處理,將把溫度在顯示電路上顯示,本系統顯示器為點陣字符LCD,L

4、M016L液晶模塊。本系統除了顯示溫度以外還可以通過鍵盤預設一個溫度值,對所測溫度進行監控,當溫度高于設定溫度時,啟動蜂鳴器報警;當所測溫度低于設定溫度時,啟動繼電器2S;當所測溫度等于設定溫度時LED等閃爍。 2.2軟件設計方案從軟件的功能不同可分為兩大類:一是監控軟件(主程序),它是整個控制系統的核心,專門用來協調各執行模塊和操作者的關系。二是執行軟件(子程序),它是用來完成各種實質性的功能如測量、計算、顯示、通訊等。每一個執行軟件是一個小的功能執行模塊。這里將各執行模塊一一列出,并為每一個執行模塊進行功能定義和接口定義。各執行模塊規劃好后,就可以規劃監控程序了。首先要根據系統的總體功能選

5、擇一種最合適的監控程序結構,然后根據實時性的要求,合理地安排監控軟件和各執行模塊之間地調度關系。主程序是系統的監控程序,在程序運行的過程中必須先經過初始化。本設計的主程序中將傳感器獲取的溫度與預設溫度進行了比較,并對各種不同的狀態變化的控制做出了設定。流程圖如圖2.2所示。系統在初始化完成后就進入溫度測量程序,實時的測量當前的溫度并通過顯示電路在LCD上顯示。根據硬件設計完成對溫度的控制。按下4*3鍵盤上的OK鍵可以便可以輸入預設溫度。圖2.23硬件設計3.1主控制部分AT89S51的設計方案:AT89C51是一種帶4K字節閃爍可編程可擦除只讀存儲器的低電壓,高性能CMOS8位微處理器,俗稱單

6、片機。AT89C51單片機為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。其主要特性如下:(1) 18位微處理器和控制器,中央處理器是整個單片機的核心部件,能同時 處理8位二進制數據或代碼,CPU負責控制、指揮和調度整個單元系統協調的工作,完成運算和控制輸入輸出功能等操作。 (2)含一個布爾運算器,可直接對數據的位進行操作和運算,特別適用于邏輯控制。 (3)含4KB可重擦寫的可編程閃爍程序存貯器(EEPROM)。 (4)含128*8位的數據存貯器(RAM)。 (5)4個8位(32根)雙向且可獨立尋址的I/O(輸入輸出)接口P0P3。 (6)2個16位的計數器/定時器。 (7)片振蕩器和時鐘

7、電路。 (8)全雙工方式的串行接口(DART)。 (9)兩級中斷優先權的6個中斷源/5個中斷矢量的中斷邏輯。(10)指令集有111條指令,其中64條為單周期指令,支持6種尋址方式。 (11)最高時鐘振蕩頻率可達12MHz,大部分指令執行時間為1us,乘、除指令為4us。 (12)與MCS-51兼容,壽命為1000次寫/擦循環,數據保留時間為10年。 (13)低功耗的閑置和掉電模式,可編程串行通道,三級程序存儲器鎖定。 引腳與功能 AT89C51單片機為40腳雙列直插式封裝結構。其引腳排列順序與引腳符號如圖3.1所示: 圖3.1 AT89C51管腳圖AT89C51重要管腳說明:Vcc:電源電壓G

8、ND:地P0口:P0口是一組8位漏極開路型雙向I/O口,也即地址/數據總線復用口,作為輸出口用時,每位能驅動8個TTL邏輯門電路,對端口寫“1”可作為高阻抗輸入端口。在訪問外部數據存儲器或程序存儲器時,這組口線分時轉換地址(低8位)和數據總線復用,在訪問期間激活部上拉電阻。P1口:P1是一個帶部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為部存在上拉電阻,某個引腳被外部信號校驗期間,P1接收低8位地址。表3.1.1為P1口第二功能。 P1口第二功能 表3.1.1端口

9、引腳第二功能P1.5MOSI(用于ISP編程)P1.6MISO(用于ISP編程)P1.7SCK(用于ISP編程)P2口:P2是一個帶有部上拉電阻的8位雙向I/O口,P2的輸出緩沖級可驅動4個TTL邏輯門電路。對端口寫“1”,通過部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流I。在訪問位地址的外部數據存儲器時,P2口線上的(也即特殊功能寄存器,在整個訪問期間不改變)。P3口:P3口是一組帶有部上拉電阻的8位雙向I/O口。P3口輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。對P3口寫入“1”時,它們被部上拉電阻拉高

10、并可作為輸入端口。作輸入端口時,被外部拉低的P3口將用P3口的第二功能表 表3.1.2 端口功能第二功能端口引腳第二功能RXD(P3.0)串行輸入口T0(P3.4)定時/計數器0外部輸入TXD(P3.1)串行輸出口T1(P3.5)定時/計數器1外部輸入INT0(P3.2)外中斷0WR(P3.6)外部數據存儲器寫選通INT1(P3.3)外中斷1RD(P3.7)外部數據存儲器讀選通上拉電阻輸出電流I。P3口除了作為一般的I/O口線外,更重要的用途是它的第二功能,P3口的第二功能如表3.1.2。 3.2溫度采集模塊由于DS18B20芯片將溫度傳感器、信號放大調理、A/D轉換、接口全部集成于一芯片,與

11、單片機連接簡單、方便且化學性很穩定。它能用做工業測溫元件,且此元件線形較好。在0100攝氏度時,最大線形偏差小于1攝氏度。該芯片直接向單片機傳輸數字信號,便于單片機處理與控制。與AD590相比是更新一代的溫度傳感器,所以溫度傳感器采用DS18B20。DS18B20是DALLAS公司生產的一線式數字溫度傳感器,它具有微型化、低功耗、高性能抗干擾能力、強易配處理器等優點,特別適合用于溫度測控系統,可直接將溫度轉化成串行數字信號(按9位二進制數字)給單片機處理,且在同一總線上可以掛接多個傳感器芯片,溫度測量圍55125,可編程為912位A/D轉換精度,測溫分辨率可達0.0625,被測溫度用符號擴展的

12、16位數字量方式串行輸出,其工作電源既可在遠端引入,也可采用寄生電源方式產生,多個DS18B20可以并聯到三根或者兩根線上,CPU只需一根端口線就能與多個DS18B20通信,占用微處理器的端口較少,可節省大量的引線和邏輯電路。從而可以看出DS18B20可以非常方便的被用于遠距離多點溫度檢測系統。DS18B20部結構主要由四部分組成:64位光刻ROM,溫度傳感器,非揮發的溫度報警觸發器TH和TL,高速暫存器。在硬件上,DS18B20與單片機的連接有兩種方法,一種是Vcc接外部電源,GND接地,I/O與單片機的I/O線相連;另一種是用寄生電源供電,此時UDD、GND接地,I/O接單片機I/O。無論

13、是部寄生電源還是外部供電,I/O口線要接5K左右的上拉電阻。 3.3顯示模塊本設計顯示電路采用LM016L來顯示測量得到的溫度值。LM016L液晶模塊采用HD44780控制器,hd44780具有簡單而功能較強的指令集,可以實現字符移動,閃爍等功能,LM016L與單片機MCU通訊可采用8位或4位并行傳輸兩種方式,hd44780控制器由兩個8位寄存器,指令寄存器(IR)和數據寄存器(DR)忙標志(BF),顯示數RAM(DDRAM),字符發生器ROMA(CGOROM)字符發生器RAM(CGRAM),地址計數器RAM(AC)。IR用于寄存指令碼,只能寫入不能讀出。DR用于寄存數據,數據由部操作自動寫入

14、DDRAM和CGRAM,或者暫存從DDRAM和CGRAM讀出的數據。BF為1時,液晶模塊處于部模式,不響應外部操作指令和接受數據,DDTAM用來存儲顯示的字符,能存儲80個字符碼。CGROM由8位字符碼生成5*7點陣字符160種和5*10點陣字符32種。CGRAM是為用戶編寫特殊字符留用的,它的容量僅64字節,可以自定義8個5*7點陣字符或者4個5*10點陣字符,AC可以存儲DDRAM和CGRAM的地址,如果地址碼隨指令寫入IR,則IR自動把地址碼裝入AC,同時選擇DDRAM或CGRAM。LM016L液晶模塊的引腳功能如表3.2所示:LM016L引腳功能表 表3.3引腳符號功能說明1VSS一般

15、接地2VDD接電源(+5V)3VEE液晶顯示器對比度調整端,接正電源時對比度最弱,接地電源時對比度最高4RSRS為寄存器選擇,高電平1時選擇數據寄存器、低電平0時選擇指令寄存器。5R/WR/W為讀寫信號線,高電平(1)時進行讀操作,低電平(0)時進行寫操作。6EE(或EN)端為使能(enable)端,下降沿使能。7DB0低4位三態、 雙向數據總線 0位(最低位)8DB1低4位三態、 雙向數據總線 1位9DB2低4位三態、 雙向數據總線 2位10DB3低4位三態、 雙向數據總線 3位11DB4高4位三態、 雙向數據總線 4位12DB5高4位三態、 雙向數據總線 5位13DB6高4位三態、 雙向數

16、據總線 6位14DB7高4位三態、 雙向數據總線 7位(最高位)4、軟件設計4.1溫度采集CPU對DS18B20的訪問流程是:先對DS18B20初始化,再進行ROM操作命令,最后才能對存儲器操作,數據操作。DS18B20每一步操作都要遵循嚴格的工作時序和通信協議。如主機控制DS18B20完成溫度轉換這一過程,根據DS18B20的通訊協議,須經三個步驟:每一次讀寫之前都要對DS18B20進行復位,復位成功后發送一條ROM指令,最后發送RAM指令,這樣才能對DS18B20進行預定的操作。流程圖如圖4.1所示圖4.14.2鍵盤輸入3*4的鍵盤與單片機I/O口相連。采用列掃描的方式掃描鍵盤,按下鍵盤,

17、則該按鍵出行列接通,I/O口輸入為低電平,則此時便可將所按鍵的值輸入單片機,經數據處理后便可輸出顯示在LCD上。因為鍵盤的制造工藝不同,在按下鍵盤過程中,若手一晃,結果按鍵就會抬起極小的一段時間,此時單片機檢測到的就是有一個抬手后又按了一個鍵子,這是我們所不希望的,所以在鍵盤輸入時加個按鍵延時以消除抖動。即按鍵后,過一段時發現還是按鍵的就認為一直是按鍵的,此時單片機可以寫程序此為一次按鍵。所以要加除抖是用來防止失誤或手抖造成的錯誤按鍵。圖4.24.3 LCD顯示LM016L的寄存器選擇控制表如表4.3所示LM016L選擇控制表 表4.3RSR/W操作說明00寫入指令寄存器(清除屏等)01都bu

18、sy flag(DB7),以與讀取位址計數器(DB0DB6)值10寫入數據寄存器(顯示各字型等)11從數據寄存器讀取數據注:關于E=H脈沖開始時初始化E為0,然后置E為1,再清0。LM016L顯示的流程圖如圖4.3所示圖4.35總結本次課程設計完成了基于單片機AT89C51的溫度測量與控制系統的設計方案與軟硬件實現。系統包括數據采集模塊,單片機控制模塊,顯示模塊和溫度設置模塊,報警模塊和LED顯示模塊六個部分。文中對每個部分功能、實現過程作了詳細介紹。完成了課題既定的任務,基本達到了預期的目標。能夠進行兩位數溫度的測定與控制。 該系統在輸入了預設溫度后將預設溫度與測定溫度進行比較,當測定溫度高

19、于預設溫度是蜂鳴器啟動一段時間進行報警;當測定溫度等于預設溫度時LED燈閃爍提醒;當測定溫度低于傳感器溫度是繼電器啟動2S。其仿真圖如下圖所示:系統具有如下特點:.采用智能溫度傳感器DS18B20采集溫度數據,簡化了硬件電路設計,溫度采集數據更加精準;.AT89C51單片機的采用,有利于功能擴展;.電路設計充分考慮了系統可靠性和安全性。本次課設軟件和硬件相結合,有相當大的難度,同時也有很大的實用性。在做課程設計的過程中,我的理論和實踐水平都有了較大的提高。并且我熟練掌握了單片機硬件設計和接口技術,同時對溫度傳感器的原理與應用有了一定的了解,掌握了各種控制電路與其相關元器件的使用。圖5.1 測定

20、溫度高于預設溫度圖5.2 測定溫度等于預設溫度圖5.3測定溫度低于預設溫度通過此次對溫度測量與控制系統的設計,我們學會了怎樣把所學的書本知識應用于實踐中去,并學會了如何去思考整個控制系統的軟硬件設計。實踐過程中我們遇到了一些困難,但在解決問題的過程中,我們學會了團隊合作精神和怎樣發現問題、分析問題,進而解決問題。此次課程設計不僅增強了我們學習專業課的興趣,而且給了我們勇氣和信心,更重要的是它為我們以后的學習指明了方向。6參考文獻1雄壯.策.程序設計技術(第三版)M.:大學.2008.02 2毅剛. 單片機原理與應用設計M. :電子工業,2008年3參考網頁資料doc88./p-22.html

21、4參考網頁資料 wenku.baidu./view/2daeb1abdd3383c4bb4cd2d7.html5參考網頁資料wenku.baidu./view/9b7f2f59f01dc281e53af0aa.html6參考網頁資料wenku.baidu./view/3b62db6448d7c1c708a1450d.html7參考網頁資料wenku.baidu./view/6e0ed079a26925c52cc5bfb0.html8胡壽松自動控制原理:國防工業,20005王錦標.方崇智過程計算機控制:清華大學.1997附錄1設計原理圖附錄2設計程序#include#include #defin

22、e uchar unsigned char#defineuint unsigned int#define key_port P1sbit buzzer=P04;sbit led=P01;sbit relay=P00;sbit dq=P05;sbit rs=P32;sbit rw=P31;sbit e=P30;uchar table=0,0,0,0;/0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90;uchar table1=Ceding_T: ;uchar table2=Yuse_T: ;uchar m,flag,shand

23、eng,k;uchar j,temp1,temp2,i;uchar ReadOneChar(void);uchar readtemperature(void);uint mi(uchar a);char biao3;void write_(uchar );void write_dat(uchar dat); /延時程序void delay(uint i)while(i-);void delay_50us(uint i) uchar j;for(;i0;i-)for(j=19;j0;j-); void delay_50ms(uint i) uint j;for(;i0;i-)for(j=6245

24、;j0;j-); /LCD程序void init_lcd(void)/lcd初始化delay_50us(300);write_(0 x38);delay_50us(100);write_(0 x38);delay_50us(100);write_(0 x38);write_(0 x38);write_(0 x08);write_(0 x01);write_(0 x06);write_(0 x0c); void write_(uchar ) /寫指令e=0;rs=0;rw=0;P2=;delay_50us(10);e=1;delay_50us(20);e=0; void write_dat(uc

25、har dat)/寫數據e=0;rs=1;rw=0;P2=dat;delay_50us(10);e=1;delay_50us(20);e=0;/鍵盤掃描程序 /ds18b20程序void init_ds18b20(void) /ds18b20初始化uchar n;dq=1;delay(8);dq=0;delay(80);dq=1;delay(8);n=dq;delay(100);dq=1;void WriteOneChar(uchar dat)uchar i;for(i=0;i=1;delay(4);uchar ReadOneChar(void)uchar i,value;for(i=0;i=

26、1;dq=1;if(dq)value|=0 x80;delay(4);return value;uchar readtemperature(void) /讀溫度函數uchar a,b;init_ds18b20();WriteOneChar(0 xcc);/跳過ROMWriteOneChar(0 x44);/啟動溫度測量delay(300);init_ds18b20(); WriteOneChar(0 xcc);WriteOneChar(0 xbe); /讀溫度a= ReadOneChar();b= ReadOneChar();b4;return b;void jianpan(void) uns

27、igned char temp,a,sign;key_port=0 xff; /寫1初始化key_port=0 xf0; /寫判斷按下初值temp=key_port; /讀狀態a=0; if(temp&0 xF0) != 0 xF0) / 只要有鍵按下,temp!=0 xf0 delay_50us(50);/ 延時去抖動 if(temp&0 xF0) != 0 xF0) key_port=0 xfe; temp=key_port;switch(temp) case(0 xee):a=1;break; case(0 xde):a=2;break; case(0 xbe):a=3;break; c

28、ase(0 x7e):a=4;break; key_port=0 xfd;temp=key_port;switch(temp) case(0 xed):a=5;break; case(0 xdd):a=6;break; case(0 xbd):a=7;break; case(0 x7d):a=8;break; key_port=0 xfb; temp=key_port;switch(temp) case(0 xeb):a=9;break; case(0 xdb):a=10;break; case(0 xbb):a=11;break; case(0 x7b):a=12;break; switch(a)case(0):sign=N;break;case(1):sign=1;break;case(2):sign=2;break;case(3):sign=3;break;case(4):sign=0;break;case(5):sign=4;

溫馨提示

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

評論

0/150

提交評論