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

📄 dis_key.c

📁 配电变XIANSHI CHENGXU !下拉界面,事件查询,控制操作,很好的
💻 C
📖 第 1 页 / 共 5 页
字号:
}
void deal_soe()
{
	unsigned char k;

	if((w_p==r_p)&&(event==1))
	{
		r_p++; 
		r_p &=0xf;			
	}
	else  
	{
		r_p=0;	
	}
	
	soe[w_p][0]=data_rx[5];	
	for(k=1;k<3;k++)
	{	
		soe[w_p][k]=data_rx[2*k+4]+data_rx[2*k+5]*256;
	}
	w_p++;
	w_p &= 0xf;
	event=1;
}

void soe_zz()
{
	if((r_p==w_p)&&(event==1))
	{
		if(s_b==0)
		{
			s_b=0xf;
		}
		else
		{
			s_b--;
		}
	}
	else if((r_p!=w_p)&&(s_b!=r_p))
	{	
		s_b--;
	}
}

void soe_page()
{
	if(r_p!=w_p)
	{
		total= (w_p + 1)/2;
	}
	else if((r_p==w_p)&&(event==1))
	{
		total = 8;
	}
	else 
	{
		total = 0;
	}
}
 
/*  
void tx(unsigned char cmd)
  {
     
     switch(cmd)
      { 
        case 1: data_tx[3]=1; send(7); break;
      }  
                
  }  
*/

void int_com() interrupt 4
{ 
    unsigned char i,check1;  
    //unsigned int run_int;  
	
    if(RI==1)  
    {   
      rx1=rx0;  
      rx0=SBUF;  
      if((rx1==0xeb)&(rx0==0x90)) flag_rx=1;  
      if(flag_rx==1) { p_rx++; data_rx[p_rx]=rx0;}   
      if(p_rx>(data_rx[4]+4))   
      {  	/* LED8=1;CLED = 0;CLED = 1;  */ 
		  data_led=data_led^1;
		  check1=0xeb;
          for(i=1;i<p_rx;i++)  check1=check1^data_rx[i];
          if(check1!=rx0)  data_rx[3]=0;
          flag_rx=0; p_rx=0;  
	  }
      RI=0;   
    }  
	TI=0; 
} 

void LCD_CLR()
{ 
	unsigned int i,j; 

	for(i=0;i<6000;i++); 
	for(i=0;i<4;i++) for(j=0;j<16;j++)  disp816(j*8,i*2,' ');
}

unsigned char check_pass()
{
	unsigned char tem;	

	if((m1==k1)&&(m2==k2)&&(m3==k3)&&(m4==k4))
	{
		tem=1;
	}
	else if((m1==1)&&(m2==1)&&(m3==1)&&(m4==1))
	{
		tem=1;
	}
	else 
	{
		tem=0;
	}

	return tem;
} 

void page_mm()
{
	if(page_change==1) 
    { 
		LCD_CLR();  
		disp_chn(8,0,134); disp_chn(8,2,135); disp_chn(8,4,136); disp_chn(8,6,133);   //图元
		disp816(32,0,'U'); disp816(40,0,'A'); disp816(48,0,'='); disp816(80,0,'.');  disp816(104,0,'K'); disp816(112,0,'v');
	    disp816(32,2,'I'); disp816(40,2,'A'); disp816(48,2,'='); disp816(88,2,'.');  disp816(104,2,'A');		
        disp816(40,4,'P'); disp816(48,4,'='); disp816(104,4,'K'); disp816(112,4,'w');
		disp816(40,6,'F'); disp816(48,6,'='); disp816(80,6,'.'); disp816(104,6,'H'); disp816(112,6,'z');
        page_change=0;  
	}

	fix_asc(5,2,fixstr,dataN[3]);   displ_asc(64,0,fixstr,1); 
    fix_asc(5,1,fixstr,dataN[0]);   displ_asc(64,2,fixstr,1); 
    fix_asc(5,0,fixstr,dataN[6]);   displ_asc(64,4,fixstr,1);   
    fix_asc(5,2,fixstr,dataN[9]);   displ_asc(64,6,fixstr,1);

	if(kgzt[1] & b1_msk)        { disp_chn(8,2,135); }//开关合
	else if(kgzt[1] & b2_msk)   { disp_chn(8,2,131); }//开关分
	else { disp_chn(8,2,131); }
	if(kgzt[0] & b0_msk)      { disp_chn(8,0,134); }
    else { disp_chn(8,0,130); } 
    if(kgzt[0] & b1_msk)      { disp_chn(8,4,136); }
    else { disp_chn(8,4,132); }

    KEY8=0xff;  KEY9=1; 
    if((KEY8 !=0xff)||(KEY9 == 0)) 
	{ page = 1;  page_change = 1; }
} 

void page1()
{  
	
     if(page_change==1)
     {
       LCD_CLR(); 	   
	   disp_chn(16,0,13); disp_chn(32,0,14);  //数据
	   disp_chn(16,2,15); disp_chn(32,2,16);  //状态
       disp_chn(16,4,17); disp_chn(32,4,18);  //定值
	   disp_chn(16,6,7);  disp_chn(32,6,8);   //控制
       disp_chn(80,0,83); disp_chn(96,0,84);  //事件
       disp_chn(80,2,85); disp_chn(96,2,106); //复归
	   disp_chn(80,4,94); disp_chn(96,4,95);  //版本
       page_change=0; p_x=8; p_y=0;	  
     } 
 
     KEY8=0xff;  KEY9=1;
     if((KEY8==~8)&&(p_y>=2))                  { disp816(p_x,p_y,' '); p_y=p_y-2; }
     else if((KEY8==~32)&&(p_x==8)&&(p_y<=4))  { disp816(p_x,p_y,' '); p_y=p_y+2; }
	 else if((KEY8==~32)&&(p_x==72)&&(p_y<=2)) { disp816(p_x,p_y,' '); p_y=p_y+2; }
	 else if((KEY8==~32)&&(p_x==8)&&(p_y==6))  { disp816(p_x,p_y,' '); p_x=72;p_y=0; }
	 else if((KEY8==~8)&&(p_x==72)&&(p_y==0))  { disp816(p_x,p_y,' '); p_x=8; p_y=6; }
     else if((KEY8==~4)&&(p_x==72)&&(p_y<=4))  { disp816(p_x,p_y,' '); p_x=8; }
     else if((KEY8==~16)&&(p_x==8)&&(p_y<=4))  { disp816(p_x,p_y,' '); p_x=72; } 
	 else if(KEY8==127)                        { page=0; page_change=1; }
     else if(KEY9==0)
     {   
        if((p_x==8)&&(p_y==0))       { page=11; page_change=1; }   
        else if((p_x==8)&&(p_y==2))  { page=21; page_change=1; }   
        else if((p_x==8)&&(p_y==4))  
		{ 	page=31;  page_change=1;
			data_tx[3]=0xc0;  data_tx[4]=1; 
			send(7);
		} //定值采集  
        else if((p_x==8)&&(p_y==6))  { sup=1; page=34; page_change=1; }   
        else if((p_x==72)&&(p_y==0)) 
		{
		    s_b=w_p;
			ypp=0x11;//初进入ypp与s_b相同,出现白屏现象
	        soe_zz();
			soe_page();
 	        sub=1;  page=25; page_change=1; 
		}   
		else if((p_x==72)&&(p_y==2)) 
		{	data_tx[3]=0x33; data_tx[4]=1;
			send(7);         data_led &=(~b2_msk);//复位告警灯
			page=37;         page_change=1;
		}
	    else if((p_x==72)&&(p_y==4)) { page=38; page_change=1; }	
     }      
     disp816(p_x,p_y,'>');  
}
   
void page11()
{ 
   if(page_change==1)  
   {  
     LCD_CLR();   
     disp816(24,0,'I'); disp816(32,0,'A'); disp816(40,0,'='); disp816(80,0,'.'); disp816(96,0,'A'); 
	 disp816(24,2,'I'); disp816(32,2,'B'); disp816(40,2,'='); disp816(80,2,'.'); disp816(96,2,'A');
	 disp816(24,4,'I'); disp816(32,4,'C'); disp816(40,4,'='); disp816(80,4,'.'); disp816(96,4,'A');
     disp816(24,6,'I'); disp816(32,6,'0'); disp816(40,6,'='); disp816(72,6,'.'); disp816(96,6,'A');
     page_change=0;  
   } 
   
   fix_asc(5,1,fixstr,dataN[0]);   displ_asc(56,0,fixstr,1); 
   fix_asc(5,1,fixstr,dataN[1]);   displ_asc(56,2,fixstr,1); 
   fix_asc(5,1,fixstr,dataN[2]);   displ_asc(56,4,fixstr,1);   
   fix_asc(5,1,fixstr,dataN[8]);   displ_asc(56,6,fixstr,1);
     
   KEY8=0xff;  KEY9=1; 
   if(!(KEY8 & b7_msk))                      { page=1; page_change=1; }
   else if((!(KEY8 & b5_msk)) || (KEY9==0))  { page=12; page_change=1; }
} 
void page12()
{ 
   if(page_change==1)  
   {  
     LCD_CLR(); 
	 disp816(24,0,'U'); disp816(32,0,'A'); disp816(40,0,'='); disp816(72,0,'.');disp816(96,0,'K'); disp816(104,0,'v');
     disp816(24,2,'U'); disp816(32,2,'B'); disp816(40,2,'='); disp816(72,2,'.');disp816(96,2,'K'); disp816(104,2,'v');
     disp816(24,4,'U'); disp816(32,4,'C'); disp816(40,4,'='); disp816(72,4,'.');disp816(96,4,'K'); disp816(104,4,'v');
	 page_change=0;  
   }   
 
   fix_asc(5,1,fixstr,dataN[3]);   displ_asc(56,0,fixstr,1); 
   fix_asc(5,1,fixstr,dataN[4]);   displ_asc(56,2,fixstr,1);   
   fix_asc(5,1,fixstr,dataN[5]);   displ_asc(56,4,fixstr,1);
     
   KEY8=0xff;  KEY9=1; 
   if(!(KEY8 & b7_msk))                   { page=1;  page_change=1; }
   else if(!(KEY8 & b3_msk))              { page=11; page_change=1; }
   else if(!(KEY8 & b5_msk)||(KEY9==0))   { page=13; page_change=1; }
} 
void page13()
{ 
   if(page_change==1)  
   {  
     LCD_CLR();   
     disp816(32,0,'P'); disp816(40,0,'='); disp816(96,0,'K'); disp816(104,0,'w'); 
	 disp816(32,2,'Q'); disp816(40,2,'='); disp816(96,2,'K'); disp816(104,2,'v'); disp816(112,2,'a'); disp816(120,2,'r'); 
     disp816(32,4,'F'); disp816(40,4,'='); disp816(72,4,'.'); disp816(96,4,'H'); disp816(104,4,'z');
     page_change=0;  
   }   

   fix_asc(5,0,fixstr,dataN[6]);   displ_asc(56,0,fixstr,1); 
   fix_asc(5,0,fixstr,dataN[7]);   displ_asc(56,2,fixstr,1); 
   fix_asc(5,2,fixstr,dataN[9]);   displ_asc(56,4,fixstr,1);
     
   KEY8=0xff;  KEY9=1; 
   if(!(KEY8 & b7_msk))       { page=1;  page_change=1; }	
   else if(!(KEY8 & b3_msk))  { page=12; page_change=1; }
}  
void page21()
{
   if(page_change==1)  
   {  
     LCD_CLR();   
     disp_chn(16,0,38); disp_chn(32,0,39);disp_chn(48,0,15); disp_chn(64,0,16);                  //开关状态  
     disp_chn(16,2,40); disp_chn(32,2,41);disp816(48,2,'1');disp_chn(64,2,15); disp_chn(80,2,16);//刀闸1状态  
     disp_chn(16,4,40); disp_chn(32,4,41);disp816(48,4,'2');disp_chn(64,4,15); disp_chn(80,4,16);//刀闸2状态	 
     page_change=0;  
   }  
    
   if(kgzt[1] & b1_msk)      { disp_chn(112,0,53); }
   else if(kgzt[1] & b2_msk) { disp_chn(112,0,54); }
   if(kgzt[0] & b0_msk)      { disp_chn(112,2,53); }
   else { disp_chn(112,2,54); } 
   if(kgzt[0] & b1_msk)      { disp_chn(112,4,53); }
   else { disp_chn(112,4,54); }
   
   KEY8=0xff;  KEY9=1; 
   if(!(KEY8 & b7_msk))                   { page=1; page_change=1; }

⌨️ 快捷键说明

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