DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2214|回复: 1
打印 上一主题 下一主题

[待整理] 基于ST7920的12864液晶的使用方法研究

[复制链接]
跳转到指定楼层
楼主
发表于 2015-5-2 10:46:42 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
  摘要:研究了基于ST7920控制器的128×64中文字库点阵屏的开发使用方法,主要从图形点阵显示控制原理、液晶显示控制指令、液晶显示控制时序几个方面分析了液晶屏嵌入式应用的开发使用步骤,最终给出了一个单片机控制液晶显示的应用实例。   0 引言
  在嵌入式系统开发过程中,显示输出控制是一项重要的研究内容。常用的显示输出器件有发光二极管LED)、数码管液晶显示器等。  LED及数码管的显示输出控制相对比较简单,相关文献介绍的也比较详细。在液晶显示器中,图形点阵形液晶显示器的硬件结构比较复杂,显示输出控制也不太容易掌握,虽然部分文献进行了一定介绍,但面向的对象往往是已有一定开发经验的使用人员,而针对初学者进行专题论述的文献却不多。鉴于此,文章以基于ST7920控制器的128×64中文字库点阵屏为例,进行了开发应用研究分析,以便初学者进行参考学习。
  1 图形点阵显示控制原理
  图1为12864液晶屏图形点阵显示原理的示意图。由图可见,液晶屏在x方向有128列,在y方向有64行,因此整个液晶屏有128×64个像素。每个像素有亮与灭两种状态,以黄绿屏黑字为例,若某个像素亮则该像素被黑色填充,这样不同像素的亮与灭的组合就可显示不同的点阵型字符或图案。如图1中的黑色像素组合就可显示一个汉字"十"字。


图1 12864液晶屏图形点阵显示原理

  对于字符显示来说,可以分为16×8像素半宽字符和16×16像素中文字符两种点阵显示。在液晶显示屏上一个半宽字符占据的像素点数为16×8个,中文字符的像素点数为16×16个。12864点阵液晶屏能显示32×8个半宽字符或16×4个中文字符。在显示缓存中有一种叫绘图RAM的缓存来对点阵型字符进行控制,该RAM简写为GDRAM.GDRAM维护了一个和液晶屏像素相对应的二维绘图缓冲空间,该表的水平地址为0至16,垂直地址为0至64.GDRAM的每一个水平地址对应了图1中的16个列,每一个垂直地址对应图1中的一行。

  在更改绘图RAM时,由扩充指令设置GDRAM地址,先垂直地址后水平地址(连续2个字节的数据来定义垂直和水平地址),再2个字节的数据给绘图RAM(先高8位后低8位)。图1中的汉字"十"字在GDRAM中的编码如表1所示。


  2 液晶显示控制指令

  编程人员在向液晶显示缓存写入要显示的编码数据时,须在一系列液晶显示控制指令的控制下才能完成。表2是基于ST7920控制器的128×64中文字库点阵屏液晶显示控制的主要指令表。由该表可以看出,显示控制指令要受到控制信号RS、R/W的控制。D0至D7为外部CPU与液晶内部处理器之间交互数据的总线,交互的数据包括上述指令及显示数据。对于各指令的详细描述在相关数据手册中都有具体介绍,在进行液晶驱动开发之前要进行认真学习研究,只有熟悉了各指令的意义及取值后才能进行程序的编写。


3 液晶显示控制时序

  进行液晶驱动开发就象利用英语与外宾交流。要想与外宾交流就必须先熟悉英语的词组,不同的词组代表了不同的意思。而只熟悉相关词组,但不能将其按着英语的词组先后搭配顺序进行表达,则外宾也不能理解我们要表达的意思。这里词组就类似于上述的显示控制指令,外宾就类似于液晶显示屏,而词组的先后搭配顺序则指的是液晶显示控制的时序。简单来说,控制时序就是为了使液晶单元能够正常工作,相应的控制信号取值高低的先后搭配顺序。
  图2是ST7920控制的128×64液晶的8位并口写操作时序图。由图2可见,如果想通过8位并口DB0~DB7进行写操作,需要RS、R/W、E三种控制信号的联合控制,首先RS根据并口上的数据是指令还是显示数据置0或置1,其次,由于是写数据R/W要置0,之后使能信号E要置1,当上述三种控制信号置位稳定后,8位并口DB0~DB7总线上的信息就可写入液晶屏,写入完毕后要将使能信号E置0.需要说明的是在处理相关时序时要注意各控制信号高低电平变换期间的不稳定期,写操作要尽量避开这段时间。


图2 8位并口写操作时序图

  4 液晶使用举例
  4.1 MCU接口
  下面以89C52单片机控制液晶显示屏为例,介绍一下MCU与液晶的连接方法及主要的程序代码。该程序运行后会在液晶屏上显示"ST7920显示控制"等字符。
  图3为8位并口MCU控制接口图。由图3可见,MCU的P1口与液晶的DB0至DB7相连,作为指令与显示数据的总线通道;P3.0、P3.1、P3.2分别与液晶的RS、R/W、E相连,构成液晶显示控制信号的通道。


图3 8位并口MCU控制接口图

  4.2 程序主要代码
  (1)定义
  

  (2)忙检测函数
  

(3)写操作函数
  

  (4)初始化
  

  (5)DDRAM地址设定函数
  

  (6)字符串显示函数
  

  (7)主函数
  

  5 结束语
  文章主要从图形点阵显示控制原理、液晶显示控制指令、液晶显示控制时序几个方面进行了分析,主要围绕基于ST7920控制器的128× 64中文字库点阵屏的开发使用方法而展开研究,并以该型液晶为例给出了嵌入式液晶显示应用的开发使用步骤:第一步,理解图形点阵显示控制原理;第二步,熟悉液晶显示控制指令;第三步,分析液晶显示控制时序;第四步,应用程序编写。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏1 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-4-19 15:54 , 耗时 0.093710 秒, 20 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表