⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd.c

📁 本人开发的测量水的浊度的仪器
💻 C
📖 第 1 页 / 共 3 页
字号:
	{
		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 + -