很多人都有中午午休的习惯,对于上班族午休又怕时间超过,这就需要有一个提醒装置,而本文介绍的午休定时器就能满足这一要求。他的最长定时时间可以达到3小时,从10分钟定时到3小时定时,每隔10分钟一挡,共18挡。
电路原理
电路图如附图所示,
它采用了89C2051单片机做主要元件,软件使用了汇编语言。引脚P1.0-P1.7做为定时时间显示的输出引脚。当其中的引脚为低电平时,相应的发光二极管会发光。10-60(1小时)分钟段,只有单只发光管发光,而1小时10分钟到1小时50分是二只发光管组合发光。然后,再到2小时由单只发光管发光,再到2小时50分钟由二只发光管组合发光。最后3小时也由单只发光管发光。轻触开关S1是用来进行时间的设定。如果一轮时间设定过后(18次),再按S1则发光管全灭,说明单片机进入初始阶段,接着再按又是新的一轮开始。当设定完毕,再按一下S2进入定时工作状态。
需要注意的是:当所有的发光管都不亮时,按下S2则不会定时。发光管LED1是用来显示定时开始的,只要按下S2LED1才会亮。当定时时间到时,LED1会闪亮,P3.7引脚输出脉冲信号,使蜂鸣器HD发出“嘀嘀”的提示叫声。
电阻R1和C1组成单片机复位电路,开机有效。2051单片机工作电压在2.7-6V,这里取4.5V,即用三节5号电池供电。
软件分析
由于时间显示采用发光管的组合进行显示,故采用了查表程序。当然,该查表程序并不复杂,有19项内容。而其中一项为FFH,即发光管全灭。程序使用了定时器0作为计数脉冲的计数,并采用了方式2(有自动再装入功能)。为了达到按动微动开关S1时不误动作,这里采用了软件去抖程序,计数脉冲由P3.3引脚产生的,但真正做为计数脉冲的并不是P3.3引脚产生。它是经过两个NOP指令由P3.4引脚产生。最后,定时开始的确定脉冲由P3.2脚产生。这个不需要加去抖程序。因为一经确定,单片机就进入了定时程序,后而高低电平的变化(微动开关S2产生的)不会影响定时程序的工作。
定时程序中,同样使用了定时器。不过是定时器1方式1进行定时。它采用了100ms为一个定时单位,并进行三重循环工作。如10分钟则循环6000次,程序中使用中断,即定时器时间到会向CPU提出中断请求进入相应的程序。另外,程序中使用了DELAY和DELAY1两个延时程序。
硬件制作
可采用洞洞板制作电路。板的上方装元件,下方印刷电路焊接和布线。这样看起来比较简洁。9只发光管装在板的前面,单片机芯片装在中间,拔动开关和蜂鸣器装两边,下面装二个微动开关和晶振。先用编程器将程序写入单片机。焊接完成,检查无误,接上4.5V电源,按设定开关S1则10分钟发光管应首先发光,再按确定开关S2,指示发光管应能发光。如不正常,应检查电路是否漏接、误接,找出问题纠正。然后试一试定时时间是否正常。由于有18挡,不可能一一试验,可以10分钟、30分钟、1小时、2小时和3小时这几个主要的挡进行试验。如程序写入正确,接线无误一般不会有什么问题。
最后,把制作好的电路板和电池装入塑料壳中,笔者使用了装手机电池的塑料壳作为外壳。塑料外壳要打一些小孔以便发光管和开关能露出。并且蜂鸣器上面外壳部位要开上些小孔让声音传出。这们午休定时器即制作成功。定时器3小时误差不大于3分钟,电流约8mA。