監(jiān)控電路
X5043/45監(jiān)控電路集上電復(fù)位、看門(mén)狗定時(shí)器、電源電壓監(jiān)控、分塊保護(hù)的EEPROM于一體,是解決單片機(jī)系統(tǒng)中抗干擾和數(shù)據(jù)長(zhǎng)期可*保存等問(wèn)題的首選器件,特別適合在單片機(jī)測(cè)控系統(tǒng)中應(yīng)用。
渦街流量計(jì)X5043/45的功能框圖如圖1所示,其主要性能包括:
上電復(fù)位功能:在電源電壓低于檢測(cè)門(mén)限時(shí),RESET引腳輸出有效復(fù)位信號(hào),當(dāng)電源電壓上升高于檢測(cè)門(mén)限時(shí),復(fù)位信號(hào)延時(shí)200ms后變?yōu)闊o(wú)效。
電壓監(jiān)控功能:當(dāng)電源電壓低于檢測(cè)門(mén)限時(shí),使上電復(fù)位電路產(chǎn)生復(fù)位信號(hào),復(fù)位信號(hào)至Vcc=1v有效。
復(fù)位門(mén)限電壓:門(mén)限電壓在出廠時(shí)設(shè)定為一標(biāo)準(zhǔn)值,對(duì)Vcc=5V±10%的芯片,門(mén)限為4.25V—4.5V。該值也可由用戶(hù)自行設(shè)定,可編程范圍為1.7V—5.0V。
看門(mén)狗定時(shí)器:可編程為1.4s、600ms、200ms或禁止。在非禁止?fàn)顟B(tài),若在定時(shí)周期內(nèi)CS端沒(méi)有出現(xiàn)由高至低電平變化,RESET端將輸出200ms的有效復(fù)位信號(hào),防止程序跑飛或進(jìn)入死循環(huán)。
可分段保護(hù)的CMOS串行EEPROM:512字節(jié),每個(gè)字節(jié)可擦寫(xiě)10萬(wàn)次以上,內(nèi)部數(shù)據(jù)可保存100年以上。
X5043/45內(nèi)有一個(gè)8位指令寄存器,對(duì)該芯片的所有操作都需要通過(guò)對(duì)指令寄存器寫(xiě)命令來(lái)完成;一個(gè)狀態(tài)寄存器,確定EEPROM的塊保護(hù)地址范圍及看門(mén)狗定時(shí)器的超時(shí)周期。
控制器電路設(shè)計(jì)
控制器電路原理圖如圖2所示??刂破饔蓡纹瑱C(jī)89C51、X5045監(jiān)控電路、數(shù)字溫度傳感器DS1820、鍵盤(pán)、輸出繼電器、報(bào)警單元、顯示電路組成。
X5045的WP(寫(xiě)保護(hù)輸入)接Vcc,RESET端接89C51的RESET,CS(片選)、SO(串行輸出)、SI(串行輸入)、SCK(串行時(shí)鐘輸入)與89C51的P2口相連。由89C51控制其工作狀態(tài)和數(shù)據(jù)傳輸。利用X5045的EEPROM記憶功能保存設(shè)定的參數(shù);X5045的上電復(fù)位功能、電壓監(jiān)控功能,消除電源通斷瞬時(shí)及電源電壓波動(dòng)時(shí)造成的系統(tǒng)死機(jī)、數(shù)據(jù)誤寫(xiě)及誤動(dòng)作等故障;X5045的看門(mén)狗能消除現(xiàn)場(chǎng)應(yīng)用中干擾造成的死機(jī)。
采用DS1820數(shù)字溫度傳感器檢測(cè)冷庫(kù)溫度,與89C51串行通信,電路結(jié)構(gòu)簡(jiǎn)單,不用校正傳感器,其溫度測(cè)定范圍為-55℃-125℃。鍵盤(pán)S1-S6可設(shè)定或修改冷庫(kù)的各項(xiàng)控制參數(shù):包括除霜周期、除霜時(shí)間、溫度上限、溫度下限。按S3-S6鍵,顯示5秒對(duì)應(yīng)的設(shè)定參數(shù)。在參數(shù)設(shè)定狀態(tài),可通過(guò)S3-S6及+鍵S1、-鍵S2,進(jìn)行參數(shù)修改,修改后的參數(shù)存入X5045的EEPROM存儲(chǔ)器。開(kāi)關(guān)S7為狀態(tài)選擇,S7合向強(qiáng)制除霜,強(qiáng)制進(jìn)入除霜狀態(tài),并停止制冷機(jī)工作;當(dāng)開(kāi)關(guān)合向參數(shù)設(shè)定,進(jìn)入?yún)?shù)設(shè)定狀態(tài);S7在中間位置時(shí),冷庫(kù)正常運(yùn)行。制冷除霜控制分別經(jīng)繼電器輸出,控制壓縮機(jī)制冷和加熱器除霜。報(bào)警單元由軟件控制,提供報(bào)警功能。89C51的串行輸出經(jīng)驅(qū)動(dòng)電路74LS164(圖中未畫(huà)出)控制3位數(shù)碼顯示,正常工作時(shí)顯示冷庫(kù)溫度;參數(shù)設(shè)定時(shí),顯示所設(shè)定的參數(shù)。三只發(fā)光管分別指示控制器的三種工作狀態(tài):制冷、除霜、設(shè)定。
軟件設(shè)計(jì)
控制器上電先運(yùn)行初始化程序,單片機(jī)從X5045的EEPROM中讀入設(shè)定的各項(xiàng)控制參數(shù)。檢測(cè)并顯示冷庫(kù)溫度。延時(shí)5分鐘,以避免因短時(shí)斷電造成的制冷機(jī)啟動(dòng)困難。此后進(jìn)行控制鍵S7檢測(cè),鍵盤(pán)檢測(cè),除霜周期檢測(cè),冷庫(kù)溫度調(diào)節(jié),循環(huán)執(zhí)行以上過(guò)程。
控制鍵S7檢測(cè):如果S7在強(qiáng)制除霜狀態(tài),停止制冷機(jī)工作,接通加熱器強(qiáng)制除霜,除霜指示燈亮,檢測(cè)并顯示冷庫(kù)溫度;如果S7在參數(shù)設(shè)定狀態(tài),運(yùn)行參數(shù)設(shè)定程序,設(shè)定指示燈亮;S7在中間位置時(shí),控制器進(jìn)入自動(dòng)控制方式。
鍵盤(pán)檢測(cè):分別按除霜周期、除霜時(shí)間、溫度上限、溫度下限等四個(gè)鍵時(shí),顯示對(duì)應(yīng)的設(shè)定參數(shù)5秒鐘。
除霜周期檢測(cè):若除霜周期到,停止制冷機(jī)工作,根據(jù)除霜時(shí)間接通加熱器除霜,除霜指示燈亮,檢測(cè)并顯示冷庫(kù)溫度。
冷庫(kù)溫度調(diào)節(jié):根據(jù)設(shè)定的溫度上限、溫度下限控制制冷機(jī)啟停,將冷庫(kù)的溫度控制在設(shè)定的范圍內(nèi)。若溫度超過(guò)溫度上限1度,或溫度低于溫度下限1度,則啟動(dòng)報(bào)警器。
參數(shù)設(shè)定時(shí),維持運(yùn)行狀態(tài)不變;通過(guò)S3-S6及+、-鍵,進(jìn)行參數(shù)修改,修改后的參數(shù)存入X5045的EEPROM存儲(chǔ)器。
X5045除記憶設(shè)定的各項(xiàng)控制參數(shù)外,還肩負(fù)著上電復(fù)位、電壓監(jiān)控、看門(mén)狗功能,在系統(tǒng)中起著重要作用。下面簡(jiǎn)介對(duì)X5045的編程。
對(duì)X5045編程應(yīng)注意以下幾點(diǎn):(1)所有指令、地址、數(shù)據(jù)傳送均是高位在先。(2)寫(xiě)存貯器一次多16個(gè)字節(jié),且在一頁(yè)內(nèi)。(3)一條寫(xiě)指令傳送完畢,CS變?yōu)楦唠娖胶髴?yīng)延時(shí)10ms以上,以保證X5043/45完成內(nèi)部寫(xiě)操作。(4) SCK上升沿鎖存輸入,SCK下降沿使數(shù)據(jù)輸出有效。
(5)WRDI指令、上電、存貯器寫(xiě)、狀態(tài)字寫(xiě)之后,會(huì)自動(dòng)禁止以后的寫(xiě)操作(包括狀態(tài)字),在寫(xiě)狀態(tài)寄存器或存貯器之前應(yīng)先發(fā)送WREN命令