首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 电子制作
用单片机做智能定时器的方法
来源:本站整理  作者:佚名  2011-11-14 10:43:52



  一、发现问题

      寒冷的冬天刚刚过去不久,转眼间酷热的夏季即将来临。冬天的电热毯,夏天的电风扇,都是让人欢喜又让人忧的东西。比如电热毯在使用时如果忘记关,可能造成火灾,严重时会威胁到人身安全,对于老年人如果关了睡可能等不了多久觉得冷又要开,   一、发现问题寒冷的冬天刚刚过去不久,转眼间酷热的夏季即将来临。冬天的电热毯,夏天的电风扇,都是让人欢喜又让人忧的东西。比如电热毯在使用时如果忘记关,可能造成火灾,严重时会威胁到人身安全,对于老年人如果关了睡可能等不了多久觉得冷又要开,现图4 所示窗口,点击选择Enable DataOut选项,观察编程器上的DATA灯VD 8这时应该点亮,依次点选Enable后就不开,且定时长短不能保存,每次用户在使用前都要重新设定。为解决上述的问题,笔者设计了本智能定时器 (见下图)。

  二、解决问题方案

  上图是笔者用万用板做的实物,其电源电路如下图所示,

定时器电路如下图所示。

本设计具有以下特点:

  1.使用AT89C52做微控器,并且由定时器0产生50ms的基准时钟,采用中断方式更新时间,使定时更准确;能实现定时循环,停止与工作的时间在0-99分钟由用户自己设置,增强了使用的灵活性;最小以分为单位计时(因为对电热毯和电风扇没有必要精确到秒);4位数码管动态扫描,前两位指示一个状态,后两位指示另一个状态。

  2.分别以3种不同颜色的指示灯指示系统的3个状态,绿灯表示工作(继电器吸合),数码管的前两位处于以分为单位的倒记时状态;红灯表示停止(继电器没吸合),数码管的后两位处于以分为单位的倒记时状态;黄灯表示设置初始值状态。方便用户的使用。

  3.使用ATMEL公司的24CO4作为系统设定值的储存器,防止中途停电或其他原因导致系统复位丢失初值的事件发生。该芯片具有接口简单,使用寿命长的特点。

  三、软件的实现整个程序使用C语言编写(见本期配刊光盘),采用模块化程序设计,加有详细的注解,因此有利于感兴趣的朋友阅读。系统的初始值存在24CO4的以20H开始的地址中,上电复位后,首先是系统初始化,然后从24CO4中读取初始值,程序流程分别如下图所示,

其中ml、mO、s1、sO分别存放的是4位数码管显示变量,走时运算只列出了工作状态走时部分,停止部分的程序是相同的,只是变量是sl、sO而已。按键处理部分程序很简单,而且有注释所以其流程图在此就不画出了。流程图中的代码与程序中的代码完全相同。

  四、使用说明

      系统的操作仅由4个按键控制:

  SA键:系统工作与停止两个状态的转换,当系统定时没有到切换时,可手动切换。

  SB键:选人初值设定状态,按此键后第一位数码管开始闪烁。此时按SC键就加1,如果按SD键第二位闪烁表示设置第二位,如此往下即可设定好初值。设定完成后按SA键保存设定值并返回到工作状态,以后开机就会以最近一次的设定值为初始值。

  SC键:执行加一操作,接SB键后左边第一位数码管开始闪烁。此时按SC键闪烁的数码管就加1,超过9时自动返回0,如果按SD键第二位闪烁表示设置第二位。

  SD键:设定初始值时充当位选键。

  在设定初始值时按此键,闪烁的数码管依次向右移动,超过最右端时自动返回到第一位。如此往下即可设定好初值,设定完成后按SA键保存设定值并返回到工作状态,以后开机就会以最近一次的设定值为初始值。如果需要重新设定可按照上述方法设定初值。

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:1,437.50000 毫秒