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

📄 main.c

📁 C语言单片机编程的代码及教程文献
💻 C
📖 第 1 页 / 共 2 页
字号:
			   if(pos==12||pos==13||pos==14)
			      pos=9;
			   else if(pos==8||pos==5)
			      pos-=2;
			   else
				  pos--;
			   Dis_cursor(1,2+pos);
			 }
		   else
		     {
			   if(pos==21||pos==18)
			      pos-=2;
			    else
			      pos--;
			   Dis_cursor(2,pos-12);
			 }
		}
	 else if(keynum<=9)
	    {
		  switch(pos)
		    {
			  case 0:
			     {
				    disp_date.year[0]=keynum+'0';
					Disdata(keynum+'0');
					pos++;
					break;
				 }
			  case 1:
			     {
				    disp_date.year[1]=keynum+'0';
					Disdata(keynum+'0');
					pos++;
					break;
				 }
              case 2:
			     {
				    disp_date.year[2]=keynum+'0';
					Disdata(keynum+'0');
					pos++;
					break;
				 }
              case 3:
			     {
				    disp_date.year[3]=keynum+'0';
					Disdata(keynum+'0');
					pos+=2;
					break;
				 }
              case 5:
			     {
				    if(keynum>1)
 					   break;
				    disp_date.month[0]=keynum+'0';
					Disdata(keynum+'0');
					pos++;
					break;
				 }
			  case 6:
			     {
				    if(disp_date.month[0]==1+'0'&&keynum>2)
					   break;
				    disp_date.month[1]=keynum+'0';
					Disdata(keynum+'0');
					pos+=2;
					break;
				 }

			  case 	8:
				 {
				    if(keynum>3)
					   break;
				    disp_date.day[0]=keynum+'0';
					Disdata(keynum+'0');
					pos++;
					break;
				 }
			  case 	9:
				 {
				    if(disp_date.day[0]==3+'0'&&keynum>1)
					   break;
				    disp_date.day[1]=keynum+'0';
					Disdata(keynum+'0');
					pos+=3;
					break;
				 }
			  case 12:case 13:case 14:
			     {
				    if(keynum>7||keynum==0)
					   break;
					else
					  {
				         new_date.week=keynum;
					     Dis_string(1,14,dispweek[keynum-1]);
						 pos=15;
					     break;
					  }
				 }
			  case 15:
			    {
				  if(keynum>2)
				     break;
				  disp_time.hour[0]=keynum+'0';
				  Disdata(keynum+'0');
				  pos++;
				  break;
				}
			  case 16:
			    {
				 if(keynum>3&&disp_time.hour[0]==2+'0')
				    break;
				 disp_time.hour[1]=keynum+'0'; 
				 Disdata(keynum+'0');
				 pos+=2;
				 break;
				}
			  case 18:
			    {
				  if(keynum>5)
				     break;
				  disp_time.minute[0]=keynum+'0';
				  Disdata(keynum+'0');
				  pos++;
				  break;
				}
			  case 19:
			    {
				  disp_time.minute[1]=keynum+'0';
				  Disdata(keynum+'0');
				  pos+=2;
				  break;				  
				}
			  case 21:
			    {
				  if(keynum>5)
				     break;
				  disp_time.second[0]=keynum+'0';
				  Disdata(keynum+'0');
				  pos++;
				  break;						  
				}
			  case 22:
			    {
				  disp_time.second[1]=keynum+'0';
				  Disdata(keynum+'0');
				  pos++;
				  break;							  
				}
			 default:break;

			}
		}
      else 
	    {
		  if(pos<15)
		    Dis_cursor(1,2+pos);
		  else 
		    Dis_cursor(2,pos-12); 
		   
		}
	  keynum=Get_keynum();      //获取键值
    }

   Wrcom(0x01);        //清屏
   Wrcom(0x0c);        //开显示,关光标及闪烁
   To_value();  
 }



/******************更新日期,时间显示函数****************************/
void Up_disp()
 {
   if(new_date.year!=old_date.year||new_date.month!=old_date.month
      ||new_date.day!=old_date.day||new_date.week!=old_date.week)
	 {
   	   old_date.year=new_date.year;
	   old_date.month=new_date.month;
	   old_date.day=new_date.day;
	   old_date.week=new_date.week;	     
	 }
    if(old_time.hour!=new_time.hour||old_time.minute!=new_time.minute||old_time.second!=new_time.second)
	  {
	     old_time.hour=new_time.hour;
         old_time.minute=new_time.minute;
         old_time.second=new_time.second;
	  }
 }
void Time_up()
 {
   if(alm_time.hour==new_time.hour&&alm_time.minute==new_time.minute
       &&alm_time.second==new_time.second&&on==1)
	 {
	   Play();
	 }
      
 }


//闹铃播放函数
void Play()
 {
   uchar temp1;
   uint temp2;
   while(on)
     {
	   P0=0x0f;
       temp1=songtab[play_point];
       if(temp1==0)
         {
            play_point=0;
	        temp1=songtab[0];
	     }   
       tvar=temp1&0x0f;
       temp2=musictab[temp1>>4];
       TH1=temp2>>8;
       hcount=TH1;
       TL1=temp2&0x00ff;
       lcount=TL1;
       TR1=1;
       Song_delay();
       if(K1==0)
         {  
	       on=0;
	     }
       play_point++;
     }
  P0=0x00;
  TR1=0;
  speaker=1;
}


/******************************************************/


void main()
 {
    uchar keynum;
  Init();    
	while(1)
	  {	
		Up_disp();
		To_array();
	    Disp_all();
		Time_up();	
		keynum=Get_keynum();             //获取键值
		if(keynum==12)
		  {Wrcom(0x01);                //清屏
			 Disp_menu();                //显示菜单
			 keynum=Get_keynum();        //获取键值

			 while(keynum!=12)
			   {  
			     		          			      			      
			      if(keynum==1)
			        {
				      Up_value();
				    }
				  else if(keynum==2)
				    {
					  Up_alarm(); 
					}
				else if(keynum==3)
				{ Disp_menu1();}	
			      else
			        {;}	
				  keynum=Get_keynum();	 //获取键值
			   }
			 Wrcom(0x01);        //清屏
		  }
	  }

 }































































































































































































⌨️ 快捷键说明

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