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

📄 12864nine.c

📁 就是想下载一些东西啊
💻 C
字号:
#include<reg52.h>
#include<IIC.h>
#include<yinli.h>
#include<ds1302.h>
#include<keyscan.h>
#include<12864init.h>
#define uchar unsigned char
#define uint unsigned int
sbit key1=P3^3;
sbit key2=P3^4;
sbit key3=P3^5;
sbit key4=P1^3;
sbit feng=P3^6;
sbit kaiguan=P1^4;                                                      
int nian;
char shi,fen,miao,day,ri,yue,qian,bai,nqb,nsg,nshi,nfen,nmiao;
uchar num,shu,i,shsh,gege,flag,fs,fg,ss,sg,ys,ye,rqs,rqg,ns,ng,flag1,k;
 uchar year_c,month_c,day_c;
uchar code table[]={"-"};
uchar code table1[]={"2009-04-13"};
uchar code table3[]={"MONTUEWEDTHUFRISATSUN"};
uchar code table4[]={"闹钟                  "};
uchar code dis1[]={"甲乙丙丁戊己庚辛壬癸"};
uchar code dis2[]={"子丑寅卯辰巳午未申酉戌亥"};
uchar code dis3[13][7]={" ","一月","二月","三月","四月","五月",
"六月","七月","八月","九月","十月","十一月","十二月"};
uchar code dis4[32][7]={" ","初一","初二","初三","初四","初五","初六",
"初七","初八","初九","初十","十一","十二","十三","十四",
"十五","十六","十七","十八","十九","二十","二十一",
"廿二","廿三","廿四","廿五","廿六"
,"廿七","廿八","廿九","三十","三十一"};
/*uchar code table5[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,
0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,
0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,
0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89.0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99};*/
//sbit PSB=P2^4;

void wadnian(uchar x,uchar y,int date)
{
	uchar qian,bai,sh,ge;
	qian=date/1000;
	bai=date%1000/100;
	sh=date%100/10;
	ge=date%10;
	pos(x,y);
	wdata(table2[qian]);
	wdata(table2[bai]);
	wdata(table2[sh]);
	wdata(table2[ge]);
}
void wsfm(uchar x,uchar y,uchar shi,uchar fen,uchar miao)
{
	uchar ss,sg,fs,fg,ms,mg;
	pos(x,y);
	ss=shi/10;
	sg=shi%10;
	fs=fen/10;
	fg=fen%10;
	ms=miao/10;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
	mg=miao%10;
	wdata(table2[ss]);
	wdata(table2[sg]);
	wdata(':');
	wdata(table2[fs]);
	wdata(table2[fg]);
	wdata(':');
	wdata(table2[ms]);
	wdata(table2[mg]);
}
void wfen(uchar x,uchar y,uchar date)
{
	uchar sh,ge;
	sh=date/10;
	ge=date%10;
	pos(x,y);
	wdata(':');
	wdata(table2[sh]);
	wdata(table2[ge]);
	pos(x,y+1);
}
void wnyr(int nian,uchar yue,uchar ri)
{
	uchar num;
	wadnian(1,0,nian);
	pos(1,2);
	while(table[num]!='\0')
	{
		wdata(table[num]);
		num++;
	}
    wadda(1,3,yue);
	num=0;
	pos(1,4);
	while(table[num]!='\0')
	{
		wdata(table[num]);
		num++;
	}
	wadda(1,5,ri);
	pos(1,6);
	wdata(0x20);
	for(i=0;i<3;i++)
		{
			wdata(table3[i+3*day]);
		}
	
}

void settime(uchar add,uchar date)
{
	write1302(0x8e,0x00);
	write1302(add,(date/10)<<4|(date%10));
	write1302(0x8e,0x80);
	
}
void gettime()
{
	uchar time;
	time=read1302(0x80);//秒
	gege=time&0x0f;
	shsh=(time&0x70)>>4;
	miao=shsh*10+gege;
	time=read1302(0x82);//分
	fs=(time&0x70)>>4;
	fg=time&0x0f;
	fen=fs*10+fg;
	time=read1302(0x84);//时
	ss=(time&0x70)>>4;
	sg=time&0x0f;
	shi=ss*10+sg;
	time=read1302(0x8a);//星期
	day=(time&0x07);
	time=read1302(0x86);//日期
	day_c=time;
	rqs=(time&0x30)>>4;
	rqg=(time&0x0f);
	ri=rqs*10+rqg;
	time=read1302(0x88);//月
	month_c=time;
	ys=(time&0x10)>>4;
	ye=(time&0x0f);
	yue=ys*10+ye;
	time=read1302(0x8c);//年
	year_c=time;
	ns=(time&0xf0)>>4;
	ng=(time&0x0f);
	nsg=ns*10+ng;
	nian=nsg+nqb*100;
}
void initds()
{
	uchar second=read1302(0x80);
	if(second&0x80)
	settime(0x80,0);//设定几秒
	settime(0x82,4);//设定几分
	settime(0x84,8);//设定几时
	settime(0x86,19);//设定几号
	settime(0x88,4);//设定几月
	nian=0;
	settime(0x8c,88);//设定几年
	settime(0x8a,6);//设定星期几
}
void didi()
{
	feng=0;
	delay(50);
	feng=1;
	delay(50);
	feng=0;
	delay(50);
	feng=1;
	delay(50);
	
}
void keyscan()
{
	if(flag==0)
   {
		if(key2==0)
		{
			delay(10);
			if(key2==0)
			while(!key2);
			flag1=0;
			pos(4,0);
			wsfm(4,2,nshi,nfen,nmiao);
		}
		if(key3==0)
		{
			delay(10);
			if(key3==0)
			while(!key3);
			flag1=0;
			pos(4,0);
			for(num=0;num<16;num++)
			{
				wdata(table4[num]);
			}
		}
  }
	if(key4==0)
	{
		delay(10);
		{
			if(key4==0)
			{
			   wsfm(4,2,nshi,nfen,nmiao);
				flag=1;
				flag1=0;
				k++;
				pos(4,5);
				wcom(0x0f);
			}
				switch(k)
		  {
			case 2:pos(4,4);//fen
			break;
		    case 3:pos(4,2);//shi
			break;
			case 4:
			{
				k=0;
				flag=0;
				wcom(0x0c);
				pos(4,0);
					pos(4,0);
				for(num=0;num<16;num++)
				{
					wdata(table4[num]);
				}
			}
			break;
		}
			
		}
		while(!key4);
	
	}
		if(k==1)
		{
				if(key2==0)
				{
					delay(10);
					if(key2==0)
					{
						nmiao++;
						if(nmiao==60)
						nmiao=0;
					}
					while(!key2);
				  wadda(4,5,nmiao);
					WIIC(3,nmiao);
					
				}
		}
          if(k==2)
		{
				if(key2==0)
				{
					delay(10);
					if(key2==0)
					{
						nfen++;
						if(nfen==60)
						nfen=0;
					}
					while(!key2);
					wfen(4,3,nfen);
					WIIC(4,nfen);
				}
		}
          if(k==3)
		{
				if(key2==0)
				{
					delay(10);
					if(key2==0)
					{
						nshi++;
						if(nshi==24)
						nshi=0;
					}
					while(!key2);
					wadda(4,2,nshi);
					WIIC(5,nshi);
				}
		}
		if(k==1)
		{
				if(key3==0)
				{
					delay(10);
					if(key3==0)
					{
						nmiao--;
						if(nmiao==-1)
						nmiao=59;
					}
					while(!key3);
				 wadda(4,5,nmiao);
				WIIC(3,nmiao);
				}
		}
	   if(k==2)
		{
				if(key3==0)
				{
					delay(10);
					if(key3==0)
					{
						nfen--;
						if(nfen==-1)
						nfen=59;
					}
					while(!key3);
					wfen(4,3,nfen);
					WIIC(4,nfen);
				}
		}
	   if(k==3)
		{
				if(key3==0)
				{
					delay(10);
					if(key3==0)
					{
						nshi--;
						if(nshi==-1)
						nshi=23;
					}
					while(!key3);
				wadda(4,2,nshi);
					WIIC(5,nshi);
				}
		}
	if(key1==0)
	{
		delay(10);
		if(key1==0)
		{
			flag=1;
			flag1=0;
			shu++;
			pos(3,5);
			wcom(0x0f);
		}
			switch(shu)
		{
			case 2:pos(3,4);//fen
			break;
		    case 3:pos(3,2);//shi
			break;
			case 4:
			{
				wcom(0x0c);
				pos(1,6);
				wdata(0x20);
				pos(1,7);
				wcom(0x0f);
				
			};
			//xingqi
			break;
			case 5:pos(1,5);//ri
			break;
			case 6:pos(1,3);//yue
			break;
			case 7:pos(1,1);//nian1
			break;
			case 8:pos(1,0);//nian2
			break;
			case 9:
			{
				shu=0;
				flag=0;
				wcom(0x0c);
				settime(0x80,miao);
				settime(0x82,fen);
				settime(0x84,shi);
				settime(0x8a,day);
				settime(0x86,ri);
				settime(0x88,yue);
				delay(5);
				settime(0x8c,nian%100);
					
			}
			break;
		}
			
		while(!key1);
	
	}
		if(shu==1)
		{
				if(key2==0)
				{
					delay(10);
					if(key2==0)
					{
						miao++;
						if(miao==60)
						miao=0;
					}
					while(!key2);
				  wadda(3,5,miao);
					
				}
		}
          if(shu==2)
		{
				if(key2==0)
				{
					delay(10);
					if(key2==0)
					{
						fen++;
						if(fen==60)
						fen=0;
					}
					while(!key2);
					wfen(3,3,fen);
				}
		}
          if(shu==3)
		{
				if(key2==0)
				{
					delay(10);
					if(key2==0)
					{
						shi++;
						if(shi==24)
						shi=0;
					}
					while(!key2);
					wadda(3,2,shi);
				}
		}
	 if(shu==4)
		{
			if(key2==0)
			{
				delay(10);
				if(key2==0)
				{
					day++;
					if(day==7)
					day=0;
				}
				while(!key2);
		    	pos(1,6);
				wdata(0x20);
		    	for(i=0;i<3;i++)
				{
			    	wdata(table3[i+3*day]);
				}
				pos(1,7);
			}
			
		}
	 if(shu==5)
		{
			if(key2==0)
			{
				delay(10);
				if(key2==0)
				{
					ri++;
					if(ri==32)
					ri=0;
				}
				while(!key2);
				wadda(1,5,ri);
				
			}
		}
	 if(shu==6)
		{
			if(key2==0)
			{
				delay(10);
				if(key2==0)
				{
					yue++;
					if(yue==13)
					yue=0;
				}
				while(!key2);
				wadda(1,3,yue);
			}
		}
		 if(shu==7)
		{
			if(key2==0)
			{
				delay(10);
				if(key2==0)
				{
					nsg++;
					if(nsg==100)
					nsg=0;
				}
				while(!key2);
				nian=nsg+nqb*100;
				wadnian(1,0,nian);
				pos(1,1);
			}
		}
	if(shu==8)
		{
			if(key2==0)
			{
				delay(10);
				if(key2==0)
				{
					nqb++;
					if(nqb==100)
					nqb=0;
				}
				while(!key2);
				nian=nsg+nqb*100;
				wadnian(1,0,nian);
				pos(1,0);
				WIIC(6,nqb);
			}
		}
		if(shu==1)
		{
				if(key3==0)
				{
					delay(10);
					if(key3==0)
					{
						miao--;
						if(miao==-1)
						miao=59;
					}
					while(!key3);
				 wadda(3,5,miao);
				}
		}
	 if(shu==2)
		{
				if(key3==0)
				{
					delay(10);
					if(key3==0)
					{
						fen--;
						if(fen==-1)
						fen=59;
					}
					while(!key3);
					wfen(3,3,fen);
				}
		}
	 if(shu==3)
		{
				if(key3==0)
				{
					delay(10);
					if(key3==0)
					{
						shi--;
						if(shi==-1)
						shi=23;
					}
					while(!key3);
				wadda(3,2,shi);
				}
		}
		 if(shu==4)
		{
			if(key3==0)
			{
				delay(10);
				if(key3==0)
				{
					day--;
					if(day==-1)
					day=6;
				}
				while(!key3);
		   	    pos(1,6);
				wdata(0x20);
		    	for(i=0;i<3;i++)
				{
			    	wdata(table3[i+3*day]);
				}
				pos(1,7);
			}
			
		}
		 if(shu==5)
		{
			if(key3==0)
			{
				delay(10);
				if(key3==0)
				{
					ri--;
					if(ri==-1)
					ri=31;
				}
				while(!key3);
				wadda(1,5,ri);
			}
		}
	 if(shu==6)
		{
			if(key3==0)
			{
				delay(10);
				if(key3==0)
				{
					yue--;
					if(yue==-1)
					yue=12;
				}
				while(!key3);
				wadda(1,3,yue);
			}
		}
		if(shu==7)
		{
			if(key3==0)
			{
				delay(10);
				if(key3==0)
				{
					nsg--;
					if(nsg==-1)
					nsg=99;
				}
				while(!key3);
				nian=nsg+nqb*100;
				wadnian(1,0,nian);
				pos(1,1);
			}
		}
		if(shu==8)
		{
			if(key3==0)
			{
				delay(10);
				if(key3==0)
				{
					nqb--;
					if(nqb==-1)
					nqb=99;
				}
				while(!key3);
				nian=nsg+nqb*100;
				wadnian(1,0,nian);
				pos(1,0);
				WIIC(6,nqb);
			}
		}
	
}  
void main()
{
	uchar ysh,yge;
	init();
	in();
	kaiguan=0;// 蜂鸣器控制
	num=0;
	pos(4,0);
	while(table4[num]!='\0')
	{
		wdata(table4[num]);
		num++;
	}
	nmiao=RIIC(3);
	nfen=RIIC(4);
	nshi=RIIC(5);
	nqb=RIIC(6);
///initds();
	while(1)
	{	
		keyscan();
		if(flag==0)
		{
			gettime();
	
	transform(0,year_c,month_c,day_c);
	year_l=2000+year_l-1864;
	year_l=2000+year_l-1864;
	ysh=year_l%10;
	yge=year_l%12;
	pos(2,0);
for(i=0;i<2;i++)
	{
	wdata(dis1[ysh*2+i]);
	}
	for(i=0;i<2;i++)
	{
	wdata(dis2[yge*2+i]);
	}
	i=0;
	while(dis3[month_l][i]!='\0')
	{
		wdata(dis3[month_l][i]);
		i++;
	}
	i=0;
	while(dis4[day_l][i]!='\0')
	{
		wdata(dis4[day_l][i]);
		i++;
	}

		if(shi==nshi)
		{
			if(fen==nfen)
			{
				if(miao==nmiao)
				flag1=1;
			}
		}
			if(flag1==1)
			{
			didi();
			wsfm(4,2,nshi,nfen,nmiao);
			}
	     	wsfm(3,2,shi,fen,miao);//写时分秒
	    	wnyr(nian,yue,ri);//写年月日
		}
	
		
	}

   
}

⌨️ 快捷键说明

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