?? lcd3.c.bak
字號(hào):
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慣導(dǎo)信息顯示
void sern(void)
{
part();
sern1();
sern2();
sern3();
sern4();
sern5();
sern6();
sern7();}
//串口發(fā)送數(shù)據(jù)
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,"捷聯(lián)慣導(dǎo)系統(tǒng)");}
//菜單選擇
void menu(void)
{
fnPR1(LC_GRH_STP,0x80,0x07);
dstring(4,6,"1.");
dhz(6,6,"設(shè)定初始值");
dstring(4,7,"2.");
dhz(6,7,"組合模式選擇");
dstring(4,8,"3.");
dhz(6,8,"顯示實(shí)時(shí)導(dǎo)航信息");
}
//模式選擇
void mode(void)
{fnPR1(LC_GRH_STP,0xE0,0x10);
Text_Curser(4,7);
dhz(7,10,"組合模式選擇");
dstring(4,12,"1.I42");
dhz(9,12,"慣導(dǎo)");
dstring(4,13,"2.I42 /GPS");
dhz(9,13,"慣導(dǎo)");
dstring(4,14,"3.I42 /DVL");
dhz(9,14,"慣導(dǎo)");
dstring(4,15,"4.I42 /GPS/DVL");
dhz(9,15,"慣導(dǎo)");
}
//實(shí)時(shí)導(dǎo)航信息
void infor(void)
{ fnPR1(LC_GRH_STP,0x80,0x07);
Text_Curser(6,3);
dhz(7,4,"實(shí)時(shí)導(dǎo)航信息");
dhz(1,5,"經(jīng)度");
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數(shù)據(jù)顯示
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數(shù)據(jù)顯示
void GPS(void)
{fnPR1(LC_GRH_STP,0x40,0x0B);
dstring(8,8,"GPS");
dhz(11,8,"信息顯示");
dhz(1,10,"經(jīng)度");
dstring(5,10,": ~");
dhz(1,11,"緯度");
dstring(5,11,": ~");
serg();
}
//慣導(dǎo)數(shù)據(jù)顯示
void INS(void)
{
fnPR1(LC_GRH_STP,0x80,0x07);
dstring(8,4,"I42");
dhz(11,4,"慣導(dǎo)信息顯示");
dhz(1,5,"經(jīng)度");
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;}}
//按鍵函數(shù)
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++]='.';}
//回車鍵根據(jù)光標(biāo)位置功能不同
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;
}
//主函數(shù)
void main(void)
{
fnLCMInit();
nintser();
welcom();
shortdelay(5000);
menu();
shortdelay(5000);
mode();
shortdelay(5000);
while(1)
key();
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -