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

        引言

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

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

  1 24小時內一次定時開關機

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

  從圖1(a)中可以看出,如果實時時間同時大于,或同時小于開機時間和關機時間,則系統開機;如果實時時間大于關機時間且小于開機時間,則系統關機。

  從圖1(b)中可以看出,如果實時時間同時大于,或同時小于開機時間和關機時間,則系統關機;如果實時時間大于關機時間且小于開機時間,則系統開機。其結果正好和圖1(a)相反。

  實際上,系統是否需要開機由以下3個時間的比較結果共同決定:實時時間與開機時間、實時時間與關機時間、開機時間與關機時間。這3種比較結果共有8種組合可能。根據以上分析即可得到表1,用O和1來表示它們之間的邏輯關系。

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

  2 24小時內多次定時開關機及其他情況

  如圖2所示,24小時內設定了4組開關機時間。圖中陰影部分為關機的時間段。根據不同開、關機時間組,分別按照上述方法根據表1進行查表,將得到的所有結果相與,以決定開機或關機。只有實時時間滿足所有的開機時間條件時,系統才可以開機。

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

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

  結語

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

此內容為AET網站原創(chuàng),未經授權禁止轉載。