新闻中心

EEPW首页>嵌入式系统>设计应用> 基于ARM和TFT6758的液晶显示模块实现

基于ARM和TFT6758的液晶显示模块实现

作者: 时间:2012-06-16 来源:网络 收藏
4 LCD 显示软件设计

本文引用地址://m.amcfsurvey.com/article/148902.htm

  首先进行系统初始化, 接着对LCD 控制寄存器及地址寄存器进行改写, 设置一些LCD 的参数, 配置Buffer 的起始地址和Buffer 大小等一些参数, 然后是清屏, 最后系统可以通过控制器发出的指令调用相关函数, 完成相应的显示功能。流程图如图2所示。

LCD显示流程

  4.1 LCD 初始化

  LCD 初始化主要包括对控制器的显示频率、显示行数及显示缓冲区地址的设置。主要程序如下:

  void TftInit(void)

  { STCOM_INI init_dat;

  int i;

  TftReset();

  for(i=0; i《100; i++) // 设定最多100 条初始化命令

  { init_dat =_INI[i]; //_INI 数组定义初始化数据信息

  if(init_dat.type==DATA_END) break;

  if(init_dat.type==HD66783_COM){ TftSerialCom(init_dat.com, init_dat.dat); // 向TFT 液晶发送串行命令}

  else{ TftSendCom(init_dat.com); // 向TFT 液晶发送命令字TftSendDat(init_dat.dat); // 向TFT 液晶发送数据}

  DelaymS(init_dat.dly); // 延时等待}

  }

  4.2 LCD 清屏

  由于系统上电时, 显示缓冲区的数据是不固定的, 显示出乱码, 因此在操作之前应将缓冲区清零或向缓冲区发送指定的数据来填充屏幕。程序如下:

  void GUI_ClearSCR(void){ TFT_FillSCR(GUI_CCOLOR); // 全屏填充, 直接使用数据填充显示缓冲区}

  4.3 数据显示

  液晶初始化结束后, 系统将采集来的信号通过处理后用文字、图形等显示到LCD 上。这里举一个简单的画窗口程序。为了提高程序的可读性和可移植性, 在程序头文件中都用了宏定义, 限于篇幅在此不再列出。

  s tatic WINDOWS win;// GUI 初始化

  void GUI_INIT(void){GUI_Initialize(); // 初始化GUI, 包括初始化显示缓冲区, 初始化LCM 并清屏

  GUI_SetColor (WHITE,BLUE);// 显示颜色:

  WHITE 前景色; BLACK背景色InitWin(win); // 窗口初始化}

  // 窗口初始化

  void InitWin(WINDOWS *ptrwin){ptrwin- 》x = Windows_x;ptrwin- 》y = Windows_y;ptrwin- 》with = Windows_width;ptrwin- 》hight = Windows_hight;ptrwin- 》title = (uint8 *)Windows_title;ptrwin- 》s tate = (uint8 *)Windows_s tate;GUI_WindowsDraw(ptrwin); // 显示窗口。根据提供的窗口参数进行画窗口。

  }

  其中显示汉字的程序如下:

  void MyGUI_PutHZ(uint32 x, uint32 y, uint8 *dat){GUI_PutHZ(x,y,dat,16,16);}

  以汉字方式显示标题的函数如下:

  void ShowTitleHZ(uint32 x, uint32 y)

  {x=x+10;MyGUI_PutHZ(x, y, (uint8 *)hzye);//hzye为“ 液” 的点阵数组

  MyGUI_PutHZ (x+HZ_FONT_SIZE, y, (uint8 *)hzjing);//hzjing 为“ 晶” 的点阵数组

  MyGUI_PutHZ(x+2*HZ_FONT_SIZE, y, (uint8 *)hzxian); //hzxian 为“ 显” 的点阵数组

  MyGUI_PutHZ(x+3*HZ_FONT_SIZE, y, (uint8 *)hzshi); //hzshi 为“ 示” 的点阵数组}

  以汉字方式显示菜单、状态栏等与上述方法类似。

  5 结束语

  本文对和TFT6758 的模块方法进行了探讨, 对液晶模块TFT6758 进行了有效的控制, 可提供丰富灵活的汉字、字符、图形,菜单和现场数据的动态显示, 性能稳定。该显示模块能够应用于工业控制中。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭