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

📄 display.c.bak

📁 完成数据的采集
💻 BAK
📖 第 1 页 / 共 4 页
字号:
					{
						if((Ddata->_Channal&0X1c00)==0x1c00)D->Mode=C_LCM_Mode13;//if(Data->_Channal&4)LCM->Mode=C_LCM_Mode13; 
					}	
			  	if(D->Mode==C_LCM_Mode15||D->Mode==C_LCM_Mode14||D->Mode==C_LCM_Mode13)
					{
						 if((Ddata->_Channal&0Xe000)==0xe000)D->Mode=C_LCM_ALAMC;//if(Data->_Channal&8)LCM->Mode=C_LCM_ALAMC; 
					}	
					if(m!=D->Mode)D->Timer=0,D->FLAG=1;
			
//	CHK_DISP_MODE(Ddata->_Channal,&D->Mode);		
}
/////////////////////////////////////
Int16U	ALAMC_mode_setion(Int16U	m,Int16U n)
{

	if(n<=(m*3))
	{
		LCMCmd(0x1);
		LCMCmd(0x2);
		return C_LCM_TEMRH;
		
	}
	else    return m;  
}
/////////////////////////////////////////////
void Display_mode_setion_ALAMC(_LCD *D,Int16U c)
{
	Int16U b;
	if(++D->Timer>=D->Comp)
	{
	 D->Timer=0,D->Mode++;
	 D->Mode=ALAMC_mode_setion(D->Mode,c);   	 
  }
	 
			
}
////////////////////////////////
Int16U	BCD(Int16U B)
{
	Int16U a,b;
	a=B/100;
	if(a>=10)a=9;
	a<<=8;
	B=B%100;
	b=B/10;
	b<<=4;
	B=B%10;
	B=a+b+B ;
	return B;
}




void Disp_Table_Sub(Int16U *p,Int16U addrs,Int16U d)
{
	Int16U a,b,c;
	c=*p;
	a=BCD(*p);
	if(a>=0x100)
	{ 
		if(*p<0xfe)
	  {
			b=a>>4;
			WriteOneChar(addrs,b,1);
	  	b=a&0xf;
	  	b=ASCII_TAB[b];
	    WriteASCIIChar(addrs+1,b,32,0);
	   }else	
			{
				WriteASCIIChar(addrs,'-','-',0);	
				WriteASCIIChar(addrs+1,'-','-',0);	
			}	
	 }else
         {
	        WriteOneChar(addrs,a,1);
	        WriteASCIIChar(addrs+1,32,32,0);	
	       }
	  
	  a=BCD(*++p),addrs+=3;
	  if(a>=0x100||a==0||c>=0xfe)
		{
			if(c<0xfe&&a!=0)
		 {
			 b=a>>4;
			 b=ASCII_TAB[b];
			 WriteASCIIChar(addrs,b,'.',0);
			 b=a&0xf;
	  	 b=ASCII_TAB[b];
	  	 WriteASCIIChar(addrs+1,b,'V',0);
	  	}else  
	  	{
	  		WriteASCIIChar(addrs,'-','-',0);
	  		WriteASCIIChar(addrs+1,'-','-',0);
	  	}
	    
		}else
		{
			if(*p>=21)b=0X28;
	  	else          b=0X10;
			if((a>b)||(d!=0))
			{
				b=a&0xf;
				b=ASCII_TAB[b];
	    	WriteASCIIChar(addrs+1,b,'V',0);
	    	b=a>>4;
	    	b=ASCII_TAB[b];
	  		WriteASCIIChar(addrs,b,'.',0);
	  	}else
	  	{
	  		WriteASCIIChar(addrs+1,32,32,0);
	  		WriteASCIIChar(addrs,32,32,0);
	  	}	  	
		}
}
////////////////////////////////
void	 Disp_Table(Int16U *point,volatile Int16U n,Int16U m)
{
	Int16U a,b;
	Int8U  x,addr;
	if(n&0x4)n=1;
	else     n=0;
	addr=0x93,b=m;
	switch(m&7)
	{
		case 1:
			Disp_Table_Sub(point,0x93,n);
			break;
		case 2:
			point+=4;
			Disp_Table_Sub(point,0x93,n);
			break;
		case 3:			
			Disp_Table_Sub(point,0x93,n);
			point+=4;
			Disp_Table_Sub(point,0x8b,n);
			break;
		case 4:
			point+=8;
			Disp_Table_Sub(point,0x93,n);
			break;
		case 5:
			Disp_Table_Sub(point,0x93,n);
			point+=8;
			Disp_Table_Sub(point,0x8b,n);
			break;	
		case 6:
			point+=4;
			Disp_Table_Sub(point,0x93,n);
			point+=4;
			Disp_Table_Sub(point,0x8b,n);
			break;
	 case 7:			 
			Disp_Table_Sub(point,0x93,n);
			point+=4;
			Disp_Table_Sub(point,0x8b,n);
			point+=4;
			Disp_Table_Sub(point,0x9b,n);
			break;
	}
	
#if 0	
	if(m&1)b=0xFFFE;
	else 
	if(m&2)point+=4,b=0xFFFD;
	else
	if(m&4)point+=8,b=0xFFFB;	
	if(m!=0)		
	Disp_Table_Sub(point,0x93,n);
	m&=b;
        
	if(m&2)point+=4,b=0xFFFD;
	else
	if(m&4)point+=8,b=0xFFFB;	
	if(m!=0)
	Disp_Table_Sub(point,0x8b,n);
	m&=b;
  
  if(m&1)     
	if(m&4)point+=8;       
	if((m&4)!=0)
	Disp_Table_Sub(point,0x9b,n);
#endif
}
///////////////////////////////
Int16U display_Fault(Int16U _Over,Int16U _Fast,Int16U _Room,Int16U _Low,Int16U _Fault)
{
	Int16U i,ii,iii,n,m;
	iii=m=0;
  if( _Over||_Fast||_Room||_Low||_Fault)WriteChar(0x81,6,TAB_FAU);
	else     WriteChar(0x92,5,NOFAULT_TAB);
		
	for(i=0;i<C_RF_MAX_COUNT;++i)	
	{
		ii=1<<i;
		if((_Fault&1)&&((ii&iii)==0))
			{
				iii|=ii;
				if(++m>=4)return 0;
				if(m==1)n=0x90;
				if(m==2)n=0x88;
				if(m==3)n=0x98;
				WriteOneChar(n,TAB_FAU_D[i],0);
				WriteChar(++n,6,TAB_FAU_C);
			}
		_Fault>>=1;
		if((_Over&1)&&((ii&iii)==0))
			{
				iii|=ii;
				if(++m>=4)return 0;
				if(m==1)n=0x90;
				if(m==2)n=0x88;
				if(m==3)n=0x98;
				WriteOneChar(n,TAB_FAU_D[i],0);
				WriteChar(++n,6,TAB_OVER_C);
			}
		 _Over>>=1;
		 if((_Room&1)&&((ii&iii)==0))
			{
				iii|=ii;
				if(++m>=4)return 0;
				if(m==1)n=0x90;
				if(m==2)n=0x88;
				if(m==3)n=0x98;
				WriteOneChar(n,TAB_FAU_D[i],0);
				WriteChar(++n,7,TAB_Room_C);
			}
		 _Room>>=1;
		 if((_Fast&1)&&((ii&iii)==0))
			{
				iii|=ii;
				if(++m>=4)return 0;
				if(m==1)n=0x90;
				if(m==2)n=0x88;
				if(m==3)n=0x98;
				WriteOneChar(n,TAB_FAU_D[i],0);
				WriteChar(++n,6,TAB_Fast_C);
			}
		 _Fast>>=1;
		 if((_Low&1)&&((ii&iii)==0))
			{
				iii|=ii;
				if(++m>=4)return 0;
				if(m==1)n=0x90;
				if(m==2)n=0x88;
				if(m==3)n=0x98;
				WriteOneChar(n,TAB_FAU_D[i],0);
				WriteChar(++n,6,TAB_Low_C);
			}
		 _Low>>=1;
	}	
	return 0;
}		
		

///////////////////////////////
void WritePicture(Int16U *pos)
{
  Int16U a,b,c,TempData;
     
  for(a=0;a<0x20;a++)
  {
    	LCMCmd(0x34);        // 8bit I/F, extend command
    	LCMCmd(0x80|a);      // Y address
    	LCMCmd(0x80);        // X address
    	        // 8bit I/F, basic command, graphic on
      	for(b=0;b<8;b++)
     		{   		 	 
     			c=a*8+b;
     			TempData=*(pos+c);
     			LCMData(TempData>>8);     			 
     			LCMData(TempData&0xff);     		
 		    }
 		    for(b=0;b<8;++b)
 		    {
 		    	  c=(a+32)*8+b;
 		    	  TempData=*(pos+c);
 		    		LCMData(TempData>>8);     			 
     			  LCMData(TempData&0xff);   
 		    }
 		    
 		    
    }
    LCMCmd(0x30); 
    LCMCmd(0x1); 
    LCMCmd(0x36);     
}
///////////////////////////////
//disp_line(History[0].Spacecount,History[0].ATemper,Ddata->_Yorder);
//////////////////////////////
void disp_line(Int8U His_Space,Int8U *p,volatile Int16U DIV1,Int8U x)
{
	Int16U b,a,c,d,e,f,g;
  Int16U LineReg[512];
  //if(DIV>=18)DIV=0;
  for(a=0;a<512;++a)LineReg[a]=ORDER_TAB[a];
  LineReg[15]=TAB_1[x];
  LineReg[23]=TAB_2[x];
  LineReg[31]=TAB_3[x];
  LineReg[39]=TAB_4[x];
  LineReg[47]=TAB_5[x];
  LineReg[55]=TAB_6[x];
  LineReg[63]=TAB_7[x];
  LineReg[71]=TAB_8[x];
 LineReg[8]|=TAB_DIV1[DIV1];
 LineReg[16]|=TAB_DIV2[DIV1];
 LineReg[24]|=TAB_DIV3[DIV1];
 LineReg[32]|=TAB_DIV4[DIV1];
 LineReg[40]|=TAB_DIV5[DIV1];
 LineReg[48]|=TAB_DIV6[DIV1];
 LineReg[56]|=TAB_DIV7[DIV1];
 LineReg[64]|=TAB_DIV8[DIV1];
 DIV1=LINE_DIV_TAB[DIV1];
  c=*p;
	if(c>=0xfe)c=0;
  c*=10;
  c/=DIV1;//Y轴
	if(c>50)c=50;
	for(a=0;a<His_Space;++a)
	{
		 b=*p;
		 if(b>=0xfe)b=0;
     b*=10;
		 b/=DIV1;//Y轴
		 if(b>50)b=50;
		 	
		 
		 if(b>=c)
		 {
		 	e=ORDER_TABX[a];//列
		  f=ORDER_TABXBIT[a];//位	
		  for(g=c;g<=b;++g)
		  {
		  	d=8*(58-g)+e;
		 	 LineReg[d]|=f;
		  }
		 }else
		 if(b<c)
		 {
		  d=8*(58-b)+ORDER_TABX[a];//列
		 	LineReg[d]|=ORDER_TABXBIT[a];//位	
		  
		 	e=ORDER_TABX[a-1];//列
		  f=ORDER_TABXBIT[a-1];//位	
		  for(g=b;g<=c;++g)
		  {
		  	d=8*(58-g)+e;
		 	  LineReg[d]|=f;
		  }
		 }
     c=b,p++;
	}
	 WritePicture(&LineReg[0]);
}
////////////////////////////////
////////////////////////////////
//disp_Timer(&Year[0],Ddata->_A_Tembuf,Ddata->_A_RHbuf)
Int8U  disp_Timer(Int8U *p,Int16U temp,Int16U rh,Int8U *pos,Int16U m)
{
  Int16U a;
	if(*pos==1||(m!=0))
		{
			if(*pos==1)
			{
				LCMCmd(0x30); 
				LCMCmd(0x1);
				
			} 
			 LCMCmd(0x2);      
			 WriteChar(0x90,4,TEM_TAB);
			  WriteChar(0x81,5,RH_TAB);
			if(temp<0xfe)
                        {
			 if(temp>=(100+30))a=49;
			 else				       a=32;
			 if(temp<30)a='-';			
			 WriteASCIIChar(0x94,':',a,0);
			 		 	
			 if(temp<30)temp=30-temp;
			 else
			 {				 
				if(temp>=130)temp-=130;
				else         temp-=30;
			 }
			 	
			 a=BCD(temp);									
			 WriteOneChar(0x95,a,1);
			 WriteOneChar(0x96,'度',0);
			}else
                        {
                          WriteASCIIChar(0x94,':',32,0);
                          WriteASCIIChar(0x95,'-','-',0);
                          WriteASCIIChar(0x96,'-','-',0);
                        }

			a=WEEKCHAR[*(p+3)&7];
			WriteOneChar(0x8b,'星',0);
			WriteOneChar(0x8c,'期',0);
			WriteOneChar(0x8d,a,0);
			a=*(p+2);
			WriteOneChar(0x9a,a&0x3f,1);
			WriteOneChar(0x9b,'点',0);
			a=*(p+1);
			WriteOneChar(0x9c,a&0X7F,1);
			WriteOneChar(0x9d,'分',0); 

⌨️ 快捷键说明

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