📄 lq12864.c
字号:
LCD_DLY_ms(20);
LCD_WrCmd(0xaf); //0xaf LCD On
LCD_WrCmd(0x2f); //0x2f 设置上电控制模式
LCD_WrCmd(0x81); //0x81 电量设置模式(显示亮度)
LCD_WrCmd(0x1a); //指令数据0x0000~0x003f
LCD_WrCmd(0x24); //0x24 V5内部电压调节电阻设置
LCD_WrCmd(0xa2); //0xa2 5V,0xa1 3V3 LCD偏压设置
LCD_WrCmd(0xc8); //0xc8 正常,0xc0 倒置 Com 扫描方式设置
LCD_WrCmd(0xa0); //0xa0 正常,0xa1 反向 Segment方向选择
LCD_WrCmd(0xa4); //0xa4 全屏点亮/变暗指令
LCD_WrCmd(0xa6); //0xa6 正向反向显示控制指令
LCD_WrCmd(0xac); //0xac 关闭静态指示器
LCD_WrCmd(0x00); //指令数据
LCD_WrCmd(0x40+32); //0x40+32 设置显示起始行对应RAM
LCD_Fill(0x00); //初始清屏
LCD_Set_Pos(0,0);
}
//==============================================================
//函数名: void LCD_PutPixel(U8 x,U8 y)
//功能描述:绘制一个点(x,y)
//参数:真实坐标值(x,y),x的范围0~127,y的范围0~64
//返回:无
//==============================================================
void LCD_PutPixel(U8 x,U8 y)
{
U8 data1; //data1当前点的数据
LCD_Set_Pos(x,y);
data1 = 0x01<<(y%8);
LCD_WrCmd(0xb0+(y>>3));
LCD_WrCmd(((x&0xf0)>>4)|0x10);
LCD_WrCmd((x&0x0f)|0x00);
LCD_WrDat(data1);
}
//==============================================================
//函数名: void LCD_Rectangle(U8 x1,U8 y1,
// U8 x2,U8 y2,U8 color,U8 gif)
//功能描述:绘制一个实心矩形
//参数:左上角坐标(x1,y1),右下角坐标(x2,y2)
// 其中x1、x2的范围0~127,y1,y2的范围0~63,即真实坐标值
//返回:无
//==============================================================
void LCD_Rectangle(U8 x1,U8 y1,U8 x2,U8 y2,U8 gif)
{
U8 n;
LCD_Set_Pos(x1,y1>>3);
for(n=x1;n<=x2;n++)
{
LCD_WrDat(0x01<<(y1%8));
if(gif == 1) LCD_DLY_ms(50);
}
LCD_Set_Pos(x1,y2>>3);
for(n=x1;n<=x2;n++)
{
LCD_WrDat(0x01<<(y2%8));
if(gif == 1) LCD_DLY_ms(5);
}
}
//==============================================================
//函数名:LCD_P6x8Str(U8 x,U8 y,U8 *p)
//功能描述:写入一组标准ASCII字符串
//参数:显示的位置(x,y),y为页范围0~7,要显示的字符串
//返回:无
//==============================================================
void LCD_P6x8Str(U8 x,U8 y,U8 ch[])
{
U8 c=0,i=0,j=0;
while (ch[j]!='\0')
{
c =ch[j]-32;
if(x>122){x=0;y++;}
LCD_Set_Pos(x,y);
for(i=0;i<6;i++)
LCD_WrDat(F6x8[c][i]);
x+=6;
j++;
}
}
//==============================================================
//函数名:LCD_P8x16Str(U8 x,U8 y,U8 *p)
//功能描述:写入一组标准ASCII字符串
//参数:显示的位置(x,y),y为页范围0~7,要显示的字符串
//返回:无
//==============================================================
void LCD_P8x16Str(U8 x,U8 y,U8 ch[])
{
U8 c=0,i=0,j=0;
while (ch[j]!='\0')
{
c =ch[j]-32;
if(x>120){x=0;y++;}
LCD_Set_Pos(x,y);
for(i=0;i<8;i++)
LCD_WrDat(F8X16[c*16+i]);
LCD_Set_Pos(x,y+1);
for(i=0;i<8;i++)
LCD_WrDat(F8X16[c*16+i+8]);
x+=8;
j++;
}
}
//输出汉字字符串
void LCD_P14x16Str(U8 x,U8 y,U8 ch[])
{
U8 wm=0,ii = 0;
U16 adder=1;
while(ch[ii] != '\0')
{
wm = 0;
adder = 1;
while(F14x16_Idx[wm] > 127)
{
if(F14x16_Idx[wm] == ch[ii])
{
if(F14x16_Idx[wm + 1] == ch[ii + 1])
{
adder = wm * 14;
break;
}
}
wm += 2;
}
if(x>114){x=0;y++;}
LCD_Set_Pos(x , y);
if(adder != 1)// 显示汉字
{
LCD_Set_Pos(x , y);
for(wm = 0;wm < 14;wm++)
{
LCD_WrDat(F14x16[adder]);
adder += 1;
}
LCD_Set_Pos(x,y + 1);
for(wm = 0;wm < 14;wm++)
{
LCD_WrDat(F14x16[adder]);
adder += 1;
}
}
else //显示空白字符
{
ii += 1;
LCD_Set_Pos(x,y);
for(wm = 0;wm < 16;wm++)
{
LCD_WrDat(0);
}
LCD_Set_Pos(x,y + 1);
for(wm = 0;wm < 16;wm++)
{
LCD_WrDat(0);
}
}
x += 14;
ii += 2;
}
}
//输出汉字和字符混合字符串
void LCD_Print(U8 x, U8 y, U8 ch[])
{
U8 ch2[3];
U8 ii=0;
while(ch[ii] != '\0')
{
if(ch[ii] > 127)
{
ch2[0] = ch[ii];
ch2[1] = ch[ii + 1];
ch2[2] = '\0'; //汉字为两个字节
LCD_P14x16Str(x , y, ch2); //显示汉字
x += 14;
ii += 2;
}
else
{
ch2[0] = ch[ii];
ch2[1] = '\0'; //字母占一个字节
LCD_P8x16Str(x , y , ch2); //显示字母
x += 8;
ii+= 1;
}
}
}
//==============================================================
//函数名: void Draw_BMP(U8 x,U8 y)
//功能描述:显示BMP图片128×64
//参数:起始点坐标(x,y),x的范围0~127,y为页的范围0~7
//返回:无
//==============================================================
void Draw_BMP(U8 x0,U8 y0,U8 x1,U8 y1,U8 bmp[])
{
U16 ii=0;
U8 x,y;
if(y1%8==0) y=y1/8;
else y=y1/8+1;
for(y=y0;y<=y1;y++)
{
LCD_Set_Pos(x0,y);
for(x=x0;x<x1;x++)
{
LCD_WrDat(bmp[ii++]);
}
}
}
void Draw_LQLogo(void)
{
U16 ii=0;
U8 x,y;
for(y=0;y<8;y++)
{
LCD_Set_Pos(16,y);
for(x=16;x<112;x++)
{
LCD_WrDat(longqiu96x64[ii++]);
}
}
}
void Draw_LibLogo(void)
{
U16 ii=0;
U8 x,y;
for(y=0;y<8;y++)
{
LCD_Set_Pos(34,y);
for(x=34;x<94;x++)
{
LCD_WrDat(LIBLOGO60x58[ii++]);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -