📄 lcd.c
字号:
LCM_Y=LCM_Y+16;
i=0;
LCD_Write_Funtion(0x60,LCM_X) ;//地址定位
LCD_Write_Funtion(0x70,LCM_Y) ;//地址定位
}
LCD_Write_Dat(x_data);
i++;
}
}
//////////////////纵向写不规则字符串函数 /////////////////////////////////
void V_Write_abnormity_string(uchar LCM_X,uchar LCM_Y,uchar x_data,uchar number)//LCM_X的范围是0-29//写汉字时应该为偶数,写字符串时无限制/////////////////
{ ////////LCM_Y的范围是0-127/////uchar x_data是不规则字符的ASCII码////uchar number是不规则字符的个数//
uchar j;
// uchar i=0;
LCD_Write_Funtion(0x00,0xCD);//文本模式
LCD_Write_Funtion(0x10,0x61);//写光标不自动移位//光标不显示//光标不闪烁//自适应宽度//
LCD_Write_Funtion(0xF0,0xA4);//ASII区块0////所有输入的数据都以ASII解码////
LCD_Write_Funtion(0x60,LCM_X);//地址定位
LCD_Write_Funtion(0x70,LCM_Y);//地址定位
for(j=0;j<number;j++)////利用数组最后有空格作为信息结束的判断/////
{
// if((LCM_Y+16*j)>=128)
// {
// LCM_Y=0;
// i=0;
// }
LCD_Write_Funtion(0x60,LCM_X) ;//地址定位
LCD_Write_Funtion(0x70,LCM_Y+16*j) ;//地址定位
//LCM_Y=LCM_Y+16;
LCD_Write_Dat(x_data);
//i++;
}
}
/*
///////////////写字符串函数////////////////////////////////////
void LCD_Write_string(uchar LCM_X,uchar LCM_Y,uchar *ptr,bit g)
{
uchar i=0;
LCD_Write_Funtion(0x00,0xCD);//文本模式////
if(g==0) LCD_Write_Funtion(0x10,0x69);//写光标自动移位//光标不显示//光标不闪烁//自适应宽度//
else LCD_Write_Funtion(0x10,0x6f);//写光标自动移位//光标显示//光标闪烁//自适应宽度//
while (*ptr != '%')////利用数组最后有空格作为信息结束的判断/////
{
if((LCM_X+i)>=30)
{
LCM_X=0;
i=0;
LCM_Y=LCM_Y+16;
}
LCD_Write_Funtion(0x60,LCM_X+i++);//地址定位
LCD_Write_Funtion(0x70,LCM_Y);//地址定位
LCD_Write_Dat(*ptr++);
}
}
/////////////////写汉字函数///////////////////////////////////
void LCD_Write_word(uchar LCM_X,uchar LCM_Y,uchar *ptr,bit g)
{
uchar i=0;
LCD_Write_Funtion(0x00,0xCD);//文本模式////
if(g==0) LCD_Write_Funtion(0x10,0x69);//写光标自动移位//光标不显示//光标不闪烁//自适应宽度//
else LCD_Write_Funtion(0x10,0x6f);//写光标自动移位//光标显示//光标闪烁//自适应宽度//
while (*ptr != '%')////利用数组最后有空格作为信息结束的判断/////
{
if((LCM_X+i*2)>=30)
{
LCM_X=0;
LCM_Y=LCM_Y+16;
i=0;
}
LCD_Write_Funtion(0x60,LCM_X+2*(i++)) ;//地址定位
LCD_Write_Funtion(0x70,LCM_Y) ;//地址定位
LCD_Write_Dat(*ptr++);
LCD_Write_Dat(*ptr++);
}
}
*/
//////////图片显示函数 ///////////////////
void LCD_Disp_Graphics(uchar *ptr)
{
uchar i,j;
LCD_Write_Funtion(0x00,0xC5); //图形模式
LCD_Write_Funtion(0x10,0x61);//写光标bu自动移位//光标不显示//光标不闪烁//自适应宽度//
LCD_Write_Funtion(0x12,0x91);//显示层设定:高位8灰度,9水平单一层,A单二层,B同时一二层
for(i=0;i<128;i++)/////共16//////
{
for(j=0;j<30;j++)
{
LCD_Write_Funtion(0x60,j);//地址定位
LCD_Write_Funtion(0x70,i);//地址定位
LCD_Write_Dat(*ptr++); //////连续写入数据/////
}
}
}
//////////图形层单边框显示函数 ///////////////////
void LCD_Disp_Frame_S(void)
{
uchar i,j;
LCD_Write_Funtion(0x00,0xC5); //图形模式
LCD_Write_Funtion(0x10,0x61);//写光标bu自动移位//光标不显示//光标不闪烁//自适应宽度//
LCD_Write_Funtion(0x12,0x91);//显示层设定:高位8灰度,9水平单一层,A单二层,B同时一二层
for(j=0;j<30;j++)////水平30个字节宽//
{
LCD_Write_Funtion(0x60,j);//地址定位
LCD_Write_Funtion(0x70,127);//地址定位
LCD_Write_Dat(0xFF); ////连续写入数据/////
}
for(j=0;j<30;j++)////水平30个字节宽//
{
LCD_Write_Funtion(0x60,j);//地址定位
LCD_Write_Funtion(0x70,16);//地址定位
LCD_Write_Dat(0xFF); ////连续写入数据/////
}
////////////////////////////////////////////////////////////////
LCD_Write_Funtion(0x60,0);//地址定位
LCD_Write_Funtion(0x70,16);//地址定位
LCD_Write_Dat(0xFF); ////连续写入数据///// /
for(i=1;i<111;i++)/////垂直共128行//////
{
LCD_Write_Funtion(0x60,0);//地址定位
LCD_Write_Funtion(0x70,i+16);//地址定位
LCD_Write_Dat(0x80); //////连续写入数据/////
}
LCD_Write_Funtion(0x60,0);//地址定位
LCD_Write_Funtion(0x70,127);//地址定位
LCD_Write_Dat(0xFF); //////连续写入数据/////
////////////////////////////////////////////////////////////////
LCD_Write_Funtion(0x60,29);//地址定位
LCD_Write_Funtion(0x70,16);//地址定位
LCD_Write_Dat(0xFF); //////连续写入数据/////
for(i=1;i<111;i++)/////垂直共128行//////
{
LCD_Write_Funtion(0x60,29);//地址定位
LCD_Write_Funtion(0x70,i+16);//地址定位
LCD_Write_Dat(0x01); //////连续写入数据/////
}
LCD_Write_Funtion(0x60,29);//地址定位
LCD_Write_Funtion(0x70,127);//地址定位
LCD_Write_Dat(0xFF); //////连续写入数据/////
//////////////////////////////////////////////////////////
}
//////////文本层双边框显示函数 ///////////////////
void LCD_Disp_Frame_D(void)
{
H_Write_abnormity_string(0,16,0xC9,1);
H_Write_abnormity_string(1,16,0xCD,28);
H_Write_abnormity_string(29,16,0xBB,1);
V_Write_abnormity_string(0,32,0xBA,5);
V_Write_abnormity_string(29,32,0xBA,5);
H_Write_abnormity_string(0,112,0xC8,1);
H_Write_abnormity_string(1,112,0xCD,28);
H_Write_abnormity_string(29,112,0xBC,1);
}
////////////开机状态界面函数///////////////////////////////
void Disp_Start(void)
{
LCD_Write_word(0,32,"北京电通伟业电子设备有限公司%",0);//头标//
//LCD_Disp_Frame_D();
LCD_Write_word(10,64,"DT126-8000%",0);
LCD_Write_word(4,96,"多相位系统交通信号机%",0);
}
////////////1号界面函数///////////////////////////////
void Disp_interface_1(void)
{
LCD_Write_word(0,0,"* 北京电通伟业电子设备有限公司%",0);//头标//
//LCD_Disp_Frame_D();
LCD_Write_word(2,16,"==> 1) 目 前 现 况%",0);
LCD_Write_word(2,32," 2) 基 本 资 料%",0);
LCD_Write_word(2,48," 3) 日 时 方 案%",0);
LCD_Write_word(2,64," 4) 配 时 方 案%",0);
LCD_Write_word(2,80," 5) 感 应 方 案%",0);
LCD_Write_word(2,96," 6) 特 殊 控 制%",0);
LCD_Write_word(2,112,"--------[UP] [DOWN]------%",0);
LCD_Disp_Frame_S();
}
////////////11号界面函数///////////////////////////////
void Disp_interface_11(void)
{
LCD_Write_word(0,0,"* 北京电通伟业电子设备有限公司%",0);//头标//
//LCD_Disp_Frame_D();
LCD_Write_word(2,16," 5) 感 应 方 案%",0);
LCD_Write_word(2,32," 6) 特 殊 控 制%",0);
LCD_Write_word(2,48,"==> 7) 相 位 排 序%",0);
LCD_Write_word(2,64," 8) 公 用 功 能%",0);
LCD_Write_word(2,80," 9) 通 讯 传 输%",0);
LCD_Write_word(2,96," A) 系 统 检 测%",0);
LCD_Write_word(2,112,"--------[UP] [DOWN]------%",0);
LCD_Disp_Frame_S();
}
////////////2号界面函数///////////////////////////////
void Disp_interface_2(void)
{
LCD_Write_word(0,0,"* 北京电通伟业电子设备有限公司%",0);//头标//
//LCD_Disp_Frame_D();
LCD_Write_word(2,16,"==> 1) 现行日时方案状况%",0);
LCD_Write_word(2,32," 2) 现行控制方案状况%",0);
LCD_Write_word(2,48," 3) 现行输入信号状况%",0);
LCD_Write_word(2,64," 4) 现行硬件检测状况%",0);
LCD_Write_word(2,80," 5) 硬件状态发生记录%",0);
LCD_Write_word(2,96," 6) 控制模式发生记录%",0);
LCD_Write_word(2,112,"--------[UP] [DOWN]------%",0);
LCD_Disp_Frame_S();
}
////////////3号界面函数///////////////////////////////
void Disp_interface_3(void)
{
LCD_Write_word(0,0,"* 北京电通伟业电子设备有限公司%",0);//头标//
//LCD_Disp_Frame_D();
LCD_Write_word(2,16," 2) 现行控制方案状况%",0);
LCD_Write_word(2,32," 3) 现行输入信号状况%",0);
LCD_Write_word(2,48," 4) 现行硬件检测状况%",0);
LCD_Write_word(2,64," 5) 硬件状态发生记录%",0);
LCD_Write_word(2,80," 6) 控制模式发生记录%",0);
LCD_Write_word(2,96,"==> 7) 查询50Hz状态%",0);
LCD_Write_word(2,112,"--------[UP] [DOWN]------%",0);
LCD_Disp_Frame_S();
}
////////////4号界面函数///////////////////////////////
void Disp_interface_4(uint *ptr)
{
LCD_Write_word(0,0,"* 北京电通伟业电子设备有限公司%",0);//头标//
LCD_Write_word(2,16,"现行型态[ ] 周期长度[ ]%",0);
LCD_Write_word(2,32,"现行时段[ ] 相位差..[ ]%",0);
LCD_Write_word(2,48,"配时方案[ ] 相位控制.[ ]%",0);
LCD_Write_word(2,64,"感应方案[ ] 相位数....[ ]%",0);
LCD_Write_word(2,80,"相 行 行行绿 黄红短 长%",0);
LCD_Write_word(2,96,"位 绿 闪红闪 灯灯绿 绿%",0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -