一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
楼主: 384065902
收起左侧

[51单片机] 福利:带编写51单片机程序(自己没事干了)

  [复制链接]
发表于 2014-2-12 22:31 | 显示全部楼层
楼主好人。想问一下,用STC89c52写一个定时程序,有类似设定多组闹钟的功能,但闹钟只是简单的驱动蜂鸣器这一动作而已。具体的说,就是有多种行为动作,动作一,日期时间定时,时间到了驱动IO口1(如p2^1)指定时长后自动关闭;动作二,日期时间定时,时间到了驱动IO口2(如p2^2)指定时长后自动关闭……。动作可能有不同类型的四五种,但可以自行选择,不一定每一动作都设定了要执行,而且也不一定是动作一的定时时间一定比动作二的定时时间早,还有要注意的就是,动作交叉的情况,就是说,可能动作一执行的时候,还没有到关闭时,动作二的定时执行时间来了,或者还有的时候,动作一动作二甚至动作三都相继执行了,都还未到关闭动作时,动作四的定时时间也来了。不知道这样说楼主明白了没?

定时设置的数据结构我准备这样规定:
typedef struct DateTime
{
  unsigned char second;
  unsigned char min;
  unsigned char hour;
  ...
}

typedef struct forRunTime
{
        unsigned char actionID;      动作编号
              DateTime actionDate;    动作执行时间:年月日时分秒20140213093000数据类型float或自定或就用字符数组
          unsigned int actionHowLong; 动作执行多久,单位分钟
                      sbit actionIO;      动作驱动的IO口
                       bit actionRepeat;  动作是否重复
         unsigned int RepeatMode;    动作重复模式:0不重复;1按小时重复;2按天重复;3按周重复;4按月重复(及下一月同一日期执行)
         unsigned int RepeatNum;     上面重复模式单位下的数值,如此数值为2时,重复模式为1时表示下一动作在此设定动作的下一小时执行,重复模式为3时,表示3周后执行。
}

将要执行的动作加入到执行定时时间表,执行到每一动作后,如果此动作属不重复的,就自动从动作表中删除,如需要重复的,就改动动作执行时间再投入定时监听列表中。执行定时时间表保存在外接的AT24CXX I2C接口EEPROM存储模块中

请问楼主,这种定时中断如何编程实现?
发表于 2014-2-12 22:46 | 显示全部楼层
假设当前设定的动作定时表如下
actionID   actionDate   actionHowLong actionIO  actionRepeat  RepeatMode  RepeatNum
   3     20140302080500      20         P2^5         1            2           15
   1     20140215091000      15         P2^2         1            1           12
   4     20140214063000      30         P2^3         1            3           1
   2     20140215133000      60         P2^1         1            4           15
   5     20140217101000      25         P2^4         0            0           0
发表于 2014-2-12 22:57 | 显示全部楼层
上面有一行描述错了,更正一下:
unsigned int RepeatNum;     上面重复模式单位下的数值,如此数值为2时,重复模式为1时表示下一动作在此设定动作的后2小时再次执行,重复模式为3时,表示2周后再次执行。
发表于 2014-4-14 09:45 | 显示全部楼层
给我 写个驱动VGA的怎么样
 楼主| 发表于 2014-4-14 12:06 | 显示全部楼层
sunny20 发表于 2014-4-14 09:45
给我 写个驱动VGA的怎么样

后期早就坑了,自己现在有3个大程序正在整,累
发表于 2014-4-14 15:05 | 显示全部楼层
不错啊、。。。。
发表于 2014-4-22 00:30 来自手机 | 显示全部楼层
楼主抽空写个单片机入门笔记,把单片机门外汉引进编程大门。楼主多保重身体!

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-6-10 17:42 , Processed in 0.045893 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表