定时开关控制器的制作.DOC

上传人:国*** 文档编号:479508 上传时间:2018-10-12 格式:DOC 页数:23 大小:188.50KB
下载 相关 举报
定时开关控制器的制作.DOC_第1页
第1页 / 共23页
定时开关控制器的制作.DOC_第2页
第2页 / 共23页
定时开关控制器的制作.DOC_第3页
第3页 / 共23页
定时开关控制器的制作.DOC_第4页
第4页 / 共23页
定时开关控制器的制作.DOC_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、定时开关控制器的制作 魏军丞 定时开关控制器在各种场合都有着极为广泛的用途,例如可用于工业方面的自动控制,办公场所的电器控制,广告公司的霓虹灯控制,军事装备的武器控制等等,有比较高的应用价值。本文利用 2051 单片机设计的定时开关控制器具有简单易制、价格低廉、控制点数多、控制时间可精确到秒等特点,供有兴趣的朋友参考。 1、主板电路部分 本电路主要是利用单片机 AT89C2051( -24PI)作为主控制元件,通过外围电路控制用电设备的电源,以达到定时开关机的目的。 AT89C2051 具有体积小、功能强大、运行速度快、价格低廉等优点,非常适合制作集成度较高的控制电路。按图 1 制作的主板(双

2、面)大小只有 95 70mm2,器件位置图见图 2。主板电路包括 MCU AT89C2051、键盘与显示、输入与输出口、复位和电源滤波等电路组成。 1.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)译码后

3、通过 Q1 Q6 放大,驱动相应的数码管。 R17 R24 为限流电阻。 图 2、 主板电路器件位置图 图 1、主板电路原理图 由于 U2 只能输出 7 段笔段码,而数码管除了七段笔段外,还要控制点亮小数点,因此,小数点必须有另外的 驱动电路来完成,在这里,通过 Q7 来驱动小数点。当需要点亮小数点时,在 U1的 P1.3输出高电平即可。 键盘电路跟显示电路一样,采用扫描方式,利用动态显示时的数码管驱动位置信号来判断相应按键的状态。 U1 的 P3.3 P3.5口输出的 BCD 码经 U3 译码后,相应 Y 口呈低电平,而 U1 的 P3.7 口平时为高电平(由于 R8 上拉),当某一键按下时

4、, P3.7 被下拉为低电平,这时 MCU 利用程序查询 P3.7 是否为低电平,如果 P3.7 为低电平,就读回 U1 P3.3 P3.5 口的值(从缓冲区读取),就可判断是那个按键按下,然后调用相 应的处理程序进行处理。 1.2 控制输出、复位与电源滤波电路 MCU 对控制的输出是通过 P3.0 P3.2 口完成的。程序开始时这三个口的输出状态是低电平, MCU 通过程序查询三路输出的 ON 或 OFF 状态预置时间是否已到,如果已到时间,则改变相应的输出状态,就完成了对外部电路的控制。复位电路如图 1 左上角所示, C3 和 R25 完成上电复位, S6 为手动复位,按键输入干扰和抖动的

5、预防是由软件完成的。 5V 电源由 JP2 输入,经 C4 C9 滤波后给 U1和其它器件供电。 2、电源与控制电路 电源电路如图 3,市电经总开关 K 后由 B 降压、 V1 整流、 C11 C14 滤波、U4、 U5 稳压后给主板和控制电路板提供稳定的工作电源。控制电路原理如图 3,主板送过来的三路控制信号通过 Q12 Q14 分别控制继电器 J1、 J2、 J3,对外部电路实施直接控制。继电器这里没有给出具体型号,您可根据耐压及通流大小选用相应的继电器,如在大电流和强电磁场干扰的环境里工作,最好利用中间继电器来间接控制。 3、程序软件工作过程 3.1 秒脉冲发生器 图 3、 电源与控制电

6、路原理图 秒脉冲发生器是由定时器 T0 和内存空间 TT0 配合完成的。 T0 工作于 16 位计数器模式,当 T0 向上计数由全 1 变为全 0 时产生中断,本程序中 T0 的初值为0DC00H,大约 0.01 秒中断一次。这里使用的晶振频率为 11.0592MHz,由此可计算出日误差约为 0.78S。 工作过程:如图 4 流程图所示,产生中断后,首先保存 ACC 和 PSW 的值,然后为 T0 重装初值,判断中断次数是否小于 100,是则转出中断服务,反之则为秒计数器 加 1,秒计数器如果大于 59,则为分计数器加 1,同时秒计数器清 0。同样分计数器如大于 59 则为时计数器加 1,同时

7、分计数器清 0,时计数器如大于23 则清 0 并转出中断服务。 T0 中断 100 次的时间刚好为 1 秒钟。 3.2 主程序 上电复位过程:首先 P0 P2 口全部置 1, P3 口高 5 位置 1,低 3 位置 0。设置定时器 T0 工作于 16 位计数器模式,并赋初值 TH0 0DCH, TL0 00H,关闭外部中断和串行口中断,时间计数器 TS、 TM、 TH 清 0,所有预置时间存储区全部赋值 FFH,至此所有初始化工作完成。 主程序工作过程:首先循 环进行六个数码管扫描显示( DISPLY 段),然后比较所有预置时间( COMP 段)是否与当前时间相等,如相等则转向相应处理程序。在

8、比较完成(或处理完成)后判断有无按键( PP2 段),没有则返回继续显示、比较、判断;有按键则转向相应处理程序。按键转移采用偏移量加表格跳转转移法( KEY 段),简单、明了。预置时间比较则采用逐一比较法,即对每一个预置值进行比较,如相等则做相应处理。具体比较时( COMP1 段)先比较 TH 值,如不相等则直接转出并置“时间到”标志 CCB 为 0,如 TH、 TM、 TS 全部对应相等,则置该标志为 1。 N 上电复位 轮流显示 判断键值 相应处理 有键按下 ? N Y 主 程 序 Y 相应处理 预设时间到否 ? Y T0中断服务 设常数因子 中断次数减 1 RETI N 秒分时计数 TT

9、0为 0吗 ? 图 4、软件程序工作流程图 本程序在显示及按键处理(设置过程)中巧 妙使用 R1 寄存器作为公用地址寄存工具,对实时时间和预置时间的显示和修改调用同一程序完成,使源代码长度大大缩短,提高了程序的可读性和运行效率。 4、制作与调试 4.1 主板的制作与调试 主板的制作稍微复杂一点。首先是制作印刷板,利用 Protel99 按照本文所示器件位置图放置好元器件,然后手动布线(双面),线宽为 0.8mm 左右,太宽做出的板子太大,太窄无法进行自制。绘好印制板图后转成 BMP 格式利用电脑刻字机镂空(要用进口的即时贴纸,不然容易断开),贴在双面敷铜板上,就可以用 FeCl3腐蚀了。具体的

10、制作方法这 里不再赘述,但最好在印制板布线时做个阻焊层,同时在即时贴上刻出来,当板子制好清洗干净后敷在上面,用浅绿色油漆或清漆喷上薄薄的一层,好看又防腐蚀。 其次是元 器件的选择。如果按照本文所附器件位置图布线的话,数码管需选用图示型号才能安装( 5361BH,一拖三数码管),选用不同型号数码管时可能需修改器件位置参数,然后再布线即可。晶振为 11.0592MHz。 S1 S5 选用黑色小型轻触开关, S6 则用红色同类型开关。变压器 B 选用 15V、 10W 左右即可, V1硅堆应与 B 配合选用。控制继电器根据需要选用适合的型号,如 5V、 12V、 24V等,如果选用 5V 的,相应的

11、 B、 V1 可选小一点的, 7812 则不要。如选用 24V 的,S5 数码管显示 意 义 S1 S2 S3 S4 没有按 S5 00.00.00 设 置 时 间 时计数器加 1 分计数器加 1 秒计数器加 1 退 出 按第 1 次S5 95.95.95 第 1路 ON设置 时加 1 分加 1 秒加 1 退 出 按第 2 次S5 95.95.95 第 1 路 OFF设置 时加 1 分加 1 秒加 1 退 出 按第 3 次S5 95.95.95 第 2路 ON设置 时加 1 分加 1 秒加 1 退 出 按第 4 次S5 95.95.95 第 2 路 OFF设置 时加 1 分加 1 秒加 1 退

12、 出 按第 5 次S5 95.95.95 第 3路 ON设置 时加 1 分加 1 秒加 1 退 出 按第 6 次S5 95.95.95 第 3 路 OFF设置 时加 1 分加 1 秒加 1 退 出 按第 7 次S5 当前时间 退 出 那么 B、 V1、 7812、 7805 都需同时根据实际情况来选用了。 220V 输出插座没有特殊要求,其耐压和通流符合受控器件要求即可。其它元器件选用通用的就行。 最后就是焊接元器件。元器件购回后应先进行预处理(引脚打磨、上焊锡),然后逐一焊接。在焊接 MCU(当然 2051 要烧好程序后才能焊接哦 )和其它集成电路时应使用有良好接地的烙铁(断电焊接也可),以

13、免被击穿。由于双面印刷板存在一个穿孔问题,器件引脚穿过后,两面都要点上焊锡;如只是过孔,可用细铜线穿过并在两面焊接后剪掉即可。 在印刷板制作良好,连线没有不应有的开路或短路,且焊接没有虚焊的情况下,不用调试即可正常工作(本程 序已制作成品并调试通过,不需再行调试)。如果您觉得自己制作的印刷板不够漂亮或太麻烦可联络凯思迪邮购(焊接好的整板也有)。 4.2 电源与控制板的制作 可以将电源与控制板做在同一个板子上,也可分开制作,视所使用的情况而定,但 JP1 与 JZ1 之间的连线不宜太长。印刷板的制作同前所述,要注意的是在布线时对 220V 市电进入和输出(包括中线)的线宽设计要宽一点(根据工作电

14、流大小来定为好),还要注意市电与直流电源的隔离,以免在使用中造成触电事故。 5、操作使用 本系统在加电后数码管显示“ 00.00.00”,输出 继电器均不动作,此时可直接按 S1、 S2、 S3 键分别对时、分、秒进行调整,使当前时间与北京时间相符,时间设置过程中将停止计时,在设置好后按 S4 退出,时钟即进入正常计时。如果要设置输出控制的预置时间则先按 S5,数码管显示“ 95.95.95”,此时可再按 S1、 S2、 S3 键分别对第一路输出状态 ON 的时、分、秒进行设置,设好后再按一次 S5 键,数码管也显示“ 95.95.95”,然后按 S1、 S2、 S3 键则分别对第一路输出状态

15、 OFF 的时、分、秒进行设置,依此类推,按第七次时退出设定(详见附表)。任一路任一状态被执行后其预置 值即被清除, 24 小时后并不有效,如果需要每天循环执行则对程序进行简单的修改即可(预置值不清除就可)。 6、改进与扩展 本文所述的 AT89C2051 在控制输出时只使用了 P3.0 P3.2 三个口,所以只能控制三路六个状态,如果把不用的 P1.0 P1.2 三个口用起来,则可控制六路十二个状态,外围电路相应增加三路继电器,程序软件只需稍事修改即可。当然如果需要控制更多路输出状态,那么在使用锁存器、译码器、触发器等后最多可以扩展到控制 26 64 路 128 个状态。在对控制输出的路数要

16、求不多,而显示部分需要比较多的情况下 ,如还要显示年月日、农历、星期等,只要对其进行扩展就可实现: P1.4 P1.7 不动,选通端用两个 138,输出口用 P3.2 P3.5 就有 24 16个数码显示。这时仍然利用上述方法最多可扩展到控制 25 32路 64个状态。当然年月日、农历、星期的计算(如大月小月、闰年、闰月等)分别汇编相应的子程序插入即可,这方面的资料 8951 论坛讨论的很多,这里不再赘述。如您对源程序有不明白的地方或有兴趣交流可与我联系E-mail:。 ;* ;* 三路六个状态定时开关控制器 * ;* ;* S1-对时按钮; S2对分按钮 * ;* S3对秒按钮; S4退出对

17、时 * ;* S5设定预设值按钮 * ;* TS EQU 2DH ;* TS 为秒计数器(二进制, 024) TM EQU 2EH ;* TM 为分计数器(二进制, 060) TH EQU 2FH ;* TH 为时计数器(二进制, 060) K5 EQU 26H ;S5 状态 KEYCODE EQU 29H ;*KEYCODE 为键盘值 TT0 EQU 2BH ;*与 T0 配合构成为秒脉冲发生器 CCB EQU 20H ;预设时间到标志,为 01H时表示时间到 OFF EQU 0FFH ;预设值复位标志 DPS0 EQU 11000000B ;秒个位选通 DPS1 EQU 11001000B

18、 ;秒十位选通 DPM0 EQU 11010000B ;分个位选通 DPM1 EQU 11011000B ;分十位选通 DPH0 EQU 11100000B ;时个位选通 DPH1 EQU 11101000B ;时十位选通 K1ON DATA 30H ;*第一个开启时间 30H K1OFF DATA 33H ;*第一个关闭时间 33H K2ON DATA 36H ;*第二个开启时间 36H K2OFF DATA 39H ;*第二个关闭时间 39H K3ON DATA 3CH ;*第三个开启时间 3CH K3OFF DATA 3FH ;*第三个关闭时间 3FH ORG 0000H AJMP MA

19、IN ORG 000BH ;定时器 0( T0)中断入口 SJMP I_T0 ORG 001BH ;定时器 1( T1)中断入口 I_T1: AJMP MAIN1 RETI ;* 定时器 0中断服务 * ORG 0060H ;定时器 T0中断服务程序 I_T0: PUSH ACC PUSH PSW MOV TH0,#0DCH ;0.01s 时间,常数因子 DC00H MOV R3,TT0 DJNZ R3,I_T01 ;中断次数 59? Y,秒计数器 00 JC I_T01 MOV TS,#00H MOV A,TM ;分计数器加 1 ADD A,#01H MOV TM,A SUBB A,#60

20、;分计数器 59? Y,分计数器 00 JC I_T01 MOV TM,#00H MOV A,TH ;时计数器加 1 ADD A,#01H MOV TH,A SUBB A,#24 ;时计数器 23? Y,时计数器 00 JC I_T01 MOV TH,#00H I_T01: MOV TT0,R3 POP PSW POP ACC NOP NOP RETI ;* 主程序 * ORG 00F0H MAIN: MOV P0,#0FFH ;主程序,初始化 MOV P1,#0FFH MOV P2,#0FFH MOV P3,#0F8H ;p3.0p3.2 置低电平,使三个控制口关闭 MOV SP,#50H ;初始化堆栈指针 MOV TMOD,#11H ;T0 工作于 16 位定时器 MOV TT0,#100 ;中断次数,每次 0.01s*100=1s MOV TH0,#0DCH ;T0 初值 MOV TL0,#00H MOV TS,#00H ;时间赋初值 MOV TM,#00H

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 1

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。