⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 time.h~

📁 使用AVR单片机实现的万年历功能,其中使用了ds1302和1602
💻 H~
字号:
#ifndef _TIME_ZHENGZUOWEI_H_
#define _TIME_ZHENGZUOWEI_H_
/*****************************************************
数组DS1302Data[12]为万年历时钟日期数据存储变量
依次为农历年高位,农历年低位,农历月份,农历日期,国历年高位,国历年低位,国历月份,国历日期,星期,小时,分钟,秒
noiseData[8]为闹钟数据
*****************************************************/     
unsigned char DS1302Data[12];
unsigned char noiseData[8];
unsigned char setTimeData[8];
/*****************************************************

数组findLunar[200]为国历转农历的数据
农历月份数据,每年4字节,从2001年开始,共50年 
数据解析: 
如果第一字节的bit7为1,则该年1月1日位于农历12月,否则位于11月 
第一字节去除bit7为该年1月1日的农历日期 
        第二字节                第三字节 
bit:     7  6  5  4  3  2  1  0  7  6  5  4  3  2  1  0 
农历月份:16 15 14 13 12 11 10 9  8  7  6  5  4  3  2  1 
农历月份指的是从该年1月1日的农历月份算起的顺序号 
农历月份对应的bit为1则该月为30日,否则为29日 
第四字节为闰月月份 
*****************************************************/
flash char findLunar[200] = 
{
		0x87,0x2a,0x56,0x04,
        0x12,0x14,0xae,0x00,
        0x1d,0x29,0x6d,0x00,
        0x8a,0x2a,0xb5,0x02,
        0x15,0x15,0xaa,0x00,
        0x82,0x36,0xaa,0x07,
        0x0d,0x2e,0x93,0x00,
        0x17,0x2d,0x26,0x00,
        0x86,0x35,0x27,0x05,
        0x11,0x2a,0x57,0x00,
        0x1b,0x14,0xb6,0x00,
        0x88,0x15,0x5a,0x04,
        0x14,0x2a,0xb5,0x00,
        0x81,0x2b,0x55,0x09,
        0x0b,0x17,0x4a,0x00,
        0x16,0x36,0x95,0x00,
        0x84,0x3a,0x95,0x06,
        0x0f,0x35,0x2b,0x00,
        0x1a,0x32,0x57,0x00,
        0x87,0x2a,0x5d,0x04,
        0x12,0x15,0x5a,0x00,
        0x1d,0x2a,0xd5,0x00,
        0x8a,0x2b,0x65,0x02,
        0x14,0x1b,0x4a,0x00,
        0x82,0x1d,0x52,0x06,
        0x0d,0x1c,0x95,0x00,
        0x18,0x19,0x2d,0x00,
        0x85,0x19,0x2e,0x05,
        0x11,0x32,0xad,0x00,
        0x1c,0x15,0x6b,0x00,
        0x88,0x15,0xac,0x03,
        0x13,0x2d,0xa5,0x00,
        0x81,0x2e,0xa5,0x0b,
        0x0b,0x2d,0x4a,0x00,
        0x16,0x2c,0x96,0x00,
        0x84,0x34,0x97,0x06,
        0x10,0x29,0x2f,0x00,
        0x1a,0x12,0xae,0x00,
        0x87,0x0a,0xb6,0x05,
        0x11,0x16,0xb4,0x00,
        0x1d,0x2d,0xa9,0x00,
        0x8a,0x36,0xa5,0x02,
        0x15,0x36,0x4b,0x00,
        0x82,0x3a,0x4b,0x07,
        0x0e,0x34,0x97,0x00,
        0x19,0x29,0x57,0x00,
        0x86,0x29,0x5b,0x05,
        0x10,0x12,0xda,0x00,
        0x1c,0x16,0xd5,0x00,
        0x88,0x1b,0x54,0x03
};
/*****************************************************
二维字符数组week[7][17]用于存放星期一到星期天的英文数据
*****************************************************/
flash char week[7][17]=
{
"WEEK:     MONDAY",
"WEEK:    TUESDAY",
"WEEK:  WEDNESDAY",
"WEEK:   THURSDAY",
"WEEK:     FRIDAY",
"WEEK:   SATURDAY",
"WEEK:     SUNDAY"
};       
/*****************************************************
数组solarData[17]、lunarData[17]、timeData[17]用于初始化显示
*****************************************************/
flash char solarData[17] = "SOLAR:20  -  -  ";  //  用于存放阳历的数据
flash char lunarData[17] = "LUNAR:20  -  -  ";  //  用于存放阴历的数据
flash char timeData[17] = "TIME:     :  :  ";   //  用于存放时间的数据
/*****************************************************
display1用于存放时间和星期的缓冲区数据
display2用于存放国历的缓冲区数据
display3用于存放农历的缓冲区数据
*****************************************************/
unsigned char display1[8];
unsigned char display2[8];
unsigned char display3[8];

void Change(void);
void DisplayOne(void);
void DisplayTwo(void);
unsigned int FindDataOfYear(void);
void FindDataOfWeek(void);
void SolarToLunar(void);

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -