📄 lcd_dis.c
字号:
if((x/* + X_Witch*/) > Dis_X_MAX)
{
x = Dis_Zero;
if((Dis_Y_MAX - y) < Y_Witch) break;
else y += Y_Witch_cn;
}
p+=1;
}
else
{
PutChar_cn(x,y,p);
x += X_Witch_cn+1;
if((x/* + X_Witch_cn*/) > Dis_X_MAX)
{
x = Dis_Zero;
if((Dis_Y_MAX - y) < Y_Witch_cn) break;
else y += Y_Witch_cn;
}
p+=2;
}
}
}
//========================================================================
// 函数: void SetPaintMode(unsigned char Mode,unsigned char Color)
// 描述: 绘图模式设置
// 参数: Mode 绘图模式 Color 像素点的颜色,相当于前景色
// 返回: 无
// 备注: Mode无效
// 版本:
// 2007/07/19 First version
//========================================================================
void SetPaintMode(unsigned char Mode,unsigned char Color)
{
unsigned char ucTemp=0;
ucTemp = (Mode<<4)|Color;
//设置绘图模式
SPI_SSSet(0); //SS置低电平
SPI_Send(0x83); //传送指令0x83
SPI_Send(ucTemp); //选择8X16的ASCII字体,字符色为黑色
SPI_SSSet(1); //完成操作置SS高电平
}
//========================================================================
// 函数: void PutPixel(unsigned char x,unsigned char y)
// 描述: 在x、y点上绘制一个前景色的点
// 参数: x X轴坐标 y Y轴坐标
// 返回: 无
// 备注: 使用前景色
// 版本:
// 2007/07/19 First version
//========================================================================
void PutPixel(unsigned char x,unsigned char y)
{
//绘点操作
SPI_SSSet(0); //SS置低电平
SPI_Send(1); //送指令0x01
SPI_Send(x); //送第一个数据,即设置点的X轴位置
SPI_Send(y); //点的Y轴位置
SPI_SSSet(1); //完成操作置SS高电平
}
//========================================================================
// 函数: void Line(unsigned char s_x,unsigned char s_y,
// unsigned char e_x,unsigned char e_y)
// 描述: 在s_x、s_y为起始坐标,e_x、e_y为结束坐标绘制一条直线
// 参数: x X轴坐标 y Y轴坐标
// 返回: 无
// 备注: 使用前景色
// 版本:
// 2007/07/19 First version
//========================================================================
void Line(unsigned char s_x,unsigned char s_y,unsigned char e_x,unsigned char e_y)
{
//绘制直线
SPI_SSSet(0); //SS置低电平
SPI_Send(2); //送指令0x02
SPI_Send(s_x); //起点X轴坐标
SPI_Send(s_y); //起点Y轴坐标
SPI_Send(e_x); //终点X轴坐标
SPI_Send(e_y); //终点Y轴坐标
SPI_SSSet(1); //完成操作置SS高电平
}
//========================================================================
// 函数: void Circle(unsigned char x,unsigned char y,
// unsigned char r,unsigned char mode)
// 描述: 以x,y为圆心R为半径画一个圆(mode = 0) or 圆面(mode = 1)
// 参数:
// 返回: 无
// 备注: 画圆函数执行较慢,如果MCU有看门狗,请作好清狗的操作
// 版本:
// 2007/07/19 First version
//========================================================================
void Circle(unsigned char x,unsigned char y,unsigned char r,unsigned char mode)
{
SPI_SSSet(0);
if(mode)
SPI_Send(6);
else
SPI_Send(5);
SPI_Send(x);
SPI_Send(y);
SPI_Send(r);
SPI_SSSet(1);
}
//========================================================================
// 函数: void Rectangle(unsigned char left, unsigned char top, unsigned char right,
// unsigned char bottom, unsigned char mode)
// 描述: 以x,y为圆心R为半径画一个圆(mode = 0) or 圆面(mode = 1)
// 参数: left - 矩形的左上角横坐标,范围0到126
// top - 矩形的左上角纵坐标,范围0到62
// right - 矩形的右下角横坐标,范围1到127
// bottom - 矩形的右下角纵坐标,范围1到63
// Mode - 绘制模式,可以是下列数值之一:
// 0: 矩形框(空心矩形)
// 1: 矩形面(实心矩形)
// 返回: 无
// 备注: 画圆函数执行较慢,如果MCU有看门狗,请作好清狗的操作
// 版本:
// 2007/07/19 First version
//========================================================================
void Rectangle(unsigned char left, unsigned char top, unsigned char right,
unsigned char bottom, unsigned char mode)
{
SPI_SSSet(0);
if(mode)
SPI_Send(4);
else
SPI_Send(3);
SPI_Send(left);
SPI_Send(top);
SPI_Send(right);
SPI_Send(bottom);
SPI_SSSet(1);
}
//========================================================================
// 函数: void ClrScreen(void)
// 描述: 清屏函数,执行全屏幕清除
// 参数:
// 返回: 无
// 备注:
// 版本:
// 2007/07/19 First version
//========================================================================
void ClrScreen(void)
{
//清屏操作
SPI_SSSet(0); //SS置低电平
SPI_Send(0x80); //送指令0x80
SPI_SSSet(1); //完成操作置SS高电平
}
//========================================================================
// 函数: void PutBitmap(unsigned char x,unsigned char y,unsigned char width,
// unsigned char high,unsigned char *p)
// 描述: 在x、y为起始坐标显示一个单色位图
// 参数: x X轴坐标 y Y轴坐标
// width 位图的宽度
// high 位图的高度
// p 要显示的位图的字模首地址
// 返回: 无
// 备注: 无
// 版本:
// 2008/11/27 First version
//========================================================================
void PutBitmap(unsigned char x,unsigned char y,unsigned char width,unsigned char high,unsigned char *p)
{
unsigned short Dat_Num;
//unsigned short i;
unsigned char ucTemp=0;
SPI_SSSet(0); //SS置低电平
SPI_Send(0x0e);
SPI_Send(x);
SPI_Send(y);
SPI_Send(width);
SPI_Send(high);
width = width+0x07;
Dat_Num = (width>>3)*high;
while(Dat_Num--)
{
ucTemp++;
SPI_Send(*p);
if(ucTemp>250) //如果改换别的MCU时,这里可能需要适当的调整
{
TimeDelay(90); //以及此处,以保证前面传送到LCD模块中的数据已被处理完
ucTemp = 0;
}
p++;
}
SPI_SSSet(1); //完成操作置SS高电平
}
//========================================================================
// 函数: void ShowChar(unsigned char x,unsigned char y,unsigned char Num,unsigned char type)
// 描述: 在x、y的位置为显示区域的左上角,显示一个unsigned char型数
// 参数: x X轴坐标 y Y轴坐标 Num 要显示的8位宽度的数据 type 显示特性(0,1,2)
// 返回: 无
// 备注:
// 版本:
// 2008/11/27 First version
//========================================================================
void ShowChar(unsigned char x,unsigned char y,unsigned char a,unsigned char type)
{
//显示ASCII字符
SPI_SSSet(0); //SS置低电平
SPI_Send(11); //传送指令0x0B
SPI_Send(x); //要显示字符的左上角的X轴位置
SPI_Send(y); //要显示字符的左上角的Y轴位置
SPI_Send(a); //要显示的数据
SPI_Send(type);
SPI_SSSet(1); //完成操作置SS高电平
}
//========================================================================
// 函数: void ShowShort(unsigned char x,unsigned char y,unsigned short Num,unsigned char type)
// 描述: 在x、y的位置为显示区域的左上角,显示一个unsigned short型数(16位宽度)
// 参数: x X轴坐标 y Y轴坐标 Num 要显示的16位宽度的数据 type 显示特性(0,1,2)
// 返回: 无
// 备注:
// 版本:
// 2008/11/27 First version
//========================================================================
void ShowShort(unsigned char x,unsigned char y,unsigned short a,unsigned char type)
{
//显示ASCII字符
SPI_SSSet(0); //SS置低电平
SPI_Send(12); //传送指令0x0C
SPI_Send(x); //要显示字符的左上角的X轴位置
SPI_Send(y); //要显示字符的左上角的Y轴位置
SPI_Send((unsigned char)(a>>8));
SPI_Send((unsigned char)a);
SPI_Send(type); //要显示字符ASCII字符的ASCII码值
SPI_SSSet(1); //完成操作置SS高电平
}
//========================================================================
// 函数: void SetBackLight(unsigned char Deg)
// 描述: 设置背光亮度等级
// 参数: Grade 0~127的等级
// 返回: 无
// 备注:
// 版本:
// 2008/11/27 First version
//========================================================================
void SetBackLight(unsigned char Deg)
{
//显示ASCII字符
SPI_SSSet(0); //SS置低电平
SPI_Send(0x8a); //传送指令0x07
SPI_Send(Deg); //要显示字符的左上角的X轴位置
SPI_SSSet(1); //完成操作置SS高电平
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -