t.c

来自「LCD1602.rar」· C语言 代码 · 共 452 行 · 第 1/2 页

C
452
字号
      0xF8,0x29,0xD0,0x00,0x18,0x00,0x3F,0x00,
      0x03,0x00,0x0F,0x10,0x40,0x00,0x00,0x00,
      0xBE,0x73,0x35,0x45,0x46,0x00,0x00,0x00,
      0x1C,0x00,0x02,0x0F,0x90,0x00,0x00,0x00,
      0x6C,0x33,0x20,0x00,0x01,0xC0,0x00,0x01,
      0xFF,0x80,0x02,0x08,0x80,0x00,0x00,0x00,
      0xBF,0xFC,0xD1,0x11,0x10,0x3D,0xFC,0x3F,
      0x00,0x60,0x02,0x08,0x50,0x00,0x00,0x00,
      0x3F,0xFC,0xC0,0x00,0x00,0x06,0x03,0xC8,
      0x00,0x1C,0x01,0x18,0x20,0x00,0x00,0x00,
      0x2E,0x33,0x04,0x44,0x44,0x18,0x00,0x70,
      0x00,0x03,0xC1,0xE8,0x20,0x00,0x00,0x00,
      0x3F,0x73,0x00,0x00,0x00,0x60,0x00,0x20,
      0x00,0x00,0x39,0x08,0x10,0x00,0x00,0x00,
      0x3F,0x6F,0xD0,0x10,0x11,0x80,0x00,0x40,
      0x00,0x00,0x06,0x04,0x08,0x00,0x00,0x00,
      0x3F,0x5F,0xC0,0x00,0x06,0x20,0x00,0x40,
      0x00,0x20,0x01,0x04,0x00,0x00,0x00,0x00,
      0xEF,0x3F,0xF7,0xFF,0xFF,0xF0,0x00,0x40,
      0x00,0x7F,0xFF,0xFF,0xF8,0x00,0x00,0x00,
      0x17,0x7F,0x80,0x00,0x00,0x0C,0x00,0x40,
      0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
      0x1E,0x3F,0x80,0x00,0x00,0x03,0x81,0xA0,
      0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x0F,0xFF,0x00,0x00,0x00,0x00,0x7E,0x1F,
      0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};


void delay(int c)
	{
	int i,j;
	for(i=0;i<c;i++)
		for(j=0;j<1000;j++)
			;
	}

char rd_state()	//读状态
	{
	char temp;
	P1=0xff;
	cd=1;
	rd=0;
	temp=P1;
	rd=1;
	return(temp);
	}

void rd_enable()	//等待可读写
	{
	char temp;
	temp=rd_state();
	while((temp&0x03)!=0x03)
		temp=rd_state();
	}

void rd_auto()	//等待自动读写
	{
	char temp;
	temp=rd_state();
	while((temp&0x04)!=0x04)
		temp=rd_state();
	}

void wr_auto()	//等待自动写
	{
	char temp;
	temp=rd_state();
	while((temp&0x08)!=0x08)
		temp=rd_state();
	}

/*写命令、写数据命令*********************
数据1、数据2、命令、参数个数*************
*****************************************/
void wr_data(char data1,char data2,char cmd,char num)
	{
	char temp;
	temp=num;
	if(temp==2)
		{
		rd_enable();
		cd=0;
		P1=data1;
		wr=0;
		wr=1;
		}
	 if(temp==2||temp==1)
	 	{
		rd_enable();
		cd=0;
		P1=data2;
		wr=0;
		wr=1;
		}
	rd_enable();
	cd=1;
	P1=cmd;
	wr=0;
	wr=1;
	}

char rd_data()	//读数据
	{
	char temp;
	rd_enable();
	cd=0;
	P1=0xff;
	rd=0;
	temp=P1;
	rd=1;
	return(temp);
	}

void lcd_init()
	{
	unsigned char temp=0,j;
	unsigned int i;
	wr_data(0x00,0x00,0x40,0x02);	//设置文本显示首地址
	wr_data(0x10,0x00,0x41,0x02);	//设置文本显示宽度
	wr_data(0x80,0x00,0x42,0x02);	//设置图形显示首地址
	wr_data(0x10,0x00,0x43,0x02);	//设置图形显示宽度
	wr_data(0x00,0x00,0xa7,0x00);	//光标形状设置
	wr_data(0x00,0x00,0x80,0x00);	//显示方式设置,“或
	wr_data(0x00,0x00,0x9c,0x00);	//显示开关设置
	wr_data(0x00,0x00,0x24,0x02);	//设置写地址
	wr_data(0x00,0x00,0xb0,0x00);	//设置自动写方式
	for(i=0;i<128;i++)
		{
		wr_auto();
		cd=0;
		P1=0;
		wr=0;
		wr=1;
		temp++;
		P1=temp;
		}
	wr_data(0x00,0x00,0xb2,0x00);	//自动写结束
	wr_data(0x80,0x00,0x24,0x02);	//设置写地址
	wr_data(0x00,0x00,0xb0,0x00);	//设置自动写方式
	for(j=0;j<4;j++)
	for(i=0;i<256;i++)
		{
		wr_auto();
		cd=0;
		P1=0;
		wr=0;
		wr=1;
		}
	wr_data(0x00,0x00,0xb2,0x00);	//自动写结束
	}

void main()
	{
	unsigned char row=0,j;
	unsigned int temp=0,i;
	delay(50);
	P3|=0x07;
	lcd_init();
	while(1){
	temp=0;
	wr_data(0x80,0x00,0x24,0x02);	//设置写地址
	wr_data(0x00,0x00,0xb0,0x00);	//设置自动写方式
	for(j=0;j<4;j++)
	for(i=0;i<256;i++)
		{
		wr_auto();
		cd=0;
		P1=bmp[temp];
		wr=0;
		wr=1;
		temp++;
		}
	wr_data(0x00,0x00,0xb2,0x00);	//自动写结束
	delay(200);
	temp=0;
	wr_data(0x80,0x00,0x24,0x02);	//设置写地址
	wr_data(0x00,0x00,0xb0,0x00);	//设置自动写方式
	for(j=0;j<4;j++)
	for(i=0;i<256;i++)
		{
		wr_auto();
		cd=0;
		P1=bmp1[temp];
		wr=0;
		wr=1;
		temp++;
		}
	wr_data(0x00,0x00,0xb2,0x00);	//自动写结束
	delay(200);
	}}

⌨️ 快捷键说明

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