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

📄 display.c

📁 好东西与大家分享……关于单片机驱动微型打印机和液晶屏的程序!!已经测试过!绝对没有问题
💻 C
字号:
#include <head.h> // SFR declarations
void delay(unsigned int num)
{
	while(num--)
	{
		;
	}

}
void lw(unsigned char x,unsigned char y,unsigned char dd)
{
	if (x<61)
		{	e1=e2=1;
			di=rw=0;P1=0xb8|y;e1=1;delay(VA);e1=0;delay(VA);
			e1=e2=1;
			di=rw=0;P1=0x00|x;e1=1;delay(VA);e1=0;delay(VA);
			e1=e2=1;
			di=1;rw=0;P1=dd;e1=1;delay(VA);e1=0;delay(VA);
			e1=e2=1;
		}
	 else
		{
			x=x-61;e1=e2=1;
			di=rw=0;P1=0xb8|y;e2=1;delay(VA);e2=0;delay(VA);
			e1=e2=1;
			di=rw=0;P1=0x00|x;e2=1;delay(VA);e2=0;delay(VA);
			e1=e2=1;
	 		di=1;rw=0;P1=dd;e2=1;delay(VA);e2=0;delay(VA);
	 		e1=e2=1;
		}
	P1=0xff;
}
void clear_screen(unsigned char Row)
{
	unsigned char x,y;
	for (y=0;y<Row;y++)
	{
		for (x=0;x<122;x++)
		       lw(x,y,0x00);
	}
}
void ClearModTime(void)
{
	unsigned char x;
	for (x=0x36;x<122;x++)
		lw(x,2,0x00);
}
void write_chinese(UCHAR x,UCHAR y,UCHAR width,UCHAR code*array)
{
	unsigned char j,dd;
    switch(width)
	{
		case 0x02:
			for(j=0;j<width*2;j++)
			{
				dd=array[j];
				lw(x+j,y,dd);
			}
			break;
		case 0x04:
			for(j=0;j<width*2;j++)
			{
				dd=array[j];
				if(j<width) lw(x+j,y,dd);
				else     lw(x+j-width,y+1,dd);
			}
			break;
		case 0x08:
			for(j=0;j<width*2;j++)
			{
				dd=array[j];
				if(j<width) lw(x+j,y,dd);
				else     lw(x+j-width,y+1,dd);
			}
			break;
		case 0x0e:
			for(j=0;j<width*2;j++)
			{
				dd=array[j];
				if(j<width) lw(x+j,y,dd);
				else     lw(x+j-width,y+1,dd);
			}
			break;
		default:
			for(j=0;j<0x20;j++)
			{
				dd=array[j];
				if(j<0x10) lw(x+j,y,dd);
				else     lw(x+j-0x10,y+1,dd);
			}
			break;
	}
}
unsigned char code *number(unsigned char t)
{
	unsigned char code*string;
	switch(t)
	{
		case 0: string=num0;break;
		case 1: string=num1;break;
		case 2: string=num2;break;
		case 3: string=num3;break;
		case 4: string=num4;break;
		case 5: string=num5;break;
		case 6: string=num6;break;
		case 7: string=num7;break;
		case 8: string=num8;break;
		case 9: string=num9;break;
		default: string=num0;break;
	}
	return(string);
}
unsigned char code*SNumber(unsigned char t)
{
	unsigned char *string;
	switch(t)
	{
		case 0: string=snum0;break;
		case 1: string=snum1;break;
		case 2: string=snum2;break;
		case 3: string=snum3;break;
		case 4: string=snum4;break;
		case 5: string=snum5;break;
		case 6: string=snum6;break;
		case 7: string=snum7;break;
		case 8: string=snum8;break;
		case 9: string=snum9;break;
		default: string=snum0;break;
	}
	return(string);
}
void send_command(unsigned char cmd)
{
	e1=e2=1;
	delay(VA);
	e1=e2=0;
	di=rw=0;
	P1=cmd;
	e1=e2=1;
	delay(VA);
	e1=e2=0;
	delay(VA);
	P1=0xff;
	e1=e2=1;
}
unsigned char read(void)
{
	unsigned char status;
	e1=e2=1;
	delay(VA);
	e1=e2=0;
	di=0;rw=1;
	delay(VA);
	e1=e2=1;
	delay(VA);
	e1=e2=0;
	status=P1;
	delay(VA);
	e1=e2=1;
	return(status);
}
void lcd_init(void)
{
	UCHAR   x;
	rst = 1;
	delay(VA);
	rst = 0;
	delay(VA);
	x=read();
	rst = 1;
	x=read();
//	delay(50000);

	send_command(0xae);
	send_command(0xc0);
	send_command(0xa4);
	send_command(0x00);
	send_command(0xbb);
	send_command(0xa9);
	send_command(0xa0);
	send_command(0xee);
	send_command(0xaf);
	delay(60000);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -