王麗芬
摘要:監控系統的設計基于STC89C52單片機,利用光敏、光電等多種用于檢測環境參數的傳感器對禽舍環境進行實時監控,以維持舍內適宜禽類生長的環境參數,節省勞動力,提高飼養收益。整體系統采用模塊化設計,以溫度光照監控模塊為例進行詳細設計,具有操作簡單、工作穩定、便于調試等優點。
關鍵詞:單片機;傳感器;溫度光照;實時監控
中圖分類號:S831.4+5;S126 文獻標識碼:A 文章編號:0439-8114(2013)06-1432-03
隨著養殖業的發展、科技的進步,人們越來越傾向于利用現代技術自動化管理禽舍環境,使禽舍能夠投入最少的勞動力而產生最大的效益。禽舍環境自動控制系統[1]的工作原理是人工上電后,裝置上的溫度、光感、煙霧等傳感器實時檢測室內環境,當環境的某一參數偏離預設值時,系統便會自動執行相應動作,以使環境恢復到正常水平。自動控制系統的應用可大大減少人工勞力,并可高效率改善禽舍內環境,進而促進家禽生長,提高產蛋率[2]。
1 系統硬件設計
系統硬件的設計大致包括中央控制單元、溫度采集部分、光照采集部分、溫度顯示部分四大硬件部分(圖1)。系統溫度光照監控部分所需器件包括STC89C52單片機(圖2)、DS18B20數字溫度傳感器、光敏電阻、74LS245驅動芯片、ADC0804數模轉換器、74HC573鎖存器、4位LED數碼管、繼電器、發光二極管、直流風扇等。
1.1 中央控制單元——STC89C52單片機
STC89C52單片機[3]是基于80C51內核,采用PHILIPS高密度CMOS技術設計制造,包含中央處理單元、8kB非異失性Flash、只讀程序存儲器EPROM、256B內部數據存儲器RAM、32個雙向輸入/輸出(I/O)口、2個16位定時器/計數器和中斷源,采用4層優先級中斷嵌套結構,可用于多機通信的串行I/O口、I/O擴展、片內時鐘振蕩電路。其最小系統包括復位電路和由2個電容及1個12M晶振組成的振蕩器。STC89C52采用低功耗靜態設計,寬工作頻率為DC-33MHz,寬工作電壓范圍為2.7~5.5 V,兩種軟件方式選擇電源空閑和掉電模式。空閑模式下,凍結CPU而RAM定時器、串行口和中斷系統維持其功能。由于是靜態設計,所以掉電模式下,時鐘振蕩停止,RAM數據得以保存,芯片內其他功能停止。CPU喚醒后,從時鐘斷點處恢復執行程序。同時,STC89C52有PLCC44、DIP40和LQFP44等多種封裝形式,以適應不同產品的需求[4]。
1.2 溫度的采集、顯示
DS18B20數字溫度傳感器設置于禽舍內,用于實時采集溫度參數。上電后,單片機通過P1.7口向DS18B20的DQ端寫開啟溫度采集及轉換命令字,溫度傳感器開始工作。傳感器所采集到的室內模擬溫度量值經由內部模數轉換后,向中央控制單元傳送數字化溫度值,供單片機分析處理[5]。DS18B20數字溫度傳感器將采集到的實時溫度傳送給控制單元后,由單片機P0口外設的4位8段共陰極LED數碼管實時顯示出來。另外數碼管還兼有由4組按鍵來顯示可自行設置的上、下限溫度值。數碼管的顯示采用動態驅動方式,應用兩片74HC573鎖存器[6]分別控制4位位選端及8位段選端。鎖存器的輸入數據由P0口提供,并由軟件動態掃描4位數碼管,控制何位顯示、顯示何值。由于掃描速度快、周期短及人眼視覺停留,其效果與靜態顯示相同。
1.3 光照的采集
利用置于禽舍窗外的光敏電阻監測外界光照強度。光敏電阻利用不同光照強度下,其自身電阻值不同的特性(入射光強,電阻減小;入射光弱,電阻增大),將光照強度模擬信號首先傳送給模數轉換芯片ADC0804,轉換成量化的光照值經P1口傳送至處理單元。此時處理單元將與開燈與否的臨界值進行比較,從而發出相應指令。
2 系統的軟件設計
系統采用了現在流行的C語言編程[7],易于實現、移植和擴展。
2.1 流程圖的設計
溫度監控流程和光照監控流程分別見圖3和圖4。
2.2 設計的部分程序
溫度監控子程序:
#include
sbit DUAN=P2^6;//74HC573的LE端,LED的段選端
sbit WEI=P2^7;//74HC573的LE端,LED的位選端
sbit TMDAT=P1^7;//DS1820溫度接口
sbit fengshan=P2^2;//風扇接口
sbit jiare=P2^3;//加熱器接口
sbit gao=P3^2;//顯示上限溫度值按鍵接口
sbit di=P3^4;//顯示下限溫度值按鍵接口
sbit jia=P3^6;//升高上下限溫度值按鍵接口
sbit jian=P3^7;//降低上下限溫度值按鍵接口
void main()
{while(1)
{get_temperature();//獲得溫度
if(tempdf≥8)tempdf=5;//0.5°精度顯示
else tempdf=0;
if(gao==0&&di==1)
{xianshigao(); //顯示溫度上限值
if (jia==0){delay(20);i=i+1;}
else if(jian==0){delay(20);i=i-1;}}
if(gao==1&&di==0)
{xianshidi();//顯示溫度下限值
if (jia==0){delay(20);j=j+1;}
else if(jian==0){delay(20);j=j-1;}}
if(gao==1&&di==1)
{disp_temp();//顯示溫度
if( tempint≥i)//可以自己設定報警的溫度
{ fengshan=0;delay(62);}//溫度超過上限值開風扇
else fengshan=1;}
if(tempint≤j)//溫度低于下限值開加熱器
{jiare=1;delay(62);}
else jiare=0;} }[11]
光照監控子程序:
#include"reg52.h"
#include"intrins.h"
#include"math.h"
#define uint unsigned int//定義無符號整型變量
#define uchar unsigned char//定義無符號字符變量
sbit ADC0804_SC=P2^0;//模數轉換器片選接口
sbit ADC0804_RD=P3^7;//模數轉換器讀接口
sbit ADC0804_WR=P3^6;//模數轉換器片寫口
sbit kaideng=P2^2;//燈光控制端口
void main()
{uchar ADC0804_data;
ADC0804_SC=0;//讓SC一直為低
while(1)
{adc0804_start();//啟動ADC0804
delay(5);//延時
ADC0804_RD=0;//RD為低
delay(5);//延時
ADC0804_data=P1;//將ADC0804的數據傳出
delay(5); //延時
ADC0804_RD=1;//RD為高
delay(5);//延時
if(ADC0804_data≤100)//采光量不足,開燈操作
kaideng=1;
else kaideng=0; } }
3 小結
該系統設計的初衷是整合多路傳感器,以最低成本對禽舍環境參數進行實時監控,以維持舍內適宜禽類生長的環境參數,智能化管理,提高效益。在完成硬件電路的焊接、測試及軟件程序的編寫與調試后,經過反復的模擬試驗、觀測分析,該模塊大致可實現對舍內氣體、溫度、光照等環境參數的有效監測與控制功能。
參考文獻:
[1] 趙 艷,張廣慶,薛其巖,等.雞舍內有害氣體的控制措施[J].山東畜牧獸醫,2010(2):57-58.
[2] 王自然.光照與溫度對雞產蛋率的影響[J]. 養殖技術顧問,2005(3):5.
[3] 張毅坤,陳善久,裘雪紅.單片微型計算機原理及應用[M].西安:西安電子科技大學出版社,1998.
[4] 余錫存,曹國華.單片機原理及接口技術[M].西安:西安電子科技大學出版社,2007.
[5] 余成波.傳感器與自動檢測技術[M].北京:高等教育出版社,2009.
[6] 曹漢房.數字電路與邏輯設計基礎[M].北京:電子工業出版社,2007.119-120.
[7] 譚浩強.C程序設計[M].北京:清華大學出版社,2005.95-121.