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

📄 yejinshizhong.c

📁 在1602液晶
💻 C
字号:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int 
uchar code table[]="2000 00 00 00"; 
uchar code table1[]="00:00:00  "  ;
sbit rs=P3^5;
sbit lcden=P3^4;
sbit we=P2^7;
sbit rd=P3^7;
sbit s13=P3^1;
sbit s17=P3^2;
sbit s21=P3^3;
uchar num,tt,miao,fen,shi,temp,shi1,ge;
uchar ri,yue,nian,xingqi;
void delay(uint z)
{
	uint x,y;
	for(x=100;x>0;x--)
	    for(y=z;y>0;y--);
} 
void write_com(uchar com)
{	
    lcden=0;
//	rs=1;
//	delay(2);
	rs=0;	
	delay(2);
	lcden=1;
	delay(2);
	P0=com;							        
	
	delay(2);
	lcden=0;
//	rs=1;
}
void write_date(uchar date)
{
      rs=1;
	  lcden=0;
	  delay(2);	
	  lcden=1; 
	  delay(2);	 	
	  P0=date;
//	  rs=1;
	 	  
	  
	  delay(2);
	  lcden=0;
	 // rs=0;
}
void init()
{	
    we=0;
	lcden=0;
	TMOD=0x01;
	TH0=(65535-50000)/256;
	TL0=(65535-50000)%256;
	EA=1;
	ET0=1;
	TR0=1;									  
	write_com(0x38);
	write_com(0x0c);
	write_com(0x06); 
	write_com(0x01);
	 
	write_com(0x80+0x01);
	 for(num=0;num<13;num++)
	 {
		 write_date(table[num]);
		 delay(2); 
	 }

	 write_com(0x80+0x40+3);
	 for(num=0;num<8;num++)
	 {
		 write_date(table1[num]);
		 delay(2);	 
	 }	
}
void timer0() interrupt 1
{
	TH0=(65535-50000)/256;
	TL0=(65535-50000)%256;
	tt++;
}	
void write_mfs(uchar add,uchar temp)
{
//	uchar temp;
	shi1=temp/10;
	ge=temp%10;
	write_com(0x80+0x40+add);//曾经卡住思路
	write_date(0x30+shi1);
	write_date(0x30+ge);
}
void write_nyr(uchar add,uchar temp)
{
	shi1=temp/10;
	ge=temp%10;
	write_com(0x80+add);   //思路在此卡住  
	write_date(0x30+shi1);
	write_date(0x30+ge);
}



void keyscan()
{
    uchar num1;
	rd=0;
	if(s13==0)
	{	 
		delay(1);
			if(s13==0)
			{	
			    num1++;
			    while(!s13); 				
				if(num1==1)
				{
					TR0=0;								
					write_com(0x80+0x40+10);
					write_com(0x0f);
				}					
				if(num1==2)
				{												
					write_com(0x80+0x40+7);
					write_com(0x0f);
				}						   
		    	if(num1==3)
				{													
					write_com(0x80+0x40+4);
					write_com(0x0f);
				}			 				
				if(num1==4)
				{													
					write_com(0x80+13);
					write_com(0x0f);
				}	
				if(num1==5)
				{												
					write_com(0x80+10);
					write_com(0x0f);
				}	
				if(num1==6)
				{													
					write_com(0x80+7);
					write_com(0x0f);
				}	
				if(num1==7)
				{	  												
					write_com(0x80+4);
					write_com(0x0f);
				}
				if(num1==8)
				{
					TR0=1;
					num1=0;			
					write_com(0x0c);
				}		
			}
	}
	if(num1!=0)
	{
		if(s17==0)
		{
			delay(2);
			if(s17==0)
			{			
			    while(!s17);
				if(num1==1)
				{ 
				  miao++;	
				if(miao==60)
				    miao=0;
				write_mfs(9,miao);
				write_com(0x80+0x40+10);
				
				}
				if(num1==2)
				{ 
				   fen++; 
				   if(fen==60)
				      fen=0;
					write_mfs(6,fen);
					write_com(0x80+0x40+7);				
				
				}
				if(num1==3)
				{ 
				    shi++;
				  if(shi==24)
				     shi=0;
					write_mfs(3,shi);
					write_com(0x80+0x40+4);				
				
				}
				if(num1==4)
				{  
					xingqi++;
					if(xingqi==8)
				       xingqi=1;
					write_nyr(12,xingqi);
					write_com(0x80+13);					
				
				}
				if(num1==5)
				{ 
					ri++; 
					if(ri==31)
				       ri=1;
					write_nyr(9,ri);
					write_com(0x80+10);		    	
				
				}
				if(num1==6)
				{  
					yue++; 
					if(yue==13)
				        yue=1;
					write_nyr(6,yue);
					write_com(0x80+7);				
				
				}
				if(num1==7)					            
				{  
					nian++;
					if(nian==20)
				       nian=0;
					write_nyr(3,nian);
					write_com(0x80+4);				
				
				}
			}
		}
	}
	if(num1!=0)
	{
		if(s21==0)
		{
			delay(2);
			if(s21==0)
			{			
			    while(!s21);
				if(num1==1)
				{ 
					miao--;
					if(miao==-1)
					   miao=59;				
					write_mfs(9,miao);
					write_com(0x80+0x40+10);				
				} 
				if(num1==2)
				{ 
				   fen--; 
				   if(fen==-1)
				      fen=59;
					write_mfs(6,fen);
					write_com(0x80+0x40+7);				
				}				
				if(num1==3)
				{ 
				    shi--;
				  if(shi==-1)
				     shi=23;
					write_mfs(3,shi);
					write_com(0x80+0x40+4);				
				}	 				
				if(num1==4)
				{  
					xingqi--;
					if(xingqi==0)
				       xingqi=7;
					write_nyr(12,xingqi);
					write_com(0x80+13);	
				}
				if(num1==5)
				{ 
					ri--; 
					if(ri==0)
				       ri=30;
					write_nyr(9,ri);
					write_com(0x80+10);   	
				}
				if(num1==6)
				{  
					yue--; 
					if(yue==0)
				        yue=12;
					write_nyr(6,yue);
					write_com(0x80+7);					
				}
				if(num1==7)					            
				{  
					nian--;
					if(nian==-1)
				       nian=19;
					write_nyr(3,nian);
					write_com(0x80+4);				
				
				}
			}
		}
	}
		 
} 
void pandu()
{
	if(tt==18)
	 {
	 	tt=0;
		miao++;
		if(miao==60)
		{
			miao=0;
			fen++;
			if(fen==60)
			{
				fen=0;
				shi++;
				if(shi==24)
				{
					shi=0;				
					xingqi++;
					if(xingqi==8)
					{  
					   xingqi=1;
					   ri++;
					   if(ri==31)
						  {
							ri=1;
							yue++;
							if(yue==13)
							{
								yue=1;
								nian++;
								if(nian==20)
								{
									nian=0;
								}
							  	write_nyr(3,nian);
							}  
							
						}
						   write_nyr(6,yue);
				   	   }
					   	write_nyr(12,xingqi);
						write_nyr(9,ri);	
			}				
			write_mfs(3,shi);
		}
		write_mfs(6,fen);		
	 }
	 write_mfs(9,miao);
}
}
void main()
{
	 init(); 	 
	 while(1) 
	 {	  	 	  
		  keyscan();		 
		  pandu();
	 }
}  

⌨️ 快捷键说明

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