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

📄 display.bak

📁 液晶屏的单片机demo程序
💻 BAK
字号:
#include <reg52.h> // SFR declarations
#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(2);e1=0;delay(2);
			e1=e2=1;
			di=rw=0;P1=0x00|x;e1=1;delay(2);e1=0;delay(2);
			e1=e2=1;
			di=1;rw=0;P1=dd;e1=1;delay(2);e1=0;delay(2);
			e1=e2=1;
		}
	 else
		{
			x=x-61;e1=e2=1;
			di=rw=0;P1=0xb8|y;e2=1;delay(2);e2=0;delay(2);
			e1=e2=1;
			di=rw=0;P1=0x00|x;e2=1;delay(2);e2=0;delay(2);
			e1=e2=1;
	 		di=1;rw=0;P1=dd;e2=1;delay(2);e2=0;delay(2);
	 		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 write_chinese(UCHAR x,UCHAR y,UCHAR width,UCHAR code*array)
{
	unsigned char j,dd;
/*
	for(j=0;j<32;j++)
	{
		dd= array[j];
		if(j<16) lw(x+j,y,dd);
		else     lw(x+j-16,y+1,dd);
	}
*/
        switch(width)
	{
		case 0x04:
			for(j=0;j<width;j++)
			{
				dd=array[j];
				lw(x+j,y,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;
		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);
}
void send_command(unsigned char cmd)
{
        e1=e2=1;
        delay(2);
	e1=e2=0;
	di=rw=0;
	P1=cmd;
	e1=e2=1;
	delay(2);
	e1=e2=0;
	delay(2);
	P1=0xff;
	e1=e2=1;
}
unsigned char read(void)
{
        unsigned char status;
        e1=e2=1;
        delay(2);
	e1=e2=0;
        di=0;rw=1;
        delay(2);
        e1=e2=1;
        delay(2);
        e1=e2=0;
        status=P1;
        delay(2);
        e1=e2=1;
        return(status);
}
void lcd_init(void)
{
	rst = 1;
        delay(2);
        rst = 0;
        delay(2);
        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);
/*
	for (y=0;y<4;y++)
	{
		for (x=0;x<122;x++) lw(x,y,0);
	}
*/
	send_command(0xaf);
        delay(60000);
}

⌨️ 快捷键说明

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