📄 lcd.c
字号:
{
if(ch == font8[i].fontcode)
{
idx = i;
break;
}
}
if(idx == 0xff)
return;
setcursordirection(CURSORDOWN);
setcursoraddr(addr);
writecmd(0x42);
for(j=0;j<8;j++)
{
writedat(font8[idx].fontdat[j]);
}
}
*/
void printchar16(unsigned short addr,unsigned short ch)
{
unsigned char i,j,idx,c1,c2;
unsigned char lo,hi;
idx = 0xff;
lo = ch&0xff;
hi = ch>>8;
for(i=0;i<sizeof(font16)/sizeof(Font16);i++)
{
c1 = font16[i].fontcode[0];
c2 = font16[i].fontcode[1];
if(c2 == lo && c1 == hi)
{
idx = i;
break;
}
}
if(idx == 0xff)
return;
setcursordirection(CURSORDOWN);
for(i=0;i<2;i++)
{
setcursoraddr(addr+i);
writecmd(0x42);
for(j=i;j<32;j+=2)
{
writedat(font16[idx].fontdat[j]);
}
}
}
void printchar16x(unsigned short addr,unsigned char ch)
{
unsigned char i,j,idx;
for(i=0;i<sizeof(font16x)/sizeof(Font16X);i++)
{
if(ch == font16x[i].fontcode)
{
idx = i;
break;
}
}
setcursordirection(CURSORDOWN);
for(i=0;i<2;i++)
{
setcursoraddr(addr+i);
writecmd(0x42);
for(j=i;j<64;j+=2)
{
writedat(font16x[idx].fontdat[j]);
}
}
}
void printchar32(unsigned short addr,unsigned short ch)
{
unsigned char i,j,idx,c1,c2;
unsigned char lo,hi;
idx = 0xff;
lo = ch&0xff;
hi = ch>>8;
for(i=0;i<sizeof(font32)/sizeof(Font32);i++)
{
c1 = font32[i].fontcode[0];
c2 = font32[i].fontcode[1];
if(c2 == lo && c1 == hi)
{
idx = i;
break;
}
}
if(idx == 0xff)
return;
setcursordirection(CURSORDOWN);
for(i=0;i<4;i++)
{
setcursoraddr(addr+i);
writecmd(0x42);
for(j=i;j<128;j+=4)
{
writedat(font32[idx].fontdat[j]);
}
}
}
/*
void printstring8(unsigned char area,unsigned char x,unsigned char y,unsigned char *pstr)
{
unsigned char c;
unsigned short addr;
if(pstr == 0 || area > 3)
return;
addr = x+y*320+area*0x4000;
while(c = *pstr++)
{
printchar8(addr++,c);
}
}
*/
void printstring16(unsigned char area,unsigned char x,unsigned char y,unsigned char *pstr)
{
unsigned char c;
unsigned short tmp;
unsigned short addr;
if(pstr == 0 || area > 3)
return;
addr = x+y*320+area*0x4000;
while(c = *pstr++)
{
tmp = c<<8;
if(c&0x80)
{
tmp |= *pstr++;
}
printchar16(addr,tmp);
addr += 2;
}
}
void printstring16x(unsigned char area,unsigned char x,unsigned char y,unsigned char *pstr)
{
unsigned char c;
unsigned short addr;
if(pstr == 0 || area > 3)
return;
addr = x+y*320+area*0x4000;
while(c = *pstr++)
{
printchar16x(addr,c);
addr += 3;
}
}
void printstring32(unsigned char area,unsigned char x,unsigned char y,unsigned char *pstr)
{
unsigned char c;
unsigned short tmp;
unsigned short addr;
if(pstr == 0 || area > 3)
return;
addr = x+y*320+area*0x4000;
while(c = *pstr++)
{
tmp = c<<8;
if(c&0x80)
{
tmp |= *pstr++;
}
printchar32(addr,tmp);
addr += 4;
}
}
/*
static uchar cursorx,cursory;
void clearcursor()
{
unsigned short addr,i;
setcursordirection(CURSORDOWN);
addr = 0x4000+cursorx+cursory*320;
setcursoraddr(addr);
writecmd(0x42);
for(i=0;i<8;i++)
writedat(0x00);
setcursoraddr(addr+1);
writecmd(0x42);
for(i=0;i<8;i++)
writedat(0x00);
}
void setcursorpos(uchar x,uchar y)
{
unsigned short addr,i;
clearcursor();
cursorx = x;
cursory = y;
setcursordirection(CURSORDOWN);
addr = 0x4000+x+y*320;
setcursoraddr(addr);
writecmd(0x42);
for(i=0;i<8;i++)
writedat(0x1f);
setcursoraddr(addr+1);
writecmd(0x42);
for(i=0;i<8;i++)
writedat(0xf8);
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -