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

📄 1632_h_v_c_e.c

📁 显示程序
💻 C
📖 第 1 页 / 共 3 页
字号:
    { 
	 goto top;
	 }
	  km=1;
	  while(km)
	  {
	     //func_display_H();
		 //func_display_H();
		 //func_display_H();
		 //func_display_H();
		 //func_display_H();
		 func_display_H();
		 if((arriver_arrow)&&(rolls==0))
		   {
		    gd_k=0;
		   }
		 if(arriver_arrow==0)
			{
		    gd_k=1;
		   }
		 //func_display_H();
		 //func_display_H();
		 if((used_time>4)&&(arrow_old)&&(gd_k))//箭头滚动
	    {
        used_time=0;
	    func_disp_roll_H(arrow_old);
	    rolls++;
	    if(rolls>=16)
	    rolls=0;
		 }
         if(!FlagChanged)
		 {
		   for(kk=0;kk<10;kk++)
		   {
		    func_display_H();//垂直刷显示
		   }
			km=0;FlagChanged=1;
		 }
	 }
   }
	}
	else
	{
	while(1)
	{

top1:	arriver_arrow=staute&0x03;//预选箭头
      roll_arrow=_cror_(staute&0x0c,2);
	
//		graycode_cur_old=graycode_cur;
        if (out)  //暂停服务
		{ 
		   gd_k=0;
			   func_out_of_service_V();//英文暂停显示V
	//	func_out_of_service_C_E_V();//中英文暂停显示V
			func_whole_buffer_clear();
         arrow_old=0xff;ten_old=0xff;single_old=0xff;
			goto top1;
		} 
       
		if ((cx_w_z==0)&&(arriver_arrow))//到站
		{  
		   gd_k=0;
         func_preselect_disp_V();
			func_whole_buffer_clear();
         arrow_old=0xff;ten_old=0xff;single_old=0xff;
			goto top1;
		}
	
      if (roll_arrow!=arrow_old)//箭头变化写箭头
		{
         if(roll_arrow>2)roll_arrow=0;  	
		   arrow_old=roll_arrow;
			if(arrow_old>0)
			{
			  func_write_arrow_V(arrow_old-1);	//写箭头V
		     rolls=0;gd_k=1;//滚动
            
			}
         else
         func_whole_buffer_clear();//全清除
			ten_old=0xff;single_old=0xff;//箭头变化清数字重新刷
		}
		if(ten_old!=ten || single_old!=single)//数字变化写数字
		{
		   ten_old=ten;single_old=single;
		   if(roll_arrow==0)//没有箭头
		   {
			   func_whole_buffer_clear();
	         if(ten_old)
	         {
		      func_fill_letter_to_buffer_x_V(ten_old,16);
		      func_fill_letter_to_buffer_x_V(single_old,17);
	         }else
	         {
		      func_fill_letter_to_buffer_x_one_V(single_old,16);
	         }
			}
			else//有箭头
			{  
         	if(ten_old)
	         {
		      func_fill_letter_to_buffer_x_V(ten_old,32);
		      func_fill_letter_to_buffer_x_V(single_old,33);
	         }else
	         {
		      func_whole_buffer_clear_x_V();
		      func_fill_letter_to_buffer_x_one_V(single_old,32);
	         }
			}
     }
	  if(ten_old!=ten || single_old!=single)
	  {
     goto top1;
     }
	  km=1;
	  while(km)
	  {
	   // func_display_V();
		// func_display_V();
		// func_display_V();
		// func_display_V();
		// func_display_V();
		 func_display_V();
		 if((arriver_arrow)&&(rolls==0))//有预选箭头关滚动
		   {
		   gd_k=0;
		   }
		 if(arriver_arrow==0)//开滚动
			{
		   gd_k=1;
		   }
		//	func_display_V();
		//	func_display_V();
		 if((used_time>4)&&(arrow_old)&&(gd_k))
	     {
         used_time=0;
	     func_disp_roll_V(arrow_old);
	     rolls++;
	     if(rolls>=16)
	     rolls=0;
		 }
         if(!FlagChanged)
		 {
		   for(kk=0;kk<10;kk++)
		   {
		    func_display_V();//垂直刷显示
		   }
			km=0;FlagChanged=1;
		 }
     }
   }
  }
}

void r_d_cx (void)//读层选
{
  select=1;
  _nop_();_nop_();_nop_();
  cx_w=select;
  if(cx_w!=cx_w_old)
  {
  cx_w_old=cx_w;
  cx_w_i=0;
  }
  else
  {
  cx_w_i++;
  }
  if((cx_w_i>5)&&(cx_w!=cx_w_z))
  {
  cx_w_z=cx_w;FlagChanged=0;
  }
}
/*
void recieve() interrupt 4  //串口中断
{       
	unsigned char temp,label;
	temp=SBUF;
	RI=0;
	label=temp&0xc0;
	temp=temp&0x3f;
	switch (label)
	{
       case 0x00:
			if (tens!=temp)
			{
				tens=temp;tensi=0;
			}else
			{
				tensi++;
			}			
			if(tensi>3&&ten!=temp)
			{
				ten=temp;
				FlagChanged=0;
			}
			break;
		case 0x40:
			if(singles!=temp)
			{
				singles=temp;singlesi=0;
			}else
			{
				singlesi++;
			}	
			if(singlesi>3&&single!=temp)
			{
				single=temp;
			   FlagChanged=0;
			}
			break;
		case 0xc0:
			if(stautes!=temp)
			{
				stautes=temp;stautesi=0;
			}else
			{
				stautesi++;
			}
			if(stautesi>5&&staute!=temp)
			{
				staute=temp;
				FlagChanged=0;
			}
			break;
/*		case 0x80:
              if(temp&0x20)
              {
              if(tss!=temp)
              {
               tss=temp;tsi=0;
             
              }
              else 
              {
               tsi++;
              }
               if((tsi>5)&&(ts!=temp))
                {
                ts=temp;
                if(ts&0x01)
                graycode_cur|=0x20;
                else 
                graycode_cur&=0x1F;
                FlagChanged=0;
               }
              }
              else
              {
              if(graycodes!=temp)
			     {
				   graycodes=temp;graycodei=0;
			     }else
			     {
				   graycodei++;
			     }
			     if((graycodei>5)&&(graycode_cur1!=temp))
			    {
				
				 graycode_cur1=temp;
				 graycode_cur=graycode_cur1;
				 if(ts&0x01)
             graycode_cur|=0x20;
             else 
             graycode_cur&=0x1F;
             FlagChanged=0;   

			}


               }
               

			break;
		default:_nop_();
	}
	r_d_cx();//读层选信号
	WDTSFR=0xe1;//喂狗
} 
*/
void func_display_H(void)//水平刷显示
{
		register unsigned char i,line,skip,skip_1;
	unsigned char pdata P0_data;
	line=0x80;	skip=49;
	WDTSFR=0x1e;
	for (i=0;i<8;i++)
	{   
    	pec1=0;skip_1=skip;
		P0_data=BufferDisp[skip_1];		skip_1-=0x10;
		P0_data=0;		skip_1-=0x10;
		P0_data=BufferDisp[skip_1];		skip_1-=0x10;
		P0_data=0;		skip_1--;
		P0_data=BufferDisp[skip_1];		skip_1+=0x10;
		P0_data=0;		skip_1+=0x10;
		P0_data=BufferDisp[skip_1];		skip_1+=0x10;
		P0_data=0;		skip_1+=3;

		pec1=0;		P2=line;
	 	func_delay(20);//红
   //  func_delay(50);//绿

		P2=0;	skip_1=skip;
		P0_data=0;		skip_1-=0x10;
		P0_data=BufferDisp[skip_1];		skip_1-=0x10;
		P0_data=0;		skip_1-=0x10;
		P0_data=BufferDisp[skip_1];		skip_1--;
		P0_data=0;		skip_1+=0x10;
		P0_data=BufferDisp[skip_1];		skip_1+=0x10;
		P0_data=0;		skip_1+=0x10;
		P0_data=BufferDisp[skip_1];	skip_1+=3;
  
		pec1=0;		P2=line;
     func_delay(20);//红
    	// 	 func_delay(50);//绿
	   P2=0;
      skip=skip_1;
		line=_cror_(line,1);
	}  
	WDTSFR=0xe1;

}

void func_display_V(void)//垂直刷显示
{
	register unsigned char i,line,skip,skip_1;
	unsigned char pdata P0_data;
	line=0x80;	skip=49;
	WDTSFR=0x1e;
	for (i=0;i<8;i++)
	{   
    	pec1=0;skip_1=skip;
		P0_data=BufferDisp[skip_1];		skip_1-=0x10;
		P0_data=0;		skip_1-=0x10;
		P0_data=BufferDisp[skip_1];		skip_1-=0x10;
		P0_data=0;		skip_1--;
		P0_data=BufferDisp[skip_1];		skip_1+=0x10;
		P0_data=0;		skip_1+=0x10;
		P0_data=BufferDisp[skip_1];		skip_1+=0x10;
		P0_data=0;		skip_1+=3;

		pec1=0;		P2=line;
	func_delay(20);//红
    	//  func_delay(50);//绿

		P2=0;	skip_1=skip;
		P0_data=0;		skip_1-=0x10;
		P0_data=BufferDisp[skip_1];		skip_1-=0x10;
		P0_data=0;		skip_1-=0x10;
		P0_data=BufferDisp[skip_1];		skip_1--;
		P0_data=0;		skip_1+=0x10;
		P0_data=BufferDisp[skip_1];		skip_1+=0x10;
		P0_data=0;		skip_1+=0x10;
		P0_data=BufferDisp[skip_1];	skip_1+=3;
  
		pec1=0;		P2=line;
		func_delay(20);//红   
    //  func_delay(50);//绿
	   P2=0;
      skip=skip_1;
		line=_cror_(line,1);
	}  
	WDTSFR=0xe1;
}



void func_delay(unsigned char x)//延时

⌨️ 快捷键说明

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