×

LCD12864.C .h文件

消耗积分:6 | 格式:rar | 大小:2KB | 2017-11-21

你如六月的风

分享资料个

LCD12864.C .h文件

  把我一直珍藏的程序全部拿出来,给大家共享,这也让我想起来,我刚学的时候,搜集资料是那么辛苦,而且找不到完整的资料,我将把我整理的和自己制作的H文件共享出来,只要修改定义端口,便可以随意的调用,以后我还会慢慢完善我的C资料,也希望大家给我指出程序的漏洞和缺点,已达到相互学习目地。

  */

  #ifndef __LCD12864_H__

  #define __LCD12864_H__

  #include 《intrins.h》

  #define uchar unsigned char

  sbit RS=P2^0;//串口时为CS

  sbit RW=P2^1; //串口为SID

  sbit E=P2^2;//串口为时钟SCLK

  sbit RET=P2^3;//复位

  //sbit PSB=P2^4;//串并选择

  unsigned char code line_0[] = {“春城无处不飞花,”};

  unsigned char code line_1[] = {“寒食东风御柳斜。”};

  unsigned char code line_2[] = {“日暮汉宫传蜡烛,”};

  unsigned char code line_3[] = {“轻烟散入五侯家。”};

  /***********************************忙检测*******************************/

  void RDBF(void)

  {

  uchar temp;

  RS=0;

  RW=1;

  while(1)

  {

  P0=0xFF;

  E=1;

  temp=P0;

  E=0;

  if ((temp&0x80)==0) break;

  }

  }

  /*********************************写指令*********************************/

  void Write_Command(uchar comm)

  {

  RDBF();

  RS=0;

  RW=0;

  P0=comm;

  E=1;

  E=0;

  }

  /***************************写数据到数据寄存器****************************/

  void Write_Data(uchar TEMP)

  {

  RDBF();

  RS=1;

  RW=0;

  P0=TEMP;

  E=1;

  E=0;

  }

  /*************************初始化LCD-12864R*********************************/

  void LCDInit(void)

  {

  //PSB=0; //串口

  //PSB=1; //并口

  RET=1;

  RET=0;

  RET=1;

  Write_Command(0x30);//基本指令集,8位并行,RE=1,可执行扩展功能

  Write_Command(0x06);//启始点设定:光标右移

  Write_Command(0x01);//清除显示DDRAM

  Write_Command(0x0f);//D=1,整体显示ON C=1,游标ON B=1,游标闪烁ON

  Write_Command(0x02);//地址归零

  }

  /*******************显示数组字符串(显示半宽字型16*8点阵)*********************/

  void Display_String(uchar addr,uchar *string,uchar count)

  {

  uchar i;

  Write_Command(addr); //设定DDRAM地址

  for(i=0;i《count;)

  {

  Write_Data(string[i*2]); //前半角字符

  Write_Data(string[i*2+1]);//后半角字符

  i++;

  }

  }

  /***********************************主函数**************************************/

  void main(void)

  {

  LCDInit(); //lcd初始化

  Display_String(0x80,line_0,8);

  Display_String(0x90,line_1,8);

  Display_String(0x88,line_2,8);

  Display_String(0x98,line_3,8);

  while(1)

  {

  Display_String(0x80,line_0,8);

  Display_String(0x90,line_1,8);

  Display_String(0x88,line_2,8);

  Display_String(0x98,line_3,8);

  }

  }

  #endif

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !