📄 lph7366.c
字号:
LPH7366_write(COM,LPH7366_add_Xset); //显示模块列地址设置
LPH7366_clr(); //显示屏幕清屏
}
/***************************LPH7366写函数*****************************/
/*函数原型:void LPH7366_write(unsigned char type,unsigned char in_data)
/*函数功能:LPH7366写
/*输入参数:要写数据的类型 type,要写的数据 in_data
/*输出参数:无
/*调用模块:_crol_()
/*建立时间:2005/10/31
/*作者:丁霄
/**********************************************************************/
void LPH7366_write(unsigned char type,unsigned char in_data)
{ unsigned char i,k;
unsigned char out_data;
SCLK=1;
if(type==1)
D_C=1; //要写的是数据
else
D_C=0; //要写的是指令
out_data=in_data;
for(i=1;i<9;i++) //串行发送数据
{
k=out_data&0x80;
if(k==0x80) //判断数据
SDIN=1;
else
SDIN=0;
_nop_();
SCLK=0;
_nop_();
SCLK=1;
_nop_();
out_data=_crol_(out_data,1); //循环左移1位
}
}
/***************************LPH7366清屏函数****************************/
/*函数原型:void LPH7366_clr()
/*函数功能:LPH7366清屏
/*输入参数:无
/*输出参数:无
/*调用模块:LPH7366_write()
/*建立时间:2005/11/07
/*作者:丁霄
/**********************************************************************/
void LPH7366_clr()
{
unsigned int i;
for(i=1;i<505;i++) //整个屏幕白屏
{
LPH7366_write(DAT,0x00);
}
}
/***************************LPH7366任意写入字符函数****************************/
/*函数原型:void LPH7366_write_str(unsigned char symbol_line,unsigned char symbol_row,unsigned char str)
/*函数功能:可以在屏幕的任意位置写入所需字符(6行,每行13个字符)
/*输入参数:第几行(line),第几列(row),字符(str)
--这里的行列不是屏幕实际的行列,是字符所在的位置.
/*输出参数:无
/*调用模块:LPH7366_write()
/*建立时间:2005/11/09
/*作者:丁霄
/**********************************************************************/
void LPH7366_write_str(unsigned char symbol_line,unsigned char symbol_row,unsigned char str)
{
unsigned char symbol_i; //在字符表的位置
unsigned char i;
LPH7366_write(COM,LPH7366_basic_fun_set); //显示模块基本指令
LPH7366_write(COM,LPH7366_add_Yset+(symbol_line-1)); //显示模块行地址设置
LPH7366_write(COM,LPH7366_add_Xset+row(STR,symbol_row)); //显示模块列地址设置
if(data_flag==0) //不动态显示字符
symbol_i=str-32; //在ASCLL表是那个元素
if(data_flag==1) //动态显示字符
symbol_i=str;
while(1)
{ for(i=0;i<5;i++)
{
LPH7366_write(DAT,ASCLL[symbol_i][i]);
}
LPH7366_write(DAT,0x00);
break;
}
}
/***********************LPH7366任意写入汉字函数************************/
/*函数原型:void LPH7366_write_han(unsigned char symbol_line,unsigned char symbol_row,unsigned char han)
/*函数功能:可以在屏幕的任意位置写入所需字符(3行,每行7个汉字)
/*输入参数:第几行(line),第几列(row),汉字(han)
/*输出参数:无
/*调用模块:LPH7366_write()
/*建立时间:2005/11/10
/*作者:丁霄
/******************************************************************/
void LPH7366_write_han(unsigned char symbol_line,unsigned char symbol_row,unsigned char han)
{
unsigned char symbol_i; //在字符表的位置
unsigned char i;
LPH7366_write(COM,LPH7366_basic_fun_set); //显示模块基本指令
LPH7366_write(COM,LPH7366_add_Yset+(symbol_line-1)*2); //显示模块行地址设置
LPH7366_write(COM,LPH7366_add_Xset+row(HAN,symbol_row)); //显示模块列地址设置
symbol_i=han;
while(1)
{ for(i=0;i<24;i++)
{
if(i==12) //汉字显示是两行的 16*12 重新设置行列地址
{
LPH7366_write(COM,LPH7366_basic_fun_set); //显示模块基本指令
if(symbol_line==1)
LPH7366_write(COM,LPH7366_add_Yset+1); //显示模块行地址设置
if(symbol_line==2)
LPH7366_write(COM,LPH7366_add_Yset+3); //显示模块行地址设置
if(symbol_line==3)
LPH7366_write(COM,LPH7366_add_Yset+5); //显示模块行地址设置
LPH7366_write(COM,LPH7366_add_Xset+row(HAN,symbol_row)); //显示模块列地址设置
}
LPH7366_write(DAT,HZK[symbol_i][i]);
}
if(i==24)
break;
}
}
/***********************LPH7366任意写入一个字节函数************************/
/*函数原型:void LPH7366_write_doc(unsigned char symbol_line,unsigned char symbol_row,unsigned char doc)
/*函数功能:可以在屏幕的任意位置写入所需字节(6行,每行84个字节)
/*输入参数:第几行(line),第几列(row),字节(doc)
/*输出参数:无
/*调用模块:LPH7366_write()
/*建立时间:2005/11/10
/*作者:丁霄
/******************************************************************/
void LPH7366_write_doc(unsigned char symbol_line,unsigned char symbol_row,unsigned char doc)
{
LPH7366_write(COM,LPH7366_basic_fun_set); //显示模块基本指令
LPH7366_write(COM,LPH7366_add_Yset+symbol_line-1); //显示模块行地址设置
LPH7366_write(COM,LPH7366_add_Xset+symbol_row-1); //显示模块列地址设置
LPH7366_write(DAT,doc);
}
/*******************************数据拆分函数*********************************/
/*函数原型:void data_tick(unsigned char i_data)
/*函数功能:数据拆分
/*输入参数:i_data (将输入的数据拆分成十位和个位)
/*输出参数:改变ge和shi两个数据
/*调用模块:无
/*建立时间:2005/10/24
/*作者:丁霄
/**********************************************************************/
void data_tick(unsigned char i_data)
{
unsigned char y;
y=i_data;
shi=i_data/10;
ge=y%10;
}
/***************************列计算函数****************************/
/*函数原型:unsigned char row(unsigned char stye,unsigned char i)
/*函数功能:类型,计算屏幕的列地址
/*输入参数:stye,symbol_row
/*输出参数:无
/*调用模块:无
/*建立时间:2005/11/09
/*作者:丁霄
/******************************************************************/
unsigned char row(unsigned char stye,unsigned char i) //计算屏幕的列地址 类型
{
if(stye==1) //字符
{
if(i==1)
return 3;
return (row(stye,i-1)+6);
}
if(stye==2) //汉字
{
if(i==1)
return 0;
return (row(stye,i-1)+12);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -