论坛元老
 
- 积分
- 5075
- 金钱
- 5075
- 注册时间
- 2013-10-4
- 在线时间
- 654 小时
|
发表于 2019-3-22 08:45:25
|
显示全部楼层
LCD12864 反白显示代码
[mw_shl_code=c,true]/***********************************************************
*函数名: void LCD12864_Set_White(unsigned char x, unsigned char y, unsigned char end_x, unsigned char clear)
*功能: 任意位置反白显示
*参数: 输入 x,y,end_x,clear
*说明: //设定哪一行,从那一个位置开始到那一个位置结束使用反白
* //x=液晶屏上汉字的位置(1~8);end_x=汉字结束的地址(1~8);y=1~4行
* //clear=1:清除反白;clear=0:设置反白
**********************************************************/
void LCD12864_Set_White(unsigned char x, unsigned char y, unsigned char end_x, unsigned char clear)
{
unsigned char i, j;
unsigned char white_x, white_y , white_end_x;
unsigned char clr_x, clr_y;
white_end_x = end_x-x+1;
white_end_x <<= 1;
LCD12864_Set_Draw(ON);
switch (y)
{
case 1: //第一行
white_x = 0x80+x-1;
white_y = 0x80;
clr_x = 0x80;
clr_y = 0x80;
break;
case 2: //第二行
white_x = 0x80+x-1;
white_y = 0x90;
clr_x = 0x80;
clr_y = 0x90;
break;
case 3: //第三行
white_x = 0x88+x-1;
white_y = 0x80;
clr_x = 0x88;
clr_y = 0x80;
break;
case 4: //第四行
white_x = 0x88+x-1;
white_y = 0x90;
clr_x = 0x88;
clr_y = 0x90;
break;
default:
break;
}
for (i=0 ; i<16; i++)
{
WriteCom(white_y++); //设置绘图区的Y地址坐标0
WriteCom(white_x); //设置绘图区的X地址坐标0
for (j=0; j<white_end_x; j++)
{
//clear = 1取消这一行的8个点的反白,液晶地址自动加1(此处行指一个一个液晶点所组成的行)
//clear = 0反白这一行的8个点,液晶地址自动加1(此处行指一个一个液晶点所组成的行)
clear ? WriteData(Clr) : WriteData(0xff);//clear=1,write_data(0x00);clear=0,write_data(0xff)
}
}
LCD12864_Set_Draw(OFF);
}[/mw_shl_code]
|
|