设为首页收藏本站优领域

优领域

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
优领域 优领域 电子领域 技术文库 电源 查看内容

基于AT89S51单片机的程控电源开关设计

2014-6-7 21:26| 发布者: dzly| 查看: 509| 评论: 0|原作者: 陈成义

摘要: 所设计的电源开关采用单片机程 控技术能实时变换电源导通与断开, 兼有时钟显示功能,在正常工作中能 够显示年月日星期时分秒。电源开关 电路选用AT89S51 单片机为核心,主 电路中采用DS1302 时钟芯片计时,显 示器采用LCD1602 芯片,通过电磁继 电器来实现对开关的断开与闭合的 控制,设计中输入采用四个按键,具 有电路简单,易于操作,等特点。

  0 绪论
  现实的生活和实验中,我们常常要用到各种各样的开关,开关要求亦多样化。
  如何设计一个智能开关,能够根据需要设定时间控制开关的闭合与断开,并且能够安全稳定的工作,是本设计的重点。在市面上,各种电源开关产品各式各样,但多为机械式的。普遍存在一些问题,如需要人工操作,在高压下安全性差,不能满足特定场合的要求。采用单片机数控电源开关技术则能实时变换电源导通与断开,使其成为智能可调的开关,便于日常生产生活及实验中使用。所设计的电源开关兼有时钟显示功能,在正常工作中能够显示年月日星期时分秒。电源开关电路总体设计要求:
  被控电压:交流50Hz,220V ;
  开关功能:根据设定的时间将开关闭合或断开;
  设定功能:随时可以通过键盘调校时钟时间及开关闭合时间;
  显示功能:显示准确的时间年、月、日、星期、时、分、秒,时分秒采用24 小时制式;
  掉电保护:能够在掉电时保存时钟时间及所设置的开关状态数据。
  1 总体方案设计
  1.1 时钟的产生方式
  考虑到本设计中对时间精度要求比较高,并且本设计硬件电路并不复杂,所以通过外部专用时钟芯片DS1302。通过专用时钟芯片能够产生足够高精度的时间,同时大大简化软件编程。


  1.2 主控芯片选择
  本设计中需要在断电时保存时间及开关状态信息,故可选带有EEPROM的STC89C51,但是由于系统工作时对EEPROM 的读写和擦除都需要较长的时间,考虑到系统中使用的DS1302 具有使用备用电源功能,并且内部有一个31B 的静态RAM 寄存器。所以可以将开关状态数据保存到DS1302 的内部RAM 中以防系统断电丢失数据。综上所述设计中选用AT89S51 作为主控芯片。
  1.3 显示器的选择
  由于本设计中需要显示的内容简单,不需要复杂的人机交互界面,所以设计中采用LCD1602 芯片作为显示器。
  2 系统硬件设计
  2.1 硬件原理图
  电路中的DS1302 负责计时,时钟信号由单片机读出后经过处理送往LCD1602 显示时间值,同时,单片机负责检测按键状态,根据输入状态,对时间进行调整、对开关状态进行调整等操作,并将开关状态数据存储在DS1302 内部RAM 中,在开关状态变化时,由单片机控制电磁继电器来执行。
  2.2 键盘与显示电路设计
  键盘是由4 个按键组成的,是单片机最简单的输入设备。操作员通过键盘输入对时间进行设置,实现简单的人机交互。
  设计采用独立式键盘。接法可参见图2 所示。设计采用LCD 显示,用于显示当前电压。其中LCD 选用字符型液晶显示模块字LCD1602 接法可参见图2 所示。AT89S51的P0 口输出端接LCD 的D0~D7 口线,用于数据输入。LCD 的VDD 接+5V 数字电压,VSS 接数字地, RS、RW 、E 口线分别接P1.0~P1.2 接口。
  2.3 单片机的复位与时钟电路
  对于单片机的复位与时钟电路做简单介绍。本文采用内部时钟方式。在单片机内部有一振荡电路,只要在单片机的XTAL1 和XTAL2 引脚外接石英晶体就构成了自激震荡器并在单片机内部产生时钟脉冲信号。图中电容器的作用是稳定频率和快速起振,采用30pF 电容,晶振采用12MHz。对于单片机采用上电与按键复位方式。
  2.4 时钟芯片DS1302
  DS1302 与单片机连接的电路图如图2 所示。DS1302 与单片机的连线只需3 条,即SCL、I/0 和RST。备用电池通过DS1302 的第8 脚为DS1302 提供低功耗的电池备份。Vcc2 在双电源系统中提供主电源,在这种方式下Vcc1 连接备用电源,当系统没有主电源的情况下,能保持时间信息及数据不丢失。DS1302 由Vcc1或Vcc2 两者中较大者供电。当Vcc2 大于Vcc1 0.2V 时,Vcc2 给DS1302 供电。当Vcc2 小于Vcc1 时,DS1302 由Vcc1 供电。
  3 系统软件设计
  系统软件设计主要是为了保证和硬件电路相结合,正确地实现电路的整体要求。软件设计有两种方法:一种是自上而下,逐步细化;一种是自下而上,先设计出每一个具体的模块,最后组成一个系统。
  本次系统软件设计采用了自上向下的模块化结构方式。
  整个程序大致划分为一下几个模块:按键、计时、显示、响应、读取/ 存储、设置等。在这几大模块中,设置属于较复杂的模块,它的功能相当于建立一个人机交互的操作界面,读取器件当前的状态反馈给操作者,同时读取操作者输入的指令将数据送往不同的器件,最终完成设置工作。
  初始化:各个元器件初始化,如LCD1602 初始化指令,向LCD1602 写入自定义初始画面,在开机后显示提示语“Please set the initial time”,读取保存在DS1302 内部RAM 中的开关状态数据,设定中断参数等。
  按键读取:读取四个按键是否有被按下,判断哪个按键按下,将结果转换成数值存放在KeyValue 中。
  按键处理:根据KeyValue 的值判断是否有按键被按下,如果有则根据按键值和当前的菜单状态变量MenuStauts 的值进行相应的处理。
  更新显示时间:在MenuStauts 的值为0 即非设置状态下,当秒发生变化时,更新一次LCD1602 上显示的时间值。
  闪动显示:在MenuStauts 的值不为0即设置状态下,根据闪动标志FlashFlag 的状态,在LCD1602 相应的位置上重复写入数值/ 空格,以达到闪动数值的效果,用于指示当前设置的数值。超时参数TimeOut的值大于300 时,清除MenuStauts 的值,退出到正常状态。
  开关状态监测与处理:在主程序的每次循环中对预设的开关时间与当前时间进行一次对比,当到达开关变化时间时,将开关标志位AlarmFlag 取反,并改变单片机的P1.6 和P1.7 口状态来控制电磁继电器的闭合与断开,并用指示灯指示。
  4 小结
  本文所设计的智能开关,能够根据需要设定时间控制开关的闭合与断开,并且能够安全稳定的工作解决了传统机械式电源开关普遍存在一些问题,如需要人工操作,在高压下安全性差,不能满足特定场合的要求。基于AT89S51 单片机的程控技术则能实时变换电源导通与断开,使其成为智能可调的开关,便于日常生产生活及实验中使用。所设计的电源开关兼有时钟显示功能,在正常工作中能够显示年月日星期时分秒。总之,该智能开关具有电路简单,易于操作,功能全面等特点。
  
  

网站统计|优领域|优领域 ( 粤ICP备12011853号-1 )  

GMT+8, 2019-1-20 08:59 , Processed in 0.088181 second(s), 12 queries .

Copyright © 2008-2014 优领域

回顶部