1602液晶

1602 汉英显示

#include <reg51.h>

#define uint unsigned int
#define uchar unsigned char
#define xchar unsigned char code

sbit RST = P3^3;
sbit A0 = P3^5;
sbit E1 = P3^6;
sbit E2 = P3^4;
//sbit RRW = P3^4;
sbit BF_12232 = ACC^7;

xchar picture[]={

/– 调入了一幅图像:C:\Users\Administrator\Desktop\未标题-1.bmp –/

0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x70,0xF0,0xE0,0xE0,0xC0,0x00,0x00,0x60,0xE0,
0xE3,0xFF,0xFF,0xFF,0xFC,0xF8,0xD0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0xF8,0xF8,0xF0,0xFC,0xFC,0xFC,0xDC,0xC0,
0xC0,0xE0,0xE0,0xE0,0xE0,0xE0,0x70,0x70,0x78,0x38,0xF8,0xF8,0xF0,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0xF0,0xF0,0xF0,0xE0,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,0x40,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0x70,
0xF0,0xF0,0xF0,0xF0,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x38,
0x38,0x38,0xB8,0xF1,0xF1,0xF0,0x70,0xF2,0xFF,0xBF,0xFF,0xFF,0xFF,0xFF,0xFD,0xFD,
0xFC,0xFC,0xDC,0x1C,0x1C,0x1C,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
0x73,0xF7,0xFF,0xFF,0xFF,0xFB,0xD9,0xC9,0x1D,0x3D,0xF9,0xF1,0xFF,0xFF,0xFF,0xFF,
0x78,0x70,0x60,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x3E,
0xFE,0xFC,0xFC,0xDC,0xFF,0xFF,0xFF,0x7F,0x77,0xA7,0xE7,0xFF,0xFF,0x7F,0x06,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,
0xC0,0xE0,0xE0,0xE0,0xE0,0xF8,0xFC,0xFC,0xFE,0xFF,0x77,0x73,0x71,0x70,0x70,0xF0,
0xF0,0xF0,0x60,0x00,0x00,0x00,0x00,0x00,0x60,0xF0,0xF8,0xFE,0x3F,0x07,0x01,0x00,
0x00,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0xEE,0xEC,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x0E,0x0E,0x8F,0xF7,0xFF,0xFF,0x3F,0x07,0x01,
0x01,0x0D,0x0E,0xEF,0xE7,0xC3,0xFF,0xFF,0xFF,0x1F,0x3E,0x1F,0x0F,0xFF,0xFF,0xFF,
0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x1F,0x1F,0x1D,0xFF,0xFF,
0xFF,0x8E,0x07,0x07,0x0F,0x0F,0x0F,0x00,0x00,0x00,0x00,0xE0,0xF0,0xF0,0x80,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x80,0xC0,
0x80,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0F,0x1F,0x1F,0x01,0x01,
0x01,0x10,0x38,0x70,0xFF,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x10,0x1C,0x1E,0x1F,0x0F,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,
0x03,0x03,0x03,0x00,0x02,0x07,0x0F,0x1F,0x1F,0x3F,0x1F,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x07,0x07,0x07,0x07,0x07,
0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x07,0x07,0x01,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

};

xchar hanzi[]={

/– 文字: 赠 –/
/– 宋体12; 此字体下对应的点阵为:宽x高=16x16 –/
0x00,0xFE,0x02,0xFA,0x02,0xFE,0x00,0xF8,0x29,0x4E,0xF8,0x4C,0x2B,0xF8,0x00,0x00,
0x80,0x47,0x30,0x0F,0x10,0x67,0x00,0x01,0xFD,0x55,0x55,0x55,0xFD,0x01,0x00,0x00,

/– 文字: 送 –/
/– 宋体12; 此字体下对应的点阵为:宽x高=16x16 –/
0x40,0x40,0x42,0xCC,0x00,0x88,0x89,0x8E,0x88,0xF8,0x88,0x8C,0x8B,0x88,0x80,0x00,
0x00,0x40,0x20,0x1F,0x20,0x40,0x50,0x48,0x46,0x41,0x42,0x44,0x58,0x40,0x40,0x00,

/– 文字: 显 –/
/– 宋体12; 此字体下对应的点阵为:宽x高=16x16 –/
0x00,0x00,0x00,0xFE,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,0x00,0x00,
0x40,0x42,0x44,0x58,0x40,0x7F,0x40,0x40,0x40,0x7F,0x40,0x50,0x48,0x46,0x40,0x00,

/– 文字: 示 –/
/– 宋体12; 此字体下对应的点阵为:宽x高=16x16 –/
0x40,0x40,0x42,0x42,0x42,0x42,0x42,0xC2,0x42,0x42,0x42,0x42,0x42,0x40,0x40,0x00,
0x20,0x10,0x08,0x06,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x02,0x04,0x08,0x30,0x00,

/– 文字: 汉 –/
/– 宋体12; 此字体下对应的点阵为:宽x高=16x16 –/
0x10,0x60,0x02,0x0C,0xC0,0x02,0x1E,0xE2,0x02,0x02,0x02,0xE2,0x1E,0x00,0x00,0x00,
0x04,0x04,0x7C,0x03,0x80,0x80,0x40,0x20,0x13,0x0C,0x13,0x20,0x40,0x80,0x80,0x00,

/– 文字: 字 –/
/– 宋体12; 此字体下对应的点阵为:宽x高=16x16 –/
0x10,0x0C,0x04,0x24,0x24,0x24,0x25,0x26,0xA4,0x64,0x24,0x04,0x04,0x14,0x0C,0x00,
0x02,0x02,0x02,0x02,0x02,0x42,0x82,0x7F,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,

/– 文字: 液 –/
/– 宋体12; 此字体下对应的点阵为:宽x高=16x16 –/
0x10,0x60,0x02,0x8C,0x00,0x84,0xE4,0x1C,0x05,0xC6,0xBC,0x24,0x24,0xE4,0x04,0x00,
0x04,0x04,0x7E,0x01,0x00,0x00,0xFF,0x82,0x41,0x26,0x18,0x29,0x46,0x81,0x80,0x00,

/– 文字: 晶 –/
/– 宋体12; 此字体下对应的点阵为:宽x高=16x16 –/
0x00,0x00,0x00,0x00,0x7F,0x49,0x49,0x49,0x49,0x49,0x7F,0x00,0x00,0x00,0x00,0x00,
0x00,0xFF,0x49,0x49,0x49,0x49,0xFF,0x00,0xFF,0x49,0x49,0x49,0x49,0xFF,0x00,0x00,

/– 文字: 比 –/
/– 宋体12; 此字体下对应的点阵为:宽x高=16x16 –/
0x00,0x00,0xFE,0x40,0x40,0x40,0x40,0x00,0xFF,0x80,0x40,0x20,0x10,0x08,0x00,0x00,
0x00,0x00,0x7F,0x20,0x20,0x10,0x10,0x00,0x3F,0x40,0x40,0x40,0x40,0x40,0x78,0x00,

/– 文字: 1 –/
/– 宋体12; 此字体下对应的点阵为:宽x高=16x16 –/
0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/– 文字: 6 –/
/– 宋体12; 此字体下对应的点阵为:宽x高=16x16 –/
0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/– 文字: 0 –/
/– 宋体12; 此字体下对应的点阵为:宽x高=16x16 –/
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/– 文字: 2 –/
/– 宋体12; 此字体下对应的点阵为:宽x高=16x16 –/
0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/– 文字: 更 –/
/– 宋体12; 此字体下对应的点阵为:宽x高=16x16 –/
0x02,0x02,0xF2,0x92,0x92,0x92,0x92,0xFE,0x92,0x92,0x92,0x92,0xF2,0x02,0x02,0x00,
0x80,0x80,0x87,0x4C,0x54,0x24,0x34,0x4F,0x44,0x44,0x84,0x84,0x87,0x80,0x80,0x00,

/– 文字: 强 –/
/– 宋体12; 此字体下对应的点阵为:宽x高=16x16 –/
0x02,0xE2,0x22,0x22,0x3E,0x00,0x80,0x9E,0x92,0x92,0xF2,0x92,0x92,0x9E,0x80,0x00,
0x00,0x43,0x82,0x42,0x3E,0x40,0x47,0x44,0x44,0x44,0x7F,0x44,0x44,0x54,0xE7,0x00,

/– 文字: 大 –/
/– 宋体12; 此字体下对应的点阵为:宽x高=16x16 –/
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xFF,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
0x80,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x03,0x0C,0x10,0x20,0x40,0x80,0x80,0x00,

/– 文字: ! –/
/– 宋体12; 此字体下对应的点阵为:宽x高=16x16 –/
0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

};

//---------------------------------------------
//void delayus(uint us)
//{
// while(us!=0) us–;
//}
//---------------------------------------------
void delayms(uint ms)
{
unsigned int x,y;
for(x=ms;x>0;x–)
for(y=100;y>0;y–);

}
//-------------------------------------------
void wcomd(uchar c)
{
A0=0;
//RRW=0;
P0=c;
}
//-------------------------------------------
void wdata(uchar d)
{
A0=1;
//RRW=0;
P0=d;
}

//-------------------------------------------
void initial()
{
wcomd(0xaf);E1=0;E2=0;E1=1;E2=1; // Display On
wcomd(0xc0);E1=0;E2=0;E1=1;E2=1; //Set Display Start Line
wcomd(0xb8);E1=0;E2=0;E1=1;E2=1; //Set Page-Address
wcomd(0x4f);E1=0;E2=0;E1=1;E2=1; //Set Column-Address
wcomd(0xa0);E1=0;E2=0;E1=1;E2=1; //ADC select
wcomd(0xa4);E1=0;E2=0;E1=1;E2=1; //Static drive off
wcomd(0xa9);E1=0;E2=0;E1=1;E2=1; //1/32 duty
wcomd(0xe0);E1=0;E2=0;E1=1;E2=1; //Read modify write mode end
wcomd(0xee);E1=0;E2=0;E1=1;E2=1; //Release from the read modify write mode
wcomd(0xe2);E1=0;E2=0;E1=1;E2=1; //Reset line,column,counter register to "0
}
//-------------------------------------------
void disp_bmp(xchar *str)
{
uint i=0,j=0,k=0;
uchar temp;

temp=0xb8;

wcomd(0xaf);E1=0;delayms(1);E1=1;
for(k=0;k<4;k++)
{
	wcomd(temp);E1=0;delayms(1);E1=1;
	wcomd(0x00);E1=0;delayms(1);E1=1;
	wcomd(0xc0);E1=0;delayms(1);E1=1;
	for(i=0;i<61;i++)
	{
		wdata(str[i+k*122]);E1=0;E1=1;
	}
	temp++;
}

temp=0xb8;
wcomd(0xaf);E2=0;delayms(1);E2=1;
for(k=0;k<4;k++)
{
	wcomd(temp);E2=0;delayms(1);E2=1;
	wcomd(0x00);E2=0;delayms(1);E2=1;
	wcomd(0xc0);E2=0;delayms(1);E2=1;
	for(i=0;i<61;i++)
	{
		wdata(str[61+i+k*122]);E2=0;E2=1;
	}
	temp++;
}

}

void dis_chinese(uchar x,uchar y,uchar h)
{
uint i=0;
if(x<46) //能在第一页完全显示的条件
{
wcomd(0xaf);E1=0;E1=1;
wcomd(0xb8+y);E1=0;delayms(1);E1=1;
wcomd(x);E1=0;delayms(1);E1=1;
wcomd(0xc0);E1=0;delayms(1);E1=1;
for(i=0;i<16;i++)
{
wdata(hanzi[i+h32]);E1=0;E1=1;
}
wcomd(0xb8+y+1);E1=0;delayms(1);E1=1;
wcomd(x);E1=0;delayms(1);E1=1;
wcomd(0xc0);E1=0;delayms(1);E1=1;
for(i=0;i<16;i++)
{
wdata(hanzi[i+h
32+16]);E1=0;E1=1;
}
}
else if(x>60) //能在第二页完全显示的条件
{
wcomd(0xaf);E2=0;E2=1;
wcomd(0xb8+y);E2=0;delayms(1);E2=1;
wcomd(x-61);E2=0;delayms(1);E2=1;
wcomd(0xc0);E2=0;delayms(1);E2=1;
for(i=0;i<16;i++)
{
wdata(hanzi[i+h32]);E2=0;E2=1;
}
wcomd(0xb8+y+1);E2=0;delayms(1);E2=1;
wcomd(x-61);E2=0;delayms(1);E2=1;
wcomd(0xc0);E2=0;delayms(1);E2=1;
for(i=0;i<16;i++)
{
wdata(hanzi[i+h
32+16]);E2=0;E2=1;
}
}
else //拼接显示 先写左半部分在第一页再写右半部分在第二页
{
wcomd(0xaf);E1=0;E1=1;
wcomd(0xb8+y);E1=0;delayms(1);E1=1;
wcomd(x);E1=0;delayms(1);E1=1;
wcomd(0xc0);E1=0;delayms(1);E1=1;
for(i=0;i<(61-x);i++)
{
wdata(hanzi[i+h32]);E1=0;E1=1;
}
wcomd(0xb8+y+1);E1=0;delayms(1);E1=1;
wcomd(x);E1=0;delayms(1);E1=1;
wcomd(0xc0);E1=0;delayms(1);E1=1;
for(i=0;i<(61-x);i++)
{
wdata(hanzi[i+h
32+16]);E1=0;E1=1;
}

	wcomd(0xaf);E2=0;E2=1;
	wcomd(0xb8+y);E2=0;delayms(1);E2=1;
	wcomd(0);E2=0;delayms(1);E2=1;
	wcomd(0xc0);E2=0;delayms(1);E2=1;
	for(i=(61-x);i<16;i++)
	{
		wdata(hanzi[i+h*32]);E2=0;E2=1;
	}
	wcomd(0xb8+y+1);E2=0;delayms(1);E2=1;
	wcomd(0);E2=0;delayms(1);E2=1;
	wcomd(0xc0);E2=0;delayms(1);E2=1;
	for(i=(61-x);i<16;i++)
	{
		wdata(hanzi[i+h*32+16]);E2=0;E2=1;
	}
}

}

void dis_clear()
{
uint i=0,j=0;

for(j=0;j<4;j++)
{
	wcomd(0xb8+j);E1=0;delayms(1);E1=1;
	wcomd(0x00);E1=0;delayms(1);E1=1;
	wcomd(0xc0);E1=0;delayms(1);E1=1;
	for(i=0;i<61;i++)
	{
		wdata(0x00);E1=0;E1=1;
	}
	wcomd(0xb8+j);E2=0;delayms(1);E2=1;
	wcomd(0x00);E2=0;delayms(1);E2=1;
	wcomd(0xc0);E2=0;delayms(1);E2=1;
	for(i=0;i<61;i++)
	{
		wdata(0x00);E2=0;E2=1;
	}
}	

}
//-------------------------------------------
/// MAIN //
/
void main(void)
{
RST=0;
delayms(10);
RST=1;
delayms(2);
initial();
dis_clear();
dis_clear();
while(1)
{
dis_chinese(0,0,0); //赠
dis_chinese(15,0,1);//送
dis_chinese(30,0,2);//显
dis_chinese(45,0,3);//示
dis_chinese(60,0,4);//汉
dis_chinese(75,0,5);//字
dis_chinese(92,0,6);//液
dis_chinese(107,0,7);//晶
dis_chinese(0,2,8);//比
dis_chinese(15,2,9);//1
dis_chinese(22,2,10);//6
dis_chinese(29,2,11);//0
dis_chinese(36,2,12);//2
dis_chinese(43,2,13);//更
dis_chinese(58,2,14);//强
dis_chinese(73,2,15);//大
dis_chinese(88,2,16);//!
//测试屏幕组合显示
delayms(4000);

	disp_bmp(picture); 
	
	delayms(8000);
	dis_clear();
	delayms(100);
}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值