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

📄 yinli.h

📁 12864液晶显示万年历的51单片机仿真和程序 程序是C语言写的。仿真用的proteus
💻 H
字号:
#define uchar unsigned char
/***************************************************
* 标题:公历与阴历、星期转换                       *
* 作者:Wujieflash                                 *
* 日期:2008年1月18日                              *
* 说明:阴历日期与星期随公历变化                   *
***************************************************/
uchar code  info[]=
{0x0c,0x96,0x45,//2000
 0x4d,0x4a,0xb8,//2001
 0x0d,0x4a,0x4c,//2002
 0x0d,0xa5,0x41,//2003
 0x25,0xaa,0xb6,//2004
 0x05,0x6a,0x49,//2005
 0x7a,0xad,0xbd,//2006
 0x02,0x5d,0x52,//2007
 0x09,0x2d,0x47,//2008
 0x5c,0x95,0xba,//2009
 0x0a,0x95,0x4e,//2010
 0x0b,0x4a,0x43,//2011
 0x4b,0x55,0x37,//2012
 0x0a,0xd5,0x4a,//2013
 0x95,0x5a,0xbf,//2014
 0x04,0xba,0x53,//2015
 0x0a,0x5b,0x48,//2016
 0x65,0x2b,0xbc,//2017
 0x05,0x2b,0x50,//2018
 0x0a,0x93,0x45,//2019
 0x47,0x4a,0xb9,//2020
 0x06,0xaa,0x4c,//2021
 0x0a,0xd5,0x41,//2022
 0x24,0xda,0xb6,//2023
 0x04,0xb6,0x4a,//2024
 0x69,0x57,0x3d,//2025
 0x0a,0x4e,0x51,//2026
 0x0d,0x26,0x46,//2027
 0x53,0x93,0x3a,//2028
 0x0d,0x53,0x4d,//2029
 0x05,0xaa,0x43,//2030
 0x36,0xb5,0x37,//2031
 0x09,0x6d,0x4b,//2032
 0xb4,0xae,0xbf,//2033
 0x04,0xad,0x53,//2034
 0x0a,0x4d,0x48,//2035
 0x6d,0x25,0xbc,//2036
 0x0d,0x25,0x4f,//2037
 0x0d,0x52,0x44,//2038
 0x5d,0xaa,0x38,//2039
 0x0b,0x5a,0x4c,//2040
 0x05,0x6d,0x41,//2041
 0x24,0xad,0xb6,//2042
 0x04,0x9b,0x4a,//2043
 0x7a,0x4b,0xbe,//2044
 0x0a,0x4b,0x51,//2045
 0x0a,0xa5,0x46,//2046
 0x5b,0x52,0xba,//2047
 0x06,0xd2,0x4e,//2048
 0x0a,0xda,0x42,//2049
 0x35,0x5b,0x37,//2050
 0x09,0x37,0x4b,//2051
 0x84,0x97,0xc1,//2052
 0x04,0x97,0x53,//2053
 0x06,0x4b,0x48,//2054
 0x66,0xa5,0x3c,//2055
 0x0e,0xa5,0x4f,//2056
 0x06,0xb2,0x44,//2057
 0x4a,0xb6,0x38,//2058
 0x0a,0xae,0x4c,//2059
 0x09,0x2e,0x42,//2060
 0x3c,0x97,0x35,//2061
 0x0c,0x96,0x49,//2062
 0x7d,0x4a,0xbd,//2063
 0x0d,0x4a,0x51,//2064
 0x0d,0xa5,0x45,//2065
 0x55,0xaa,0xba,//2066
 0x05,0x6a,0x4e,//2067
 0x0a,0x6d,0x43,//2068
 0x45,0x2e,0xb7,//2069
 0x05,0x2d,0x4b,//2070
 0x8a,0x95,0xbf,//2071
 0x0a,0x95,0x53,//2072
 0x0b,0x4a,0x47,//2073
 0x6b,0x55,0x3b,//2074
 0x0a,0xd5,0x4f,//2075
 0x05,0x5a,0x45,//2076
 0x4a,0x5d,0x38,//2077
 0x0a,0x5b,0x4c,//2078
 0x05,0x2b,0x42,//2079
 0x3a,0x93,0xb6,//2080
 0x06,0x93,0x49,//2081
 0x77,0x29,0xbd,//2082
 0x06,0xaa,0x51,//2083
 0x0a,0xd5,0x46,//2084
 0x54,0xda,0xba,//2085
 0x04,0xb6,0x4e,//2086
 0x0a,0x57,0x43,//2087
 0x45,0x27,0x38,//2088
 0x0d,0x26,0x4a,//2089
 0x8e,0x93,0x3e,//2090
 0x0d,0x52,0x52,//2091
 0x0d,0xaa,0x47,//2092
 0x66,0xb5,0x3b,//2093
 0x05,0x6d,0x4f,//2094
 0x04,0xae,0x45,//2095
 0x4a,0x4e,0xb9,//2096
 0x0a,0x4d,0x4c,//2097
 0x0d,0x15,0x41,//2098
 0x2d,0x92,0xb5,//2099
 };

//计算公历日离元旦的天数
int Numdate(uchar year,uchar month,uchar date)
{
	uchar i;
	int numday=0;
	for(i=1;i<month;i++)
	{
		if((i!=2)&&(i<8)&&(i%2==1))numday=numday+31;
		if((i>7)&&(i%2==0))numday=numday+30;
		if(i==2)
		{
			if(year/4==0)numday=numday+29;
			else numday=numday+28;
		}
	}
	numday=numday+date;
	return(numday);
}

//公历转换阴历的子程序
void YangToYin(uchar year,uchar month,uchar date)
{
	uchar numdate1,numdate2,chunjie_yue,chunjie_date,num;
	uchar runyue,num_month=0,i,flag,bitmonth,ri_ge,ri_shi;
	numdate1=Numdate(year,month,date);
	chunjie_yue=info[year*3+2]&0x60;
	chunjie_yue=chunjie_yue>>4;
	chunjie_date=info[year*3+2]&0x1f;
	numdate2=Numdate(year,chunjie_yue,chunjie_date);
	num=numdate1-numdate2;
	runyue=info[year*3]&0xf0;
	runyue=runyue>>4;
	
	if(num>0)
	{
		bitmonth=info[year*3]&0x0f;
		bitmonth=bitmonth<<4;
		for(i=4;i>0;i++)
		{
			//temp=num;
			flag=bitmonth&0x80;
			if(flag==1)
			{
				if((num-30)>0)
				{
					if(num_month==runyue)
					{
						if(info[year*3+2]&0x80==1)
						{
							num=num-30;
						}
						else
						{
							num=num-29;
						}
					}
					num_month++;
					num=num-30;
				}
				else
				{
					ri_ge=num%10;
					ri_shi=num/10;
				}
			}
			else 
			{
				if((num-29)>0)
				{
					if(num_month==runyue)
					{
						if(info[year*3+2]&0x80==1)
						{
							num=num-30;
						}
						else
						{
							num=num-29;
						}
					}
					num_month++;
					num=num-29;
				}
				else
				{
					ri_ge=num%10;
					ri_shi=num/10;
				}
			}
			bitmonth=bitmonth<<1;
		}
		bitmonth=info[year*3+1];
		for(i=8;i>0;i++)
		{
			//temp=num;
			flag=bitmonth&0x80;
			if(flag==1)
			{
				if((num-30)>0)
				{
					if(num_month==runyue)
					{
						if(info[year*3+2]&0x80==1)
						{
							num=num-30;
						}
						else
						{
							num=num-29;
						}
					}
					num_month++;
					num=num-30;
				}
				else
				{
					ri_ge=num%10;
					ri_shi=num/10;
				}
			}
			else 
			{
				if((num-29)>0)
				{
					if(num_month==runyue)
					{
						if(info[year*3+2]&0x80==1)
						{
							num=num-30;
						}
						else
						{
							num=num-29;
						}
					}
					num_month++;
					num=num-29;
				}
				else
				{
					ri_ge=num%10;
					ri_shi=num/10;
				}
			}
			bitmonth=bitmonth<<1;
		}
//		ChangeToLCD6(4,64,num_month);
//		ChangeToLCD7(4,111,ri_ge);
//		ChangeToLCD8(4,95,ri_shi-1);
	}
}

⌨️ 快捷键说明

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