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

標(biāo)題: 日出日落時刻調(diào)度器 [打印本頁]

作者: xuwei    時間: 2015-6-13 16:00
標(biāo)題: 日出日落時刻調(diào)度器

/*

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

濟(jì)南市日出日落時刻表,參考百度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)
       {    //當(dāng)前時間大于日出小時
      
        
      return 0; //關(guān)燈
        }
       else
       if(hour==Sunrise_set_map[month].Sunrise_Sunset_time[day].Sunrise.hour)   
        {
         //當(dāng)前時間和日出小時相等要判定分鐘
          if(minute>=Sunrise_set_map[month].Sunrise_Sunset_time[day].Sunrise.minute)
          {
          //當(dāng)前分鐘超出日出分鐘或相等,那么
        
        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)
       {    //當(dāng)前時間大于落小時
         

       return 1;//開燈
        }
       else
       if(hour==Sunrise_set_map[month].Sunrise_Sunset_time[day].Sunset.hour)   
        {
        
         //當(dāng)前時間和日落小時相等要判定分鐘
          if(minute>=Sunrise_set_map[month].Sunrise_Sunset_time[day].Sunset.minute)
          {
          //當(dāng)前分鐘超出日落分鐘或相等,那么
         
        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)閉寫保護(hù)   ]
   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;


//寫保護(hù)
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;

}









歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 羞羞视频免费观看入口 | 亚洲一av | 日本精品久久久久久久 | 午夜影院视频 | 99精品一级欧美片免费播放 | 国产精品久久久久久久久 | 成人欧美一区二区三区在线观看 | 亚洲国产aⅴ成人精品无吗 亚洲精品久久久一区二区三区 | 国产精品色 | 亚洲激情网站 | 国产一区不卡 | 97国产精品视频人人做人人爱 | 欧美www在线| 国产精品欧美一区二区三区不卡 | 欧美视频一级 | 日韩小视频在线 | 欧美日本一区二区 | 午夜免费看 | 在线观看国产网站 | 在线免费观看毛片 | 久久久久久久久久久久久久久久久久久久 | 9191av| 亚洲国产精品一区二区第一页 | 91久久伊人 | 日本在线一区二区 | 日日日色 | 伊人电影院av | 婷婷狠狠 | 亚洲欧美日韩在线 | 成人深夜福利 | 国产一区二区三区免费视频 | 国产福利资源 | 日韩欧美精品在线 | 亚洲人成一区二区三区性色 | 日本精品久久 | 久热精品在线观看视频 | 国产一级在线观看 | 国产一区黄色 | 久久久久久国产精品 | 黄色片在线网站 | 精品麻豆剧传媒av国产九九九 |