基于查表的定时开关机判断方法

出处:hys65 发布于:2010-07-27 10:20:51

  引言

  定时开关机是在每天、每周、每月等的定时开关机中常见的问题。例如居民生活区的加压泵房,在用水量较少时(如深夜至凌晨),定时关闭加压系统,仅由管网供水;在用水量较大时,定时开启加压系统,进行恒压供水。为了实现定时开关机,系统需要外接一个实时时钟芯片(如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所对应的比较结果是不会出现的。可以根据表1编制出适合不同单片机的程序表格(如MCS51,Tabl:db O,1,55h,O,1,55h,0,1)。其中无关项对应的结果可以用特定数值(如55h)表示出错,由上层应用程序处理。在程序编制时,只需要将3种时间相互比较的结果经过组合,就可以通过查表得到结果。开机时间与关机时间的比较结果在设定时即可确定并预先保存,在实际运行时只需要比较实时时间与开机时间、实时时间与关机时间。

  2 24小时内多次定时开关机及其他情况

  如图2所示,24小时内设定了4组开关机时间。图中阴影部分为关机的时间段。根据不同开、关机时间组,分别按照上述方法根据表1进行查表,将得到的所有结果相与,以决定开机或关机。只有实时时间满足所有的开机时间条件时,系统才可以开机。

  在某个非循环的固定时间段内(如2009-10-1 06:00至2009-10-8 23:00)开机,实际上只需判断实时时间是否在时间段内,该情况默认关机时间大于开机时间。参考文献中的应用即此种情况。

  以某个固定周期为循环(如每周、每月等)时,只需在3种时间相互比较大小时改变算法,仍可以根据三者的比较结果,通过查表得到系统的输出。

  结语

  本文提出一种利用查表法解决单片机应用系统中在一定循环周期内定时开关机判断问题的方法。将实时时问、开机时间、关机时间三者相互比较,根据比较结果进行查表并确定控制结果。该方法简单、实用,也可以用于其他嵌入式系统或控制系统中。


  
关键词:开关

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

相关技术资料
广告
上传BOM文件: BOM文件
*公司名:
*联系人:
*手机号码:
QQ:
应用领域:

有效期:
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:

0571-85317607

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!