📄 display.c
字号:
adp_temp=adp+0x0080+0x0001;
for(j=0;j<8;j++)
{
m_fill(adp_temp,font[num][i++]);
adp_temp+=0x0010;
}
}
adp+=0x0002;
return adp;
}
void cursor_on(unsigned char ypoint,unsigned char xpoint)
{
ypoint=ypoint*2+1;
w_cmd(CUSEL|0x00);
w_data2(xpoint,ypoint);
w_cmd(CUPSET);
w_cmd(TGCON);
}
void cursor_off(void)
{
w_cmd(TGCOFF);
}
void screen_write(unsigned char *screen)//显示
{
unsigned int i;
unsigned char data;
unsigned char data1;
unsigned int adp;
adp=0x0000;
for(i=0;i<MAX_DOT;i++)
{
data=*(screen+i);
if((i%16==0)&&(i!=0))
{
adp+=0x00F0;
}
if(adp>=0x0400)
{
adp=0x0000;
}
if((data>=0x20)&&(data<0x80))
{
adp=half_write(adp,data);
}
else if((data>=0x80)&&(data<=0xff))
{
if((adp+1>=0x0010)&&(adp+1<0x0100))
{
adp=0x0100;
}
else if((adp+1>=0x0110)&&(adp+1<0x0200))
{
adp=0x0200;
}
else if((adp+1>=0x0210)&&(adp+1<0x0300))
{
adp=0x0300;
}
else if((adp+1>=0x0310)&&(adp+1<0x0400))
{
adp=0x0000;
}
data1=*(screen+(++i));
adp=full_write(adp,data,data1);
}
}
}
void init_graph(void)
{
unsigned int counter;
unsigned int adp;
unsigned char data;
adp=0x0000;
set_ADP(adp);
w_cmd(AWRON);
for(counter=0x00;counter<0x0400;counter++)
{
if(counter%16!=0&&counter/16!=47)
{
data=0x00;
auto_fill(data);
}
else
{
if(counter/16==47)
{
data=0xFF;
auto_fill(data);
}
else
{
if(counter%16==0)
{
data=0x20;
auto_fill(data);
}
}
}
}
chk_sta3();
w_cmd(AWROFF);
adp=16*48+1;
data='1';
qtr_write(adp,data);
adp++;
data='=';
qtr_write(adp,data);
adp=16*48+7;
data='A';
qtr_write(adp,data);
adp=16*48+9;
data='2';
qtr_write(adp,data);
adp++;
data='=';
qtr_write(adp,data);
adp=16*48+15;
data='A';
qtr_write(adp,data);
adp=16*56+4;
data='%';
qtr_write(adp,data);
adp=16*56+6;
data='[';
qtr_write(adp,data);
adp=16*56+15;
data=']';
qtr_write(adp,data);
}
void wave_show(unsigned char *graph_head)
{
unsigned char counter;
unsigned char pos;
unsigned char *graph;
unsigned char graph_temp;
unsigned char graph_l;
unsigned char graph_h;
unsigned int adp;
unsigned int i;
unsigned char data;
unsigned int amp;
unsigned char amp_c[5];
graph=graph_head;
init_graph();
for(counter=3;counter<128;counter++)
{
pos=7-(counter%8);
// graph_temp=*graph;
if(counter==3)
{
graph_l=*graph;
graph_h=(*(graph+1)+*(graph))/2;
}
else if(counter==127)
{
graph_l=(*graph+*(graph-1))/2;
graph_h=*graph;
}
else
{
graph_l=(*graph+*(graph-1))/2;
graph_h=(*(graph+1)+*(graph))/2;
}
if(graph_l>graph_h)
{
graph_temp=graph_h;
graph_h=graph_l;
graph_l=graph_temp;
}
for(i=graph_l;i<=graph_h;i++)
{
graph_temp=i;
if(graph_temp>46)
{
graph_temp=46;
}
adp=graph_temp*16+counter/8;
set_ADP(adp);
w_cmd(BITSET|pos);
}
graph++;
}
//第一个拐点
graph_temp=*(graph_head+*(graph++));
if(graph_temp>46)
{
graph_temp=46;
}
if(graph_temp<8)
{
adp=(graph_temp+1)*16+1;
}
else
{
adp=(graph_temp-8)*16+1;
}
data='1';
qtr_write(adp,data);
adp=graph_temp*16;
set_ADP(adp);
w_cmd(AWRON);
data=0x1F;
auto_fill(data);
data=0xFF;
for(i=1;i<16;i++)
{
auto_fill(data);
}
chk_sta3();
w_cmd(AWROFF);
amp=(unsigned int)*(graph++);
amp|=(unsigned int)*(graph++)<<8;
tobcd(amp,amp_c);
adp=16*48+3;
for(i=0;i<4;i++)
{
data=amp_c[i+1];
adp=qtr_write(adp,data);
}
//第二个拐点
graph_temp=*(graph_head+*(graph++));
if(graph_temp>46)
{
graph_temp=46;
}
if(graph_temp<8)
{
adp=(graph_temp+1)*16+2;
}
else
{
adp=(graph_temp-8)*16+2;
}
data='2';
qtr_write(adp,data);
adp=graph_temp*16;
set_ADP(adp);
w_cmd(AWRON);
data=0x1F;
auto_fill(data);
data=0xFF;
for(i=1;i<16;i++)
{
auto_fill(data);
}
chk_sta3();
w_cmd(AWROFF);
amp=(unsigned int)*(graph++);
amp|=(unsigned int)*(graph++)<<8;
tobcd(amp,amp_c);
adp=16*48+11;
for(i=0;i<4;i++)
{
data=amp_c[i+1];
adp=qtr_write(adp,data);
}
//第三个拐点
// graph_temp=*(graph_head+*(graph++));
// if(graph_temp>46)
// {
// graph_temp=46;
// }
// if(graph_temp<8)
// {
// adp=(graph_temp+1)*16+15;
// }
// else
// {
// adp=(graph_temp-8)*16+15;
// }
// data='3';
// qtr_write(adp,data);
//
// adp=graph_temp*16;
// set_ADP(adp);
//
// w_cmd(AWRON);
//
// data=0x1F;
// auto_fill(data);
//
// data=0xFF;
// for(i=1;i<16;i++)
// {
// auto_fill(data);
// }
// chk_sta3();
// w_cmd(AWROFF);
graph++;
amp=(unsigned int)*(graph++);
amp|=(unsigned int)*(graph++)<<8;
tobcd(amp,amp_c);
adp=16*56+1;
for(i=0;i<3;i++)
{
data=amp_c[i];
adp=qtr_write(adp,data);
}
//井号
adp=56*16+7;
for(i=0;i<8;i++)
{
data=*(graph++);
adp=qtr_write(adp,data);
}
}
void init_LCD(void)
{
unsigned int counter;
unsigned char data;
unsigned int i,j,temp;
unsigned char data_l;
unsigned char data_h;
unsigned int adp;
PORTE&=~(1<<LCD_RESET);
for(i=0;i<20000;i++);
PORTE|=1<<LCD_RESET;
PORTE&=~(1<<LCD_FS);
//set g home address
data_l=0x00;
data_h=0x00;
w_data2(data_l,data_h);
w_cmd(GRHOME);
//set text home address
data_l=0x00;
data_h=0x04;
w_data2(data_l,data_h);
w_cmd(TXHOME);
//set text area
data_l=0x10;
data_h=0x00;
w_data2(data_l,data_h);
w_cmd(TXAREA);
//set g area
data_l=0x10;
data_h=0x00;
w_data2(data_l,data_h);
w_cmd(GRAREA);
//set mode
w_cmd(INROM);
//clear display
adp=0x0000;
set_ADP(adp);
w_cmd(AWRON);
for(data=0x00,counter=0x00;counter<0x2000;counter++)
{
auto_fill(data);
}
chk_sta3();
w_cmd(AWROFF);
//set display mode
w_cmd(TGCOFF);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -