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

📄 lcddisplay.h

📁 CPU:C51
💻 H
字号:
//#include<ioset.h>
//#include<GB_ASCII.h>
//#include<fontASCII8x12.h>
//#include<fontASCII8x16.h>

void Address(unsigned char  xl,unsigned char  yl)
{
     uchar i;
     i=xl&0x0f;
     xl=(xl>>4)+0x10;
     Comwrite(0xb0+yl); 	  
	 Comwrite(xl);
 	 Comwrite(i);
}

void Clear()
{
   unsigned char  i,j;
   for(i=0;i<16;i++)   
    {
	   Address(0,i);
       for(j=0;j<128;j++) 
       { Datawrite(0);Datawrite(0);}
     }
}


void disp_ch(unsigned char c,uCol,uPage)
{
	unsigned char k,j,ch_w;
	unsigned char width,i;
	unsigned char len;

	len=sizeof(ASC_16)/sizeof(ASC_16[0]);
	for(k=0;k<len;k++)
	{
		if(c == ASC_16[k].Index[0] ) break;
	}
	if(k<len)
	{
		
		if(c=='-'||c==':') 
			width=ASC_CHR_WIDTH-2;
		else if(c=='|')
			width=ASC_HZ_WIDTH-ASC_CHR_WIDTH;
		else 
			width=ASC_CHR_WIDTH;
		    
		for(i=0;i<2;i++)
		  {
		   Address(uCol,uPage);
			for(j=0;j<ASC_CHR_WIDTH;j++)
			{
				ch_w=ASC_16[k].Msk[ASC_CHR_WIDTH*i+j];	
				if(Fx_flage==0) {Datawrite(ch_w);Datawrite(ch_w); }				  
				else {Datawrite(~ch_w); Datawrite(~ch_w); }
			} 
			  uPage++;
           }  	
	}
}


void disp_hz(unsigned char *hz,unsigned char uCol,uPage)
{
	unsigned char k,j,ch_w;

	for(k=0;k<sizeof(GB_16)/sizeof(GB_16[0]);k++)
	{
		if(hz[0] == GB_16[k].Index[0] && hz[1] == GB_16[k].Index[1])
			break;
	}

	Address(uCol,uPage);
	for(j=0;j<ASC_HZ_WIDTH;j++)
	{		
		ch_w=GB_16[k].Msk[j];
		if(Fx_flage==0)  {Datawrite(ch_w);Datawrite(ch_w); }	 				  
		else {Datawrite(~ch_w); Datawrite(~ch_w); } 
	}

	Address(uCol,uPage+1);
	for(j=0;j<ASC_HZ_WIDTH;j++)
	{
		ch_w=GB_16[k].Msk[ASC_HZ_WIDTH+j];
		if(Fx_flage==0) {Datawrite(ch_w);Datawrite(ch_w); }				  
		else {Datawrite(~ch_w); Datawrite(~ch_w); } 
	}
}



void disp_str(unsigned char uCol,uPage,unsigned char *p)
{
	unsigned char i=0;
	while(p[i]>0)
	{
		if(p[i] < 128)
		{	
			disp_ch(p[i],uCol,uPage);
            uCol+=8;
		}
		else
		{	
			disp_hz(&p[i],uCol,uPage);
			uCol+=16;
			i++;
		}
		if(i<16)
		   i++;
	}
}




void Writesecret(uchar col,uchar pag,uchar dat)
{
      dat+=48;	 	 
      disp_ch(dat,col,pag);
}


/*
void setsecret()
{     
        EA=0;
	    disp_str(0,0," Enter Password");  
		Writesecret(32,3,secret[0]);
		Writesecret(48,3,secret[1]);
		Writesecret(64,3,secret[2]);
		Writesecret(80,3,secret[3]);	    	         
	    disp_str(0,3,"<");	
	    disp_str(120,3,">");
	    disp_str(0,6,"Config");	
	    disp_str(80,6,"Cancel");
     	EA=1;
}

*/

void Pinch_data_pro(void)
{
      unsigned int temp;
      float  press;	   	  	  
	  if(14<ad_data<243)			               //当压力值介于15kpa到115kpa之间时,遵循线性变换
	 	{			    
		    int vary=ad_data;						//y=(115-15)/(243-13)*X+15kpa			
			press=((10.0/23.0)*vary)+9.3;			//测试时补偿值为9.3
														  
			temp=(int)(press*10);	                //放大10倍,便于后面的计算
	   									    			    											
			press_bai=temp/1000;			     	//取压力值百位
			press_shi=(temp%1000)/100;		    	//取压力值十位
			press_ge=((temp%1000)%100)/10;	    	//取压力值个位
			press_dot=((temp%1000)%100)%10;			//取压力值十分位
	   	   }	
	 if(press_bai!=0)     
       Writesecret(32,0,press_bai);
     else disp_str(32,0," ");    
     //Writesecret(32,0,press_bai);
     Writesecret(48,0,press_shi);
     Writesecret(64,0,press_ge);
     Writesecret(80,0,press_dot);
}



void Intial(void)
{  
	RES=0;
	Delay(10);
	RES=1;
	Delay(50);
/*	Comwrite(0xe3);
	Comwrite(0xA2);
	Comwrite(0xA1);
	Comwrite(0xc0);
	Comwrite(0x2c);
	Comwrite(0x2e);
	Comwrite(0x2F);
	Comwrite(0x81);
	Comwrite(0x20);//T3:30
	Comwrite(0x24);//T3:23
	Comwrite(0xAF);
	Comwrite(0x40);
	Delay(10);*/	


    Comwrite(0x48);  		//?????
    Comwrite(0x80);  		//1/128duty 

	Comwrite(0x01);			//?

	Comwrite(0xA1);  		//ADC=0,SEG0--SEG127 ???????,??127厖0
	Comwrite(0xC8);  		// SHL=0,COM0--COM127 ???????,??127厖0

	Comwrite(0x44);  		//??COM0
	Comwrite(0x00);  		//START FROM COM0 

	Comwrite(0xAB);			//Oscillator on start
	Comwrite(0x67);  		//5 times boosting ?????,??6?

	Comwrite(0x27); 		//(20~27) ??1+(Rb/Ra)=2.3~7.2 
	Comwrite(0x81); 		//SET Electronic volume register
	Comwrite(0x3F); 		//(0~3FH) 

	Comwrite(0x57);			//LCD bias select register 1/12

	Comwrite(0x93);  		// ?
	
	Comwrite(0x2C);  		// power control 
	Delay(50);
	Comwrite(0x2E);  		//
	Delay(50);
	Comwrite(0x2F); 		// 
	Delay(50);
	Comwrite(0xAF); 		// Normal display.
	Delay(10);
	
				 
}

//###########################################################//

void Comwrite(uchar com)
{
	R_S=0;
	W_R=0;
	R_D=1;
	LCD_DATA=com;
    W_R=1;
//	R_D=0;
}

//###########################################################//

void Datawrite(uchar dat)

{ 
   // C_S=0;
	R_S=1;
	W_R=0;
	R_D=1;
	LCD_DATA=dat;
	W_R=1;
//	R_D=0;
   // C_S=1;

}

⌨️ 快捷键说明

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