📄 lcd.c
字号:
write_lcd(yy + 0x09);
write_lcd(0x66);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x0A);
write_lcd(0x4C);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x0B);
write_lcd(0x3F);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x0C);
write_lcd(0x0C);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x0D);
write_lcd(0x3E);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x0E);
write_lcd(0x00);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x0F);
write_lcd(0x00);
xx = xx+1;
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy);
write_lcd(0x00);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x01);
write_lcd(0x00);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x02);
write_lcd(0x00);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x03);
write_lcd(0xC0);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x04);
write_lcd(0x00);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x05);
write_lcd(0xC0);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x06);
write_lcd(0x20);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x07);
write_lcd(0x60);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x08);
write_lcd(0x60);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x09);
write_lcd(0x60);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x0A);
write_lcd(0xC0);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x0B);
write_lcd(0x80);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x0C);
write_lcd(0x00);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x0D);
write_lcd(0x00);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x0E);
write_lcd(0x00);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x0F);
write_lcd(0x00);
}
void display_P(uchar xx,uchar yy) //显示斜体的'P'
{
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy);
write_lcd(0x00);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x01);
write_lcd(0x00);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x02);
write_lcd(0x00);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x03);
write_lcd(0x0F);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x04);
write_lcd(0x0C);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x05);
write_lcd(0x0C);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x06);
write_lcd(0x0C);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x07);
write_lcd(0x18);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x08);
write_lcd(0x1F);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x09);
write_lcd(0x18);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x0A);
write_lcd(0x30);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x0B);
write_lcd(0x30);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x0C);
write_lcd(0x30);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x0D);
write_lcd(0xF8);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x0E);
write_lcd(0x00);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x0F);
write_lcd(0x00);
xx = xx+1;
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy);
write_lcd(0x00);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x01);
write_lcd(0x00);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x02);
write_lcd(0x00);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x03);
write_lcd(0xC0);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x04);
write_lcd(0x60);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x05);
write_lcd(0x60);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x06);
write_lcd(0x60);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x07);
write_lcd(0xC0);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x08);
write_lcd(0x80);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x09);
write_lcd(0x00);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x0A);
write_lcd(0x00);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x0B);
write_lcd(0x00);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x0C);
write_lcd(0x00);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x0D);
write_lcd(0x00);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x0E);
write_lcd(0x00);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x0F);
write_lcd(0x00);
}
void display_degree(uchar xx,uchar yy) //显示度数符号
{
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy);
write_lcd(0x60);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x01);
write_lcd(0x90);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x02);
write_lcd(0x90);
write_lcd(0xF3);
write_lcd(xx);
write_lcd(yy + 0x03);
write_lcd(0x60);
}
void interface_menu(void)
{
uchar code *p; //显示"显示主界面"
p = menu1;
if(Line==1)
write_lcd(0xFA);
display_chn(1,1,p,5);
if(Line==1)
write_lcd(0xFA);
p = menu2; //显示"通信方式配置"
if(Line==2)
write_lcd(0xFA);
display_chn(1,3,p,9);
if(Line==2)
write_lcd(0xFA);
p = menu3; //显示"校准"
if(Line==3)
write_lcd(0xFA);
display_chn(1,5,p,2);
if(Line==3)
write_lcd(0xFA);
p = lcd_select;
display_eng(24,0,p,6);
p = lcd_return;
display_eng(24,112,p,6);
write_lcd(0xF9); //上箭头
write_lcd(27);
write_lcd(32);
write_lcd(128);
write_lcd(0xF9); //下箭头
write_lcd(27);
write_lcd(80);
write_lcd(129);
}
void interface_communication(void)
{
uchar code *p;
p = communication1;
display_chn(1,1,p,9);
p = communication2;
if(Line==1)
write_lcd(0xFA);
display_eng(4,48,p,7);
if(Line==1)
write_lcd(0xFA);
p = communication3;
if(Line==2)
write_lcd(0xFA);
display_eng(4,64,p,3);
if(Line==2)
write_lcd(0xFA);
p = communication4;
if(Line==3)
write_lcd(0xFA);
display_eng(4,80,p,3);
if(Line==3)
write_lcd(0xFA);
p = lcd_select;
display_eng(24,0,p,6);
p = lcd_return;
display_eng(24,112,p,6);
write_lcd(0xF9); //上箭头
write_lcd(27);
write_lcd(32);
write_lcd(128);
write_lcd(0xF9); //下箭头
write_lcd(27);
write_lcd(80);
write_lcd(129);
}
void interface_rs232c(void)
{
uchar code *p1;
uchar idata *p2;
p1 = rs232c11;
display_eng(2,16,p1,6);
p1 = rs232c12;
display_chn(4,1,p1,4);
if(Line==1)
write_lcd(0xFA);
p1 = rs232c2;
display_chn(1,3,p1,3);
if(Line==1)
write_lcd(0xFA);
if(Line==1)
{
p1 = underline5;
display_eng(12,48,p1,5);
display_eng(17,48,p1,1);
Cursor = 12;
}
else
{
p2 = value_baudrate;
display_eng(12,48,p2,6);
}
if(Line==2)
write_lcd(0xFA);
p1 = rs232c3;
display_chn(1,4,p1,3);
if(Line==2)
write_lcd(0xFA);
if(Line==2)
{
p1 = underline5;
display_eng(12,64,p1,1);
Cursor = 12;
}
else
{
p2 = value_datadigit;
display_eng(12,64,p2,1);
}
if(Line==3)
write_lcd(0xFA);
p1 = rs232c4;
display_chn(1,5,p1,3);
if(Line==3)
write_lcd(0xFA);
if(Line==3)
{
p1 = underline5;
display_eng(12,80,p1,1);
Cursor = 12;
}
else
{
p2 = value_stopdigit;
display_eng(12,80,p2,1);
}
if(Line==4)
write_lcd(0xFA);
p1 = rs232c51;
display_chn(1,6,p1,4);
if(Line==4)
write_lcd(0xFA);
p1 = rs232c52;
display_chn(6,6,p1,1);
p1 = lcd_return;
display_eng(24,112,p1,6);
write_lcd(0xF9); //上箭头
write_lcd(27);
write_lcd(32);
write_lcd(128);
write_lcd(0xF9); //下箭头
write_lcd(27);
write_lcd(80);
write_lcd(129);
}
void interface_lxi(void)
{
uchar code *p1;
uchar idata *p2;
p1 = lxi11;
display_eng(1,0,p1,3);
p1 = lxi12;
display_chn(2,0,p1,4);
p1 = lxi21;
display_chn(1,1,p1,4);
p1 = lxi22;
display_eng(10,16,p1,2);
p1 = lxi23;
display_chn(6,1,p1,2);
p1 = lxi3;
display_chn(1,2,p1,4);
p1 = lxi22;
display_eng(10,32,p1,2);
p1 = lxi23;
display_chn(6,2,p1,2);
if(Line==1)
write_lcd(0xFA);
p1 = lxi22;
display_eng(2,48,p1,2);
p1 = lxi23;
display_chn(2,3,p1,2);
if(Line==1)
write_lcd(0xFA);
if(Line==1)
{
p1 = underline5;
display_eng(11,48,p1,5);
display_eng(16,48,p1,5);
display_eng(21,48,p1,5);
Cursor = 11;
}
else
{
p2 = value_ip;
display_eng(11,48,p2,15);
}
if(Line==2)
write_lcd(0xFA);
p1 = lxi5;
display_chn(1,4,p1,4);
if(Line==2)
write_lcd(0xFA);
if(Line==2)
{
p1 = underline5;
display_eng(11,64,p1,5);
display_eng(16,64,p1,5);
display_eng(21,64,p1,5);
Cursor = 11;
}
else
{
p2 = value_mask;
display_eng(11,64,p2,15);
}
if(Line==3)
write_lcd(0xFA);
p1 = lxi6;
display_chn(1,5,p1,4);
if(Line==3)
write_lcd(0xFA);
if(Line==3)
{
p1 = underline5;
display_eng(11,80,p1,5);
display_eng(16,80,p1,5);
display_eng(21,80,p1,5);
Cursor = 11;
}
else
{
p2 = value_gateway;
display_eng(11,80,p2,15);
}
if(Line==4)
write_lcd(0xFA);
p1 = lxi71;
display_eng(1,96,p1,3);
p1 = lxi72;
display_chn(2,6,p1,3);
if(Line==4)
write_lcd(0xFA);
if(Line==4)
{
p1 = underline5;
display_eng(11,96,p1,5);
display_eng(16,96,p1,5);
display_eng(21,96,p1,5);
Cursor = 11;
}
else
{
p2 = value_dns;
display_eng(11,96,p2,15);
}
p1 = lcd_return;
display_eng(24,112,p1,6);
write_lcd(0xF9); //上箭头
write_lcd(27);
write_lcd(32);
write_lcd(128);
write_lcd(0xF9); //下箭头
write_lcd(27);
write_lcd(80);
write_lcd(129);
}
void write_lcd(uchar dat)
{
while(LCD_BUSY==1) //确保LCD模块空闲
;
LCD_DATABUS = dat; //向总线送数
LCD_REQ = 1; //向LCD模块发送请求
while(LCD_BUSY==0) //等待LCD模块响应
;
LCD_REQ = 0; //撤销请求
}
void display_eng(uchar xx,uchar yy,uchar *p,uchar num)
//参数分别为行,列,指向数组的指针,数组包含字符的个数
{
for(;num>0;num--) //向LCD循环写入p指向的数组的所有字符
{
write_lcd(0xF9);
write_lcd(xx);
write_lcd(yy);
write_lcd(*p); //写入ASCII码
xx++; //改变下一个字符的XX地址
p++; //准备写入下一字符
}
}
void display_chn(uchar xx,uchar yy,uchar *p,uchar num)
//参数分别为行,列,指向数组的指针,数组包含字符的个数
{
for(;num>0;num--) //向LCD循环写入p指向的数组的所有字符
{
write_lcd(0xF0);
write_lcd(xx);
write_lcd(yy);
write_lcd(*p); //写入汉字区位码高位
p++;
write_lcd(*p); //写入汉字区位码低位
xx++; //改变下一个字符的XX地址
p++; //准备写入下一字符
}
}
void display_digit(uchar xx,uchar yy,uchar dat)
{
write_lcd(0xF9);
write_lcd(xx);
write_lcd(yy);
write_lcd(dat);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -