📄 lcd.c
字号:
#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 + -