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

📄 modbus.c

📁 液晶显示
💻 C
📖 第 1 页 / 共 5 页
字号:
*/
uchar code ChannelData[48]={
    0x25,0x21,0x24,
	0x20,0x37,0x31,
	0x27,0x23,0x22,
	0x26,0x35,0x33,
	0x32,0x36,0x2f,
	0x2b,0x2c,0x2e,
	0x34,0x30,0x2d,
	0x29,0x2a,0x28,
	0x05,0x01,0x04,
	0x00,0x17,0x11,
	0x07,0x03,0x02,
	0x06,0x15,0x13,
	0x12,0x16,0x0f,
	0x0b,0x0c,0x0e,
	0x14,0x10,0x0d,
	0x09,0x0a,0x08,
};


uchar code Mainpageface[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,
0xC0,0xE0,0xE0,0xE0,0xE0,0xE0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,
0xF0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0xC0,0xE0,
0xE0,0xE0,0xE0,0xF0,0xF0,0xF8,0xFC,0xFC,0xFE,0xFE,0xFF,0xFC,0x70,0x60,0x40,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x60,0xF0,0xF0,0xF8,0xF8,0xFC,0xFE,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x7F,0x7F,0x7F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x1F,0x9F,0x9F,0x9F,0x1F,0x9F,
0x9F,0x9F,0xDF,0xDE,0xD8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xFC,0xFC,0xFC,0xFC,
0xFC,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,0xFE,0xFF,0xFF,0x7F,0x7F,0x7F,0x3F,0x3F,0x3F,
0x1F,0x3F,0x1F,0x1F,0x0F,0x8F,0x07,0x87,0xC3,0xC3,0xC1,0xE0,0xE0,0xF0,0xF0,0xFC,
0xFC,0xF0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x01,0x03,0x17,0x1F,0x1F,0x0F,0x87,0x83,0xC7,0xE3,0xF1,0xF1,0xF1,0xF8,
0xF8,0xFC,0xFC,0xFE,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,
0x7F,0xFF,0xFF,0x7F,0x7F,0x7F,0x7F,0x7F,0x7D,0x73,0x71,0xF3,0xF1,0xF3,0xF1,0xF3,
0xF1,0xF3,0xF1,0xF1,0xF1,0xF9,0xF1,0xF8,0xF8,0xF8,0xF8,0xF8,0xFC,0xFC,0xFC,0xFC,
0xFE,0xFE,0xFF,0xFF,0x7F,0xFF,0x7F,0x7F,0x3F,0x3F,0x1F,0x1F,0x1F,0x0F,0x0F,0x07,
0x07,0x83,0x81,0xC3,0xC1,0xE0,0xE0,0xA0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0F,0x1F,0x7F,0x7F,0x7F,0x3F,0x1F,
0x1F,0x0F,0x8F,0x8F,0x87,0xC7,0xC3,0xE3,0xF3,0xF3,0xF1,0xF8,0xF9,0xF8,0xF8,0xFC,
0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFE,0xFC,0xFE,0xFC,0xFE,0xFD,0xFF,0xF7,0xE7,
0xC7,0xC7,0xC7,0xC7,0x87,0xC3,0xC7,0xC3,0xC3,0xC3,0xC3,0xC3,0xC1,0xE1,0xE1,0xE1,
0xE1,0xE1,0xF1,0xF0,0xF0,0xF8,0xF8,0xF8,0xFC,0xFC,0xFC,0xFE,0xFE,0xFE,0xFF,0xFF,
0xFF,0xFF,0x7F,0x3F,0x3F,0x3F,0x1F,0x0F,0x0F,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x3E,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x7F,0x3F,0x3F,0x3F,0x1F,0x1F,0x1F,0x0F,
0x0F,0x0F,0x07,0x07,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
0x03,0x03,0x07,0x0F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x0F,0x1F,0x0F,0x1F,0x0F,
0x0F,0x0F,0x07,0x0F,0x07,0x07,0x07,0x07,0x07,0x03,0x01,0x01,0x01,0x01,0x01,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x80,0x80,0x80,0x80,0xC0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,
0xC0,0x82,0xC3,0x83,0xC1,0x80,0xC0,0x80,0xC0,0x80,0x80,0x80,0x80,0xC0,0x80,0x80,
0x00,0x00,0x00,0x80,0x80,0x80,0xC0,0x80,0xC0,0x80,0x80,0x80,0x00,0x00,0x00,0x00,
0x00,0x80,0x80,0xC0,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x80,0x80,0x80,
0xC0,0x80,0xC0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0xC0,0x80,
0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0x80,0x80,0x80,0x80,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0x80,0xC0,0x80,0xC0,0x00,0x00,0x00,
0x00,0x22,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF2,0xF0,0xF8,0xFC,0xFE,0xFF,0xFF,
0xFF,0xFF,0xCF,0x87,0x07,0x03,0x01,0x01,0x01,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xF7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0x47,0x02,
0x01,0x00,0x00,0x01,0x03,0x07,0x0F,0x3F,0x3F,0xFF,0xFF,0xFF,0xFE,0xFC,0xFC,0xFE,
0xFF,0xFF,0xFF,0x3F,0x1F,0x0F,0x07,0x03,0x01,0x00,0x00,0x00,0x00,0xBF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0x20,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFE,0xFC,0xF8,0xF0,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,
0x00,0x22,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x27,0x07,0x01,0x03,0x0F,0x0F,0x3F,
0x7F,0x7F,0x7F,0x7F,0x7F,0x7E,0x70,0x60,0x40,0x00,0x00,0x00,0x7F,0x7F,0x7F,0x7F,
0x7F,0x7F,0x7F,0x7F,0x7D,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x78,0x38,
0x00,0x00,0x40,0x60,0x70,0x78,0x7C,0x7E,0x7F,0x7F,0x7F,0x3F,0x1F,0x0F,0x07,0x1F,
0x3F,0x7F,0x7F,0x7F,0x7F,0x7E,0x7C,0x78,0x60,0x40,0x00,0x00,0x00,0x0A,0x1F,0x1F,
0x3F,0x3F,0x7F,0x7F,0x7F,0x7C,0x78,0x78,0x78,0x78,0x7C,0x7F,0x7F,0x3F,0x3F,0x3F,
0x1F,0x1F,0x07,0x00,0x00,0x00,0x00,0x00,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x28,
0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x00,0x00,0x00,
};


void LCD_C_D(bit flag,uchar xdata ldata)          /*flag=1 con flag=0 data*/
{
    uchar  xdata i;
    if(flag)
	{	
		alarm_uart_data |= WRITE_CMD;
  		HandleEnable = alarm_uart_data;
		alarm_uart_data &= ~WRITE_CMD;
	}
	else
	{
		alarm_uart_data |= WRITE_DATA;
 		HandleEnable = alarm_uart_data;
	    alarm_uart_data &= ~WRITE_DATA;
	}
	switch (l_cs)
	{
	 	case 1 :
				Cs1_Enable = ldata;
				break;
		case 2 :
				Cs2_Enable = ldata;
				break; 
		case 3 :
				Cs_Enable = ldata;
				break;
		default:
				break;
	}
	alarm_uart_data |= READ_DATA;
    HandleEnable = alarm_uart_data;
	alarm_uart_data &= ~READ_DATA;
    for ( i = 0; i < 10 ;i++) ;    
}


void display_Mainpageface(uchar x_add,uchar y_add,uchar code *ptr)
{
	unsigned int i;
	unsigned char uRow,uCol;
	unsigned int temp;
	unsigned char n =0;   

	uRow = x_add+0xb8;
 	uCol = (y_add < 4 ? y_add : y_add-4)*16+0x40;
	l_cs =  (uchar)(y_add < 4)|(1<<(uchar)(!(y_add < 4)));
	LCD_C_D(1,uRow);
    LCD_C_D(1,uCol);
	for( i =0;i<8;i++ )
	{
		for(temp=0;temp<128;temp++) 
		{
		    if ( (temp >= 64) && (n==0) )
			{
				n =1;
		        uCol -=0x40;
				l_cs = 0x02;
				LCD_C_D(1,uRow+i);
    			LCD_C_D(1,uCol);
			}
			LCD_C_D(0,*(ptr+(temp+128*i)));
//			LCD_C_D(0,*(ptr+temp));
			uCol++;
		}
		l_cs = 0x01;
		n =0;
		uCol =0x40;
		LCD_C_D(1,uRow+1+i);
        LCD_C_D(1,uCol);      
	}
}



//****************************************液晶显示FLASH****************

void display_lcd(uchar x_add,uchar y_add,uchar code *ptr,uchar opt)
{
    unsigned char c1,c2;
    unsigned char j,k,i=0;
	unsigned char n =0;
	unsigned char uRow,uCol;
	unsigned char temp,uLen=0;

	uRow = x_add*2+0xb8;
 	uCol = (y_add < 4 ? y_add : y_add-4)*16+0x40;
	l_cs =  (uchar)(y_add < 4)|(1<<(uchar)(!(y_add < 4)));
//	L_CS1 =  (y_add < 4);
//    L_CS2 = !(y_add < 4);
	LCD_C_D(1,uRow);
    LCD_C_D(1,uCol);
	while ( (uchar)ptr[uLen] >= 0x10 ){uLen++;};	//探测字串长度
    while(i<uLen)
	{
	    c1 = ptr[i];
		c2 = ptr[i+1];
		if ( c1 >128 )
		{
			for(j=0;j<sizeof(Cdotlib)/sizeof(Cdotlib[0]);j++)	// 查找定位
			{
				if((c1 == Cdotlib[j].Index[0]) && (c2 == Cdotlib[j].Index[1]))
					break;
			}
			if ( opt >0 )
			{
			    for(k=0;k<2;k++)						// 分16行输出  显示
			    {
				    for(temp=0;temp<16;temp++) 
				    {
				         LCD_C_D(0,Cdotlib[j].Msk[temp + k*16]);
				    }
			        LCD_C_D(1,uRow+1);
                    LCD_C_D(1,uCol);
				 }
			 }
			 else
			 {
			     for(k=0;k<2;k++)						// 分16行输出  反显
			    {
				    for(temp=0;temp<16;temp++) 
				    {
				         LCD_C_D(0,~(Cdotlib[j].Msk[temp + k*16]));
				    }
			        LCD_C_D(1,uRow+1);
                    LCD_C_D(1,uCol);
				 }
			 }
			 uCol +=16;
			 i++;
		 }
		 else
		 {
		    if ( opt > 0 )
			{
			    if (c1 >= 0x10)	
			    {
			        for (k =0; k <2; k++)
				    {
				        for(j=0;j<8;j++)
				        {
				            LCD_C_D(0,ASC_MSK[(c1-0x20)*16 +j+(k*8)]);
				        }
					    LCD_C_D(1,uRow+1);
                        LCD_C_D(1,uCol);
				    }
			     }
			 }
			 else
			 {
			     if (c1 >= 0x10)	
			     {
			        for (k =0; k <2; k++)
				    {
				        for(j=0;j<8;j++)
				        {
				            LCD_C_D(0,~(ASC_MSK[(c1-0x20)*16 +j+(k*8)]));
				        }
					    LCD_C_D(1,uRow+1);
                        LCD_C_D(1,uCol);
				    }
			      }
			 }
			 uCol +=8;  
		 }
		 if ( ((uCol-0x40) >=64) && (n==0) )
		 {
		        n =1;
		        uCol -=0x40;
//		    	L_CS1 = 0;
//                L_CS2 = 1;
				l_cs = 0x02;
		 }
		 LCD_C_D(1,uRow);
         LCD_C_D(1,uCol);
		 i++;
	}
}


//****************************************液晶显示RAM****************
void DrawString(uchar x_add,uchar y_add,uchar *str,uchar pra,uchar opt,uchar att)
{ 

    uchar i=0,c1,k;
	uchar n =0;
	uchar uRow,uCol;
    uchar j;

	uRow = x_add*2+0xb8;
 	uCol = (y_add < 4 ? y_add : y_add-4)*16+0x40;
    l_cs =  (uchar)(y_add < 4)|(1<<(uchar)(!(y_add < 4)));
	LCD_C_D(1,uRow);
    LCD_C_D(1,uCol);
	for( i=0; i<pra; i++ )
	{
	   c1 = str[i];
       if ( opt != i )
	   {
		   if (c1 >= 0x10)	
		   {
			    for (k =0; k <2; k++)
				{
				     for(j=0;j<8;j++)
				     {
				          LCD_C_D(0,ASC_MSK[(c1-0x20)*16 +j+(k*8)]);
				     }
					 LCD_C_D(1,uRow+1);
                     LCD_C_D(1,uCol);
			    }
		   }
	   }
	   else
	  {
		   if (c1 >= 0x10)	
		   {
			   for (k =0; k <2; k++)
			   {
				   for(j=0;j<8;j++)
				   {
				        LCD_C_D(0,~(ASC_MSK[(c1-0x20)*16 +j+(k*8)]));
				   }
				   LCD_C_D(1,uRow+1);
                   LCD_C_D(1,uCol);
			   }
		   }
	   }
	   if ( (i+1) ==att )
	   {
	   		uCol +=8;
			if ( ((uCol-0x40) >=64) && (n==0) )
	   		{
		    	n =1;
		    	uCol -=0x40;
		    	l_cs = 0x02;
	   		}
			LCD_C_D(1,uRow);
            LCD_C_D(1,uCol);
	   		c1 = 0x2e;
			for (k =0; k <2; k++)
			{
				 for(j=0;j<8;j++)
				 {
				     LCD_C_D(0,(ASC_MSK[(c1-0x20)*16 +j+(k*8)]));
				 }
				 LCD_C_D(1,uRow+1);
                 LCD_C_D(1,uCol);
			}
	   }
	   uCol +=8;
	   if ( ((uCol-0x40) >=64) && (n==0) )
	   {
		    n =1;
		    uCol -=0x40;
		    l_cs = 0x02;
	   }
	   LCD_C_D(1,uRow);
       LCD_C_D(1,uCol);
    }
}


//****************************************液晶显示RAM-反显****************
void DrawString_F(uchar x_add,uchar y_add,uchar *str,uchar pra ,uchar att)
{
	uchar i=0,c1,k;
	uchar n =0;
	uchar uRow,uCol;
    uchar j;

	uRow = x_add*2+0xb8;
 	uCol = (y_add < 4 ? y_add : y_add-4)*16+0x40;
    l_cs =  (uchar)(y_add < 4)|(1<<(uchar)(!(y_add < 4)));
	LCD_C_D(1,uRow);
    LCD_C_D(1,uCol);
	for( i=0; i<pra; i++ )
	{
	   	c1 = str[i];
		if (c1 >= 0x10)	
		{
			for (k =0; k <2; k++)
			{
				for(j=0;j<8;j++)
				{
				    LCD_C_D(0,~ASC_MSK[(c1-0x20)*16 +j+(k*8)]);
				}
				LCD_C_D(1,uRow+1);
                LCD_C_D(1,uCol);
			}
		}
		if ( (i+1) ==att )
	    {
	   		uCol +=8;
			if ( ((uCol-0x40) >=64) && (n==0) )
	    	{

⌨️ 快捷键说明

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