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个状态。当然年月日、农历、星期的计算(如大月小月、闰年、闰月等)分别汇编
相应的子程序插入即可,这方面的资料很多报刊杂志都有介绍,这里不再赘述。
发布评论