📄 use_12864_driver.c
字号:
WRITE_12864_RESET_HIGH;
//启动LCD
WRITE_12864_CS1_HIGH;
WRITE_12864_CS2_HIGH;
//全屏设置
Write_CMD_12864(_12864_PAGE+0);
//设置页面
Write_CMD_12864( _12864_START_ROW+0);
//设置画图起始行
Write_CMD_12864(_12864_COL+0);
//设置画图起始列(自动递增换列)
Write_CMD_12864(_12864_ON);
//启动显示
}
/****************************************
* 函数说明: 清屏函数 *
* 输入 :无 *
* 输出 :无 *
* 调用函数: Write_CMD_12864() *
* Write_Data_12864() *
****************************************/
void Clear_LCD_12864(void)
{
UINT8 chx = 0,chy = 0;
WRITE_12864_CS1_HIGH;
WRITE_12864_CS2_HIGH;
//全屏设置
Write_CMD_12864(_12864_START_ROW+0);
//设置画图起始行
for (chx = 0;chx < 8;chx++)
{
Write_CMD_12864(_12864_PAGE+chx);
//设置页面
Write_CMD_12864(_12864_COL);
//设置画图起始列(自动递增换列)
for (chy = 0;chy < 64;chy++)
{
Write_Data_12864(_12864_CLEAR);
//清屏
}
}
for (chy = 0;chy < 8;chy++)
{
for (chx = 0;chx < 128;chx++)
{
LCD_Buffer[chy][chx] = 0;
}
}
Write_CMD_12864(_12864_ON);
}
/****************************************
* 函数说明: 画点函数 *
* 输入 :点坐标(x,y) *
* 输出 :无 *
* 调用函数: Write_CMD_12864() *
* Write_Data_12864() *
****************************************/
void Draw_Dot_12864(UINT8 chx,UINT8 chy)
{
UINT8 chPage_index = 0; //页面偏移
UINT8 chValue = 0; //数据值
////////////////
UINT8 chx_Temp = chx;
///////////////
/////////////////
if (chx > 127 || chy > 63)
{
return ;
}
/////////////////
if (chx >= 64) //点在右屏设置
{
chx = chx-64;
WRITE_12864_CS1_HIGH;
WRITE_12864_CS2_LOW;
}
else //点在左屏设置
{
WRITE_12864_CS2_HIGH;
WRITE_12864_CS1_LOW;
}
chValue |= BIT(7-(chy&(BIT(3)-1))); //计算数据,添加点
chPage_index = 7-(chy>>3); //计算数据所在页面
LCD_Buffer[chPage_index][chx_Temp] |= chValue;
chValue = LCD_Buffer[chPage_index][chx_Temp];
Write_CMD_12864(_12864_PAGE+chPage_index);//设置页面
Write_CMD_12864(_12864_COL+chx);
Write_Data_12864(chValue); //写数据
Write_CMD_12864(_12864_ON); //显示
}
/*
void Draw_Dot_12864(UINT8 chx,UINT8 chy)
{
UINT8 chPage_index = 0;
//页面偏移
UINT8 chValue = 0;
//数据值
if ( chx > 127 || chy > 63)
{
return ;
}
if (chx >= 64)
//点在右屏设置
{
chx = chx-64;
WRITE_12864_CS1_HIGH;
WRITE_12864_CS2_LOW;
}
else
//点在左屏设置
{
WRITE_12864_CS2_HIGH;
WRITE_12864_CS1_LOW;
}
chValue |= BIT(7-(chy&(BIT(3)-1)));
//计算数据,添加点
chPage_index = 7-(chy>>3);
//计算数据所在页面
LCD_Buffer[chPage_index][chx] |= chValue;
chValue = LCD_Buffer[chPage_index][chx];
//添加已有点
Write_CMD_12864(_12864_PAGE+chPage_index);
//设置页面
Write_CMD_12864(_12864_COL+chx);
Write_Data_12864(chValue);
//写数据
Write_CMD_12864(_12864_ON);
//显示
}
*/
/****************************************
* 函数说明: 清点函数 *
* 输入 :点坐标(x,y) *
* 输出 :无 *
* 调用函数: Write_CMD_12864() *
* Write_Data_12864() *
****************************************/
void Clear_Dot_12864(UINT8 chx,UINT8 chy)
{
UINT8 chPage_index = 0;
//页面偏移
UINT8 chValue = 0;
//数据值
UINT8 chValue_Clear = 0;
////////////////
UINT8 chx_Temp = chx;
///////////////
if (chx > 127 || chy > 63)
{
return ;
}
if (chx >= 64)
//点在右屏设置
{
chx = chx-64;
WRITE_12864_CS1_HIGH;
WRITE_12864_CS2_LOW;
}
else
//点在左屏设置
{
WRITE_12864_CS2_HIGH;
WRITE_12864_CS1_LOW;
}
chValue_Clear = BIT(7-(chy&(BIT(3)-1)));
//计算数据,需要清除的目标点位置
chPage_index = 7-(chy>>3);
//计算数据所在页面
LCD_Buffer[chPage_index][chx_Temp] &= ~chValue_Clear;
chValue = LCD_Buffer[chPage_index][chx_Temp];
//清除目标点
Write_CMD_12864(_12864_PAGE+chPage_index);
//设置页面
Write_CMD_12864(_12864_COL+chx);
Write_Data_12864(chValue);
//写数据
Write_CMD_12864(_12864_ON);
//显示
}
/****************************************
* 函数说明: 清点函数 *
* 输入 :点坐标(x,y) *
* 输出 :无 *
* 调用函数: Write_CMD_12864() *
* Write_Data_12864() *
****************************************/
/*
void Clear_Dot_12864(UINT8 chx,UINT8 chy)
{
UINT8 chx_Temp = (7-(chy/8));
UINT8 chy_Temp = chx;
UINT8 chPage_index = 0; //页面偏移
UINT8 chValue = 0; //数据值
UINT8 chValue_Clear = 0;
if (chx > 127 || chy > 63)
{
return ;
}
if (chx >= 64) //点在右屏设置
{
chx = chx-64;
WRITE_12864_CS1_HIGH;
WRITE_12864_CS2_LOW;
}
else //点在左屏设置
{
WRITE_12864_CS2_HIGH;
WRITE_12864_CS1_LOW;
}
chValue_Clear = BIT(7-(chy&(BIT(3)-1)));//计算数据,需要清除的目标点位置
chPage_index = 7-(chy>>3); //计算数据所在页面
LCD_Buffer[chPage_index][chy_Temp] &= ~chValue_Clear;
chValue = LCD_Buffer[chPage_index][chy_Temp];
Write_CMD_12864(_12864_PAGE+chPage_index);//设置页面
Write_CMD_12864(_12864_COL+chx);
Write_CMD_12864(chValue); //写数据
Write_CMD_12864(_12864_ON); //显示
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -