久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2209|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

日出日落時刻調(diào)度器

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:82781 發(fā)表于 2015-6-13 16:00 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

/*

參照濟南市日出日落時刻表。
小ARM菜菜
2013年4月20日
日照高科園

濟南市日出日落時刻表,參考百度www.baidu.com

*/
TYP_Sunrise_set_tab  code  Sunrise_set_map[12]=
{
7,25,17,7,
7,25,17,16,
7,22,17,26,
7,15,17,37,
7,5,17,48,
6,54,17,58,
6,44,18,6,
6,3,18,16,
6,15,18,24,
5,59,18,34,
5,45,18,43,
5,31,18,51,
5,19,19,0,
5,9,19,9,
5,1,19,17,
4,55,19,25,
4,53,19,31,
4,53,19,34,
4,57,19,35,
5,2,19,33,
5,9,19,28,
5,17,19,19,
5,26,19,8,
5,34,18,56,
5,43,18,41,
5,51,18,26,
5,59,18,11,
6,7,17,56,
6,15,17,42,
6,25,17,29,
6,35,17,16,
6,45,17,6,
6,56,17,0,
7,5,16,56,
7,14,16,56,
7,21,17,0,
};
/*

時間調(diào)度

*/
uint8_t Day(uint8_t hour,uint8_t minute,uint8_t month,uint8_t day)
{
      month-=1;
  //0-12點
          if(( 0<=hour)&&(hour<=12 ))
    {  
   
      
       if(hour>Sunrise_set_map[month].Sunrise_Sunset_time[day].Sunrise.hour)
       {    //當前時間大于日出小時
      
        
      return 0; //關(guān)燈
        }
       else
       if(hour==Sunrise_set_map[month].Sunrise_Sunset_time[day].Sunrise.hour)   
        {
         //當前時間和日出小時相等要判定分鐘
          if(minute>=Sunrise_set_map[month].Sunrise_Sunset_time[day].Sunrise.minute)
          {
          //當前分鐘超出日出分鐘或相等,那么
        
        return 0; //關(guān)燈
         
         }
         else
         {
         
         return 1;//開燈
         }
        }
        return 1;
   
    }
    else
    //13點到無窮大呵呵怎么可能嫩
    if((12<hour)){     
   
      
   
       if(hour>Sunrise_set_map[month].Sunrise_Sunset_time[day].Sunset.hour)
       {    //當前時間大于落小時
         

       return 1;//開燈
        }
       else
       if(hour==Sunrise_set_map[month].Sunrise_Sunset_time[day].Sunset.hour)   
        {
        
         //當前時間和日落小時相等要判定分鐘
          if(minute>=Sunrise_set_map[month].Sunrise_Sunset_time[day].Sunset.minute)
          {
          //當前分鐘超出日落分鐘或相等,那么
         
        return 1; //開燈
         
         }
          else
          {
         
         
          return 0;//關(guān)燈
         
          }
        }
        else
        {
          return 0;
        
        }
   
   
   
   
   
   
                }
        else
     {
    return 0xfa; //異常情況
    }
}
uint8_t CHCK(uint8_t month,uint8_t hour,uint8_t minute,uint8_t day )
{      
         if((1<=day)&&(day<=11))
       {  
  
      return  Day(hour,minute,month,0);
   
     } /*如果是1號到11號*/
     else
     if ((11<day)&&(day<=21))
       {
     
  
      return Day(hour,minute,month,1);
    }/*如果是11號到21號*/
     else
      {  
  
     return Day(hour,minute,month,2);
     
       } /*其他*/
     
     
     

}
uint8_t  Process_cal_scheduling_information(unsigned char month,unsigned char day,unsigned char hour ,unsigned char minute )
{
      
  switch (month)
  {
  
      case 1:{
return  CHCK(month,hour, minute,day );
     
     break;}
      case 2:{                                       
     
return  CHCK(month,hour, minute,day );   
     
     break;}
     case 3:{                                       
     
return  CHCK(month,hour, minute,day );  
     break;}
     case 4:{                                      
      
return  CHCK(month,hour, minute,day );  
     
      break;}
     case 5:{                                    
     
return      CHCK(month,hour, minute,day );
        break;}

     case 6:{                                 
     
return      CHCK(month,hour, minute,day );
          break;}
     case 7:{                                 
     
return      CHCK(month,hour, minute,day );
          break;}
     case 8:{                                 
     
   return   CHCK(month,hour, minute,day );
           break;}
     case 9:{                                 
     
    return  CHCK(month,hour, minute,day );

          break;}
     case 10:{                                 
     

    return   CHCK(month,hour, minute,day );
          break;}
     case 11:{                                 
     

    return   CHCK(month,hour, minute,day );
          break;}
      case 12:{                                 
     
      return   CHCK(month,hour, minute,day );
          break;}
  
  
  
  
  }


}
unsigned  char  DecimaltoBcd(unsigned char Decimal )
{
   uint8_t l,m;
   m= Decimal/10;
   l=Decimal%10;
   m=(m&0x0f)<<4;
   return (m+l);
   

}
unsigned char BcdtoDecimal(unsigned char bcd)
{
  uint8_t l,m;
  l=(bcd&0x0f);
  m=(bcd&0xf0)>>4;
   return ((m*10)+l);


}
/*
時刻調(diào)度法調(diào)度器


  
*/
unsigned char Timetable_scheduling_switch_lights()
{
      uint8_t xdata  year,month,day,week,hour,minute,second,l,m;
     
    year =  Read_RTC_Data(Year_Register);
    month =  Read_RTC_Data(Month_Register);
    day =  Read_RTC_Data(Day_Register );
    week =  Read_RTC_Data(Week_Register);   //lode new time
    hour =  Read_RTC_Data(Hour_Register);
   minute =  Read_RTC_Data(Minute_Register);
   second =  Read_RTC_Data(Second_Register);
       l=  hour  ;
    m= minute;
    month=BcdtoDecimal(month);
    day=BcdtoDecimal(day);
    hour=BcdtoDecimal(hour);
    minute=BcdtoDecimal(minute);

   // SendOneByte(month) ;
//  SendOneByte(day) ;
   SendOneByte(((l&0xf0)>>4)+0x30 );
  SendOneByte((l&0x0f)+0x30) ;
    SendOneByte(0x3a) ;
    SendOneByte(((m&0xf0)>>4)+0x30) ;
    SendOneByte((m&0x0f)+0x30) ;
   

return Process_cal_scheduling_information(month,day,hour,minute );  


}
void printf_time()
{
SendOneByte(Read_RTC_Data(Year_Register));
SendOneByte(Read_RTC_Data(Month_Register));
SendOneByte(Read_RTC_Data(Day_Register ));
SendOneByte(Read_RTC_Data(Week_Register));
SendOneByte(Read_RTC_Data(Hour_Register));
SendOneByte(Read_RTC_Data(Minute_Register));
SendOneByte(Read_RTC_Data(Second_Register));
}
void Write_RTC( uint8_t Year,uint8_t Month,uint8_t Day,uint8_t Hour,uint8_t Minute,uint8_t Second,uint8_t Week)
{
   EXT_CTRL= EXT_CTRL|0x80;
   //關(guān)閉寫保護   ]
   Year =  DecimaltoBcd(Year ) ;
   Month =  DecimaltoBcd(Month ) ;
   Day =  DecimaltoBcd(Day ) ;
   Hour =  DecimaltoBcd(Hour ) ;
   Minute =  DecimaltoBcd(Minute ) ;
   Second =  DecimaltoBcd(Second ) ;
   Week =  DecimaltoBcd(Week ) ;


EXT_ADR  = Write_Protect_Register;
EXT_DAT  = 0xff;
  EXT_ADR  = Time_Adjust_Register;
EXT_DAT  = 0;

  //日期
EXT_ADR  = Year_Register;
EXT_DAT  = Year;

EXT_ADR  = Month_Register;
EXT_DAT  = Month;

EXT_ADR  = Day_Register;
EXT_DAT  = Day;

EXT_ADR  = Week_Register;
EXT_DAT  = Week;

//時間
EXT_ADR  = Hour_Register;
EXT_DAT  = Hour;

EXT_ADR  = Minute_Register;
EXT_DAT  = Minute;

EXT_ADR  = Second_Register;
EXT_DAT  = Second;


//寫保護
EXT_ADR  = Write_Protect_Register;
EXT_DAT  = 0;
}


//讀取RTC數(shù)據(jù)
uint8_t Read_RTC_Data(uint8_t addr)
{
  uint8_t  temp=0;
EXT_ADR  = addr;
   temp=EXT_DAT;
   
   return  temp;

}




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 色欧美片视频在线观看 | 亚洲人成网亚洲欧洲无码 | 在线伊人| 欧美日韩在线观看视频 | 欧美精品首页 | 亚洲成人av | 国产乱码精品一品二品 | 亚洲成av人片在线观看无码 | 欧美片网站免费 | 精品国产91乱码一区二区三区 | 久久久久久免费毛片精品 | 精品成人 | 精品区一区二区 | 国产日韩欧美另类 | 91 在线| 久久久久久久久蜜桃 | 99re视频精品 | 欧美成人精品激情在线观看 | 国产精品99久久久久久www | 黄片毛片 | 久久久久久99 | 欧美精品黄| 欧美黄视频 | 国产精品无码专区在线观看 | 国产精品日日做人人爱 | 国产亚洲精品久久久优势 | 成人久久 | 日本福利片 | 精品国产乱码久久久久久牛牛 | 在线观看国产 | 色毛片| 亚洲一区二区三区四区五区午夜 | 国产伦一区二区三区视频 | www.婷婷亚洲基地 | 日韩av成人 | 91精品久久久久久久久中文字幕 | 日韩av在线一区 | 久久久久久国产免费视网址 | 久久亚洲欧美日韩精品专区 | 网黄在线| 在线观看中文字幕亚洲 |