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

📄 sz.c

📁 1302专用时钟芯片 1602 LCD 显示
💻 C
📖 第 1 页 / 共 2 页
字号:
//------------------以下是 月

		   	while(sure)  //直到 确认 键再次被按下时  才退出
			{
				if(up==0)
				{
				while(!up); 	delayMs (40);			
				mid[4]++;
				if((mid[4]&0x0f)>9){mid[4]=mid[4]+6;} 
			     if(mid[4]>=0x13){mid[4]=1;}
				v_Set1302(mid);	xianshi();
			    }
				if(down==0)
				{while(!down); 		delayMs (40);		
				mid[4]--;
				if((mid[4]&0x0f)==0x0f){mid[4]=mid[4]-6;}
				if((mid[4]==0))
				{
				mid[4]=0x12;
				}

				v_Set1302(mid);	xianshi();}
			}
           while(!sure);  

	delayMs (80);
//------------------以下是日
		   
		   	while(sure)  //直到 确认 键再次被按下时  才退出
			{
				if(up==0)
				{
				while(!up); 		delayMs (40);		
				mid[3]++;
				if((mid[3]&0x0f)>9){mid[3]=mid[3]+6;}
			     if(mid[3]>=0x32){mid[3]=1;}
				v_Set1302(mid);	xianshi();
			    }
				if(down==0)
				{while(!down); 		   	delayMs (40);	
				mid[3]--;
				if((mid[3]&0x0f)==0x0f){mid[3]=mid[3]-6;}
				//if((mid[3]==0x0f)){mid[3]=9;}
				if((mid[3]==0)){mid[3]=0x31;}

				v_Set1302(mid);	xianshi();}
			}
           while(!sure);  
	delayMs (80);

			   

//------------------以下是星期  

		   	while(sure)  //直到 确认 键再次被按下时  才退出
			{
				if(up==0)
				{
				while(!up); 		delayMs (40);		
				mid[5]++;if((mid[5]&0x0f)>=8){mid[5]=1;}
				v_Set1302(mid);	xianshi();
			    }
				if(down==0)
				{while(!down); 		delayMs (40);		
				mid[5]--;if((mid[5]&0x0f)==0){mid[5]=7;}
				v_Set1302(mid);	xianshi();}
			}
           while(!sure);  	delayMs (80);











//-----------------以下是小时


 	while(sure)  //直到 确认 键再次被按下时  才退出
			{
				if(up==0)
				{
				while(!up); 		delayMs (40);		
				mid[2]++;
				if((mid[2]&0x0f)>9){mid[2]=mid[2]+6;}
			     if(mid[2]>=0x24){mid[2]=0;}
				v_Set1302(mid);	xianshi();
			    }
				if(down==0)
				{while(!down); 			delayMs (40);	
				if((mid[2]==0x00)){mid[2]=0x23;}	
				else {mid[2]--;	 }

				if((mid[2]&0x0f)==0x0f){mid[2]=mid[2]-6;}
			

				v_Set1302(mid);	xianshi();}
			}
           while(!sure); 

	delayMs (80);
//-----------------以下是分钟

 	while(sure)  //直到 确认 键再次被按下时  才退出
			{
				if(up==0)
				{
				while(!up); 	delayMs (40);			
				mid[1]++;
				if((mid[1]&0x0f)>9){mid[1]=mid[1]+6;}
			     if(mid[1]>=0x60){mid[1]=0;}
				v_Set1302(mid);	xianshi();
			    }
				if(down==0)
				{while(!down);	  	delayMs (40);	
					if((mid[1]==0x00)){mid[1]=0x59;}		
			else {	mid[1]--;	}

				if((mid[1]&0x0f)==0x0f){mid[1]=mid[1]-6;}
			

				v_Set1302(mid);	xianshi();}
			}
           while(!sure); 

	delayMs (80);
//-----------------以下是秒

 	while(sure)  //直到 确认 键再次被按下时  才退出
			{
				if(up==0)
				{
				while(!up); 	delayMs (40);			
				mid[0]++;
				if((mid[0]&0x0f)>9){mid[0]=mid[0]+6;}
			     if(mid[0]>=0x60){mid[0]=0;}
				v_Set1302(mid);	xianshi();
			    }
				if(down==0)
				{while(!down); 			delayMs (40);	
					if((mid[0]==0)){mid[0]=0x59;}	
				else {mid[0]--;	  }

				if((mid[0]&0x0f)==0x0f){mid[0]=mid[1]-6;}
			

				v_Set1302(mid);	xianshi();}
			}
           while(!sure); 	delayMs (80);

//-----------------以下是闹钟
		   	while(sure)  //直到 确认 键再次被按下时  才退出
			{
				if(up==0)
				{
				while(!up); 	delayMs (40);			
				nshi++;                          ///   时 十位
				if(nshi>=24){nshi=0;}

				   nshishi_1=nshi/10;
				   nshige_1=nshi%10;
		
					xianshi();
			    }

				if(down==0)
				{while(!down);			delayMs (40);	
		    	if(nshi==0) {nshi=23;}		
				else {nshi--;}				
          		nshishi_1=nshi/10;
				 nshige_1=nshi%10;
			  xianshi();}
			}
           while(!sure); 	delayMs (80);





//-----------------以下是闹钟分钟 



		    	while(sure)  //直到 确认 键再次被按下时  才退出
			{
				if(up==0)
				{
				while(!up); 	delayMs (40);			
				nfen++;
				if(nfenshi>=60){nfenshi=0;}
				 nfenshi_1=nfen/10;
				 nfenge_1=nfen%10;
			//	v_Set1302(mid);	
			xianshi();
			    }

				if(down==0)
				{
				while(!down); 	  	delayMs (40);	
				if(nfen==0){	nfen=59;}	
				else {nfen--;}
				 nfenshi_1=nfen/10;
				 nfenge_1=nfen%10;          	
			//	v_Set1302(mid);	
			xianshi();}
			}
           while(!sure); 	delayMs (80);




		}
}
void xianshi()
 {  
    uchar m ;//定义变量

    P0=0xFF ;                      //置P0口
    P2=0xFF ;                    //置P2口  


    v_Get1302(mid); 
	  week=	  mid[5]+0x30;
 


	
	  miaoge=(mid[0]&0x0f)+0x30; //--------------------------秒
      miaoshi=(mid[0]>>4)+0x30; //------------------------------

	  fenge=(mid[1]&0x0f)+0x30;//----------------------------分
      fenshi=(mid[1]>>4)+0x30;//-----------------------------

      shige=(mid[2]&0x0f)+0x30;//----------------------------时
      shishi=(mid[2]>>4)+0x30;//-----------------------------
    
      rige=(mid[3]&0x0f)+0x30;//-----------------------------日
      rishi=(mid[3]>>4)+0x30;//-----------------------------

      yuege=(mid[4]&0x0f)+0x30;//----------------------------月
      yueshi=(mid[4]>>4)+0x30;//-----------------------------


	  
      niange=(mid[6]&0x0f)+0x30;//---------------------------年
      nianshi=(mid[6]>>4)+0x30;//-----------------------------
	  
	  nshishi=nshishi_1+0x30;
  nshige=nshige_1+0x30;
  nfenshi=nfenshi_1+0x30;
	nfenge=nfenge_1+0x30;

    lcd_init() ;                    //初始化LCD     
	 
        
    
    lcd_pos(0) ;                   //设置显示位置为第一行的第1个字符
    
     m = 0 ;
    for(m;m<16;m++)      //遇到字符'\0'结束循环,即字符串读取完毕
     {                                    //显示字符
       lcd_wdat(xian0[m]) ;
      }           
    lcd_pos(0x40) ;                //设置显示位置为第二行第1个字符
     m = 0 ;
    for(m;m<16;m++)      //遇到字符'\0'结束循环,即字符串读取完毕
     {                                    //显示字符
       lcd_wdat(xian2[m]) ;     
     }      
   


  }  
 

void main()
{ 
    int i; 

	v_Set1302(mid);

	while(1)
	{			 
     for(i=100;i>0;i--) {scan();}	
	if( xian2[0]==xian2[11]&&xian2[1]==xian2[12]&&xian2[3]==xian2[14]&& xian2[4]==xian2[15]){DQ=0;}
	else DQ=1;
	xianshi();
	}

}

⌨️ 快捷键说明

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