📄 lcddisplay.h
字号:
//#include<ioset.h>
//#include<GB_ASCII.h>
//#include<fontASCII8x12.h>
//#include<fontASCII8x16.h>
void Address(unsigned char xl,unsigned char yl)
{
uchar i;
i=xl&0x0f;
xl=(xl>>4)+0x10;
Comwrite(0xb0+yl);
Comwrite(xl);
Comwrite(i);
}
void Clear()
{
unsigned char i,j;
for(i=0;i<16;i++)
{
Address(0,i);
for(j=0;j<128;j++)
{ Datawrite(0);Datawrite(0);}
}
}
void disp_ch(unsigned char c,uCol,uPage)
{
unsigned char k,j,ch_w;
unsigned char width,i;
unsigned char len;
len=sizeof(ASC_16)/sizeof(ASC_16[0]);
for(k=0;k<len;k++)
{
if(c == ASC_16[k].Index[0] ) break;
}
if(k<len)
{
if(c=='-'||c==':')
width=ASC_CHR_WIDTH-2;
else if(c=='|')
width=ASC_HZ_WIDTH-ASC_CHR_WIDTH;
else
width=ASC_CHR_WIDTH;
for(i=0;i<2;i++)
{
Address(uCol,uPage);
for(j=0;j<ASC_CHR_WIDTH;j++)
{
ch_w=ASC_16[k].Msk[ASC_CHR_WIDTH*i+j];
if(Fx_flage==0) {Datawrite(ch_w);Datawrite(ch_w); }
else {Datawrite(~ch_w); Datawrite(~ch_w); }
}
uPage++;
}
}
}
void disp_hz(unsigned char *hz,unsigned char uCol,uPage)
{
unsigned char k,j,ch_w;
for(k=0;k<sizeof(GB_16)/sizeof(GB_16[0]);k++)
{
if(hz[0] == GB_16[k].Index[0] && hz[1] == GB_16[k].Index[1])
break;
}
Address(uCol,uPage);
for(j=0;j<ASC_HZ_WIDTH;j++)
{
ch_w=GB_16[k].Msk[j];
if(Fx_flage==0) {Datawrite(ch_w);Datawrite(ch_w); }
else {Datawrite(~ch_w); Datawrite(~ch_w); }
}
Address(uCol,uPage+1);
for(j=0;j<ASC_HZ_WIDTH;j++)
{
ch_w=GB_16[k].Msk[ASC_HZ_WIDTH+j];
if(Fx_flage==0) {Datawrite(ch_w);Datawrite(ch_w); }
else {Datawrite(~ch_w); Datawrite(~ch_w); }
}
}
void disp_str(unsigned char uCol,uPage,unsigned char *p)
{
unsigned char i=0;
while(p[i]>0)
{
if(p[i] < 128)
{
disp_ch(p[i],uCol,uPage);
uCol+=8;
}
else
{
disp_hz(&p[i],uCol,uPage);
uCol+=16;
i++;
}
if(i<16)
i++;
}
}
void Writesecret(uchar col,uchar pag,uchar dat)
{
dat+=48;
disp_ch(dat,col,pag);
}
/*
void setsecret()
{
EA=0;
disp_str(0,0," Enter Password");
Writesecret(32,3,secret[0]);
Writesecret(48,3,secret[1]);
Writesecret(64,3,secret[2]);
Writesecret(80,3,secret[3]);
disp_str(0,3,"<");
disp_str(120,3,">");
disp_str(0,6,"Config");
disp_str(80,6,"Cancel");
EA=1;
}
*/
void Pinch_data_pro(void)
{
unsigned int temp;
float press;
if(14<ad_data<243) //当压力值介于15kpa到115kpa之间时,遵循线性变换
{
int vary=ad_data; //y=(115-15)/(243-13)*X+15kpa
press=((10.0/23.0)*vary)+9.3; //测试时补偿值为9.3
temp=(int)(press*10); //放大10倍,便于后面的计算
press_bai=temp/1000; //取压力值百位
press_shi=(temp%1000)/100; //取压力值十位
press_ge=((temp%1000)%100)/10; //取压力值个位
press_dot=((temp%1000)%100)%10; //取压力值十分位
}
if(press_bai!=0)
Writesecret(32,0,press_bai);
else disp_str(32,0," ");
//Writesecret(32,0,press_bai);
Writesecret(48,0,press_shi);
Writesecret(64,0,press_ge);
Writesecret(80,0,press_dot);
}
void Intial(void)
{
RES=0;
Delay(10);
RES=1;
Delay(50);
/* Comwrite(0xe3);
Comwrite(0xA2);
Comwrite(0xA1);
Comwrite(0xc0);
Comwrite(0x2c);
Comwrite(0x2e);
Comwrite(0x2F);
Comwrite(0x81);
Comwrite(0x20);//T3:30
Comwrite(0x24);//T3:23
Comwrite(0xAF);
Comwrite(0x40);
Delay(10);*/
Comwrite(0x48); //?????
Comwrite(0x80); //1/128duty
Comwrite(0x01); //?
Comwrite(0xA1); //ADC=0,SEG0--SEG127 ???????,??127厖0
Comwrite(0xC8); // SHL=0,COM0--COM127 ???????,??127厖0
Comwrite(0x44); //??COM0
Comwrite(0x00); //START FROM COM0
Comwrite(0xAB); //Oscillator on start
Comwrite(0x67); //5 times boosting ?????,??6?
Comwrite(0x27); //(20~27) ??1+(Rb/Ra)=2.3~7.2
Comwrite(0x81); //SET Electronic volume register
Comwrite(0x3F); //(0~3FH)
Comwrite(0x57); //LCD bias select register 1/12
Comwrite(0x93); // ?
Comwrite(0x2C); // power control
Delay(50);
Comwrite(0x2E); //
Delay(50);
Comwrite(0x2F); //
Delay(50);
Comwrite(0xAF); // Normal display.
Delay(10);
}
//###########################################################//
void Comwrite(uchar com)
{
R_S=0;
W_R=0;
R_D=1;
LCD_DATA=com;
W_R=1;
// R_D=0;
}
//###########################################################//
void Datawrite(uchar dat)
{
// C_S=0;
R_S=1;
W_R=0;
R_D=1;
LCD_DATA=dat;
W_R=1;
// R_D=0;
// C_S=1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -