📄 splc051.c
字号:
// 程序: void LCD501_SetContrast(unsigned int Contrast)
// 描述: 设置显示对比度 C语言调用
// 参数: Contrast - 对比度值,范围从0到31,数值越大对比度越高
// 返回: 无
// 声明: 手心 20070117 AVRGCC
//***************************************************************************//
void LCD501_SetContrast(unsigned int Contrast)
{
if(Contrast>0x3f)
Contrast = 0x3f;
F_SPLC501_Write_Com(M_LCD_ELE_VOL); //电量设置模式(显示亮度)
F_SPLC501_Write_Com(Contrast); //电量设置模式(显示亮度)
CurLCDSet = Contrast;
}
//***************************************************************************//
// 程序: unsigned int LCD501_GetContrast(void)
// 描述: 获取显示对比度 C语言调用
// 参数: 无
// 返回: 当前显示的对比度值
// 声明: 手心 20070117 AVRGCC
//***************************************************************************//
unsigned int LCD501_GetContrast(void)
{
return CurLCDSet;//
}
//***************************************************************************//
// 程序: void LCD501_ScrollUp(unsigned int Rows)
// 描述: 屏幕向上滚动 C语言调用
// 参数: Rows 屏幕向上滚动的像素数,范围从1到64
// 返回: null
//***************************************************************************//
void LCD501_ScrollUp(unsigned int Rows)
{
CurScroll = CurScroll+Rows;
while(CurScroll>=SCR_MAX_ROW)
CurScroll -= SCR_MAX_ROW;
F_SPLC501_Write_Com(M_LCD_BEGIN_LINE+CurScroll); //设置显示起始行对应RAM
}
//***************************************************************************//
// 程序: unsigned int LCD501_GetScroll(void)
// 描述: 获取屏幕已经向上滚动的值 C语言调用
// 参数: 无
// 返回: 屏幕已经向上滚动的值
// 声明: 手心 20070117 AVRGCC
//***************************************************************************//
unsigned int LCD501_GetScroll(void)
{
return CurScroll;//
}
//***************************************************************************//
// 程序: void LCD501_ReverseColor(void)
// 描述: 屏幕反色显示。每执行一次该函数,屏幕颜色翻转一次。 C语言调用
// 参数: 无
// 返回: 无
// 声明: 手心 20070117 AVRGCC
// 注意: 无
//***************************************************************************//
void LCD501_ReverseColor(void)
{
if(CurScrMode)//
{
F_SPLC501_Write_Com(M_LCD_ALL_REV); //正向反向显示控制指令
CurScrMode = 0;
}
else
{
F_SPLC501_Write_Com(M_LCD_ALL_NOR); //正向反向显示控制指令
CurScrMode = 1;
}
}
//***************************************************************************//
//程序:LCD501_ClrScreen(unsigned int Mode)
//描述:液晶整屏清屏函数 C语言调用
//参数:unsigned int Mode 清屏类型Mode=1 则全点亮,Mode=0 内全清零
// 声明: 手心 20070117 AVRGCC
//***************************************************************************//
void LCD501_ClrScreen(unsigned int Mode)
{
unsigned int i,j;
if(Mode)
Mode = 0xff;
else
Mode = 0x00;
for(i=0;i<8;i++)
{
F_SPLC501_Write_Com(M_LCD_COL_PAGE+i);
F_SPLC501_Write_Com(M_LCD_COL_LINE_LOW);
F_SPLC501_Write_Com(M_LCD_COL_LINE_HIG);
for(j=0;j<128;j++)
{
F_SPLC501_Write_Data(Mode);
}
}
F_SPLC501_Write_Com(0xee); //读改写模式结束指令
}
//***************************************************************************//
//程序:F_LCD_LineRun(unsigned int line)
//描述:液晶显示起始行设置函数 C语言调用 (滚屏功能用)
//参数:unsigned int line 起始RAM行,0~63
// 声明: 手心 20070117 AVRGCC
//***************************************************************************//
void F_LCD_LineRun(unsigned int line)
{
if(line>=64)
line = 0;
F_SPLC501_Write_Com(M_LCD_BEGIN_LINE+line); //设置显示起始行对应RAM
}
//****************************************************************************************//
//程序:void LCD501_FontSet(unsinged int Font) [8x16] [6X8]
//描述: 选择显示字符的大小类型
//参数:Font 字符的类型选择 1 8X16 0 6X8
// 声明: 手心 20070117 AVRGCC
//注意: 只针对显示驱动中包含的ASCII码显示
//*****************************************************************************************//
void LCD501_FontSet(unsigned int Font)
{
if(Font) CurASCIIFont = 1;
else CurASCIIFont = 0;
}
//****************************************************************************************//
//程序:unsigned int LCD501_FontGet(void) [8x16] [6X8]
//描述: 获取当前显示字符的大小类型
//返回:Font 字符的类型选择 1 8X16 0 6X8
//声明: xinqiang 20050519 sunnorth Mz Design
//注意: 只针对显示驱动中包含的ASCII码显示
//*****************************************************************************************//
unsigned int LCD501_FontGet(void)
{
return CurASCIIFont;
}
//****************************************************************************************//
//程序:void F_LCD_WASII(int x,int page,unsigned int a) [8x16] [6X8]
//描述: 显时8X16的自带ASCII字符,定Page显示,不能任意行定位
//参数:x 显示字符的起始列(0~128) page 显示字符的起始页(0~6)
// a ASCII码 Font 字符的类型选择 1 16X8 0 6X8
// 声明: 手心 20070117 AVRGCC
//注意:
//*****************************************************************************************//
void F_LCD_WASII(int page,int y,unsigned char a)
{
int i,j,x_com; //数据暂存
if(a>=0x61)
a=a-0x61+36*8+(a-0x61)*8;
else
if(a>=0x41)
a=a-0x41+80+(a-0x41)*8;
else
a=a-0x30+(a-0x30)*8;
F_SPLC501_Write_Com(M_LCD_BEGIN_LINE+0); //设置显示起始行对应RAM
if((page+2)<8)
{
for(j=0;j<2;j++)
{
x_com = page+0xb0;
F_SPLC501_Write_Com(x_com+j); //起始页
F_SPLC501_Write_Com(((y>>4)&0x0f)|0x10); //设置初始地址 列地址高位
F_SPLC501_Write_Com(y&0x0f); //设置初始地址 列地址低位
for(i=0;i<8;i++)
{
if(j==0)
F_SPLC501_Write_Data((Asii8[a+i])&0xff);
else
F_SPLC501_Write_Data(((Asii8[a+i])>>8)&0xff);
}
}
}
F_SPLC501_Write_Com(0xee);
// LED_test();
}
//********************************************************************************************//
//程序:void LCD501_PutChar(int x,int y,unsigned int a) [8x16] [6X8]
//描述: 显时8X16、6X8的自带ASCII字符,任意行定位
//参数: x显示字符的起始列(0~128) y 显示字符的起始行(0~63)
// a ASCII码
// 声明: 手心 20070117 AVRGCC
//注意:
//********************************************************************************************//
void LCD501_PutChar(int x,int y,unsigned int a)
{
int i,j,x_com,y_com=0; //数据暂存
unsigned int uiData1,uiData2;
unsigned int Read_Back; //读回的数据
if(a>=0x61)
a=a-0x61+36*8+(a-0x61)*7;
else
if(a>=0x41)
a=a-0x41+80+(a-0x41)*7;
else
a=a-0x30+(a-0x30)*7;
if((x+8)>127)
{
x_com=4;
y_com=y/8+1;
}
else
{
x_com=x;
y_com=y/8;
}
if((y+16)<64)
y_com=y_com+0xb0;
else
y_com=0xb0;
for(j=0;j<2;j++)
{
F_SPLC501_Write_Com(y_com+j); //设置初始页地址
F_SPLC501_Write_Com(x_com&0x0f); //设置初始列地址
F_SPLC501_Write_Com(((x_com >> 4)&0x0f)|0x10);
for(i=0;i<8;i++)
{
if(j==0)
{
uiData1 = (Asii8[a+i])&0x00ff;
F_SPLC501_Write_Data(uiData1);
}
else
{
uiData1 = (Asii8[a+i]>>8)&0x00ff;
F_SPLC501_Write_Data(uiData1);
}
}
F_SPLC501_Write_Com(0xee); //读改写模式结束指令
}
}
//********************************************************************************************//
//程序:void LCD501_PutString(int x,int y,unsigned int a) [8x16] [6X8]
//描述: 显时8X16、6X8的自带ASCII字符,任意行定位
//参数:x 显示字符的起始列(0~128) y 显示字符的起始行(0~63)
// a ASCII码
// 声明: 手心 20070117 AVRGCC
//注意:
//********************************************************************************************//
void LCD501_PutString(int x,int y,unsigned char * string)
{
while(*string!=0)
{
if((x+8)>127)
{
x = 4;
y=y+8;
}
if((y+16)>63)
{
y =0;
}
LCD501_PutChar(x,y,(unsigned int)*string);
string++;
x+=8;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -