碧波液压网 欢迎你,游客。 登录 注册

基于MCS-51单片机的多点定时器设计

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

   

    0 引言

    “定时器”一般分为两种类型[1],一种是基于模拟技术的传统产品,这种定时器功能简单,尽管曾被广泛应用过,但已进入淘汰之列。另一种就是基于数字技术的新一代产品,这种产品功能强,是前者的换代之物。随着单片机性能价格比的不断提高,新一代产品的应用越来越广泛,大可构成复杂的工业过程控制系统,完成复杂的控制功能,小则可以用于家电控制,甚至能够用来做儿童电子玩具。它功能强大,体积小,重量轻,灵活好用,配以适当的接口芯片,可以构造各种各样、功能各异的微电子产品[1]。在现代控制技术中,经常要用到多次定时的情况,市面上普遍存在的定时器若以天为周期,其定时次数只有一两次。所以要实现多点定时,要用到大量的定时器,或者购买现成的智能自动开关,而成品定时器的体积较大且不便于安装,这就给设计带来了诸多不便。基于单片机的可灵活编程特性,利用单片机设计了一种具有多点定时功能的定时器,并给出了其设计思路和部分程序流程。实验证明,该定时器工作性能稳定、可靠,可广泛应用于需要多点定时的无人值守系统中。

    1 系统方案设计

    AT系列单片机是美国ATMEL公司在IntelMCS-51单片机技术基础上开发出的一种新产品,片内带有4k E2PROM,编程和擦除全部采用电的方式实现(有5V和12V两种模式),既能进行在线编程擦写,亦可采用电话线进行远程编程擦写。可重复性强,使用寿命长,可重复擦写1000次以上,并且擦写速度快, 4k编程大约需3s,擦除仅需10ms。程序保存时间可达100年之久,与IntelMCS-51系列单片机完全兼容,且有超强的加密功能,能完全替代IntelMCS-8751/IntelMCS-8752和IntelMCS-87C51/IntelMCS-87C52,低电压,低电流,低功耗,除了有DIP,PLCC,QFP等多种封装形式,还有商用级、工业级、汽车用级、军用级等多种规格。因此,目前它在微计算机产品开发中的应用越来越“火”。

    利用MCS-51单片机实现多点定时,不需要复杂的计算,程序代码量不大, 4k E2PROM已足够,无须外扩ROM和RAM。

    利用单片机设计的时钟,很多文献都已提及,本文不再赘述,这里我们就以普通时钟为基础,结合其硬件电路,给出了多点定时器的软件设计流程。

    1. 1 数据结构

    由于多点定时器使用的定时数据较少,所以可采用线性表或链表这两种较为简单的数据结构给出其定时数据,其中线性表直观,所需存储空间小,但其算法效率较低;链表的算法效率较高,但其所需存储空间较大[3]。考虑到单片机内可用RAM较少,本文采用了线性表进行定时数据的存储。

    为了有效提高存储数据的效率,可以利用增量调制(△M)的原理来实现数据的存储[4]。先进行时间存放,然后存放时间的差值(增量△M),如绝对时间可用5位存放时、6位存放分、6位存放秒、3位存放星期,这样存放一个时间共需20位,若需要每小时定时一次,则时间差为1小时,也即增量△M为3600秒,可以用12位进行存储增量,但当前后时间相差大于18小时时,则其增量将需要17位以上的存储空间进行存储。所以定时精度如果是秒级,则考虑到通用性,可采用直接存储的方式,而非压缩方式。当然,如果定时的时间增量相差较小,即定时点数较多的定时系统,采用增量压缩方式更为实用。

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论