📄 lcd.c
字号:
else
{
//先显示“共有n条超时记录”
wlcd16x16(1,8,0,ch16x16_68); /*--共--*/
if(NUM_OVERTIME<10)
{
wlcd16x8(1,24,0,ch16x8(NUM_OVERTIME)); //显示NUM_OVERTIME的值
wlcd16x16(1,32,0,ch16x16_69); /*--条--*/
wlcd16x16(1,48,0,ch16x16_7); /*--超--*/
wlcd16x16(1,64,0,ch16x16_8); /*--时--*/
wlcd16x16(1,80,0,ch16x16_28); /*--记--*/
wlcd16x16(1,96,0,ch16x16_29); /*--录--*/
}
else
{
wlcd16x8(1,24,0,ch16x8(NUM_OVERTIME/10)); //显示NUM_OVERTIME的值
wlcd16x8(1,32,0,ch16x8(NUM_OVERTIME%10));
wlcd16x16(1,40,0,ch16x16_69); /*--条--*/
wlcd16x16(1,56,0,ch16x16_7); /*--超--*/
wlcd16x16(1,72,0,ch16x16_8); /*--时--*/
wlcd16x16(1,88,0,ch16x16_28); /*--记--*/
wlcd16x16(1,102,0,ch16x16_29); /*--录--*/
}
key=WaitKey(150);
if(FL_RUN) return;
if(key==KEY1|key==LKEY1)return;
//然后分帧显示各条超时记录
for(i=1;i<=NUM_OVERTIME;i++)
{
k=e[i-1];
//调用显示超时记录函数
DISPLAY_OVERTIME(i,overtime_rec[k]);
key=WaitKey(300);
if(FL_RUN) return;
if(key==KEY1|key==LKEY1)return;
}
clrlcd();
wlcd16x16(0,29,0,ch16x16_7); /*--超--*/
wlcd16x16(0,45,0,ch16x16_8); /*--时--*/
wlcd16x16(0,61,0,ch16x16_28); /*--记--*/
wlcd16x16(0,77,0,ch16x16_29); /*--录--*/
wlcd16x16(2,29,0,ch16x16_10); /*--显--*/
wlcd16x16(2,45,0,ch16x16_11); /*--示--*/
wlcd16x16(2,61,0,ch16x16_55); /*--完--*/
wlcd16x16(2,77,0,ch16x16_56); /*--毕--*/
}
key=WaitKey(300);
if(FL_RUN) return;
if(key==KEY1|key==LKEY1)return;
//----------------------------------------------------------显示停车时间
if(stop_3day[6]!=0XFF)
{
clrlcd();
wlcd16x16(0,0,0,ch16x16_5); /*--停--*/
wlcd16x16(0,16,0,ch16x16_24); /*--车--*/
wlcd16x16(0,32,0,ch16x16_8); /*--时--*/
wlcd16x16(0,48,0,ch16x16_27); /*--间--*/
wlcd16x8(0,64,0,ch16x8_14); /*--:--*/
wlcd8x8(3,0,0,ch8x8_2); /*--2--*/
wlcd8x8(3,8,0,ch8x8_0); /*--0--*/
wlcd8x8(3,32,0,ch8x8_21); /*--/--*/
wlcd8x8(3,56,0,ch8x8_21); /*--/--*/
wlcd8x8(3,98,0,ch8x8_10); /*--:--*/
for(i=0;i<3;i++)
{
Clr_WDog(); //清w-dog
a[i]=stop_3day[6+i]; //停车时间(年月日)时分)依次保存于数组a[]
}
for(i=0;i<2;i++)
{
Clr_WDog(); //清w-dog
b[i]=stop_3day[9+i]; //停车时间(时分)依次保存于数组b[]
}
//把读到的BCD码的时间转换成一个一个字符
for(i=0;i<3;i++)
{
Clr_WDog(); //清w-dog
a1=a[i]&0x0f; //写年、月、日
a[i]=a[i]>>4;
b1=a[i]&0x0f;
wlcd8x8(3,16+24*i,0,ch8x8(b1));
wlcd8x8(3,24*(i+1),0,ch8x8(a1));
}
for(i=0;i<2;i++)
{
Clr_WDog(); //清w-dog
a1=b[i]&0x0f; //写时
b[i]=b[i]>>4;
b1=b[i]&0x0f;
wlcd8x8(3,82+24*i,0,ch8x8(b1));
wlcd8x8(3,90+24*i,0,ch8x8(a1));
}
key=WaitKey(300);
if(FL_RUN) return;
if(key==KEY1|key==LKEY1)return;
}
//---------------------------------------------显示停车前15分钟内车速
temp=0;
for(i=0;i<15;i++)
{
Clr_WDog(); //清w-dog
if(new_speed_15min[i][3]!=0XFF)
{
e[temp]=i; //将该下标存入数组e[]
temp++;
}
}
if(temp==0) //如果没有分钟数据
{
clrlcd();
wlcd16x16(1,13,0,ch16x16_53); /*--没--*/
wlcd16x16(1,29,0,ch16x16_54); /*--有--*/
wlcd16x16(1,45,0,ch16x16_9); /*--速--*/
wlcd16x16(1,61,0,ch16x16_71); /*--度--*/
wlcd16x16(1,77,0,ch16x16_28); /*--记--*/
wlcd16x16(1,93,0,ch16x16_29); /*--录--*/
}
else
{
//先在第1帧第1行显示“停车前15分钟”,第2行显示“汽车速度”
clrlcd();
wlcd16x16(0,8,0,ch16x16_5); /*--停--*/
wlcd16x16(0,24,0,ch16x16_24); /*--车--*/
wlcd16x16(0,40,0,ch16x16_70); /*--前--*/
wlcd16x8(0,56,0,ch16x8_1); /*--1--*/
wlcd16x8(0,64,0,ch16x8_5); /*--5--*/
wlcd16x16(0,72,0,ch16x16_22); /*--分--*/
wlcd16x16(0,88,0,ch16x16_23); /*--钟--*/
wlcd16x16(0,104,0,ch16x16_52); /*--内--*/
wlcd16x16(2,32,0,ch16x16_73); /*--平--*/
wlcd16x16(2,48,0,ch16x16_74); /*--均--*/
wlcd16x16(2,64,0,ch16x16_9); /*--速--*/
wlcd16x16(2,80,0,ch16x16_71); /*--度--*/
key=WaitKey(150);
if(FL_RUN) return;
//一共有temp条速度记录
for(i=0;i<temp;i++)
{
Clr_WDog(); //清w-dog
j=e[i]; //数组下标
for(k=0;k<3;k++)
{
Clr_WDog(); //清w-dog
a[k]=new_speed_15min[j][k];
} //将时间和速度赋给a[]
//判断是否是当前驾驶员
m=0;
for(l=0;l<18;l++)
{
Clr_WDog(); //清w-dog
if(cur_id[7+l]==new_speed_15min[j][3+l]) m++;
}
if(m!=18) a[2]=0; //如果不是当前驾驶员,速度为0
k=i%4;
if(k==0) clrlcd(); //每显示第4行的开始,清屏1次
a1=a[0]>>4;
b1=a[0]%16;
wlcd8x8(k,0,0,ch8x8(a1));
wlcd8x8(k,8,0,ch8x8(b1));
a1=a[1]>>4;
b1=a[1]%16;
wlcd8x8(k,24,0,ch8x8(a1));
wlcd8x8(k,32,0,ch8x8(b1));
a1=a[2]/100;
a[2]=a[2]%100;
b1=a[2]/10;
c1=a[2]%10;
wlcd8x8(k,58,0,ch8x8(a1));
wlcd8x8(k,66,0,ch8x8(b1));
wlcd8x8(k,74,0,ch8x8(c1));
//再在固定位置显示“:”和“km/h”
wlcd8x8(k,16,0,ch8x8_10); //": "
wlcd8x8(k,90,0,ch8x8_15); //"k"
wlcd8x8(k,98,0,ch8x8_16); //"m"
wlcd8x8(k,106,0,ch8x8_21); //"/"
wlcd8x8(k,114,0,ch8x8_14); //"h"
if(k==3) key=WaitKey(300); //显示满1帧,等待按键
if(key==KEY1|key==LKEY1)return;
if(FL_RUN) return;
}
if((i-1)%4!=3)
{
key=WaitKey(300);
if(key==KEY1|key==LKEY1)return;
if(FL_RUN) return;
}
clrlcd();
wlcd16x16(1,16,0,ch16x16_9); /*--速--*/
wlcd16x16(1,32,0,ch16x16_71); /*--度--*/
wlcd16x16(1,48,0,ch16x16_10); /*--显--*/
wlcd16x16(1,64,0,ch16x16_11); /*--示--*/
wlcd16x16(1,80,0,ch16x16_55); /*--完--*/
wlcd16x16(1,96,0,ch16x16_56); /*--毕--*/
}
key=WaitKey(150); //显示完,等待按键
if(key==KEY1|key==LKEY1)return;
if(FL_RUN) return;
//--------------------------------------------显示车辆特征系数
clrlcd();
wlcd16x16(0,13,0,ch16x16_24);
wlcd16x16(0,29,0,ch16x16_61);
wlcd16x16(0,45,0,ch16x16_57);
wlcd16x16(0,61,0,ch16x16_58);
wlcd16x16(0,77,0,ch16x16_59);
wlcd16x16(0,93,0,ch16x16_60);
temp=tzxs[1];
temp=(temp<<8)+tzxs[2];
if(temp/10000)
{
wlcd16x8(2,9,0,ch16x8(temp/10000));
wlcd16x8(2,17,0,ch16x8((temp%10000)/1000));
wlcd16x8(2,25,0,ch16x8((temp%1000)/100));
wlcd16x8(2,33,0,ch16x8((temp%100)/10));
wlcd16x8(2,41,0,ch16x8(temp%10));
}
else if((temp%10000)/1000)
{
wlcd16x8(2,17,0,ch16x8((temp%10000)/1000));
wlcd16x8(2,25,0,ch16x8((temp%1000)/100));
wlcd16x8(2,33,0,ch16x8((temp%100)/10));
wlcd16x8(2,41,0,ch16x8(temp%10));
}
else if((temp%1000)/100)
{ wlcd16x8(2,25,0,ch16x8((temp%1000)/100));
wlcd16x8(2,33,0,ch16x8((temp%100)/10));
wlcd16x8(2,41,0,ch16x8(temp%10));
}
else if((temp%100)/10)
{
wlcd16x8(2,33,0,ch16x8((temp%100)/10));
wlcd16x8(2,41,0,ch16x8(temp%10));
}
else
{
wlcd16x8(2,41,0,ch16x8(temp%10));
}
wlcd16x8(2,60,0,ch16x8_19);
wlcd16x8(2,68,0,ch16x8_12);
wlcd16x8(2,76,0,ch16x8_10);
wlcd16x8(2,84,0,ch16x8_11);
key=WaitKey(300);
if(FL_RUN) return;
if(key==KEY1|key==LKEY1)return;
//----------------------------------------------显示车辆ID号
clrlcd();
wlcd16x8(0,32,0,ch16x8_20); /*---I---*/
wlcd16x8(0,42,0,ch16x8_21); /*---D---*/
wlcd16x16(0,52,0,ch16x16_67); /*---号---*/
for(i=0;i<10;i++)
{
Clr_WDog(); //清w-dog
a1=ID_product[i]-0x30;
wlcd8x8(2,20+8*i,0,ch8x8(a1));
}
for(i=0;i<10;i++)
{
Clr_WDog(); //清w-dog
a1=ID_product[10+i]-0x30;
wlcd8x8(3,20+8*i,0,ch8x8(a1));
}
key=WaitKey(300);
if(key==KEY1|key==LKEY1)return;
return;
}
/*打印显示函数*/
void Displayprint(int FLAG_PRINT)
{
Clr_WDog(); //清w-dog
clrlcd();
if (FLAG_PRINT)
{
wlcd16x16(1,29,0,ch16x16_39); /*--正---*/
wlcd16x16(1,45,0,ch16x16_49); /*--在---*/
wlcd16x16(1,61,0,ch16x16_14); /*--打--*/
wlcd16x16(1,77,0,ch16x16_15); /*--印--*/
}
else
{
wlcd16x16(1,13,0,ch16x16_14); /*打印机未连接*/
wlcd16x16(1,29,0,ch16x16_15);
wlcd16x16(1,45,0,ch16x16_51);
wlcd16x16(1,61,0,ch16x16_46);
wlcd16x16(1,77,0,ch16x16_47);
wlcd16x16(1,93,0,ch16x16_48);
}
return;
}
/*显示“自检中… */
void Display_zijian()
{
uchar i;
Clr_WDog(); //清w-dog
clrlcd();
wlcd16x16(1,23,0,ch16x16_16); /*--自---*/
wlcd16x16(1,39,0,ch16x16_17); /*--检---*/
wlcd16x16(1,55,0,ch16x16_43); /*--中---*/
for(i=0;i<3;i++)
{
Clr_WDog(); //清w-dog
wlcd8x8(2,71+8*i,0,ch8x8_20); /*-- …… ---*/
}
}
/*自检显示函数*/
void Displaycheck()
{
clrlcd();
if ((FL_ZJRAM==1)&&(FL_ZJCLK==1)&&(FL_ZJIO==1))
{
wlcd16x16(1,23,0,ch16x16_16); /*自检正常*/
//Clr_WDog();
wlcd16x16(1,39,0,ch16x16_17);
//Clr_WDog();
wlcd16x16(1,55,0,ch16x16_39);
//Clr_WDog();
wlcd16x16(1,71,0,ch16x16_40);
// Clr_WDog();
}
else
{
wlcd16x16(0,21,0,ch16x16_16); /*自检不正常*/
wlcd16x16(0,37,0,ch16x16_17);
wlcd16x16(0,53,0,ch16x16_38);
wlcd16x16(0,69,0,ch16x16_39);
wlcd16x16(0,85,0,ch16x16_40);
wlcd16x16(2,5,0,ch16x16_64); /*错误代码:*/
wlcd16x16(2,21,0,ch16x16_65);
wlcd16x16(2,37,0,ch16x16_35);
wlcd16x16(2,53,0,ch16x16_36);
wlcd16x8(2,69,0,ch16x8_14); /*FL_ZJRAM==0,错误代码为1,FL_ZJCLK==0,错误代码为2,FL_ZJIO==0错误代码为3*/
if(FL_ZJRAM==0)
{
wlcd16x8(2,77,0,ch16x8_1);
if((FL_ZJCLK==0)&&(FL_ZJIO==0))
{
wlcd16x8(2,93,0,ch16x8_2);
wlcd16x8(2,109,0,ch16x8_3);
}
else if((FL_ZJCLK==1)&&(FL_ZJIO==0))
wlcd16x8(2,93,0,ch16x8_3);
else if((FL_ZJCLK==0)&&(FL_ZJIO==1))
wlcd16x8(2,93,0,ch16x8_2);
else;
}
else if(FL_ZJCLK==0)
{
wlcd16x8(2,77,0,ch16x8_2);
if(FL_ZJIO==0)
wlcd16x8(2,93,0,ch16x8_3);
else;
}
else
wlcd16x8(2,77,0,ch16x8_3);
/*while(1)
{
Delay(100);
}; */
}
return;
}
/*通信显示函数 i=0,等待,i=1,USB通信,i=2,RS232通信,i=3,通信中断*/
void DisplayCOM(int t)
{
uchar xdata i=0;
clrlcd();
switch(t)
{
case 0: wlcd16x16(1,29,0,ch16x16_41); /*等待......*/
wlcd16x16(1,45,0,ch16x16_42);
for(i=0;i<6;i++)
wlcd8x8(2,61+8*i,0,ch8x8_20);
break;
case 1: wlcd16x8_usb1(); /*USB通信中*/
wlcd16x8_usb2();
wlcd16x8_usb3();
wlcd16x16_usb4();
wlcd16x16_usb5();
wlcd16x16_usb6();
break;
case 2: wlcd16x8(1,17,0,ch16x8_18); /*RS232通信中*/
wlcd16x8(1,25,0,ch16x8_16);
wlcd16x8(1,33,0,ch16x8_2);
wlcd16x8(1,41,0,ch16x8_3);
wlcd16x8(1,49,0,ch16x8_2);
wlcd16x16(1,57,0,ch16x16_12);
wlcd16x16(1,73,0,ch16x16_13);
wlcd16x16(1,89,0,ch16x16_43);
break;
case 3: wlcd16x16(1,29,0,ch16x16_12); /*通信结束*/
wlcd16x16(1,45,0,ch16x16_13);
wlcd16x16(1,61,0,ch16x16_31);
wlcd16x16(1,77,0,ch16x16_32);
break;
default: break;
}
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -