LED时钟|语音同步LED时钟农历计算代码(立显光电)

LED时钟|语音同步LED时钟农历计算代码由深圳市立显光电有限公司技术部提供,欢迎指正,谢谢!

void Lunar_Calculation(void){
 unsigned char  temp1,temp2,temp3,month_p;
    unsigned int temp4,table_addr;
 unsigned char flag2,flag_y;
 unsigned char year=time_buf[1];//阳历年
 unsigned char month=time_buf[2];//阳历月
 unsigned char day=time_buf[3];//阳历日
    temp1=year/16;//BCD->hex  将阳历数据转化成十进制
    temp2=year%16;
    year=temp1*10+temp2;
    temp1=month/16;
    temp2=month%16;
    month=temp1*10+temp2;
    temp1=day/16;
    temp2=day%16;
    day=temp1*10+temp2; 
 //固定为21世纪
 table_addr=(year+0x64-1)*0x3;
 //取当年春节所在的公历月份
    temp1=year_code[table_addr+2]&0x60;
    temp1=temp1>>5;
 //取当年春节所在的公历日
    temp2=year_code[table_addr+2]&0x1f;
 //计算当年春节离元旦的天数
    if(temp1==0x01){ 
        temp3=temp2-1; 
    }else{
        temp3=temp2+0x1f-1;       
    }
 //计算公历日离元旦的天数
 if (month<10){
        temp4=day_code1[month-1]+day-1;
    }else{
        temp4=day_code2[month-10]+day-1;
    }
    if ((month>0x02)&&(year%0x04==0)){  //公历日大于2月并且当年的2月为闰月
        temp4+=1;
    }
 //判断公历日在春节前还是春节后
 if(temp4>=temp3){//公历日在春节后或是当日
  temp4-=temp3;
  month=0x01;
  month_p=0x01;//month_p为月份指向,公历日在春节前或是春节当日month_p指向首月
  flag2=get_moon_day(month_p,table_addr);//检查农历月为大月还是小月
  flag_y=0;
  if(flag2==0){
    temp1=0x1d;//小月29天
  }else{
    temp1=0x1e;//大小30天
  }
  temp2=year_code[table_addr]&0xf0;
  temp2=temp2>>4;//从数据表中取该年的闰月份
  while(temp4>=temp1){
    temp4-=temp1;
   month_p+=1;
   if(month==temp2){
    flag_y=~flag_y;
    if(flag_y==0){
      month+=1;
    }
   }else{
     month+=1;
   }
   flag2=get_moon_day(month_p,table_addr);
   if(flag2==0){
     temp1=0x1d;
   }else{
     temp1=0x1e;
   }
  }
  day=temp4+1;
 }else{
  //公历日在春节前
  temp3-=temp4;
  if(year==0x00){
    year=0x63;
  }else{
   year-=1;
  }
  table_addr-=0x03;
  month=0x0c;
  temp2=year_code[table_addr]&0xf0;
  temp2=temp2>>4;
  if(temp2==0){
    month_p=0x0c;
  }else{
    month_p=0x0d;
  }
  flag_y=0;
  flag2=get_moon_day(month_p,table_addr);
  if(flag2==0){
    temp1=0x1d;
  }else{
    temp1=0x1e;
  }
  while(temp3>temp1){
   temp3-=temp1;
   month_p-=1;
   if(flag_y==0){
     month-=1;
   }
   if(month==temp2){
     flag_y=~flag_y;
   }
   flag2=get_moon_day(month_p,table_addr);
   if(flag2==0){
     temp1=0x1d;
   }else{
     temp1=0x1e;
   }
  }
  day=temp1-temp3+1;
 }
 //将数据加入到NUM中
 Num[0]=month/10;
 Num[1]=month%10;
 Num[2]=day/10;
 Num[3]=day%10;
}

时间: 2024-12-19 07:36:29

LED时钟|语音同步LED时钟农历计算代码(立显光电)的相关文章

没看西安同步的时钟服务器时,别着急买时钟服务器

没看西安同步的时钟服务器时,别着急买时钟服务器gps卫星校时系统简介卫星校时系统通过在局域网内设置的GPS时钟服务器,接收GPS卫星上标准的时间,并通过接入局域网,以TCP/IP协议将标准时间发送到各个联入网络的工作站,同步校对各工作站时间,从而提供一个精确标准的时间基准,解决各工作站时间不准确.不同步的问题.避免了由于时间的错误而带来不必要的损失,而且该系统的时间和北京时间是完全同步的:同时该系统还能驱动子钟显示屏和 LCD 液晶显示器对外进行时间显示,方便工作人员查看时间.卫星校时系统工作原

没看西安同步的时钟服务器时,别着急买!

gps卫星校时系统简介卫星校时系统通过在局域网内设置的GPS时钟服务器,接收GPS卫星上标准的时间,并通过接入局域网,以TCP/IP协议将标准时间发送到各个联入网络的工作站,同步校对各工作站时间,从而提供一个精确标准的时间基准,解决各工作站时间不准确.不同步的问题.避免了由于时间的错误而带来不必要的损失,而且该系统的时间和北京时间是完全同步的:同时该系统还能驱动子钟显示屏和 LCD 液晶显示器对外进行时间显示,方便工作人员查看时间.卫星校时系统工作原理校时系统总的设计方案是软硬件均采用网络流行的

时钟同步和时钟修正的小技巧

引入: 时钟同步一直是一个比较热的话题.因为它涉及到许多具体场景. 场景A: 2个系统做交易,A系统下订单,B系统管理订单.结果因为B系统比A慢5分钟,A下单完了,B获得的时间居然是一个未来的时间. 场景B: 搞双十一了,某公司的网上电子商城需要在11月11北京时间凌晨0点启用应急预案,然后启用强大的促销规则.结果因为时钟比北京时间慢了10分钟.等11月11零点,大量抢购的人一下子拥入网上电子商城,造成该公司访问量的"井喷"式的增长,但是因为服务器还在11月10日晚上23:50,所以没

Oracle 11gR2 安装RAC错误之--时钟不同步

Oracle 11gR2 安装RAC错误之--时钟不同步 系统环境: 操作系统:RedHat EL5 Cluster: Oracle GI(Grid Infrastructure) Oracle:  Oracle 11.2.0.1.0 如图所示:RAC 系统架构   对于Oracle 11G构建RAC首先需要构建GI(Grid Infrastructure)的架构 错误现象: 在node2执行root.sh脚本时报错: [[email protected] install]# /u01/11.2

H3C设备NTP时钟无法同步排查方法

NTP 时钟无法同步排查方法:1. V5设备NTP同步的版本默认是V3版本,V7设备默认是V4版本,如果直接在V7设备上配置NTP,NTP上的时钟可能无法实现同步的,需要手动将版本更改为V3就可以同步时钟了V5设备查看版本如下:[H3C]dis ntp sessions ver[H3C]dis ntp sessions verbose clock source: 10.1.12.1clock stratum: 2clock status: configured, master, sane, va

arduino + ld3320语音识别模块实现语音控制LED灯

材料准备: 1.arduino UNO开发板 2.LD3320语音识别模块 面包板,杜邦线,LED灯等 接线: LE3320     ----      arduino 1.3.3v(两个都接)  --  3.3v 2.GND(两个都接)  --  GND 3.MISO  --  D12 4.MOSI  --  D11 5.SCK  --  D13 6.NSS  --  D4 7.NC  --  空着 8.RST  --  D9 9.WR  -- GND 10.IRQ  -- D2 8号引脚串联

FPGA基础知识6(FPGA时钟系统及多时钟系统处理)

需求说明:FPGA基本知识 内容       :第一部分  FPGA各个时钟说明 第二部分  FPGA时钟总结 第三部分  异步时钟同步化及门控时钟 来自       :时间的诗 第一部分  FPGA各个时钟说明 来自:http://blog.chinaunix.net/uid-7547035-id-60220.html 1.         FPGA的全局时钟是什么? FPGA的全局时钟应该是从晶振分出来的,最原始的频率.其他需要的各种频率都是在这个基础上利用PLL或者其他分频手段得到的. 2

单片机课程设计——《基于AT89S52单片机和DS1302时钟芯片的电子时钟(可蓝牙校准)》

引言 本设计以AT89S52单片机为控制核心,时钟芯片DS1302提供时钟源,配合LCD1602液晶显示模块,组成基本硬件系统,同时利用HC-05嵌入式蓝牙串口通讯模块,可在手机端进行日期.时间的校准.具有走时精确,功耗低,显示直观,调整简单方便等优点. 功能描述 基本显示: 第一行为日期,依次为:年-月-日-星期 第二行为时间,依次为:时:分:秒 说明: 每月的天数,闰年的天数可自动调整 蓝牙校准日期: 命令d+年月日星期+#,如设置2016年12月8日星期四,手机发送命令:d16120804

led液晶显示屏播放器LED Player详细使用教程

LED Player显示屏播放器是一个专业的LED屏显播放器,给用户带来全新操控体验的高能单双色软件,更方便易用,更具性价比,更多显示效果,led显示屏播放器支持多页面多分区的节目编辑,提供了丰富灵活的视频切换功能.分区特效,以及三维特效动画.该软件搭建了一个能让您充分发挥创意的平台,让显示屏的显示效果得到完美展现. LEDPlayer支持ZH系列接收卡.发送卡,支持一台PC机控制多个LED显示屏, 支持对LED显示屏的智能参数设置. 一.屏参设置: 打开LED Player 6.0软件,点击[