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

📄 12864th.c

📁 就是想下载一些东西啊
💻 C
字号:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit RS=P2^7;
sbit RW=P2^6;
sbit EN=P2^5;
sbit key1=P3^3;
sbit key2=P3^4;
sbit key3=P3^5;
sbit ACC0=ACC^0;
sbit ACC7=ACC^7;
sbit dsrs=P2^4;
sbit dscl=P3^7;
sbit IO=P3^2;
int nian;
char shi,fen,miao,day,ri,yue,qian,bai,nqb,nsg;
uchar num,sh,ge,shu,flag,i,shsh,gege,fs,fg,ss,sg,ys,ye,rqs,rqg,ns,ng;
//uchar code table[]={"2009-04-19"};
//uchar code table1[]={"22 :37: 15"};
uchar code table2[]={"0123456789"};
uchar code table3[]={"MONTUEWEDTHUFRISATSUN"};
//sbit PSB=P2^4;
void delay(uint x)
{
	uint i,j;
    for(j=0;j<x;j++)
	for(i=0;i<110;i++);
}
void wcom(uchar com)
{
	RS=0;
	RW=0;
	EN=0;
	P0=com;
	delay(5);
	EN=1;
	delay(5);
	EN=0;
}
void wdata(uchar dat)
{
	RS=1;
	RW=0;
	EN=0;
	P0=dat;
	delay(5);
	EN=1;
	delay(5);
	EN=0;
}
void pos(uchar x,uchar y)
{
	uchar pos;
	if(x==1)
	{x=0x80;}
	else if(x==2)
	{x=0x90;}
	else if(x==3)
	{x=0x88;}
	else if(x==4)
	{x=0x98;}
	pos=x+y;
	wcom(pos);
	
}
void wadda(uchar x,uchar y,uchar date)
{
	sh=date/10;
	ge=date%10;
	pos(x,y);
	wdata(table2[sh]);
	wdata(table2[ge]);
	pos(x,y);
}
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 wnyr(uchar x,uchar y,int nian,uchar yue,uchar ri)
{
	pos(x,y);
	qian=nian/1000;
	bai=nian%1000/100;
	sh=nian%100/10;
	ge=nian%10;
	wdata(table2[qian]);
	wdata(table2[bai]);
	wdata(table2[sh]);
	wdata(table2[ge]);
	wdata('-');
	sh=yue/10;
	ge=yue%10;
	wdata(table2[sh]);
	wdata(table2[ge]);
	wdata('-');
	sh=ri/10;
	ge=ri%10;
	wdata(table2[sh]);
	wdata(table2[ge]);
	pos(1,6);
	for(i=0;i<3;i++)
		{
			wdata(table3[i+3*day]);
		}
	
}
void writeds(uchar date)
{
	uchar i;
	ACC=date;
	for(i=8;i>0;i--)
	{
		IO=ACC0;
		dscl=1;
		dscl=0;
		ACC=ACC>>1;
		
	}
	
}
uchar readds()
{
	uchar i;
	for(i=8;i>0;i--)
	{
		ACC=ACC>>1;
		ACC7=IO;
		dscl=1;
		dscl=0;
	}
	return(ACC);
}
void write1302(uchar add,uchar date)
{
	dsrs=0;
	dscl=0;
	dsrs=1;
	writeds(add);
	writeds(date);
	dscl=1;
	dsrs=0;
}
uchar read1302(uchar add)
{
	uchar date;
	dsrs=0;
	dscl=0;
	dsrs=1;
	add++;
	writeds(add);
	date=readds();
	dscl=1;
	dsrs=0;
	return (date);
}
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);
	rqs=(time&0x30)>>4;
	rqg=(time&0x0f);
	ri=rqs*10+rqg;
	time=read1302(0x88);
	ys=(time&0x10)>>4;
	ye=(time&0x0f);
	yue=ys*10+ye;
	time=read1302(0x8c);
	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 init()
{
	wcom(0x30);//基本指令操作
	delay(5);
	wcom(0x0c);//显示开关坐标
	delay(5);
	wcom(0x01);//清屏
	delay(5);
}
void keyscan()
{
	if(key1==0)
	{
		delay(10);
		if(key1==0)
		{
			flag=1;
			shu++;
			pos(3,5);
			wcom(0x0f);
		}
			switch(shu)
		{
			case 2:pos(3,4);//fen
			break;
		    case 3:pos(3,2);//shi
			break;
			case 4:pos(1,6);//xingqi
			break;
			case 5:pos(1,4);//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);
					wsfm(3,2,shi,fen,miao);
					pos(3,4);
				}
		}
          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);
		    	for(i=0;i<3;i++)
				{
			    	wdata(table3[i+3*day]);
				}
				pos(1,6);
			}
			
		}
	 if(shu==5)
		{
			if(key2==0)
			{
				delay(10);
				if(key2==0)
				{
					ri++;
					if(ri==32)
					ri=0;
				}
				while(!key2);
				wadda(1,4,ri);
				
			}
		}
	 if(shu==6)
		{
			if(key2==0)
			{
				delay(10);
				if(key2==0)
				{
					yue++;
					if(yue==13)
					yue=0;
				}
				while(!key2);
				wnyr(1,0,nian,yue,ri);
				pos(1,3);
			}
		}
		 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);
			}
		}
		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);
					wsfm(3,2,shi,fen,miao);
					pos(3,4);
				}
		}
	 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);
		    	for(i=0;i<3;i++)
				{
			    	wdata(table3[i+3*day]);
				}
				pos(1,6);
			}
			
		}
		 if(shu==5)
		{
			if(key3==0)
			{
				delay(10);
				if(key3==0)
				{
					ri--;
					if(ri==-1)
					ri=31;
				}
				while(!key3);
				wadda(1,4,ri);
			}
		}
	 if(shu==6)
		{
			if(key3==0)
			{
				delay(10);
				if(key3==0)
				{
					yue--;
					if(yue==-1)
					yue=12;
				}
				while(!key3);
				wnyr(1,0,nian,yue,ri);
				pos(1,3);
			}
		}
		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);
			}
		}
	
}
void main()
{
	init();
//	initds();
	while(1)
	{	
		keyscan();
		if(flag==0)
		{
			gettime();
			wsfm(3,2,shi,fen,miao);//写时分秒
			wnyr(1,0,nian,yue,ri);//写年月日
		}
		
	}

   
}

⌨️ 快捷键说明

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