怎么利用单片机24小时定时发送一个信号?

arcsink   2009-9-15 13:42 楼主
怎么利用单片机24小时定时发送一个信号?

而不影响单片机其它工作!

(分数不多了,给50分吧)

回复评论 (11)

加时钟芯片
点赞  2009-9-15 13:52
在定时器中断处理函数中做时间片处理吼
点赞  2009-9-15 13:53
引用: 引用 1 楼 jasonel 的回复:
加时钟芯片
要求是不加另外的芯片
点赞  2009-9-15 14:02
时间要求不严格的话,也就利用定时器中断吧。
点赞  2009-9-15 14:05
引用: 引用 2 楼 swapsword 的回复:
在定时器中断处理函数中做时间片处理吼
能具体一点吗/
点赞  2009-9-15 14:16
谁能帮我看一下,我的程序行吗?
#include
//----------------------------------------------------
sbit led=P0^5;

//---------------------------------------------------
//全局变量及位标志定义
bit FT0;

unsigned long T0_200ms;

//---------------------------------------------------
//固定函数声明
void timer_0();     //定时器中断0
//---------------------------------------------------
//用户函数声明
void initial();     //初始化


//---------------------------------------------------
void main()
{
        initial();
        T0_200ms=0;

        while(1)
   {

        if(FT0)
        {
            FT0=0;
            EA=0;         
            TH0=0x63;   //400KHZ频率下,中断一次定隔200ms
            TL0=0xC0;
            TR0=1;
            if(++T0_200ms>432000)  //24小时×3600秒×5   5个200ms为1秒
            {
               
               led=0;   //每24小时led置1
            }
        }
       //if(  ) {}其他中断,处理其它工作
   }
}
//-------------------------------------------------------------------
void initial(){
        EA=1;               // CPU所有中断开
        TMOD=0x01;
        return;
}

//定时器0中断
void timer_0() interrupt 1 using 2
{
        FT0=1;
}


点赞  2009-9-15 14:47
单片机可以相对准确地定出24小时出来

但是,这个累积误差也是很可观的

如果没有外部的校准,用不了多久,就会差得很离谱(当然,这是相对客观的时间而言)

要是只需要24个小时的间隔,用汇编+计算晶体周期,可以做得比较准
点赞  2009-9-16 08:57
单片机可以相对准确地定出24小时出来
关键是定时器要做好补偿。
我们曾经用单片机做过时钟,最终做到每24小时误差一秒钟
点赞  2009-9-16 09:08
单片机做个时钟就可以了 24小时
点赞  2009-9-17 20:05
定时器,网络发还是串口发?
点赞  2009-9-17 23:48
虽然不是很精确,但还能用,结贴
点赞  2009-9-22 16:01
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复