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

📄 text1.c

📁 set(key6) left(key5) right(key4) up(key3) down(key2) OK(key1) 功能一:时钟 时钟计时; 按下set(一次)键即可调时间
💻 C
📖 第 1 页 / 共 2 页
字号:
                        else EditMin = 0;
                        break;
            case OK:    Copy1();    
                     SetState=0;   KeySts=0;                
                        break;             
            }
            break;


	   case 3:     // minLo edit status;分时低位设置
            switch(KeyPressed)
            {
            case DoubleSET :SetState++;KeySts=0;  Copy1();break;//准备进入设定闹钟功能
            case RIGHT: KeySts++;
                        break;
            case LEFT:  KeySts--;
                        break;
            case UP:    if(EditMin<59) EditMin++;
                        break;
            case DOWN:  if(EditMin>0) EditMin--;
                        break;
            case OK:    Copy1();    
                       SetState=0; KeySts=0;                
                        break;             
            }
            break;


	   case 4:     // secHi edit status;秒时高位设置
            switch(KeyPressed)
            {
            case DoubleSET :SetState++;KeySts=0;  Copy1();break;//准备进入设定闹钟功能
            case RIGHT: KeySts++;
                        break;
            case LEFT:  KeySts--;
                        break;
            case UP:    if(EditSec<49) EditSec+=10;
			            
                        else EditSec = 59; 
                        break;
            case DOWN:  if(EditSec>10) EditSec-=10;
			            
                        else EditSec = 0;
                        break;
            case OK:    Copy1();    
                       SetState=0; KeySts=0;                
                        break;             
            }
            break;
        


	   case 5:    // secLo edit status;秒时低位设置
            switch(KeyPressed)
            { 
            case DoubleSET :SetState++;KeySts=0;  Copy1();break;//准备进入设定闹钟功能
			case RIGHT: KeySts-=5;
                            break;
            case LEFT:  KeySts--;
                        	break;
            case UP:    if(EditSec<59) EditSec++;
			
                        	break;
            case DOWN:  if(EditSec>0) EditSec--;
			
                        	break;
            case OK:    Copy1();    
                        SetState=0;	KeySts=0;                
                        	break;             
            }
             break;
         }          
         }
		 break;


case 2: {                                                                                          //进入闹钟设定功能
		

	 switch(KeySts)
           {
 
      case 0:   // hourHi Alarm status;小时高位设置

    
           switch(KeyPressed)
           {
            case DoubleSET :SetState++;KeySts=0;Copy2();break;//准备退出功能
              
            case RIGHT: KeySts++;	break;
			case LEFT:  KeySts+=5;   break;
                        	        
            case UP:    if(AlarmHour<13) AlarmHour += 10; 
                               else AlarmHour = 23;
                               break;
            case DOWN:  if(AlarmHour>10) AlarmHour -= 10;     
                              else AlarmHour = 0;
                              break;
            case OK:    Copy2();    
                       Alarm=1;     SetState=0;   KeySts=0;                
                              break;             
            }
            break;

       case 1:     // hourLo Alarm status;小时低位设置
            switch(KeyPressed)
            {
			 case DoubleSET :SetState++;KeySts=0;Copy2();break;//准备退出功能
            case RIGHT: KeySts++;
                        	break;
            case LEFT:  KeySts--;
                        	break;
            case UP:    if(AlarmHour<23) AlarmHour++;    
                        	break;
            case DOWN:  if(AlarmHour>0) AlarmHour--;
                                   break;
            case OK:       Copy2();   Alarm=1;    
                        	SetState=0;  KeySts=0;                
                        	  break;             
            }
            break;


       case 2:     // minHi Alarm status;分时高位设置
            switch(KeyPressed)
            {
			 case DoubleSET :SetState++;KeySts=0;Copy2();break;//准备退出功能
            case RIGHT: KeySts++;
                        break;
            case LEFT:  KeySts--;
                        break;
            case UP:    if(AlarmMin<49) AlarmMin+=10;
                        else AlarmMin = 59; 
                        break;
            case DOWN:  if(AlarmMin>10) AlarmMin-=10;
                        else AlarmMin = 0;
                        break;
            case OK:    Copy2();      Alarm=1; 
                       SetState=0; KeySts=0;                
                        break;             
            }
            break;


	   case 3:     // minLo Alarm status;分时低位设置
            switch(KeyPressed)
            {
			 case DoubleSET :SetState++;KeySts=0;Copy2();break;//准备退出功能
            case RIGHT: KeySts++;
                        break;
            case LEFT:  KeySts--;
                        break;
            case UP:    if(AlarmMin<59) AlarmMin++;
                        break;
            case DOWN:  if(AlarmMin>0) AlarmMin--;
                        break;
            case OK:    Copy2();     Alarm=1;  
                       SetState=0; KeySts=0;                
                        break;             
            }
            break;


	   case 4:     // secHi Alarm status;秒时高位设置
            switch(KeyPressed)
            {
			 case DoubleSET :SetState++;KeySts=0;Copy2();break;//准备退出功能
            case RIGHT: KeySts++;
                        break;
            case LEFT:  KeySts--;
                        break;
            case UP:    if(AlarmSec<49) AlarmSec+=10;
			            
                        else AlarmSec = 59; 
                        break;
            case DOWN:  if(AlarmSec>10) AlarmSec-=10;
			            
                        else AlarmSec = 0;
                        break;
            case OK:    Copy2();   Alarm=1;    
                       SetState=0;KeySts=0;                
                        break;             
            }
            break;
        


	   case 5:     // secLo Alarm status;秒时低位设置
            switch(KeyPressed)
            { 
			 case DoubleSET :SetState++;KeySts=0;Copy2();break;//准备退出功能
			case RIGHT: KeySts-=5;
                            break;
            case LEFT:  KeySts--;
                        	break;
            case UP:    if(AlarmSec<59)AlarmSec++;
			
                        	break;
            case DOWN:  if(AlarmSec>0) AlarmSec--;
			
                        	break;
            case OK:    Copy2();    Alarm=1;   
                        	SetState=0;KeySts=0;                
                        	break;             
            }
             break;
          
			}
          	}
            break;


case 3:SetState=0;KeySts=0; break;//         //退出功能

 }
   

if(SetState==1)
DisplayEdit();//调用时间设定时的显示函数


if(SetState==2)
DisplayAlarm();//调用闹钟时间设定时的显示函数
}








void main(void)                                                                                     //主函数
{
unsigned char i;
    for (i=0;i<6;i++) DispBuf[i] = 0xFF;//初始化全灭
    P23=1;
	Alarm=0;
    sec = 0;
    min = 0;
    hour = 0;
    InitT0();
    KeySts = 0;   // 初始状态
	SetState=0;
	AlarmSec =0;    
    AlarmMin = 0;
    AlarmHour = 0; 
    while(1)
    {   
	    if(p==2)Ring=1;
        if(xTim ==1)
		{
		if((SetState == 0)||(SetState == 2))//设定时间时不走时,设定闹钟时走时
        {
            xTim = 0;
            TimUpdate(); //调用走时模块
		if( (sec==0)&&( min==0))
            	{Ring=0;	}
           
		if(SetState==0)
		
            DisplayTim();//调用显示模块
        }
}
        if(xKey)
        {
            xKey = 0;
            KeyPro();//调用按键功能模块
        }

		if(  Alarm==1)
		{
		if( (sec==SetedAlarmSec)&& (min==SetedAlarmMin)&&(hour==SetedAlarmHour))
            	{Ring=0;	}//符合条件时闹钟开启
        
		}
}
}

⌨️ 快捷键说明

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