📄 12864diver.c
字号:
WriteLCD(COMMAND , 0x00);//显示低4位列地址
delay_us(100);
WriteLCD(COMMAND , 0xAF);//显示开
WriteLCD(COMMAND , 0x81);
WriteLCD(COMMAND , 0x1b);
delay_us(100);
SetContrast(iIntRegValuea,ContrastValue);
ClearScreen();
}
/*******************************************************************************
//???:void Print6(INT8U xx, INT8U yy, INT8U ch1[], INT8U yn)
//??:??显示6*8字符串
//??:xx ,yy 坐标,ch1待显示字符串,yn反显
//??:?
*******************************************************************************
void Print6(INT8U xx, INT8U yy, INT8U ch1[], INT8U yn)
{
INT8U ii = 0;
INT8U bb = 0;
unsigned int index = 0 ;
while(ch1[bb] != '\0')
{
index = (unsigned int)(ch1[bb] - 0x20);
index = (unsigned int)index*6;
for(ii=0;ii<6;ii++)
{
SetRamAddr(xx , yy);
if(yn == 0)
{
WriteLCD(DATA, ~FontSystem6x8[index]);
}
else
{
WriteLCD(DATA, FontSystem6x8[index]);
}
index += 1;
yy += 1;
}
bb += 1;
}
}
*/
//*******************************************************************************
//???:void Printn8(INT8U xx ,INT8U yy , INT32U no,INT8U yn,INT8U le)
//??:显示8*8一个无符号数据
//??:xx , yy屏幕当中的位置,no待显数据 yn=0正常显示 yn=1反黑显示 le有效位
//??:?
//*******************************************************************************
void Printn8(INT8U xx ,INT8U yy , INT32U no,INT8U yn,INT8U le)
{
INT8U ch2[6];
INT8U ii;
for(ii = 1 ; ii <= le ;){
ch2[le - ii] = no % 10 + 0x30;
no /= 10;
ii += 1;
}
ch2[le] = '\0';
Print8(xx ,yy ,ch2 ,yn);
}
/*******************************************************************************
//???:void Print8(INT16U y,INT16U x, INT8U ch,INT16U yn)
//??:显示8*8字符
//??:xx ,yy 坐标,ch待显示字符,yn是否反黑
//??:?
*******************************************************************************
void PrintCh8(INT16U y,INT16U x, INT8U ch,INT16U yn)
{
INT8U wm;
INT16U adder;
adder = (ch - 0x20) * 16;
for(wm = 0;wm < 8;wm++)
{
SetRamAddr(y , x);
if(yn == 0)
{
WriteLCD(DATA, ~Font8X8[adder]);//调用字符库
}
else
{
WriteLCD(DATA, Font8X8[adder]);
}
adder += 1;
x += 1;
}
y += 1;
x -= 8;
for(wm = 0;wm < 8;wm++)
{
SetRamAddr(y , x);
if(yn == 0)
{
WriteLCD(DATA, ~Font8X8[adder]);
}
else
{
WriteLCD(DATA, Font8X8[adder]);
}
adder += 1;
x += 1;
}
}
*/
/*******************************************************************************
//???:void Print8(INT16U y,INT16U x, INT8U ch[],INT16U yn)
//??:显示8*8字符串
//??:xx ,yy 坐标,ch1待显示的字符串,yn是否反黑
//??:?
********************************************************************************/
void Print8(INT16U y,INT16U x, INT8U ch[],INT16U yn)
{
INT8U wm ,ii = 0;
INT16U adder;
while(ch[ii] != '\0')
{
adder = (ch[ii] - 0x20) * 16;//字符的ASCII码
for(wm = 0;wm < 8;wm++)
{
SetRamAddr(y , x);
if(yn == 0)
{
WriteLCD(DATA, ~Font8X8[adder]);
}
else
{
WriteLCD(DATA, Font8X8[adder]);
}
adder += 1;
x += 1;
}
y += 1;
x -= 8;
for(wm = 0;wm < 8;wm++)
{
SetRamAddr(y , x);
if(yn == 0)
{
WriteLCD(DATA, ~Font8X8[adder]);
}
else
{
WriteLCD(DATA, Font8X8[adder]);
}
adder += 1;
x += 1;
}
ii += 1;
y -= 1;
}
}
/*******************************************************************************
//???:void Print16(INT16U y,INT16U x,INT8U ch[],INT16U yn)
//??:显示汉字
//??:x ,y ??,ch[]待显示的汉字,yn是否反黑
//??:?
********************************************************************************
void Print16(INT16U y,INT16U x,INT8U ch[],INT16U yn)
{
INT8U wm ,ii = 0;
INT16U adder;
wm = 0;
adder = 1;
while(FontNew8X16_Index[wm] > 128)
{
if(FontNew8X16_Index[wm] == ch[ii])
{
if(FontNew8X16_Index[wm + 1] == ch[ii + 1])
{
adder = wm * 14;
break;
}
}
wm += 2; //找到汉字在索引中的位置
}
SetRamAddr(y , x);
if(adder != 1) //找到汉字,显示出来
{
for(wm = 0;wm < 14;wm++)
{
SetRamAddr(y , x);
if(yn == 0)
{
WriteLCD(DATA, ~FontNew16X16[adder]);
}
else
{
WriteLCD(DATA, FontNew16X16[adder]);
}
adder += 1;
x += 1;
}
for(wm = 0;wm < 2;wm++)
{
SetRamAddr(y , x);
if(yn == 0)
{
WriteLCD(DATA, 0xff);
}
else
{
WriteLCD(DATA, 0x00);
}
x += 1;
}
y += 1;
x -=16;
for(wm = 0;wm < 14;wm++)
{
SetRamAddr(y , x);
if(yn == 0)
{
WriteLCD(DATA, ~FontNew16X16[adder]);
}
else
{
WriteLCD(DATA, FontNew16X16[adder]);
}
adder += 1;
x += 1;
}
for(wm = 0;wm < 2;wm++)
{
SetRamAddr(y , x);
if(yn == 0)
{
WriteLCD(DATA, 0xff);
}
else
{
WriteLCD(DATA, 0x00);
}
x += 1;
}
}
else //找不到显示空格
{
ii += 1;
for(wm = 0;wm < 16;wm++)
{
SetRamAddr(y , x);
if(yn == 0)
{
WriteLCD(DATA, 0xff);
}
else
{
WriteLCD(DATA, 0x00);
}
x += 1;
}
y += 1;
x -= 16;
for(wm = 0;wm < 16;wm++)
{
SetRamAddr(y , x);
if(yn == 0)
{
WriteLCD(DATA, 0xff);
}
else
{
WriteLCD(DATA, 0x00);
}
x += 1;
}
}
}*/
/*******************************************************************************
//???:void Print(INT8U y, INT8U x, INT8U ch[], INT16U yn)
//??:实现汉字及字母混合显示
//??:x ,y 坐标,ch[]带显示的汉字或字母,yn是否反黑
//??:?
*******************************************************************************
void Print(INT8U y, INT8U x, INT8U ch[], INT16U yn)
{
INT8U ch2[3];
INT8U ii;
ii = 0;
while(ch[ii] != '\0')
{
if(ch[ii] > 128)
{
ch2[0] = ch[ii];
ch2[1] = ch[ii + 1];
ch2[2] = '\0'; //汉字为两个字节
//Print16(y , x , ch2 , yn); //显示汉字
x += 16;
ii += 2;
}
else
{
ch2[0] = ch[ii];
ch2[1] = '\0'; //字母占一个字节
Print8(y , x , ch2 , yn); //显示字母
x += 8;
ii += 1;
}
}
}
*/
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -