江蘇省南京工程高等職業(yè)學校電子工程系 陳 娟
文章以AT89C51單片機為核心,設(shè)計了一種智能恒溫系統(tǒng),能使環(huán)境溫度恒定在25℃~28℃之間。通過在Keil Vision4環(huán)境下編程,并利用Proteus軟件仿真驗證,實現(xiàn)的功能為:當溫度高于28℃時,則聲光報警,同時直流電機正轉(zhuǎn)表示降溫,1602液晶屏顯示器顯示“Cooling”和當前溫度信息;當溫度低于25℃時,則聲光報警,同時直流電機反轉(zhuǎn)表示升溫,1602液晶屏顯示器顯示“Warming”和當前溫度信息。該系統(tǒng)對進一步完成實際恒溫電路有著重要的意義。
恒溫系統(tǒng)就是能夠保持特定環(huán)境中的溫度在一個固定的范圍內(nèi)或者數(shù)值不變的控制系統(tǒng)。隨著科技的發(fā)展,人民生活水平的提高,越來越多的場合都用到了恒溫系統(tǒng),比如:食物的儲存、蔬菜的種植、動物的飼養(yǎng),以及生物實驗室等一些特殊的工作環(huán)境等。本文基于AT89C51單片機設(shè)計了一種智能恒溫系統(tǒng),在Keil Vision4環(huán)境下編程,并利用Proteus軟件仿真實現(xiàn)。
Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng)。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,可以進行軟件仿真,也可以利用硬件仿真器進行實時仿真。
Proteus軟件是英國Lab Center Electronics公司出版的EDA工具軟件。它不僅具有其它EDA工具軟件所具有的仿真功能,而且還能仿真單片機及外圍器件。Proteus是唯一將電路仿真軟件、PCB設(shè)計軟件和虛擬模型仿真軟件三合一的設(shè)計平臺。并且在編譯方面,它也支持IAR、Keil和MATLAB等多種編譯器。
系統(tǒng)的硬件電路主要由AT89C51單片機、DS18B20溫度傳感器電路、直流電機控制電路、1602液晶屏顯示電路和聲光報警電路組成。系統(tǒng)框圖如圖1所示,DS18B20溫度傳感器檢測環(huán)境溫度,并將溫度數(shù)據(jù)傳輸給單片機,單片機對溫度數(shù)據(jù)進行處理,根據(jù)處理結(jié)果控制各電路工作——直流電機正轉(zhuǎn)(表示制冷)、直流電機反轉(zhuǎn)(表示加熱)、1602顯示當前的狀態(tài)和溫度、溫度超出恒溫范圍時啟動聲光報警電路。
圖1 系統(tǒng)的結(jié)構(gòu)框圖
復(fù)位電路由電容串聯(lián)電阻構(gòu)成,一般情況下,單片機RST引腳的高電平持續(xù)兩個機器周期以上就將復(fù)位,所以RC取值的原則就是可以在RST引腳上產(chǎn)生不少于兩個機器周期的高電平。如圖2所示,在本電路中,采用了一個獨立按鍵進行手動復(fù)位,當復(fù)位電路中的獨立按鍵被按下時,其上連接的電解電容開始放電,對單片機的RST引腳輸出高電平,使得單片機復(fù)位。
圖2 單片機的復(fù)位電路和晶振電路
晶振電路的作用是為單片機提供時鐘信號,并且單片機有內(nèi)部時鐘方式和外部時鐘方式兩種。在本系統(tǒng)中采用的是內(nèi)部時鐘方式,即在單片機的XTAL1和XTAL2兩端連接一個由晶振和C1、C2兩個諧振電容構(gòu)成的時鐘電路,要注意選擇合適的電容量才能滿足晶振的起振要求,晶振才能正常工作。
圖3 DS18B20溫度傳感器電路
DS18B20是DALLAS公司生產(chǎn)的1-wire式單總線數(shù)字溫度傳感器,現(xiàn)場溫度直接以1-wire數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性,溫度測量范圍為-55~+125℃。并且DS18B20溫度傳感器可以根據(jù)不同場合進行不同的外觀改造,從而可以使其應(yīng)用于不同場合。其正常工作時3腳接5V的電源,1腳接地,2腳在本系統(tǒng)中連接到了單片機的P1.7位,將檢測到的環(huán)境溫度數(shù)據(jù)通過P1.7傳輸給單片機。
本系統(tǒng)中采用L298驅(qū)動直流電機的轉(zhuǎn)動,L298兼容標準的TTL邏輯,是高電壓、高電流雙全橋驅(qū)動器,內(nèi)部包含有4通道邏輯驅(qū)動電路,能夠驅(qū)動感性負載,如繼電器、直流電機、步進電機等。在本系統(tǒng)中,當外部溫度大于28℃時,直流電機在L298的驅(qū)動下正轉(zhuǎn),模擬降溫過程;當外部溫度小于25℃時,直流電機反轉(zhuǎn),模擬升溫過程。L298的IN1、IN2分別連接單片機的P1.0、P1.1。當IN1=1,IN2=0時,直流電機正轉(zhuǎn);當IN1=0,IN2=1時,直流電機反轉(zhuǎn);L298的ENA連接到單片機的P1.2,當需要調(diào)節(jié)直流電機的轉(zhuǎn)速時,使P1.2輸出不同占空比的PWM波形即可。
本系統(tǒng)采用1602液晶屏顯示,1602的含義是每行顯示16個字符,一共可以顯示兩行字符。系統(tǒng)運行時,第一行居中顯示環(huán)境溫度的狀態(tài),如當溫度低于25℃時,第一行顯示“Warming”,表示當前的溫度低于正常溫度,需要升溫;當溫度高于28℃時,第一行顯示“Cooling”,表示當前的溫度高于正常溫度,需要降溫;當溫度在25℃~28℃之間時,第一行顯示“Normal”,表示當前的溫度為正常的溫度。第二行實時地顯示當前檢測到的溫度。
圖4 直流電機控制電路
圖5 系統(tǒng)流程圖
圖6 溫度為29℃時的測試情況
聲光報警電路主要由一個紅色的發(fā)光二極管、一個藍色的發(fā)光二極管和一個蜂鳴器組成。當DS18B20溫度傳感器檢測到當前的溫度高于28℃時,紅色的發(fā)光二極管被點亮,同時蜂鳴器發(fā)出叫聲;當DS18B20檢測到當前的溫度低于25℃時,藍色的發(fā)光二極管被點亮,同時蜂鳴器發(fā)出叫聲。
首先對系統(tǒng)進行初始化,然后讀取DS18B20傳感器檢測到的環(huán)境溫度數(shù)據(jù),當溫度高于28℃時,液晶屏顯示“Cooling”(制冷)和當前溫度,點亮紅色的警報燈并使蜂鳴器鳴叫,同時直流電機正轉(zhuǎn)表示制冷降溫;當溫度低于25℃時,液晶屏顯示“Warming”(加熱)和當前溫度,點亮藍色的警報燈并使蜂鳴器鳴叫,同時直流電機反轉(zhuǎn)表示加熱升溫;當溫度處于25℃-28℃之間,液晶屏顯示“Normal”(正常)和當前溫度。
}//如果溫度大于28℃,顯示“Cooling”和當前溫度,點亮紅色的警報燈并使蜂鳴器鳴叫,同時直流電機正轉(zhuǎn)。
經(jīng)過在Proteus軟件中,對系統(tǒng)進行仿真,設(shè)置DS18B20的溫度為三種不同范圍溫度時,測試結(jié)果如下:
(1)當溫度調(diào)節(jié)為29℃,即高于28℃時,1602液晶顯示屏的第一行顯示“Cooling”,表示需要降溫,第二行顯示當前的溫度為29℃;這時紅色LED燈被點亮、蜂鳴器報警,并且直流電機正轉(zhuǎn)。
(2)當溫度調(diào)節(jié)為24℃,即低于25℃時,1602液晶顯示屏的第一行顯示“Warming”,表示需要升溫,第二行顯示當前的溫度為24℃;這時藍色LED燈被點亮、蜂鳴器報警,并且直流電機反轉(zhuǎn)。
(3)當溫度調(diào)節(jié)為26℃,即溫度處于25℃~28℃之間時,1602液晶顯示屏的第一行顯示“Normal”,表示此溫度在正常范圍內(nèi),第二行顯示當前的溫度為26℃;這時聲光報警電路和直流電機都停止工作。
本系統(tǒng)在Keil Vision4環(huán)境下,基于Proteus軟件設(shè)計了一個恒溫系統(tǒng),通過仿真測試,能夠準確地顯示溫度信息,并且實現(xiàn)了用直流電機對環(huán)境溫度進行模擬降溫和模擬升溫,同時能正確地發(fā)出報警信號。該系統(tǒng)的實現(xiàn)對后續(xù)用實際電路板實現(xiàn)恒溫系統(tǒng)具有重要的意義。