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

📄 lcd3.c.bak

📁 带T6963C控制器的LCD的驱动程序和简单的显示测试程序
💻 BAK
📖 第 1 页 / 共 2 页
字号:
   sebuf();}
 }

void sern2(void)
{
uint i;
uchar find=0;
for(i=n;i<f;i++)
{if(rbuf[i]=='w'&&rbuf[i+1]=='d')
  {
  find=1;q=i;
  break;}

}
 if(find==1)
 {
   y=6;x=6;
   sebuf();}
}

void sern3(void)
{
uint i;
uchar find=0;
for(i=n;i<f;i++)
{if(rbuf[i]=='h'&&rbuf[i+1]=='x')
  {
  find=1;q=i;
  break;}

}
 if(find==1)
 {
   y=7;x=6;
   sebuf();}
}

 void sern4(void)
{
uint i;
uchar find=0;
for(i=n;i<f;i++)
{if(rbuf[i]=='h'&&rbuf[i+1]=='y')
  {
  find=1;q=i;
  break;}

}
 if(find==1)
 {
   y=8;x=6;
   sebuf();}
 }

 void sern5(void)
{
uint i;
uchar find=0;
for(i=n;i<f;i++)
{if(rbuf[i]=='z'&&rbuf[i+1]=='y')
   {
  find=1;q=i;
  break;}

}
 if(find==1)
 {
   y=9;x=6;
   sebuf();}
 }

 void sern6(void)
{
uint i;
uchar find=0;
for(i=n;i<f;i++)
{if(rbuf[i]=='V'&&rbuf[i+1]=='e')
  {
  find=1;q=i;
  break;}

}
 if(find==1)
 {
   y=10;x=6;
   sebuf();}
   }

 void sern7(void)
{
uint i;
uchar find=0;
for(i=n;i<f;i++)
{if(rbuf[i]=='V'&&rbuf[i+1]=='n')
  {
  find=1;q=i;
  break;}

}
 if(find==1)
 {
   y=11;x=6;
   sebuf();}
 }
//I42惯导信息显示
void sern(void)
{
  part();
  sern1();
  sern2();
  sern3();
  sern4();
  sern5();
  sern6();
  sern7();}

//串口发送数据
void tserial(void)
{uint i;
 for(i=0;i<88;i++)
 {SBUF=tbuf[i];
 while(TI==0);
    TI=0;

  }
}

//按键扫描 
uchar keyscan(void)
    {
     uchar  readkey,rereadkey;
     uchar  x_temp,y_temp;
     key_flag=0;
	do
	{P1=0x0f; 
     x_temp=P1&0x0f;
     if(x_temp==0x0f) return(0x0f);
     P1=0xf0;
     y_temp=P1&0xf0;
     readkey=x_temp|y_temp;
	 
     shortdelay(500); 
	 P1=0x0f; 
     x_temp=P1&0x0f;
     if(x_temp==0x0f) return(0x0f);
	 P1=0xf0; 
     y_temp=P1&0xf0; 
     rereadkey=x_temp|y_temp;
     
     
      if(readkey==rereadkey)
	  {
       key_flag=1;
 	   shortdelay(500); 
	   return(readkey);}
    } while(1);
 }

//欢迎使用
void welcom(void)
{ 
dhz(5,2,"欢迎使用激光陀螺");
dhz(7,3,"捷联惯导系统");}

//菜单选择
void menu(void)
{
fnPR1(LC_GRH_STP,0x80,0x07); 
dstring(4,6,"1.");
dhz(6,6,"设定初始值");
dstring(4,7,"2.");
dhz(6,7,"组合模式选择");
dstring(4,8,"3.");
dhz(6,8,"显示实时导航信息");
}
 //模式选择
void mode(void)
{fnPR1(LC_GRH_STP,0xE0,0x10); 
Text_Curser(4,7); 
dhz(7,10,"组合模式选择");
dstring(4,12,"1.I42");
dhz(9,12,"惯导");
dstring(4,13,"2.I42    /GPS");
dhz(9,13,"惯导");
dstring(4,14,"3.I42    /DVL");
dhz(9,14,"惯导");
dstring(4,15,"4.I42    /GPS/DVL");
dhz(9,15,"惯导");

}
 //实时导航信息
void infor(void)
{  fnPR1(LC_GRH_STP,0x80,0x07);
   Text_Curser(6,3);
   dhz(7,4,"实时导航信息");
   dhz(1,5,"经度");
   dstring(5,5,":          ~");     //~代替度

   dhz(1,6,"纬度");
   dstring(5,6,":          ~");
   dhz(1,7,"航向");
   dstring(5,7,":          ~");
   dhz(1,8,"横摇");
   dstring(5,8,":          ~");
 
   dhz(1,9,"纵摇");
   dstring(5,9,":          ~");

   dhz(1,10,"东速");
   dstring(5,10,":          m/s");
  
   dhz(1,11,"北速");
   dstring(5,11,":          m/s");
   
}


//DVL数据显示
void DVL(void)
{
 fnPR1(LC_GRH_STP,0x00,0x00);
 dstring(8,2,"DVL");
 dhz(11,2,"信息显示");

 dhz(1,4,"东速");
 dstring(5,4,":          m/s");

 dhz(1,5,"北速");
 dstring(5,5,":          m/s");

 }
//GPS数据显示
void GPS(void)
{fnPR1(LC_GRH_STP,0x40,0x0B);
 dstring(8,8,"GPS");
 dhz(11,8,"信息显示");
 dhz(1,10,"经度");
 dstring(5,10,":          ~");
 dhz(1,11,"纬度");
 dstring(5,11,":          ~");
 serg();
 }
//惯导数据显示
void INS(void)
{
fnPR1(LC_GRH_STP,0x80,0x07);
 dstring(8,4,"I42");
 dhz(11,4,"惯导信息显示");
  dhz(1,5,"经度");
  dstring(5,5,":          ~");
  dhz(1,6,"纬度");
   dstring(5,6,":          ~");
   dhz(1,7,"航向");
   dstring(5,7,":          ~");
   dhz(1,8,"横摇");
   dstring(5,8,":          ~");
   dhz(1,9,"纵摇");
   dstring(5,9,":          ~");
   dhz(1,10,"东速");
   dstring(5,10,":          m/s");
   dhz(1,11,"北速");
   dstring(5,11,":          m/s");
   sern();
}

//输出显示字头连接
void joint(void)
{if(t>87)
t=0;
switch(t)
 {case(0):
  tbuf[t++]='j';
  tbuf[t++]='d';
  break;
  case(12):
  tbuf[t++]='w';
  tbuf[t++]='d';
  break;
  case(24):
  tbuf[t++]='h';
  tbuf[t++]='x';
  break;
  case(36):
  tbuf[t++]='h';
  tbuf[t++]='y';
  break;
  case(48):
  tbuf[t++]='z';
  tbuf[t++]='y'; 
  break;
  case(60):
  tbuf[t++]='V';
  tbuf[t++]='e';
  break;
  case(72):
  tbuf[t++]='V';
  tbuf[t++]='n';
  
  break;
  case(84):
  tbuf[t++]='o';
  tbuf[t++]='v';
  tbuf[t++]='e';
  tbuf[t++]='r';
  
  break;
  default:
  break;}}

  
  //按键函数
void left(void)
{
Text_Curser(a-1,b);
}
void right(void)
{
Text_Curser(a+1,b);
}
void up(void)
{
Text_Curser(a,b+1);
}
void down(void)
{
Text_Curser(a,b-1);
}
void one(void)
{dchar(a,b/2+4,'1');
 a++;
 joint();
 tbuf[t++]='1';
}
void two(void)
{dchar(a,b/2+4,'2');
a++;
joint();
tbuf[t++]='2';}
void three(void)
{dchar(a,b/2+4,'3');
a++;
joint();
tbuf[t++]='3';}
void four(void)
{dchar(a,b/2+4,'4');
a++;
joint();
tbuf[t++]='4';}
void five(void)
{dchar(a,b/2+4,'5');
a++;
joint();
tbuf[t++]='5';}
void six(void)
{dchar(a,b/2+4,'6');
a++;
joint();
tbuf[t++]='6';}
void seven(void)
{dchar(a,b/2+4,'7');
a++;
joint();
tbuf[t++]='7';}
void eight(void)
{dchar(a,b/2+4,'8');
a++;
joint();
tbuf[t++]='8';}
void nine(void)
{dchar(a,b/2+4,'9');
a++;
joint();
tbuf[t++]='9';}
void zero(void)
{dchar(a,b/2+4,'0');
a++;
joint();
tbuf[t++]='0';}
void point(void)
{dchar(a,b/2+4,'.');
a++;
joint();
tbuf[t++]='.';}

//回车键根据光标位置功能不同
void enter(void)
 {uchar t_flag=0;
 unsigned long i; 
   switch(b)
 {
   case 3:
     cls();
	 infor(); 
	 Text_Curser(29,8);	 
	do 
      {
  	   serh();
	  for(i=0;i<50000;i++)     //大概3秒钟一次吧
       key();
	  }
    while(t_flag==0);
    Text_Curser(29,4);   
	break;

    case 4: 
	  cls();
      DVL();
	  serd();
	  Text_Curser(29,5);
	  break;

	 case 5:
     cls();
	 GPS();
	 serg();
	 Text_Curser(29,6);
	 break;
     
	 case 6:
     cls();
     INS();
	 sern();
	 Text_Curser(29,3);
	 ES=1;
     break;
    
	 case 7:
	 SBUF='a';
     while(TI==0);
	 TI=0;
	 cls();
     infor();
	 break;

	 case 8:
	 t_flag=1;
	 ES=0;
	 break;

     case 9:
	 SBUF='b';
     while(TI==0);
	 TI=0;
	 cls();
     infor();
	 break;

     case 10:
	 cls();
     mode();
	 break;
 
     case 11:
	 SBUF='c';
     while(TI==0);
	 TI=0;
	 cls();
     infor();
	 break;

     case 13:
	 SBUF='c';
     while(TI==0);
	 TI=0;
	 cls();
     infor();
	 break;

	 default:
     break;
	 
		    
 }
}

//按键键值
void key(void)
{
  uchar  rk;
   key_flag=0;

   rk=keyscan();
   
   if(key_flag)
      {switch(rk)
        { case 0xEE:
           one();
		   break;

         case 0xED:
           two();		   		   		   		   		   		   		   		   		   		   		   		   		   		   		   		   		   		   		   		   		   		   		   		   		   
		   break;

		 case 0xE7:
           three();
		   break;

		 case 0xEB:
           four();
		   break;

		 case 0xDE:
           five();
		   break;

		 case 0xDD:
           six();
		   break;

		 case 0xD7:
           seven();
		   break;

		 case 0xDB:
           eight();
		   break;

		 case 0xBE:
           nine();
		   break;

		 case 0xBD:
           zero();
		   break;

		 case 0xB7:
           point();
		   break;

		 case 0x7B:
           up();
		   break;

		 case 0x7E:
           left();
		   break;

		 case 0x7D:
           enter();
		   break;

		 case 0x77:
           right();
		   break;

		 case 0xBB:
           down();
		   break;

		 default:
		   break;
	  }}
	  key_flag=0;
	 }

//主函数
void main(void) 
{
fnLCMInit();
nintser();
welcom();
shortdelay(5000);
menu();
shortdelay(5000);
mode();
shortdelay(5000);
while(1)
key();
}

⌨️ 快捷键说明

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