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

📄 lcd.c

📁 记录仪
💻 C
📖 第 1 页 / 共 3 页
字号:
        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 + -