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

📄 lcd12864.h

📁 LCD液晶显示模块驱动程序
💻 H
字号:
#ifndef _LCD12864_H_
#define _LCD12864_H_

#endif //_LCD12864_H_

#define LcdEN *(unsigned int *)PIO_LCD_EN_BASE
#define LcdRS *(unsigned int *)PIO_LCD_RS_BASE
#define LcdRW *(unsigned int *)PIO_LCD_RW_BASE
#define LcdFSB *(unsigned int *)PIO_LCD_FSB_BASE
#define DatBus *(unsigned int *)PIO_LCD_DATA_BASE
#define LCD_DATA_DIR *(unsigned int *)(PIO_LCD_DATA_BASE+4)
#define LCD_DATA_OUT 0xFF
#define LCD_DATA_IN 0

unsigned char  yb=0x80;
unsigned char  hanzi00[]={"百善孝为先,"};
unsigned char  hanzi01[]={"家和万事兴。"};
unsigned char  hanzi02[]={"精心准备提效果,"};
unsigned char  hanzi03[]={"老槐树茶馆。"};
unsigned char  hanzi10[]={"回眸一笑百媚生。"};
unsigned char  hanzi11[]={"忽闻岸上踏歌声。"};
unsigned char  hanzi12[]={"桃花潭水深千尺,"};
unsigned char  hanzi13[]={"不及汪伦送我情。"};
unsigned char  hanzi20[]={"love family "};
unsigned char  hanzi21[]={"display program,"};
unsigned char  hanzi22[]={"welcome to commu"};
unsigned char  hanzi23[]={"come on with me "};

//延时子程序
void delay(unsigned int t)
{  unsigned int i,j;
   for(i=0;i<t;i++)
   { for(j=0;j<100;j++);
   {;} 
   }
}

//写命令到LCD
void write_com(unsigned char cmdcode)
{  LcdFSB=1;
   LcdRS=0;
   LcdRW=0;
   LcdEN=1;
   DatBus=cmdcode;      
   LcdEN=0;
   delay(5);
}

//写数据到LCD
void write_data(unsigned char Dispdata)
{  LcdFSB=1;
   LcdRS=1;
   LcdRW=0;
   LcdEN=1;
   DatBus=Dispdata;
   LcdEN=0;
   delay(5);
}

//初始化LCD屏
void lcdinit()
{  delay(2000);
   write_com(0x30);       //选择基本指令集  
   delay(10);
   write_com(0x30);       //选择8bit数据流  
   delay(5);
   write_com(0x0c);       //开显示(无游标,不反白)  
   delay(10);
   write_com(0x01);       //清显示并设地址指针为00H   
   delay(500);
   write_com(0x06);       //指定在资料的读取及写入时设定游标的   
                          //移动方向及指定显示的位移
   delay(0);              
}

void outChinese(unsigned char place,unsigned char unit,unsigned char charcode[] )
{
 unsigned char i;
 write_com(place);
 for(i=0;i<unit*2;i++)//一个汉字为两个字符
 {write_data(charcode[i]);}
}
void outchar(unsigned char place,unsigned char unit,unsigned char charcode[] )
{
 unsigned char i;
 write_com(place);
 for(i=0;i<unit;i++)
 {write_data(charcode[i]);}
}
void ydgb(void)
{
  write_com(yb);//显示光标位置
  //if(P1_0==0)
  //{
   delay(10);
   //if(P1_0==0)
   //{
    yb=yb+0x01;
 if(yb==0x88){yb=0x90;}
 if(yb==0x98){yb=0x88;}
 if(yb==0x90){yb=0x98;}
 if(yb==0xa0){yb=0x80;}
   //}
   //while(P1_0==0);
  //}
}
void display1(void)
{
 ydgb();
 outChinese(0x80,8,hanzi00);//第一行:80-87H
 outChinese(0x90,8,hanzi01);//第二行:90-97H
 outChinese(0x88,8,hanzi02);//第三行:88-8FH
 outChinese(0x98,8,hanzi03);//第四行:98-9FH
 //outchar(0x9f,2,name4);
}
void display2(void)
{
 ydgb();
 outChinese(0x80,8,hanzi10);
 outChinese(0x90,8,hanzi11);
 outChinese(0x88,8,hanzi12);
 outChinese(0x98,8,hanzi13);
}
void display3(void)
{
 ydgb();
 outchar(0x80,16,hanzi20);
 outchar(0x90,16,hanzi21);
 outchar(0x88,16,hanzi22);
 outchar(0x98,16,hanzi23);
}

//显示字符串
/*void hzkdis(unsigned char *s)
{  while(*s>0)
   {  write_data(*s);
      s++;
      delay(50);
   }
}

//显示文本
void ceshi()
{  write_com(0x01);           
   delay(5);
   write_com(0x82);          
   hzkdis("TOPWAY");
   write_com(0x88);          
   hzkdis("LM3033 测试程序");
}*/

//显示图片
/*void Disp_Img(unsigned char code *img)
{  unsigned int j=0;
   unsigned char x,y,i;
         for(i=0;i<9;i+=8)
         for(y=0;y<32;y++)
      for(x=0;x<8;x++)
     { write_com(0x36);           
       write_com(y+0x80);
       write_com(x+0x80+i);
       write_com(0x30);           
       write_data(img[j++]);
       write_data(img[j++]);
     }
}

unsigned char code BMP[]={0x00,0x00,......} */   

⌨️ 快捷键说明

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