2024年5月30日发(作者:)

用单片机制作的定时开关控制器

定时开关控制器在各种场合都有着极为广泛的用途。本文利用凯思迪公司的k-51a单

片机实验板设计的定时开关控制器具有简单易制、价格低廉、控制点数多、控制时间可精

确到秒等特点,供有兴趣的朋友参考。1.主板电路部分

本电路主要是利用单片机at89c2051(-24pi)作为主控制元件,通过外围电路控制用

电设备的电源,以达到定时开、关机的目的。at89c2051具有体积小、功能强大、运行速

度快、价格低廉等优点,非常适合制作集成度较高的控制电路。图1为主电路原理图,图

2为按其制作的主板(双面)大小只有95mm×70mm的器件位置图。主板电路包括

mcuat89c2051、键盘与显示、输入与输出口、复位和电源滤波等电路组成。

(1)键盘与表明表明电路由u2、u3、q1~q7和l1a、l2a共同组成。u2为bcd-7段

译码器(74ls47),通过单片机u1的p1.4~p1.7口将要显示字符的bcd码输入至u2的

四个输出端的,经u2译码后输入适当的笔段驱动led数码管(共阳)。led数码管表明使

用动态读取方式,即为在某一时刻,只有一个数码管被照亮。数码管的位选信号由单片机

u1的p3.3~p3.5输入,经u3(74hc138)译码后通过q1~q6压缩,驱动适当的数码管。

r17~r24为限流电阻。

由于u2只能输出7段笔段码,而数码管除了七段笔段外,还要控制点亮小数点,因

此,小数点必须有另外的驱动电路来完成,在这里,通过q7来驱动小数点。当需要点亮

小数点时,在u1的p1.3输出高电平即可。键盘电路跟显示电路一样,采用扫描方式,利

用动态显示时的数码管驱动位置信号来判断相应按键的状态。u1的p3.3~p3.5口输出的

bcd码经u3译码后,相应y口呈低电平,而u1的p3.7口平时为高电平(由于r8上拉),

当某一键按下时,p3.7被下拉为低电平,这时mcu利用程序查询p3.7是否为低电平,如

果p3.7为低电平,就读回u1p3.3~p3.5口的值(从缓冲区读取),则可判断是哪个按键

按下,然后调用相应的处理程序进行处理。

(2)掌控输入、登位与电源滤波电路mcu对掌控的输入就是通过p3.0~p3.2口顺利

完成的。程序已经开始时这三个口的输入状态就是低电平,mcu通过程序查阅三路输入的

on或off状态预置时间与否已至,如果已至时间,则发生改变适当的输入状态,就顺利完

成了对外部电路的掌控。登位电路例如图1左上角右图,c3和r25顺利完成上电登位,s6

为手动登位,按键输出阻碍和晃动的防治就是由软件顺利完成的。+5v电源由jp2输出,

经c4~c9滤波后给u1和其它器件供电。2.电源与控制电路

电源及控制电路如图3。其中,市电经总开关k后由b降压、v1整流、c11~c14滤波、

u4、u5稳压后给主板和控制电路板提供稳定的工作电源;主板送过来的三路控制信号通过

q12~q14分别控制继电器j1、j2、j3,对外部电路实施直接控制。继电器这里没有给出

具体型号,您可根据耐压及通流大小选用相应的继电器,如在大电流和强电磁场干扰的环

境里工作,最好利用中间继电器来间接控制。

3.程序软件工作过程

(1)秒脉冲发生器秒脉冲发生器是由定时器t0和内存空间tt0配合完成的。t0工作

于16位计数器模式,当t0向上计数由全1变为全0时产生中断,本程序中t0的初值为

0dc00h,大约0.01s中断一次。这里使用的晶振频率为11.0592mhz,由此可计算出日误差

约为0.78s。

图4为程序流程图。系统产生中断后,首先留存acc和psw的值,然后为t0重装初

值,推论中断次数与否大于100,就是则办理手续中断服务,反之则为秒计数器提1,秒

计数器如果大于59,则为分后计数器提1,同时秒计数器清0。同样分后计数器例如大于

59则为时计数器提1,同时分后计数器清0,时计数器例如大于23则明0并办理手续中断

服务。t0中断100次的时间刚好为1秒钟。

(2)主程序上电复位过程:首先p0~p2口全部置1,p3口高5位置1,低3位置0。

设置定时器t0工作于16位计数器模式,并赋初值th0=0dch,tl0=00h,关闭外部中断

和串行口中断,时间计数器ts、tm、th清0,所有预置时间存储区全部赋值ffh,至此所

有初始化工作完成。

(1)主板的制作与调试主板的制作稍微繁杂一点。首先就是制作印刷板,利用

protel99按照本文右图器件位置图置放不好元器件,然后手动布线(双面),线宽为

0.8mm左右,太宽作出的板子太小,太较窄无法展开自造。所画不好印制板图后转换成

bmp格式利用电脑刻字机镂空(必须用进口的即时贴纸,不然难断裂),张贴在双面东照

宫铜板上,就可以用fecl3锈蚀了。具体内容的制作方法这里不再可知,但最出色在印制

板布线时搞个阻焊层,同时在即时贴上刻出,当板子合叶冲洗整洁后东照宫在上面,用浅

绿色油漆或清漆擦上薄薄的一层,漂亮又防腐蚀。(2)元器件的挑选如果按照本文注记

器件位置图布线的话,数码管须要采用图示型号就可以加装(5361bh,一拖三数码管),

采用相同型号数码管时可能将须要修正器件边线参数,然后再布线即可;晶珍利

11.0592mhz;s1~s5采用黑色小型触摸控制器,s6则用红色同类型控制器;变压器b采

用15v、10w左右即可,v1硅堆应与b协调采用;掌控继电器根据须要采用适宜的型号,

如5、12、24v等,如果采用5v的,适当的b、v1附加小一点的,7812则不要。例如采用

24v的,那么b、v1、7812、7805都须要同时根据实际情况去采用;交流220v输入插座没

特殊要求,其耐压和通流合乎THF1器件建议即可。其它元器件采用通用型的xml。(3)

冲压元器件元器件购入后应当先展开预处理(插槽雕琢、上焊锡),然后逐一冲压。在冲

压mcu(当然2051必须火烧不好程序后就可以冲压)和其它集成电路时应采用存有较好中

剧的烙铁(断电冲压也可以),以免被打穿。由于双面印刷板存有一个穿孔问题,器件插

槽沿着后,两面都要点上焊锡;例如只是过孔,需用粗铜线沿着并在两面冲压后剪去即可。

在印刷板制作良好,连线没有不应有的开路或短路,且焊接没有虚焊的情况下,不用

调试即可正常工作(本程序已制作成品并调试通过,不需再行调试)。如果您觉得自己制

作的印刷板不够漂亮或太麻烦可联络凯思迪邮购(焊接好的整板也有),本刊网站有与凯

思迪公司网站的链接。

(4)电源与控制板的制作可以将电源与控制板搞在同一个板子上,也可以分离制作,

视所采用的情况而的定,但jp1与jz1之间的连线不必太短。印刷板的制作同前所述,必

须特别注意的就是在布线时对220v市电步入和输入(包含中线)的线宽设计必须阔一点

(根据工作电流大小

来定为好),还要注意市电与直流电源的隔离,以免在使用中造成触电事故。5.操

作使用

本系统在加电后数码管表明“00.00.00”,输入继电器均不动作,此时可以轻易按s1、

s2、s3键分别对时、分后、秒展开调整,并使当前时间与北京时间吻合,时间设置过程中

将暂停计时,在设置不好后按s4选择退出,时钟即为步入正常计时。如果必须设置输入

掌控的预置时间则先按s5,数码管表明“95.95.95”,此时可以再按s1、s2、s3键分别

对第一路输入状态on的时、分后、秒展开设置,滚进后再按一次s5键,数码管也表明

“95.95.95”,然后按s1、s2、s3键则分别对第一路输入状态off的时、分后、秒展开

设置,依此类推,按第七次时选择退出预设。任一路任一状态被继续执行后其预置值即为

被去除,24小时后并不有效率,如果须要每天循环继续执行则对程序展开直观的修正即可

(预置值不去除就可以)。6.改良与拓展

本文所述的at89c2051在控制输出时只使用了p3.0~p3.2三个口,所以只能控制三

路六个状态,如果把不用的p1.0~p1.2三个口用起来,则可控制六路十二个状态,外围

电路相应增加三路继电器,程序软件只需稍事修改即可。当然如果需要控制更多路输出状

态,那么在使用锁存器、译码器、触发器等后最多可以扩展到控制26=64路128个状态。

在对控制输出的路数要求不多,而显示部分需要比较多的情况下,如还要显示年月日、农

历、星期等,只要对其进行扩展就可实现:p1.4~p1.7不动,选通端用两个138,输出口

用p3.2~p3.5就有24=16个数码显示。这时仍然利用上述方法最多可扩展到控制25=32

路64个状态。当然年月日、农历、星期的计算(如大月小月、闰年、闰月等)分别汇编

相应的子程序插入即可,这方面的资料很多报刊杂志都有介绍,这里不再赘述。