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

📄 lcd.c

📁 记录仪
💻 C
📖 第 1 页 / 共 3 页
字号:
#include "lcd.h"

sbit P10=P1^0;
sbit P11=P1^1;


 //主程序里定义的放每秒钟速度,15分钟平均速度的地方
extern uchar xdata speed_1sec,ctr_beiguang;
extern uchar xdata KAIGUANLIANG;
//extern bit  NUM_OVERTIME;
extern bit  FLAG_LEGAL;
extern bit  FL_OVERTIME;
extern bit  FL1_OVERSPEED;
extern bit  FL_RUN;
extern bit  FL_RDSEC;
extern bit  FL_ZJRAM;
extern bit  FL_ZJCLK;
extern bit  FL_ZJIO;
extern unsigned long xdata temp_long,LICHEN_ALL;
extern unsigned char xdata new_speed_15min[15][21];
extern unsigned char xdata id1[11][25];
extern unsigned char xdata cur_id[25];
extern unsigned char xdata tzxs[3];
extern unsigned char xdata stop_3day[11];         //存放停车当天以及前两天日期的数组
extern unsigned char xdata num_ovrec,index_threeday;                 //存放数组当前的行
extern unsigned char xdata overtime_rec[21][28];
extern unsigned char xdata ID_product[20];         //产品ID号
extern unsigned char GetKey(void);
extern unsigned char WaitKey(unsigned int count);
extern void Clr_WDog();
extern void Delay(unsigned int count);
extern void Get_1s_speed();

//usb显示;
void wlcd16x8_usb1();                  //u
void wlcd16x8_usb2();                  //s
void wlcd16x8_usb3();                  //b

void wlcd16x16_usb4();                 //通
void wlcd16x16_usb5();                 //信
void wlcd16x16_usb6();                 //中

void intlcd(void)
{
   Clr_WDog();       //清w-dog
   DS1A=0XAE;
   DS2A=0XAE;
   DS1A=0XC0;
   DS2A=0XC0;
   DS1A=0XB8;
   DS2A=0XB8;
   DS1A=0X00;
   DS2A=0X00;
   DS1A=0XA0;
   DS2A=0XA0;
   DS1A=0XA4;
   DS2A=0XA4;
   DS1A=0XA9;
   DS2A=0XA9;
   DS1A=0XEE;
   DS2A=0XEE;
   DS1A=0XAF;
   DS2A=0XAF;
}
void clrlcd(void)
{
   uchar xdata i1,j1;
   Clr_WDog();       //清w-dog
   intlcd();     //初始化显示屏
   for(i1=0;i1<4;i1++)
   {
    DS1A=0xC0;
    DS2A=0XC0;
    DS1A=0xB8+i1;
    DS2A=0XB8+i1;
    DS1A=0x00;
    DS2A=0X00;
    for(j1=0;j1<61;j1++)
    {
      Clr_WDog();       //清w-dog
      DS1B=0X00;
      DS2B=0X00;
    }
    Clr_WDog();       //清w-dog
   }
}


/*显示8x8点阵
坐标设定 :a:行(页):(0-3);b:列:0-121, c=1反显,c=0不反显*/

void wlcd8x8(uchar a,uchar b,uchar c,uchar *d)
{
 uchar xdata loop;
 Clr_WDog();       //清w-dog

 DS1A=0XB8+a;
 DS2A=0xB8+a;
 for(loop=0;loop<8;loop++)
 {
   Clr_WDog();       //清w-dog
   if (loop+b<61)
   {
     DS1A=loop+b;
     DS1B=d[loop]^(c*0xff);
   }
   else
   {
     DS2A=loop+b-61;
     DS2B=d[loop]^(c*0xff);
   }
 }
}


/*显示16x8点阵
坐标设定 :a:行(页):(0-3);b:列:0-121,c=1反显,c=0不反显*/

void wlcd16x8(uchar a,uchar b,uchar c,uchar *d)
{
 uchar xdata loop;
 Clr_WDog();       //清w-dog

 DS1A=0XB8+a;
 DS2A=0xB8+a;
 for(loop=0;loop<8;loop++)
 {
   Clr_WDog();       //清w-dog
   if(loop+b<61)
   {
     DS1A=loop+b;
     DS1B=d[loop]^(c*0xff);
   }
   else
   {
     DS2A=loop+b-61;
     DS2B=d[loop]^(c*0xff);
   }
 }
 DS1A=0XB8+a+1;
 DS2A=0xB8+a+1;
 for(loop=0;loop<8;loop++)
 {
   Clr_WDog();       //清w-dog
   if(loop+b<61)
   {
     DS1A=loop+b;
     DS1B=d[loop+8]^(c*0xff);
   }
   else
   {
     DS2A=loop+b-61;
     DS2B=d[loop+8]^(c*0xff);
   }
 }
}
//usb显示;

void wlcd16x8_usb1()
{
 uchar xdata loop;
 Clr_WDog();       //清w-dog

 DS1A=0XB8+1;
 DS2A=0xB8+1;
 for(loop=0;loop<8;loop++)
 {

     DS1A=loop+17;
     DS1B=ch16x8_15[loop];//^(c*0xff);
     Clr_WDog();       //清w-dog

 }
 DS1A=0XB8+1+1;
 DS2A=0xB8+1+1;
 for(loop=0;loop<8;loop++)
 {
     Clr_WDog();       //清w-dog
     DS1A=loop+17;
     DS1B=ch16x8_15[loop+8];//^(c*0xff);


 }
}


void wlcd16x8_usb2()
{
 uchar xdata loop;
 Clr_WDog();       //清w-dog

 DS1A=0XB8+1;
 DS2A=0xB8+1;
 for(loop=0;loop<8;loop++)
 {
     Clr_WDog();       //清w-dog
     DS1A=loop+25;
     DS1B=ch16x8_16[loop];//^(c*0xff);


 }
 DS1A=0XB8+1+1;
 DS2A=0xB8+1+1;
 for(loop=0;loop<8;loop++)
 {

     DS1A=loop+25;
     DS1B=ch16x8_16[loop+8];//^(c*0xff);
     Clr_WDog();       //清w-dog

 }
}


void wlcd16x8_usb3()
{
 uchar xdata loop;
 Clr_WDog();       //清w-dog

 DS1A=0XB8+1;
 DS2A=0xB8+1;
 for(loop=0;loop<8;loop++)
 {
     Clr_WDog();       //清w-dog
     DS1A=loop+33;
     DS1B=ch16x8_17[loop];//^(c*0xff);


 }
 DS1A=0XB8+1+1;
 DS2A=0xB8+1+1;
 for(loop=0;loop<8;loop++)
 {

     DS1A=loop+33;
     DS1B=ch16x8_17[loop+8];//^(c*0xff);
     Clr_WDog();       //清w-dog

 }
}


/*显示一个16x16的汉字(点阵)
坐标设定 :a:行(页):(0-3);b:列:0-121,c=1反显,c=0不反显*/

void wlcd16x16(uchar a,uchar b,uchar c,uchar *d)
{
 uchar xdata loop;
 Clr_WDog();       //清w-dog

 DS1A=0XB8+a;
 DS2A=0xB8+a;
 for(loop=0;loop<16;loop++)
 {
   Clr_WDog();       //清w-dog
   if(loop+b<61)
   {
     DS1A=loop+b;
     DS1B=d[loop]^(c*0xff);
   }
   else
   {
     DS2A=loop+b-61;
     DS2B=d[loop]^(c*0xff);
   }
 }
 DS1A=0XB8+a+1;
 DS2A=0xB8+a+1;
 for(loop=0;loop<16;loop++)
 {
   Clr_WDog();       //清w-dog
   if(loop+b<61)
   {
     DS1A=loop+b;
     DS1B=d[loop+16]^(c*0xff);
   }
   else
   {
     DS2A=loop+b-61;
     DS2B=d[loop+16]^(c*0xff);
   }
 }
}




//usb通信

//*********************通***************************
void wlcd16x16_usb4()
{
 uchar xdata loop;
 Clr_WDog();       //清w-dog

 DS1A=0XB8+1;
 DS2A=0xB8+1;
 for(loop=0;loop<16;loop++)
 {
     Clr_WDog();       //清w-dog
     DS1A=loop+41;
     DS1B=ch16x16_12[loop];//^(c*0xff);

 }
 DS1A=0XB8+1+1;
 DS2A=0xB8+1+1;
 for(loop=0;loop<16;loop++)
 {
     Clr_WDog();       //清w-dog
     DS1A=loop+41;
     DS1B=ch16x16_12[loop+16];//^(c*0xff);

 }
}

//************************************信************************
void wlcd16x16_usb5()
{
 uchar xdata loop;
 Clr_WDog();       //清w-dog

 DS1A=0XB8+1;
 DS2A=0xB8+1;
 for(loop=0;loop<16;loop++)
 {
   Clr_WDog();       //清w-dog
   if(loop+57<61)
   {
     DS1A=loop+57;
     DS1B=ch16x16_13[loop];//^(c*0xff);
   }
   else
   {
     DS2A=loop+57-61;
     DS2B=ch16x16_13[loop];//(c*0xff);
   }
 }
 DS1A=0XB8+2;
 DS2A=0xB8+2;
 for(loop=0;loop<16;loop++)
 {
   Clr_WDog();       //清w-dog
   if(loop+57<61)
   {
     DS1A=loop+57;
     DS1B=ch16x16_13[loop+16];//^(c*0xff);
   }
   else
   {
     DS2A=loop+57-61;
     DS2B=ch16x16_13[loop+16];//^(c*0xff);
   }
 }
}


//*****************************中**************************
void wlcd16x16_usb6()
{
 uchar xdata loop;
 Clr_WDog();       //清w-dog

 DS1A=0XB8+1;
 DS2A=0xB8+1;
 for(loop=0;loop<16;loop++)
 {
   Clr_WDog();       //清w-dog
   if(loop+73<61)
   {
     DS1A=loop+73;
     DS1B=ch16x16_43[loop];//^(c*0xff);
   }
   else
   {
     DS2A=loop+73-61;
     DS2B=ch16x16_43[loop];//(c*0xff);
   }
 }
 DS1A=0XB8+2;
 DS2A=0xB8+2;
 for(loop=0;loop<16;loop++)
 {
   Clr_WDog();       //清w-dog
   if(loop+73<61)
   {
     DS1A=loop+73;
     DS1B=ch16x16_43[loop+16];//^(c*0xff);
   }
   else
   {
     DS2A=loop+73-61;
     DS2B=ch16x16_43[loop+16];//^(c*0xff);
   }
 }
}





unsigned char *ch8x8(int d)
{
        unsigned char *p;
        Clr_WDog();       //清w-dog
        switch(d)
        {
                case 0: p=ch8x8_0;break;
                case 1: p=ch8x8_1;break;
                case 2: p=ch8x8_2;break;
                case 3: p=ch8x8_3;break;
                case 4: p=ch8x8_4;break;
                case 5: p=ch8x8_5;break;
                case 6: p=ch8x8_6;break;
                case 7: p=ch8x8_7;break;
                case 8: p=ch8x8_8;break;
                case 9: p=ch8x8_9;break;
                default: break;
         }
         return(p);
}


unsigned char *ch16x8(int d)
{
        unsigned char *p;
        Clr_WDog();       //清w-dog
        switch(d)
        {
                case 0: p=ch16x8_0;break;
                case 1: p=ch16x8_1;break;
                case 2: p=ch16x8_2;break;
                case 3: p=ch16x8_3;break;
                case 4: p=ch16x8_4;break;
                case 5: p=ch16x8_5;break;
                case 6: p=ch16x8_6;break;
                case 7: p=ch16x8_7;break;
                case 8: p=ch16x8_8;break;
                case 9: p=ch16x8_9;break;
                default: break;
         }
         return(p);
}
/*主菜单显示函数*/
void Displaymenu(int d)
{
        clrlcd();
        wlcd16x16(0,5,0,ch16x16_10);wlcd16x16(0,21,0,ch16x16_11);
        wlcd16x16(0,45,0,ch16x16_12);wlcd16x16(0,61,0,ch16x16_13);
        wlcd16x16(0,85,0,ch16x16_14);wlcd16x16(0,101,0,ch16x16_15);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -