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

📄 disp1.c

📁 我在使用的一个1335SED液晶屏程序.
💻 C
📖 第 1 页 / 共 3 页
字号:
}

void hz(WORD addr,WORD i)//显示汉字
{
 BYTE j;
 WC(0X4c);
 i--;
 i*=32;
 for(j=0;j<32;j++)
 {
  WC(0X46);
  WD_WC(LOBYTE(addr));
  WD_WC(HIBYTE(addr));
  WC(0X42);
  WD_WC(dots[i+j]);
  j++;
  WC(0X42);
  WD_WC(dots[i+j]);
  addr+=40;
 }
}
void wordtostr(BYTE *str,DWORD v,WORD base)
{
  BYTE i,j,k,u;
  DWORD buf[7],l;
  v*=((DWORD)base);
  k=u=0;
  l=1;
  for(i=0;i<7;i++)
  {
    buf[6-i]=l;
    l=l*10;
  }
  for(i=0;i<7;i++)
  {
    j=0;
    while(v>=buf[i])
    {
      v-=buf[i];
      j++;
    }
    if(i==4)
    {
      k=1;
      str[u++]=0x2e;
    }
    if(k==0 && j>0)k=0x1;
    if(u>4)	 
	{
	 if(str[0]==0x2e)
	 {str[4]=str[3];str[3]=str[2];str[2]=str[1];str[1]=str[0];str[0]='0';return;} 	 
	 else return;
	}
	if(k)str[u++]=0x30+j;
  }
  if(u>4)
  {
   if(str[0]==0x2e)
   {str[4]=str[3];str[3]=str[2];str[2]=str[1];str[1]=str[0];str[0]='0';return;}  	 
   else return;
  }
  str[u++]=v+0x30;
  if(str[0]==0x2e)
  {str[4]=str[3];str[3]=str[2];str[2]=str[1];str[1]=str[0];str[0]='0';}	 
}

void disp_str(int addr, BYTE str[],BYTE len)
{
  BYTE i;
  WC(0X46);
  WD_WC(LOBYTE(addr));
  WD_WC(HIBYTE(addr));
  WC(0X4c);
  for(i=0;i<len;i++)
  {   
    WC(0X42);
    WD_WC(str[i]);
  }
}

void disp_cstr(int addr, const BYTE str[],BYTE len)
{
  BYTE i;
  WC(0X46);
  WD_WC(LOBYTE(addr));
  WD_WC(HIBYTE(addr));
  WC(0X4c);
  for(i=0;i<len;i++)
  {
    WC(0X42);
    WD_WC(str[i]);
  }
}
void disp1(void)
  {
    BYTE i;
    WORD j;
    clear1();
    clear2();
 
    WC(0X4C);
    WC(0X46);
    WD_WC(0Xf8);
    WD_WC(0x03);
	for(i=0;i<16;i++)
      {
        WC(0X42);
        WD_WC(str1[i]);
      }
 
    WC(0X4C);
    WC(0X46);
    WD_WC(0X20);
    WD_WC(0x04);
    for(i=0;i<16;i++)
      {
        WC(0X42);
        WD_WC(str2[i]);
      }

    for (i=1,j=0x0a0e;i<5;i++,j+=3)
      {
        hz_D(j,i);
      }
 
    for (i=5,j=0x0fa5;i<14;i++,j+=3)
      {
        hz_D(j,i);
      }

    for (i=1,j=0x20b8;i<13;i++,j++,j++)
      {
        hz(j,i);
      }
  }
void disp2(void)
  {
    BYTE i;
    WORD j;
    clear1();
    clear2();
    for (i=13,j=0x055a;i<22;i++,j++,j++)//55a  4ba
        hz(j,i);
    for (i=22,j=0x0911;i<26;i++,j++,j++)//911  871
      	hz(j,i);
    for (i=26,j=0x0cd3;i<28;i++,j++,j++)//cd3  c33
     	hz(j,i);
    for (i=28,j=0x1093;i<30;i++,j++,j++)//1093 ff3
      	hz(j,i);
    for (i=30,j=0x01453;i<32;i++,j++,j++)//1453  13b3
      	hz(j,i);
    for (i=32,j=0x1813;i<34;i++,j++,j++)//1813   1773
      	hz(j,i);
    for (i=34,j=0x1bd3;i<36;i++,j++,j++)//1bd3   1b33
      	hz(j,i);
	for (i=60,j=0x0929;i<63;i++,j++,j++)//929    889
      	hz(j,i);
    for (i=42,j=0x092d;i<44;i++,j++,j++)//92d    88d
     	hz(j,i);
    for (i=26,j=0x0ceb;i<28;i++,j++,j++)//ceb    c4b
      	hz(j,i);
    for (i=42,j=0x0cef;i<44;i++,j++,j++)//cef    c4f
     	hz(j,i);
    for (i=28,j=0x10ab;i<30;i++,j++,j++)//10ab  100b
      	hz(j,i);
    for (i=42,j=0x10af;i<44;i++,j++,j++)//10af  100f
     	hz(j,i);
	for (i=30,j=0x146b;i<32;i++,j++,j++)//146b  13cb
      	hz(j,i);
    for (i=42,j=0x146f;i<44;i++,j++,j++)//146f  13cf
     	hz(j,i);
	for (i=32,j=0x182b;i<34;i++,j++,j++)//182b  178b
      	hz(j,i);
    for (i=42,j=0x182f;i<44;i++,j++,j++)//182f  178f
     	hz(j,i);
	for (i=34,j=0x1beb;i<36;i++,j++,j++)//1beb  1b4b
      	hz(j,i);
    for (i=42,j=0x1bef;i<44;i++,j++,j++)//1bef  1b4f
     	hz(j,i);
	disp_str(0x128,V,1);
	disp_str(0x1a0,D,2);
	disp_str(0x218,L,1);
	disp_str(0x290,kmh,4);
	disp_str(0x308,kmh,4);
  }
void disp_info(void)
  {
    BYTE i;
    WORD j;
	clear3();
	if(Lsign & 0x01)
	  {
	    for(i=1,j=0x0132;i<6;i++)
		  {
		    WC(0X4C);
            WC(0X46);
            WD_WC(LOBYTE(j));
            WD_WC(HIBYTE(j));
		    WC(0X42);
            WD_WC(0xa0);
		    WD_WC(0xa0);
			j+=120;
		  }
	    address+=120;
		if(address>0x312) address=0x0132;
        WC(0X4C);
        WC(0X46);
        WD_WC(LOBYTE(address));
        WD_WC(HIBYTE(address));
		WC(0X42);
        WD_WC(0x7e);
	  }
	if(Lsign & 0x20)
	  {
        for (i=36,j=0x253f;i<40;i++,j++,j++)
      	  hz(j,i);
	  }
	if(Lsign & 0x40)
	  {
        for (i=36,j=0x253f;i<38;i++,j++,j++)
      	  hz(j,i);
		for (i=40,j=0x2543;i<42;i++,j++,j++)
      	  hz(j,i);
	  }
	if(Lsign & 0x80)
	  {
        for (i=42,j=0x253f;i<47;i++,j++,j++)
      	  hz(j,i);
	  }
	if(alarm == 0x0f)
	  {
        for (i=52,j=0x253a;i<57;i++,j++,j++)
      	  hz(j,i);
		for (i=57,j=0x2547;i<61;i++,j++,j++)
      	  hz(j,i);
		hz(0x254f,53);
	  }
	if(alarm == 0xff)
	  {
        for (i=47,j=0x253f;i<49;i++,j++,j++)
      	  hz(j,i);
		for (i=40,j=0x2543;i<42;i++,j++,j++)
      	  hz(j,i);
	  }
  }
void disp_para(void)
  {
    wordtostr(str,999,100);
    if(str[4]==0x2e) {str[4]=0x80;str[5]=' ';}
    else str[5]=0x80;
    disp_str(0x122,str,5);
	
	wordtostr(str,999,100);
    if(str[4]==0x2e) {str[4]=0x80;str[5]=' ';}
    else str[5]=0x80;
    disp_str(0x19a,str,5);
	
	wordtostr(str,999,100);
    if(str[4]==0x2e) {str[4]=0x80;str[5]=' ';}
    else str[5]=0x80;
    disp_str(0x212,str,5);
	
	wordtostr(str,999,100);
    if(str[4]==0x2e) {str[4]=0x80;str[5]=' ';}
    else str[5]=0x80;
    disp_str(0x28a,str,5);
	
	wordtostr(str,999,100);
    if(str[4]==0x2e) {str[4]=0x80;str[5]=' ';}
    else str[5]=0x80;
    disp_str(0x302,str,5);
  }
void main(void)
{
 
 initLCD();
 disp1();
 disp2();
 disp_para();
 Lsign=0x01;
 disp_info();
 Lsign=0x20;
 alarm=0x00;
 disp_info(); 
 Lsign=0x40;
 disp_info();
 Lsign=0x80;
 disp_info();
 Lsign=0x00;
 alarm=0x0f;
 disp_info();
 Lsign=0x01;
 disp_info();
 disp_info();
 disp_info();
 disp_info();
 disp_info();
 disp_info();
 disp_info();
 disp_info();
 disp_info();
 while(1);
}

⌨️ 快捷键说明

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