《溫度控制系統(tǒng)的設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《溫度控制系統(tǒng)的設(shè)計(13頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、
<<溫度控制系統(tǒng)的設(shè)計>>
課程設(shè)計報告
題 目:
專 業(yè):
年 級:
學(xué) 號:
學(xué)生姓名:
聯(lián)系電話:
完成日期: 2014年 12月 15日
摘 要
利用AT89C51單片機(jī),溫度傳感器DS18B20,報警器,數(shù)碼管等元件,制作溫
2、度控制系統(tǒng)硬件電路,設(shè)計系統(tǒng)的軟件,實現(xiàn)對溫度的有效控制。并經(jīng)過反復(fù)的模擬運(yùn)行、調(diào)試,修改簡化了軟件系統(tǒng),系統(tǒng)達(dá)到溫度檢測精度1度的要求,具有控制簡便、組態(tài)簡單、和操作靈活等優(yōu)點(diǎn)。
關(guān)鍵詞:單片機(jī);溫度傳感器;溫度控制
ABSTRACT
Use AT89C51 microcontroller, a temperature sensor DS18B20, alarm, digital tube and other components, making the temperature control system hardware circuit design of
3、the system software, to achieve effective control of the temperature. And after repeated simulation run, debug, modify simplifies software system, the system reaches the temperature detection accuracy of 1 degree, with a simple control, simple configuration, and flexible operation.
Key Words:MCU;te
4、mperature sensor;Temperature control.
目 錄
摘 要 II
ABSTRACT II
1 設(shè)計要求及方案選擇 1
1.1設(shè)計要求 1
1.2方案選擇 1
2 理論分析與設(shè)計 2
2.1溫度測量電路的分析及設(shè)計 2
2.2報警電路的分析及設(shè)計 2
3 電路設(shè)計 3
3.1硬件電路的設(shè)計 3
3.2軟件的設(shè)計 4
4 系統(tǒng)測試 9
4.1調(diào)試所用的基本儀器清單 9
4.2調(diào)試結(jié)果 9
4.3測試結(jié)果分析 9
5 總結(jié) 9
參考文獻(xiàn) 10
1 設(shè)計要求及方案選擇
1.1設(shè)計要求
該溫度自動控制系統(tǒng)采用AT89
5、C51單片機(jī)為主控芯片,傳感器采用數(shù)字溫度傳感器DS18B20,實現(xiàn)對溫度的檢測和控制。
主要技術(shù)指標(biāo):可檢測的范圍為-55℃—+125℃。
該溫度自動控制系統(tǒng)由溫度信號采樣電路,鍵盤及顯示電路,溫度控制電路,報警電路,時鐘信號電路等構(gòu)成,并運(yùn)用PID算法進(jìn)行溫度控制和調(diào)整。
根據(jù)設(shè)計任務(wù),詳細(xì)分析溫度自動控制系統(tǒng)的設(shè)計需求,并進(jìn)行軟硬件的總體設(shè)計。由鍵盤電路輸入設(shè)定溫度信號給單片機(jī),溫度信號采集電路采集現(xiàn)場溫度信號給單片機(jī),單片機(jī)根據(jù)輸入與反饋信號的偏差進(jìn)行PID計算,輸出反饋量給溫度控制電路,實現(xiàn)升溫。顯示電路實現(xiàn)現(xiàn)場溫度的實時監(jiān)控。并且完成全部硬件和軟件的設(shè)計,并利Pr
6、oteus仿真軟件對設(shè)計結(jié)果進(jìn)行驗證。
1.2 方案選擇
方案如圖1所示,此方案選用DS18B20芯片進(jìn)行溫度采集及模擬量與數(shù)字量之間的轉(zhuǎn)換,并直接輸出數(shù)字量,無需信號放大,且只占用一根口線,然后將其送數(shù)碼管顯示。4X4矩陣式鍵盤,首先要對其進(jìn)行鍵盤掃描,判斷是否有鍵按下,如有鍵按下,要判斷是那個鍵按下,確定鍵值,然后對其進(jìn)行輸入,把最后設(shè)定的溫度值送給數(shù)碼管進(jìn)行顯示。如果對一個溫度值已經(jīng)設(shè)定完畢后,無需再按任何鍵即有效,如果溫度值設(shè)定得不合理,可對溫度進(jìn)行重新設(shè)定,溫度的上下限可由軟件編程設(shè)定,這樣就完成了對溫度的總體設(shè)置。對于數(shù)碼管顯示模塊,采用了動態(tài)顯示的方法,在程序的設(shè)計中也相應(yīng)的
7、采用動態(tài)顯示方法對其進(jìn)行編寫。首先把設(shè)定的(或采集到)數(shù)據(jù)的十進(jìn)制數(shù)進(jìn)行字節(jié)拆分,分別求出要顯示個位數(shù)、十位數(shù)、百位數(shù)(顯示實際溫度時,還要求出十分位),然后將其送至數(shù)碼管顯示。顯示設(shè)定值還是實際值,可由按鍵進(jìn)行切換。對于溫度控制模塊,首先是把采集的數(shù)據(jù)和設(shè)定的溫度上下限進(jìn)行比較,如低于下限值或高于上限值,蜂鳴器警報,再把實際溫度和設(shè)定的溫度比較,決定加熱與否以及加熱時間的控制。單片機(jī)軟件編程靈活、自由度大,可用軟件編程實現(xiàn)各種控制算法和邏輯控制,不需要向外擴(kuò)展存儲器,可使系統(tǒng)整體結(jié)構(gòu)更為簡單。信號的傳遞路線短,可以提高系統(tǒng)精度。
加熱裝置
雙向可控硅
光電耦合器
報警器
鍵盤設(shè)定溫
8、度
DS18B20
數(shù)碼管顯示
單
片
機(jī)
圖 1 系統(tǒng)結(jié)構(gòu)圖
2 理論分析與設(shè)計
2.1溫度測量電路的分析及設(shè)計
DS18B20通過P1.2口和AT89C51進(jìn)行通訊。GND為接地線, DQ為數(shù)據(jù)輸入輸出接口。VCC為電源接口,既可由數(shù)據(jù)線提供電源,又可由外部提供電源,范圍3.0~5.5V。其接口電路如圖2所示
圖2 DS18B20接口電路
2.2報警電路的分析及設(shè)計
三個LED與蜂鳴器分別通過P3.0、P3.1、P3.2、P3.3與單片機(jī)通訊,VCC電源范圍3.0~5.5V當(dāng)P3=0時LED和蜂鳴器工作,當(dāng)溫度低于85℃時LED-YELLOW亮,蜂鳴
9、器響,表示溫度過低;當(dāng)溫度介于85℃-95℃之間時,LED-GREEN亮,表示溫度正常;當(dāng)溫度高于95℃時LED-RED亮,蜂鳴器響,表示溫度過高。
圖3 報警電路
3 電路設(shè)計
3.1 硬件電路的設(shè)計
3.2 軟件的設(shè)計
#include
#define uchar unsigned char
#define uint unsigned int
sbit DQ = P1^2; //定義通信端口
uint tmp;
bit sign; //正負(fù)溫度的標(biāo)志
//數(shù)碼管字形顯示
uchar disp[]={0x3f,
10、0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(uint i)
{
while(i--);
}
/*初始化函數(shù)*/
Init_DS18B20(void)
{
uchar x=0;
DQ = 1; //DQ復(fù)位
delay(4); //稍做延時
DQ = 0; //單片機(jī)將DQ拉低
delay(100); //精確延時 大于 480us
DQ = 1; //拉高總線
delay(20);
x=DQ;
11、 //稍做延時后 如果x=0則初始化成功 x=1則初始化失敗
delay(20);
}
/*讀一個字節(jié) */
RChar(void)
{
uchar i=0;
uchar dat = 0;
for (i=8;i>0;i--)
{
DQ = 0; // 給脈沖信號
dat>>=1;
DQ = 1; // 給脈沖信號
if(DQ)
dat|=0x80;
delay(10);
}
return(dat);
}
/*寫一個字節(jié) */
WChar(uchar dat)
{
12、
uchar i=0;
for (i=8; i>0; i--)
{
DQ = 0;
DQ = dat&0x01;
delay(10);
DQ = 1;
dat>>=1;
}
}
/*讀取溫度*/
ReadTemp(void)
{
uchar a=0;
uchar b=0;
uint t=0;
Init_DS18B20();
WChar(0xCC); // 跳過讀序號列號的操作
WChar(0x44); // 啟動溫度轉(zhuǎn)換
delay(10);
Init_DS18B20();
WChar(0xCC); //跳過讀序號列號的操
13、作
WChar(0xBE); //(讀取溫度寄存器) 前兩個就是溫度
a=RChar(); //低八位
b=RChar(); //高八位
t = (b*256+a)*25;
return( t >> 2 );
}
void baojin()
{
if (tmp<8500)
{
P3=0xf6;
}
else if(tmp>=8500&tmp<=9500)
{
P3=0xfd;
}
else if(tmp>9500)
{
P3=0xf3;
}
}
main()
{
uchar counter=1
14、;
while(1)
{
//保證測量頻率較低,數(shù)碼管正常顯示
if(counter-- == 0)
{
tmp = ReadTemp();
counter = 20;
}
P2 = 0xff;
P0 = disp[tmp%10];
P2 = 0xfe;
delay(500);
P2 = 0xff;
P0 = disp[tmp/10%10];
P2 = 0xfd;
delay(500);
P2 = 0xff;
P0 = disp[tmp/100%10]|0x80;
15、P2 = 0xfb;
delay(500);
P2 = 0xff;
P0 = disp[tmp/1000%10];
P2 = 0xf7;
delay(500);
P2 = 0xff;
P2=0xef;
P0=disp[tmp/10000%10];
delay(500);
baojin();
}
}
4 系統(tǒng)測試
4.1調(diào)試所用的基本儀器清單
PC機(jī)一臺、Keil4軟件、proteus仿真軟件
4.2調(diào)試結(jié)果
DS18B20顯示溫度
數(shù)碼管顯示溫度
LED顯示狀態(tài)
蜂鳴器狀態(tài)
84℃
084.00
16、LED-YELLOW亮
LED-GREEN不亮
LED-RED不亮
響
92℃
092.00
LED-YELLOW不亮
LED-GREEN亮
LED-RED不亮
不響
98℃
098.00
LED-YELLOW不亮
LED-GREEN不亮
LED-RED亮
響
4.3測試結(jié)果分析
該系統(tǒng)可以實現(xiàn)溫度檢測,溫度檢測精度可以達(dá)到1℃,但是在實時性方面不足,溫度顯示有明顯的延遲。在精度要求不高的測量可以用本系統(tǒng)完成。
5 總結(jié)
本系統(tǒng)以AT89S51單片機(jī)為控制核心,利用其強(qiáng)大的處理能力,以及豐富的外圍接口,再配合DS18B20溫度傳感器、7段數(shù)碼管、LED
17、、及蜂鳴器等,很好的完成了溫度的檢測與顯示,并當(dāng)系統(tǒng)檢測到溫度高于設(shè)定的溫度上限時準(zhǔn)確發(fā)出高溫報警及燈光提示;當(dāng)溫度低于設(shè)定的溫度下限發(fā)出低溫報警及燈光提示。因此本系統(tǒng)已基本符合了設(shè)計要求,在溫度控制方面具有一定的先進(jìn)性,可用于一般的溫度檢測控制。
參考文獻(xiàn)
[1] 陳忠孝.單片機(jī)原理及應(yīng)用.西北大學(xué)出版社,2011.11
[2] 李建民.單片機(jī)在溫度控制系統(tǒng)中的應(yīng)用[J].江漢大學(xué)學(xué)報.1999,(3),60-62
[3] 卿燕玲,李蕾.基于單片機(jī)的溫度測控系統(tǒng)的設(shè)計與實現(xiàn)[J].信息技木與信息化.2006,(3), 78-80
[4] 敬嵐,朱海君一等.基于AT89C51的自動測量和控制系統(tǒng)設(shè)計[J].儀表技術(shù)與傳感器,2004,(12),35-37
[5] 劉綠山,劉建群等.基于AT89S52單片機(jī)的溫度控制系統(tǒng)[J].微計算機(jī)信息,2007,(17),98-100