AT89C2051雙向溫度監(jiān)控系統(tǒng)的設計
1 引言
某些應用場合需要監(jiān)測溫度,要求溫度保持在一定范圍內。例如農作物溫床育苗在20℃~30℃,家禽孵化在37℃~40℃,菌種培育在23℃~28℃。而普通單向超溫報警難以滿足要求,因此,提出一種利用溫度傳感器與單片機應用系統(tǒng)的雙向超溫控溫系統(tǒng)設計方案。該系統(tǒng)設計能顯示超下限或超上限溫度,且可預置超溫點。
2 系統(tǒng)設計原理
圖l所示為系統(tǒng)設計框圖。首先通過鍵盤輸入溫度允許變化的上下限值,在正常情況下,應保持溫度介于上下限值之間,當溫度高于上限值時,則降溫并報警;當溫度低于下限值時,則升溫并報警。
單片機控制器內部定時器每隔一定時間溫度值采樣一次,并產生一次定時中斷。定時器中斷服務程序主要對所采樣的溫度值與設定的溫度上、下限值分別比較,判斷是否達到溫度上、下限值,從而決定是升溫還是降溫并報警,實現(xiàn)溫度的雙向自動控制,還可實現(xiàn)故障報警及通過鍵盤改變設定溫度的上、下限值。
熱敏電阻采用半導體感溫元件,它具有負電阻溫度特性,當溫度升高時,電阻值減小。為此向熱敏電阻施加恒定電流,測量電阻兩端電壓,然后通過測溫公式求得溫度:T=T0-KUT,其中T為被測溫度,T0為與熱敏電阻特性有關的溫度參數(shù),K為與熱敏電阻特性有關的系數(shù),UT為熱敏電阻兩端的電壓。K和T0為常數(shù)測得熱敏電阻兩端的電壓,可計算熱敏電阻的環(huán)境溫度。這樣就將電阻隨溫度的變化轉換為電壓隨溫度的變化,該電壓再經(jīng)A/D轉換器轉換變成數(shù)字量,通過軟件計算出溫度值。
3 硬件電路
本系統(tǒng)設計是由AT89C2051單片機、AD574A、可編程鍵盤與接口器件8279、溫度傳感器、LED顯示器、看門狗電路等組成。
3.1 AT89C2051單片機
AT89C205l是ATMEL公司生產的高性價比的8位單片機,該器件采用80C3l內核指令系統(tǒng),與MCS一51完全兼容;內含2 KB的Flash可作為用戶程序存儲器和128字節(jié)的隨機存取數(shù)據(jù)存儲器(RAM);內含2個程序加密位,可防止程序非法讀出,安全性好;其低壓、高性能CMOS的8位機與MCS一5l指令和輸出引腳相兼容,構成一個最小的測量系統(tǒng);有20個引腳,15個雙向輸入/輸出(I/O)端口,其中Pl是一個完整的8位雙向I/O口,2個外中斷口,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,1個模擬比較放大器;AT89C2051的時鐘頻率可為零,即具備可用軟件設置的睡眠省電功能,系統(tǒng)的喚醒方式有RAM、定時/計數(shù)器、串行口和外中斷口,系統(tǒng)喚醒后即進入繼續(xù)工作狀態(tài);省電模式中,凍結片內RAM,時鐘停止振蕩,所有功能停止,直至系統(tǒng)被硬件復位才可繼續(xù)運行?;贏T89C2051具有諸多性能,因此,本系統(tǒng)設計采用AT89C205l作為控制器。
3.2 A/D轉換器AD574A
本系統(tǒng)設計采用ADI公司生產的12位逐次逼近式A/D轉換器AD574A。AD574A片內包含高精度的參考電壓和時鐘電路,具有外接元件數(shù)目少,功耗低等,以及具有自動校零和自動極性轉換等功能,使其在無需任何外部電路和時鐘信號的條件下,完成A/D轉換,其轉換時間為35μs。
3.3 掉電保護電路與看門狗電路
為了使系統(tǒng)工作可靠并保存設定數(shù)據(jù),系統(tǒng)需要具有復位功能。掉電保護電路與系統(tǒng)復位電路利用MAX813L監(jiān)控電路,在軟件的配合下監(jiān)控電源電壓、CPU的工作狀態(tài)。一旦出現(xiàn)死機、程序“跑飛”死循環(huán)或電源電壓降到系統(tǒng)設定位值等故障時,就需要系統(tǒng)復位。MAX813L與AT89C205l的連接如圖2所示。MR經(jīng)過一個復位按鈕接地。該監(jiān)控電路的主要功能為:系統(tǒng)上電復位,電源上電時,當電源電壓超過復位門限電壓4.65 V時,復位端可輸出200 ms的復位信號,系統(tǒng)復位;監(jiān)測+5 V的電源:當+5 V電源正常時,RESET輸出低電平,單片機正常工作;當+5 V電源電壓降至+4.65 V以下時,RESET輸出高電平,單片機復位;看門狗定時器被清零,WDO維持高電平:當程序“跑飛”或死機時,CPU不能在1.6s內給出“喂狗”信號,WDO跳變?yōu)榈碗娖?,由于MR端有一個內部250 mA的上拉電流,D導通,MR獲得有效低電平,RESET輸出復位脈沖,單片機復位,看門狗定時器被清零,WDO又恢復為高電平。手動復位:如果需要對系統(tǒng)進行手動復位,只要按下手動復位按鈕,就能對系統(tǒng)進行有效復位。
3.4 HD7279簡介
HD7279可支持64鍵盤和8位數(shù)碼管動態(tài)顯示,與傳統(tǒng)的鍵盤顯示器件8279相比,外圍元件數(shù)目少,HD7279的CS、CLK、DATA、KEY信號線分別與AT89C205l的P1.O~P1-3端口相連,分時復用P1.0~P1.3端口線,大大節(jié)省CPU I/0端口資源;HD7279內部含有譯碼器,可直接接收BCD碼或十六進制碼,并具有兩種譯碼方式。此外,還具有多種控制指令,如左移、右移、閃爍、消隱、段尋址等;具有自動消除按鍵抖動并識別按鍵代碼的功能,軟件編程時無需鍵盤的消抖動程序,而且HD7279A的控制指令使得軟件編程更簡單。故選用HD7279A作為驅動鍵盤矩陣。掃描鍵盤時,如果有按鍵按下,直接通過讀鍵盤數(shù)據(jù)指令即可在LED上顯示鍵入的鍵值,而無需通過AT89C205l端口線控制鍵盤輸入。單片機接收鍵入的鍵值以控制所采樣量。HD7279可廣泛應用于微型控制器、智能儀表、控制面板和家用電器等。
3.5 系統(tǒng)硬件設計
圖3中AT89C205l的Pl與AD574A的高8位數(shù)據(jù)線直接相連,AD574A的低4位數(shù)據(jù)線與單片機的高半4位P1.4~P1.7直接相連,讀取數(shù)據(jù)是依據(jù)單片機的控制線分時選通。P3.4接AD574A的字節(jié)短周期控制線(A0),P3.5接讀轉換數(shù)據(jù)控制引腳(R/C)。這樣只能輸出8位,故12/8的數(shù)據(jù)模式選擇端直接接地,輸出的控制信號通過單片機的串口P3.1驅動升溫或降溫控制電路。采用10 V量程的輸入模式,故AD574A的10 VIN為被測電壓的輸入端,AT89C205l的P3.6接AD574A的片選CS,轉換器使用12 V電源電壓供電,工作電壓為+5 V。P3.7輸出報警信號,驅動一只發(fā)光二極管報警。工作狀態(tài)指示信號端STS與AT89C2051的P3.2相連,當STS=l時,轉換器處于轉換狀態(tài);當STS=0時,表明轉換結束。因此,通過該信號判斷A/D轉換器的工作狀態(tài),用于單片機的中斷或查詢信號。當AT89C205l的P3.2查詢到STS端轉換結束信號后,先將轉換的12位A/D數(shù)據(jù)的高8位寫入AT89C205l,然后再寫入低4位。無論AD574A處于啟動、轉換和輸出結果的何種狀態(tài),其使能端CE都必須為1,因此CE端接+5 V。上述為AD574A的全控狀態(tài)時,AD574A的CE、12/8、CS、R/C和A0對其工作狀態(tài)的控制過程如下:
當CE=l、CS=0時,AD574A則正常工作;當AD574A處于工作模式,R/C=0時A/D轉換;R/C=1時讀取數(shù)據(jù)。12/8和AO用于控制啟動轉換方式和數(shù)據(jù)輸出格式。A0=0時,按完整12位數(shù)據(jù)方式啟動;當AO=1時,則按8位A/D轉換方式啟動。當R/C=l,即當AD574A處于數(shù)據(jù)狀態(tài)時,A0和12/8控制數(shù)據(jù)輸出狀態(tài)的格式。當12/8=l時,數(shù)據(jù)以12位并行方式輸出;當l2/8=0時,數(shù)據(jù)以8位分兩次輸出。當AO=O時,輸出轉換數(shù)據(jù)的高8位,AO=l時輸出A/D轉換數(shù)據(jù)的低4位,這4位占1個字節(jié)的高半字節(jié),低半字節(jié)補零。如果需AD574A工作于單一模式,只需將CE、12/8端接+5 V電源,CS和A0接至O V,僅用R/C控制A/D轉換的啟動和數(shù)據(jù)輸出。當R/C=O時,啟動A/D轉換器。經(jīng)35μs后,STS=1,表明A/D轉換結束,此時R/C置1,即可從數(shù)據(jù)端讀取數(shù)據(jù)。
4 系統(tǒng)軟件設計
系統(tǒng)軟件設計采用模塊化結構。整個溫度測控過程由主程序、溫度測量子程序、定時中斷子程序、A/D轉換程序、顯示子程序等組成。各模塊分別只有一個入口和出口,各模塊間相互獨立,避免因某功能模塊出現(xiàn)異常而導致整個系統(tǒng)癱瘓。這里僅給出主程序流程圖(圖4)和溫度測量子程序的流程圖(圖5)。
5 結語
該系統(tǒng)設計的創(chuàng)新點是采用溫度范圍為+10℃~+1.50℃的熱敏電阻。該電阻具有靈敏度高,體積小、重量輕,熱慣性小,壽命長及價格便宜等優(yōu)點,而AT89C205l是一個功能強大的單片機.適用于節(jié)能減排的電器控制,應用廣泛。
評論