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

📄 key.h

📁 嵌入式单片机开发,嵌入式单片机开发,嵌入式单片机开发
💻 H
字号:
unsigned char routside_second_use;
unsigned char routside_4_second;
unsigned char routside_1_second;

unsigned char jiehou_use;
void init_outside()
{
	rflag_key_prog_status=UP;
	rflag_key_read_status=UP;
	rflag_key_updisplay_status=UP;
	rflag_key_prog_envent_up=0;
	rflag_key_read_envent_up=0;
	rflag_key_updisplay_envent_up=0;
	rflag_key_prog_envent_down=0;
	rflag_key_read_envent_down=0;
	key_value_prog=0xff;
	key_value_read=0xff;
	key_value_updisplay=0xff;
	RPROG_STATUS_TIMER=0;
	routside_4_second=0;
	RDELAY_KEYDOWN_TIMER=0;
	RFLAG_RESET_DISPLAY=0;
	RFLAG_ASKNUM_DISPLAY=0;
}


void mykeychu_use(point,value,addr)
unsigned char *point,value;
unsigned int addr;
// point   -------->shi duan ,cuofeng  shi fou suo 
// value----------num lock day
// addr----------fm lock data addr
{ 
	if(*point==1)
     		{
     			*point=0;
       			wr_data[0]=value;
       			data_addr.addri=addr;
       			write(FM,1);
      		}
}

extern unsigned char shangdian_ack();
void KEY_CHULI()
{
	if(rflag_key_updisplay_envent_up==1)//up key  envent happen
 		{
			rflag_key_updisplay_envent_up=0;
			RDISPLAY_ENVENT=DISPLAY_ENVENT_KEYDOWN;
			current_speekstatus=trunoff;
  			num_time_dospeek=timevalue_speek;// bao jing ack  wenzhou add
 			light_time=180;
		}
 	if(rflag_key_prog_envent_up==1)// prog key envent happen
   	 	{
  	   		rflag_key_prog_envent_up=0;
	   		if(1==shangdian_ack())// power up enabled
	   			{
  	   				light_time=180;
   	   				RFLAG_PROG=~RFLAG_PROG;
					current_speekstatus=trunoff;
  	    				num_time_dospeek=timevalue_speek;// bao jing ack  wenzhou add    
          				if(1==RFLAG_PROG) 
    	         				RPROG_STATUS_TIMER=value_hex_from_bcd(RAM[R_PROGRAM_TIME]);
          				else 
    	          				{
    	          					RPROG_STATUS_TIMER=0;                   
		    					clr_mima_enable();
    	           				}            
          				rchange_a_b_display=1;
         				if(RFLAG_B_A_KU!=RFLAG_PROG)
    	       				RFLAG_B_A_KU=RFLAG_PROG;
	   				}
 	  		}
 	if(rflag_key_read_envent_up ==1)// down key envent happen
       	{
       		light_time=180;
			current_speekstatus=trunoff;
         		num_time_dospeek=timevalue_speek;// bao jing ack  wenzhou add
         		rflag_key_read_envent_up=0;
         		if(jiehou_use!=0) // ting dian zhi 1  ,di yi ci jie huo key tan qi bu dong zuo
				jiehou_use=jiehou_use-1;
         		else
               		{
                			if(routside_4_second<4) 
                      			RDISPLAY_ENVENT=DISPLAY_ENVENT_KEY;
                 			routside_4_second=0;
                		}
 	   	}
 	if(RFLAG_PROG==1)// prog status
      		{
	 		if(progfunction_security==yes)
             			{
               			if(RSTATUS_RUN==TEST)
                    				KEY_PANDUAN();// xu liang qing ling
				}
               	else
//                    		if(RFLAG_DEMANGCLR_LOCK!=1)// xu liang qing ling suo ding
                        	 	KEY_PANDUAN();
               }
// SHI JIAN DAO
    	if((routside_minute_use!=RSOFT_RTC_MINUTE)&&(RFLAG_POWERDOWN==0))//power on
	 	{
	 		routside_minute_use=RSOFT_RTC_MINUTE;     
        // 10minute prog time
                   	if(0!=RPROG_STATUS_TIMER)
                	 	 RPROG_STATUS_TIMER=RPROG_STATUS_TIMER-1;
                   	if(0==RPROG_STATUS_TIMER)    
                         	RFLAG_PROG=0;
                   	if(0==RFLAG_PROG)
                       	{
                       		clr_mima_enable();
			    		rtime_zhangjimima=0;
    	                	}
       // one day ji shu qi,xu liang qing ling yi tian dao
//                   	if(0!=RTIMER_DEMANGCLR_LOCK)
//       	          	 RTIMER_DEMANGCLR_LOCK=RTIMER_DEMANGCLR_LOCK-1;
//                   	if(RTIMER_DEMANGCLR_LOCK==0)  
//			    	RFLAG_DEMANGCLR_LOCK=0;
//                   	move_int_to_fm(RTIMER_DEMANGCLR_LOCK,FM_TIMER_DEMANGCLFM_LOCK);
                   	if(noprog_time!=0) //zhe jiang gui yue mima you xiao 10 minute
				noprog_time=noprog_time-1;
                   	if(noprog_time==0)
         	         	zhejiang_mima_enable=0;
                  }
           if(routside_second_use!=RSOFT_RTC_SECOND)
     	           {
     	           	routside_second_use=RSOFT_RTC_SECOND;
            		if((rflag_key_read_status==DOWN)&&((rflag_key_prog_status==UP)||(1==RFLAG_POWERDOWN)))// 2003-7-15 add
            		// power on     down key ---->push on (prog key push up)
            		// or power off down key ---->push on
          	       	{
          	       		if(routside_4_second==3) 
          	             			{
          	             				RFLAG_B_A_KU=(~RFLAG_B_A_KU);
                             			rchange_a_b_display=1;
                             			set_reference_value(MIDDLE_REFERENCE+1);
                             			RLCD_DISPLAY_STATUS=DISPLAY_AUTO;
                              			RDISPLAY_TIMER=10*(RAM[R_DISPLAY_TIMER]>>4)+(0xf&RAM[R_DISPLAY_TIMER]);
          	              		}
                       		if( routside_4_second<4) 
						routside_4_second=routside_4_second+1;
		         	}
              	else 
			  		routside_4_second=0;
      			}
             
// cut reset  ask
		if((rflag_key_prog_status!=DOWN)||(rflag_key_read_status!=DOWN))
			{ 
//				// key clr kw ,when prog key or read key push up,the character reset and ask no display
          			RFLAG_RESET_DISPLAY=0;
          			RFLAG_ASKNUM_DISPLAY=0;
          			RDELAY_KEYDOWN_TIMER=0;
       		} 
  		if((progfunction_security==yes)&&(RFLAG_POWERDOWN==0)) 
       		   if(0==RFLAG_PROG)
       			{
                  			if(RSTATUS_RUN==RUN)
                      			{
                      				if(shiduan_onetimeprog==1) 
        	     	      					{
        	     	      						shiduan_onetimeprog=0;
        	     	         					RSTATUS_RUN=LOCK_90DAY;
									copyrunstatus();   
               	  	 	 				RLOCK_90DAY_TIMER=90*24;
               	  	  					move_int_to_fm(RLOCK_90DAY_TIMER,FM_LOCK_90DAY_TIMER);
               	  	 				 }   //HOUR
                  				}
                  			 if(RSTATUS_RUN!=TEST)
                   	   			{
                   	   				if(cuofengvalue_onetimeprog==1)
                   	        				{
                   	        					cuofengvalue_onetimeprog=0;  
									if(RSTATUS_RUN!=TEST)
                            						{
                   	                						wr_data[0]=20;
                                     						data_addr.addri=FM_LOCK_CUOFENGDINGZHI;
                                     						write(FM,1);
                            						}
                   	         				}
                   	      				mykeychu_use(&cuofengshiduan_onetimeprog,20,FM_LOCK_CUOFENGSHIDUAN);
                            			mykeychu_use(&priceyuyue_onetimeprog,60,FM_LOCK_ZHUFUFEILVQIEHUAN);
                            			mykeychu_use(&cuofengshiduan_switch_onetimeprog,60,FM_LOCK_ZHUFUCUOFENGQIEHUAN);
                            			mykeychu_use(&cuofengvalue_switch_onetimeprog,60,FM_LOCK_ZHUFUCUOFENGDINGZHIQIEHUAN);
                       	
                        			}
                  			}

      }

 
  
  

KEY_PANDUAN()
{
// key pan duan
if((rflag_key_prog_status==DOWN)&&(rflag_key_read_status==DOWN))
  	{
  		if(rkeypanduan_second!=RSOFT_RTC_SECOND)
      			{
      				rkeypanduan_second=RSOFT_RTC_SECOND;
					if(RDELAY_KEYDOWN_TIMER<10)
       			RDELAY_KEYDOWN_TIMER=RDELAY_KEYDOWN_TIMER+1;
       			switch(RDELAY_KEYDOWN_TIMER)
       				{
       					case 2: //  two sencond
								//RFLAG_NEED_RESETASKNUM_DISPLAY=1;
                    						RFLAG_RESET_DISPLAY=1;
                    						RFLAG_ASKNUM_DISPLAY=1;
                     					break;// 30
        					case 5: // five second
							//	RFLAG_NEED_RESETASKNUM_DISPLAY=0;// 60
                 						// RDELAY_KEYDOWN_TIMER=0;
								xuliangqingling_qingqiu=1;
								onetime_biancheng(1,0x5,0);
                 						RFLAG_RESET_DISPLAY=1;
                 						RFLAG_ASKNUM_DISPLAY=0;
                 						break;
         					case 7: // seven second
		 						// RDELAY_KEYDOWN_TIMER=0;
                     					RFLAG_RESET_DISPLAY=0;
                     					RFLAG_ASKNUM_DISPLAY=0;
                     					break;

         				}
     			 }
 		  }
   	else
          	{ 
           // 		RFLAG_NEED_RESETASKNUM_DISPLAY=0;
            		RFLAG_RESET_DISPLAY=0;
            		RFLAG_ASKNUM_DISPLAY=0;
            		RDELAY_KEYDOWN_TIMER=0;
        	}
 }     







⌨️ 快捷键说明

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