赞助论坛
  • 5188阅读
  • 0回复

多功能数字钟C51编译(最新贡献)有用得着的就顶 [复制链接]

楼层直达
发帖
58
精华
0
金币
111
威望
1
贡献
0
好评
1
注册
2010-03-27
楼主    qq635274216 发表于: 2010-06-24 23:51:43 
本人最近做的一款多功能数字钟,用的是STC89C52单片机。该数字钟具有基本的时钟功能。并能通过继电器输出18组打铃程序,该功能是模拟的教学楼打铃。还可以通过按键设定一组闹钟时间,闹钟时间到响铃。该数字钟没有用到时钟芯片。遗憾的是红外接触止闹功能还未完成,作品就得上交了,更令人郁闷的是作品交了之后就不见了,鄙视那些保管作品的人,浪费了我多少心血啊!
由于成序太大下面只贴部分程序:
void ring()       //打铃子程序
{
   
  flag1=0; //是,则标志位,flag1清零
  while(!(flag1==200)) //判断flag1是否到100
  {
    fmq=0; //没有,则,继续驱动蜂鸣器响,时间约为:10s=50ms*200
    shijian(); //调用时间子函数
    display(); //调用显示子函数  
  }
  fmq=1;//关闭蜂鸣器
}
void clock() //闹铃子函数
{
  if(miao2==miao) //显判断秒的数值是否相等
      if(fen2==fen) //是,在判断分是否相等
          if(shi2==shi) //是,再判断时是否相等
              ring();
}

  void clock2() //打铃的程序
{
if((miao==0x00)&&(fen==0x32)&&(shi==0x07))             ring();
else if((miao==0x00)&&(fen==0x00)&&(shi==0x08))           ring();
else if((miao==0x00)&&(fen==0x32)&&(shi==0x08))           ring();
else if((miao==0x00)&&(fen==0x00)&&(shi==0x09))           ring();
else if((miao==0x00)&&(fen==0x32)&&(shi==0x09))           ring();
else if((miao==0x00)&&(fen==0x0a)&&(shi==0x0a))           ring();
else if((miao==0x00)&&(fen==0x00)&&(shi==0x0b))           ring();
else if((miao==0x00)&&(fen==0x0a)&&(shi==0x0b))           ring();
else if((miao==0x00)&&(fen==0x00)&&(shi==0x0c))           ring();

else if((miao==0x00)&&(fen==0x14)&&(shi==0x0d))           ring();
else if((miao==0x00)&&(fen==0x1e)&&(shi==0x0d))           ring();
else if((miao==0x00)&&(fen==0x14)&&(shi==0x0e))           ring();
else if((miao==0x00)&&(fen==0x1e)&&(shi==0x0e))           ring();
else if((miao==0x00)&&(fen==0x14)&&(shi==0x0f))           ring();
else if((miao==0x00)&&(fen==0x1e)&&(shi==0x0f))           ring();
else if((miao==0x00)&&(fen==0x14)&&(shi==0x10))           ring();  
else if((miao==0x00)&&(fen==0x1e)&&(shi==0x10))           ring();
else if((miao==0x00)&&(fen==0x14)&&(shi==0x11))           ring();                                                                                        
}


更详细的内容见附件,里面有源程序和原理图。