《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計(jì)應(yīng)用 > 一種基于查表的定時(shí)開關(guān)機(jī)判斷方法
一種基于查表的定時(shí)開關(guān)機(jī)判斷方法
單片機(jī)與嵌入式系統(tǒng)應(yīng)用
陳松嶺
摘要: 定時(shí)開關(guān)機(jī)是在每天,、每周、每月等的定時(shí)開關(guān)機(jī)中常見的問題,。例如居民生活區(qū)的加壓泵房,,在用水量較少時(shí)(如深夜至凌晨),定時(shí)關(guān)閉加壓系統(tǒng),,僅由管網(wǎng)供水,;在用水量較大時(shí),定時(shí)開啟加壓系統(tǒng),,進(jìn)行恒壓供水,。為了實(shí)現(xiàn)定時(shí)開關(guān)機(jī),,系統(tǒng)需要外接一個(gè)實(shí)時(shí)時(shí)鐘芯片(如DSl302),以獲得實(shí)時(shí)時(shí)間,。
Abstract:
Key words :

        引言

  定時(shí)開關(guān)機(jī)是在每天,、每周、每月等的定時(shí)開關(guān)機(jī)中常見的問題,。例如居民生活區(qū)的加壓泵房,,在用水量較少時(shí)(如深夜至凌晨),定時(shí)關(guān)閉加壓系統(tǒng),,僅由管網(wǎng)供水,;在用水量較大時(shí),定時(shí)開啟加壓系統(tǒng),,進(jìn)行恒壓供水,。為了實(shí)現(xiàn)定時(shí)開關(guān)機(jī),系統(tǒng)需要外接一個(gè)實(shí)時(shí)時(shí)鐘芯片(如DSl302),,以獲得實(shí)時(shí)時(shí)間,。
 

        一定周期(如每天)的定時(shí)開關(guān)機(jī),需要解決實(shí)時(shí)時(shí)間中的進(jìn)位問題,。以時(shí)分為例,,明天的1:00比今天23:59離當(dāng)前更遠(yuǎn),因?yàn)閷?shí)際上前者相當(dāng)于25:00,。因此,,如果要判斷時(shí)分的大小,需要同時(shí)比較日期,,增加了判斷的難度,。本文主要以24小時(shí)內(nèi)定時(shí)開關(guān)機(jī)為例,說明通過查表解決定時(shí)開關(guān)機(jī)判斷問題的方法,,該方法只需要比較小時(shí)和分鐘,。

  1 24小時(shí)內(nèi)一次定時(shí)開關(guān)機(jī)

  分為兩種情況進(jìn)行分析。一種情況是,,開機(jī)時(shí)間(即開機(jī)起始的時(shí)間)大于關(guān)機(jī)時(shí)間(即關(guān)機(jī)起始的時(shí)間),。例如開機(jī)時(shí)間為05:OO,關(guān)機(jī)時(shí)間為02:00,,如圖1(a)所示,。另一種情況是,開機(jī)時(shí)間小于關(guān)機(jī)時(shí)間,。例如開機(jī)時(shí)間為04:00,,關(guān)機(jī)時(shí)間為23:OO,如圖1(b)所示,。圖中陰影部分均為關(guān)機(jī)的時(shí)間段,。

  從圖1(a)中可以看出,,如果實(shí)時(shí)時(shí)間同時(shí)大于,或同時(shí)小于開機(jī)時(shí)間和關(guān)機(jī)時(shí)間,,則系統(tǒng)開機(jī),;如果實(shí)時(shí)時(shí)間大于關(guān)機(jī)時(shí)間且小于開機(jī)時(shí)間,則系統(tǒng)關(guān)機(jī),。

  從圖1(b)中可以看出,,如果實(shí)時(shí)時(shí)間同時(shí)大于,或同時(shí)小于開機(jī)時(shí)間和關(guān)機(jī)時(shí)間,,則系統(tǒng)關(guān)機(jī),;如果實(shí)時(shí)時(shí)間大于關(guān)機(jī)時(shí)間且小于開機(jī)時(shí)間,則系統(tǒng)開機(jī),。其結(jié)果正好和圖1(a)相反,。

  實(shí)際上,系統(tǒng)是否需要開機(jī)由以下3個(gè)時(shí)間的比較結(jié)果共同決定:實(shí)時(shí)時(shí)間與開機(jī)時(shí)間,、實(shí)時(shí)時(shí)間與關(guān)機(jī)時(shí)間,、開機(jī)時(shí)間與關(guān)機(jī)時(shí)間。這3種比較結(jié)果共有8種組合可能,。根據(jù)以上分析即可得到表1,,用O和1來表示它們之間的邏輯關(guān)系。

  經(jīng)過分析,,表1出現(xiàn)了無關(guān)項(xiàng)(x),,序號(hào)2和5所對(duì)應(yīng)的比較結(jié)果是不會(huì)出現(xiàn)的??梢愿鶕?jù)表1編制出適合不同單片機(jī)的程序表格(如MCS51,,Tabl:db O,1,,55h,,O,1,,55h,,0,1),。其中無關(guān)項(xiàng)對(duì)應(yīng)的結(jié)果可以用特定數(shù)值(如55h)表示出錯(cuò),,由上層應(yīng)用程序處理。在程序編制時(shí),,只需要將3種時(shí)間相互比較的結(jié)果經(jīng)過組合,就可以通過查表得到結(jié)果,。開機(jī)時(shí)間與關(guān)機(jī)時(shí)間的比較結(jié)果在設(shè)定時(shí)即可確定并預(yù)先保存,,在實(shí)際運(yùn)行時(shí)只需要比較實(shí)時(shí)時(shí)間與開機(jī)時(shí)間,、實(shí)時(shí)時(shí)間與關(guān)機(jī)時(shí)間。

  2 24小時(shí)內(nèi)多次定時(shí)開關(guān)機(jī)及其他情況

  如圖2所示,,24小時(shí)內(nèi)設(shè)定了4組開關(guān)機(jī)時(shí)間,。圖中陰影部分為關(guān)機(jī)的時(shí)間段。根據(jù)不同開,、關(guān)機(jī)時(shí)間組,,分別按照上述方法根據(jù)表1進(jìn)行查表,將得到的所有結(jié)果相與,,以決定開機(jī)或關(guān)機(jī),。只有實(shí)時(shí)時(shí)間滿足所有的開機(jī)時(shí)間條件時(shí),系統(tǒng)才可以開機(jī),。

  在某個(gè)非循環(huán)的固定時(shí)間段內(nèi)(如2009-10-1 06:00至2009-10-8 23:00)開機(jī),,實(shí)際上只需判斷實(shí)時(shí)時(shí)間是否在時(shí)間段內(nèi),該情況默認(rèn)關(guān)機(jī)時(shí)間大于開機(jī)時(shí)間,。參考文獻(xiàn)中的應(yīng)用即此種情況,。

  以某個(gè)固定周期為循環(huán)(如每周、每月等)時(shí),,只需在3種時(shí)間相互比較大小時(shí)改變算法,,仍可以根據(jù)三者的比較結(jié)果,通過查表得到系統(tǒng)的輸出,。

  結(jié)語

  本文提出一種利用查表法解決單片機(jī)應(yīng)用系統(tǒng)中在一定循環(huán)周期內(nèi)定時(shí)開關(guān)機(jī)判斷問題的方法,。將實(shí)時(shí)時(shí)問、開機(jī)時(shí)間,、關(guān)機(jī)時(shí)間三者相互比較,,根據(jù)比較結(jié)果進(jìn)行查表并確定控制結(jié)果。該方法簡(jiǎn)單,、實(shí)用,,也可以用于其他嵌入式系統(tǒng)或控制系統(tǒng)中。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。