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

📄 yjsy.c

📁 LCD1602.rar
💻 C
📖 第 1 页 / 共 3 页
字号:
}

/*------------------写命令到LCD------------------------------*/
void write_com(unsigned char cmdcode)
{

Di=0;
RW=0;

Lcd_Bus=cmdcode;
delay(0);
Enable=1;
delay(0);
Enable=0;
}

/*-------------------写数据到LCD----------------------------*/
void write_data(unsigned char Dispdata)
{

Di=1;
RW=0;

Lcd_Bus=Dispdata;
delay(0);
Enable=1;
delay(0);
Enable=0;
}

/*------------------------读LCD数据----------------------------*/
unsigned char read_data()
{
unsigned char tmpin;

Di=1;
RW=1;
delay(0);
Enable=1;
delay(0);
Enable=0;

tmpin=Lcd_Bus;

return tmpin;
}

/*------------------------显示边框-------------------------------*/
void frame()
{
unsigned char i;
Mcs=1;
Scs=1;
write_com(Page_Add+0);
write_com(Col_Add+0);
for(i=0;i<64;i++) write_data(0x01);
write_com(Page_Add+7);
write_com(Col_Add+0);
for(i=0;i<64;i++) write_data(0x80);

for(i=0;i<8;i++)

{
Mcs=0;
Scs=1;
write_com(Page_Add+i);
write_com(Col_Add+63);
write_data(0xff);
Mcs=1;
Scs=0;
write_com(Page_Add+i);
write_com(Col_Add+0);
write_data(0xff);
}
}

/*--------------------------清除内存------------------------------*/
void Clr_Scr()
{
unsigned char j,k;
Mcs=1;Scs=1;
 write_com(Page_Add+0);
 write_com(Col_Add+0);

 for(k=0;k<8;k++){
write_com(Page_Add+k);
  for(j=0;j<64;j++)write_data(0x00);
 }
}

/*--------------------------指定位置显示汉字16*16-----------------------*/
void hz_disp16(unsigned char pag,unsigned char col, unsigned char code *hzk)
{
unsigned char j=0,i=0;
for(j=0;j<2;j++){
write_com(Page_Add+pag+j);
write_com(Col_Add+col);
for(i=0;i<16;i++) write_data(hzk[16*j+i]);
}
}

/*----------------------指定位置显示字母或数字8*16-----------------------*/
void e_disp16(unsigned char pag,unsigned char col, unsigned char code *hzk)
{
unsigned char j=0,i=0;
for(j=0;j<2;j++){
write_com(Page_Add+pag+j);
write_com(Col_Add+col);
for(i=0;i<8;i++) write_data(hzk[8*j+i]);
}
}


/*------------------显示128*64图片---------------------------*/
void Disp_Img(unsigned char code *img)
{
	unsigned char j,k;
 	for(k=0;k<8;k++)
	{
  		Mcs=1;Scs=0;delay(10);
  		write_com(Page_Add+k);
  		write_com(Col_Add+0);
  		for(j=0;j<64;j++) write_data(img[k*128+j]);

  		Mcs=0;Scs=1; delay(10);
  		write_com(Page_Add+k);
  		write_com(Col_Add+0);
  		for(j=64;j<128;j++) write_data(img[k*128+j]);
 	}
}


/*------------------显示64*64图片---------------------------*/
void Disp_Img2(unsigned char code *img)
{
	unsigned char j,k;
 	for(k=0;k<8;k++)
	{
  		Mcs=1;Scs=0;delay(10);
  		write_com(Page_Add+k);
  		write_com(Col_Add+0);
  		for(j=0;j<64;j++) write_data(img[k*64+j]);
 	}
}

/*-------------------------------初始化LCD屏--------------------------*/
void init_lcd()
{
Lcd_Rst=0;
delay(100);
Lcd_Rst=1;
delay(100);

Mcs=1;
Scs=1;

delay(100);
write_com(Disp_Off);
write_com(Page_Add+0);
write_com(Start_Line+0);
write_com(Col_Add+0);
write_com(Disp_On);
}

/*------------------------------信息显示-----------------------------*/
void Msg(void)
{
Clr_Scr();   //清除内存
frame();   //边框

Mcs=1;Scs=0;
hz_disp16(1,16,hu);
delay(2000);
hz_disp16(1,32,nan);
delay(2000);
hz_disp16(1,46,ke);
delay(2000);

Mcs=0;Scs=1;
hz_disp16(1,0,ji);
delay(2000);
hz_disp16(1,16,da);
delay(2000);
hz_disp16(1,32,xue);
delay(2000);
             
Mcs=1;Scs=0;
hz_disp16(3,0,xin);
delay(2000);
hz_disp16(3,16,xi);
delay(2000);
hz_disp16(3,32,dian);
delay(2000);
hz_disp16(3,48,qi); 
delay(2000);

Mcs=0;Scs=1;
hz_disp16(3,0,gong);
delay(2000);
hz_disp16(3,16,ceng);
delay(2000);
hz_disp16(3,32,xue);
delay(2000);
hz_disp16(3,48,yuan);
delay(2000);

Mcs=1;Scs=0;
hz_disp16(5,0,zi);
delay(2000);
hz_disp16(5,16,dong);
delay(2000);
hz_disp16(5,32,hua);
delay(2000);
hz_disp16(5,48,xi2); 
delay(2000);

Mcs=0;Scs=1;
e_disp16(5,16,w);
delay(2000);
e_disp16(5,24,h);
delay(2000);
e_disp16(5,32,o);
delay(2000);
e_disp16(5,40,a);
delay(2000);
e_disp16(5,48,m);
delay(2000);
e_disp16(5,56,i);
delay(2000);
}

/*---------------------------主程序---------------------------------*/
void main(void)
{
unsigned char i=0;
while(1){
init_lcd();
Disp_Img(pic1);
delay(40000);
Disp_Img(pic2);
delay(40000);
Disp_Img(pic3);
delay(40000);
Disp_Img(pic4);
delay(40000);
Disp_Img2(pic5);
delay(40000);
Msg();
delay(40000);
}
}

⌨️ 快捷键说明

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