📄 lcd3.c.bak
字号:
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 + -