📄 main.c
字号:
switch (Receive0[2])
{ case 0x01: //驾驶员信息
Get_driver();
send_data();
break;
case 0x02: //实时时钟
Get_time();
send_data();
break;
case 0x03: //360H行驶累计里程数据
TLL=Get_360Hday_M();
Send0[0]=15;
Send0[1]=0x55;
Send0[2]=0x7a;
Send0[3]=0x03;
Send0[4]=0x00;
Send0[5]=0x08;
Send0[6]=0x00;
p1=com1subbuf+8;
for(i=0;i<8;i++)
{ Send0[7+i]=*p1;
p1++;}
i1=0x55;
for(i=2;i<15;i++)
i1^=Send0[i];
Send0[15]=i1;
send_data();
break;
case 0x04: //特征系数
Get_tzxs();
send_data();
break;
case 0x05: //360H行驶速度数据
break;
case 0x06: //车辆信息
Get_qiche();
send_data();
break;
case 0x07: //事故疑点数据
FM_CS;
j=Get_stop();
if(j==0)
{send_no_data(0x07);
send_data();
}
else
{ j=j*366+7;
Receive0_lp=0;
Staut0&=~(1<<0);
Status2=Status1;
Status1=130;
}
break;
case 0x08: //2天行驶累计里程数据
TLL=Get_2day_M();
Send0[0]=15;
Send0[1]=0x55;
Send0[2]=0x7a;
Send0[3]=0x08;
Send0[4]=0x00;
Send0[5]=0x08;
Send0[6]=0x00;
p1=com1subbuf;
for(i=0;i<8;i++)
{ Send0[7+i]=*p1;
p1++;}
i1=0x55;
for(i=2;i<15;i++)
i1^=Send0[i];
Send0[15]=i1;
send_data();
break;
case 0x09: //2天行驶速度数据
i=0;
test();
UCSR0B =0X90;
Receive0_lp=0;
Staut0&=~(1<<0);
Staut0&=~(1<<3);
i=0;
break;
case 0x11: //疲劳驾驶数据
FM_CS;
j=Get_pilao_2day();
if(j==0)
{send_no_data(0x11);
send_data();
}
else
{ j=j*10+7;
Receive0_lp=0;
Staut0&=~(1<<0);
Status2=Status1;
Status1=130;
}
break;
case 0x81: //设置驾驶员信息
FM_CS;
p1=Driver_now__Buf+1;
for(i=6;i<27;i++)
{*p1=Receive0[i];
p1++;
}
i=0;
break;
case 0x82: //设置车辆信息
FM_CS;
p1=Qiche_Buf;
for(i=6;i<47;i++)
{*p1=Receive0[i];
p1++;
}
break;
case 0xc2: //设置实时时钟
CLOCK_RTIME();
FM_CS;
for(i=0;i<8;i++)
{SYS_S_Time[i]=SYS_Time[i];
// p1++;
}
for(i=6;i<9;i++)
{SYS_S_Time[13-i]=Receive0[i];
// p1++;
}
for(i=9;i<12;i++)
{SYS_S_Time[12-i]=Receive0[i];
// p1++;
}
SET_Time();
break;
case 0xc3: //设置特征系数
FM_CS;
p1=Tzx_Buf;
for(i=6;i<9;i++)
{*p1 = Receive0[i];
p1++;
}
break;
case 0xd0:
FM_CS;
speed_warm_up = Receive0[6];
break;
default: //无此命令
UCSR0B =0X48;
Send0[0]=0x05;
Send0[1]=0x55;
Send0[2]=0x7a;
Send0[3]=0xfa;
Send0[4]=0x00;
Send0[5]=0xd5;
Send0_lp=2;
UDR0=Send0[1];
break;
}
}
}
else //显示部分
{switch (Status1)
{ case 0: //显示即时数据
if(key_v==K_Menu)
{ Status1=10;
Menu_B=0;
}
else
Status1=1;
key_v=0;
break;
case 1:Dis_Pin=20; //显示车速、时间
// speed=100;
speed_dot=0;
Xs();
Status1=2;
key_jsq=0;
break;
case 2:
if(key_jsq>30)
{Status1=0;
key_jsq=0;}
else
{ DelayMs(10);
Status1=2;
key_jsq++;
}
break;
case 10: //显示菜单
Dis_Pin=Menu_B;
Xs();
key_jsq=0;
old_key=0;
Status1=11;
break;
case 11: //按键判断
if(key_v==old_key)
{ key_jsq++;
if(key_jsq>=100)
{Status1=12;
key_jsq=0;
old_key=0;}
}
else
{old_key=key_v;
key_jsq=0;}
DelayMs(10);
break;
case 12: //处理键
if(key_v==K_down)
{if(Menu_B==8)
Menu_B=0;
else
Menu_B++;
Status1=10;
}
else if(key_v==K_up)
{if(Menu_B==0)
Menu_B=8;
else
Menu_B--;
Status1=10;
}
else if(key_v==K_esc)
Status1=0;
else if(key_v==K_ok)
Status1=(Menu_B+2)*10;
key_v=0;
break;
case 20: //平均速度查询
Get_15min();
Menu_B=0;
Status1=21;
break;
case 21: //显示当前平均速度
Dis_Pin=Menu_B+30;
Xs();
key_jsq=0;
old_key=0;
Status1=22;
break;
case 22: //按键判断
if(key_v==old_key)
{ key_jsq++;
if(key_jsq>=100)
{Status1=23;
key_jsq=0;
old_key=0;}
}
else
{old_key=key_v;
key_jsq=0;}
DelayMs(10);
break;
case 23: //按键判断
if(key_v==K_down)
{if(Menu_B==3)
Menu_B=0;
else
Menu_B++;
Status1=21;
}
else if(key_v==K_up)
{if(Menu_B==0)
Menu_B=3;
else
Menu_B--;
Status1=21;
}
else if(key_v==K_esc)
{ Status1=10;
Menu_B=0;}
key_v=0;
break;
case 30: //读取疲劳驾驶数据
Menu_B=0;
AX=Get_pilao_2day(); //AX=;
Status1=31;
break;
case 31:
if(AX==0)
Menu_B=0; //显示无疲劳驾驶
else
Menu_B=1;
Status1=32; //有疲劳驾驶数据
break;
case 32: //显示当前疲劳驾驶数据
Dis_Pin=Menu_B+34;//20;
// speed=;
Xs();
key_jsq=0;
old_key=0;
Status1=33;
break;
case 33: //按键判断
if(key_v==old_key)
{ key_jsq++;
if(key_jsq>=100)
{Status1=34;
key_jsq=0;
old_key=0;}
}
else
{old_key=key_v;
key_jsq=0;}
DelayMs(10);
break;
case 34: //按键判断
if((key_v==K_down)&&(Menu_B!=0))
{if((Menu_B*2)<AX)
Menu_B++;
else
Menu_B=1;
Status1=32;
}
else if((key_v==K_up)&&(Menu_B!=0))
{ if(Menu_B>1)
Menu_B--;
Status1=32;
}
else if(key_v==K_esc)
{ Status1=10;
Menu_B=0;}
key_v=0;
break;
case 40: //显示打印
Dis_Pin=43;
Xs();
Status1=204;
break;
case 204: //打印
SendToPrinter(10); //走纸一行
SendToPrinter(10);
j1=Get_pilao();
if(j1==0)
{ for(i=0;i<6;i++)
{i1=pgm_read_byte(&tired_no_head[i]);
SendToPrinter(i1);
}
SendToPrinter(10);
Status2=41;
Status1=200;
j=0;
}
else
{Status1=205;
}
break;
case 205:
if(j1==0)
Status1=41;
else
{ for(i=0;i<8;i++)
{i1=pgm_read_byte(&tired_e_head[i]);
SendToPrinter(i1);
}
SendToPrinter(0x32);
SendToPrinter(0x30);
FM_CS;
p1=com1subbuf+10*j1-4;
for(i=0;i<3;i++)
{i1=(uchar)((*p1/16)+0x30);
SendToPrinter(i1);
i1=(uchar)((*p1%16)+0x30);
SendToPrinter(i1);
p1++;
if(i<2)
SendToPrinter(0x2f);
}
SendToPrinter(0x20);
for(i=3;i<5;i++)
{i1=(uchar)((*p1/16)+0x30);
SendToPrinter(i1);
i1=(uchar)((*p1%16)+0x30);
p1++;
SendToPrinter(i1);
if(i<4)
SendToPrinter(0x3a);
}
SendToPrinter(10);
Status2=206;
Status1=200;
j=0;
}
break;
case 206:
for(i=0;i<8;i++)
{i1=pgm_read_byte(&tired_s_head[i]);
SendToPrinter(i1);
}
SendToPrinter(0x32);
SendToPrinter(0x30);
FM_CS;
p1=com1subbuf+10*j1-9;
for(i=0;i<3;i++)
{i1=(uchar)((*p1/16)+0x30);
SendToPrinter(i1);
i1=(uchar)((*p1%16)+0x30);
SendToPrinter(i1);
p1++;
if(i<2)
SendToPrinter(0x2f);
}
SendToPrinter(0x20);
for(i=3;i<5;i++)
{i1=(uchar)((*p1/16)+0x30);
SendToPrinter(i1);
i1=(uchar)((*p1%16)+0x30);
p1++;
SendToPrinter(i1);
if(i<4)
SendToPrinter(0x3a);
}
SendToPrinter(10);
Status2=207;
Status1=200;
j=0;
break;
case 207:
for(i=0;i<4;i++)
{i1=pgm_read_byte(&tired_l_head[i]);
SendToPrinter(i1);
}
i1=j1/10+0x30;
SendToPrinter(i1);
i1=j1%10+0x30;
SendToPrinter(i1);
j1--;
SendToPrinter(0x3a);
SendToPrinter(10);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -