液晶显示器的汉字显示方法

最新更新时间:2012-06-16来源: 电子发烧友关键字:液晶显示器  汉字显示 手机看文章 扫描二维码
随时随地手机看文章

  1 引 言

  常用的液晶显示模块分为数显液晶模块、点阵字符液晶模块和点阵图形液晶模块。图形液晶模块在我国应用较为普及, 因为中文不能像西文字符那样用字符模块即可显示, 要想显示中文必须用图形模块。

        研究了图形液晶模块的汉字显示方法, 以8051 单片机为基础, 介绍了液晶模块与单片机的典型接口电路, 描述了通过外扩的EEPROM 存储汉字字模数据, 将其作为外部数据存储器进行寻址, 通过C51 程序详细介绍了使用方法。对于程序存储器和数据存储器分开寻址的单片机, 该方式能起到节省程序存储器, 扩大程序容量的作用。

  2 液晶模块显示汉字方法

  使用图形液晶模块可以显示汉字和图形。以DG12864( 128×64) 液晶模块为例, 其内置的液晶显示驱动控制器为日本东芝公司的T6963C, 在液晶屏上横向8 个点为1 个字节数据, 每个字节在显示缓冲区内有对应的地址, 液晶屏幕的左上角横向8 个点对应液晶模块显示缓冲区的首地址。采用图形显示方式, 在液晶显示器上汉字用点阵来显示, 最常用的是16×16 的汉字, 一个16×16 的汉字用32 个字节表示, 这32 个字节存放方式如下所示:

  

 

  而一个24 ×24 的汉字则需72 个字节, 存放方式如下:

  

 

  其他规格的汉字存放方式依此类推。在液晶显示器上需显示汉字时, 只要将要显示的汉字的点阵按其存放方式依次写入液晶控制器的显示缓冲区即可。

  通过单片机将已提取的汉字的字模输入液晶控制器, 即可按设定在液晶模块显示屏上显示汉字。常见的做法是事先通过字模提取软件提取要显示的汉字的字模, 将其作为常量数组存放在单片机的程序存储区内。以C 语言格式建立包含"合"和"肥"两字的汉字字模常量数组, 如下:

  Code const char Hz-Dot [ ] = {0x01, 0x01, 0x02, 0x04, 0x08, 0x 10, 0x 2F,0xC0, / / 合0

  0x00, 0x1F, 0x 10, 0x10, 0x10, 0x 10, 0x1F, 0x10,0x00, 0x00, 0x 80, 0x40, 0x 20, 0x10, 0xEE, 0x 04,0x10, 0xF8, 0x 10, 0x10, 0x10, 0x 10, 0xF0, 0x10,0x04, 0x 7F, 0x 45, 0x45, 0x45, 0x7D, 0x 45,0x45, / / 肥0x 20

  0x45, 0x7D, 0x 45, 0x45, 0x 45, 0x45, 0x 54, 0x 88,0x04, 0xFE, 0x 24, 0x24, 0x 24, 0x24, 0x 24, 0xFC,0x04, 0x 00, 0x 00, 0x02, 0x02, 0x02, 0xFE,0x00} ;

  每个汉字字模由32 个字节组成, 单片机通过接口电路, 根据规定的时序, 将要显示的汉字字模的所有字节按液晶控制器规定的方式, 按预定位置写入液晶控制器显示缓冲区即可。这种方式适用于程序不大或单片机无外部扩展数据存储区功能的情况。

  采用哈佛结构的单片机, 如8051 单片机及其派生产品, 程序存储器( ROM) 和数据存储器( RAM) 可分别寻址, 8051 单片机ROM 和RAM最大的寻址空间均为64 K.通常来说, 对于中型的嵌入式系统, 尤其是带液晶模块的单片机系统,64 K 的程序空间并不富裕, 而将汉字字模作为常量数组会大大占用ROM 的空间。而相对来说,数据存储器只需几K 就够用了, 剩下很多空间可用于功能芯片的扩展。将提取的汉字字模数据存放在EPROM 或EEPROM 内作为扩展的数据存储器供CPU 调用, 则只要设定该芯片的片选地址, 并知道每个汉字字模数据在该芯片的存储位置, 通过程序计算出偏移地址, 即可实现同样的显示功能。

  3 单片机通过EEPROM 调用汉字字模的方法

  图1 是DG12864 液晶模块与8051 单片机的接口电路。在电路中, 地址线A13??A15 通过GAL16V8 译码得到外扩芯片的片选信号, 其中液晶模块的译码地址为0xE000, 将地址线A0 与液晶模块控制口的C/ D 相连。当A0 为低时液晶控制器接收数据, A0 为高时液晶控制器接收命令码。因此液晶模块数据端口地址为0xE000, 液晶模块命令端口为0xE001.采用Keil C51 进行程序设计, 在程序中可进行如下定义:

  # define XBYTE ( ( unsigned char volat ile x data* ) 0)

  # def ine LCD-Data XBYT E[ 0xE000]/ / 液晶模块数据端口

  # def ine Lcd-Code XBYT E[ 0xE001]/ / 液晶模块命令端口

  存放汉字字模数据的EEPROM 芯片2864的片选地址为0x 9000, 则通过程序定义:

  # def ine Hz-Dot 0x 9000

  # define VBYTE ( unsigned char volatile x data* )

  

图1  51 单片机与液晶模块接口电路

 

  图1 51 单片机与液晶模块接口电路编制16 ×16 汉字显示子函数Wr ite-Hz.其中要调用另外两个子函数Lcd-Wait 和Disp-address.Lcd-Wait 为读取液晶控制器是否忙函数, 而Disp-address 为液晶控制器显示缓冲区地址设置函数, 可根据液晶控制器资料编制。根据液晶控制器T 6963 的操作方法, 每次对液晶控制器进行读写时, 应执行Lcd-Wait 函数判断液晶控制器是否忙, 在将汉字字模数据写入液晶控制器显示缓冲区前, 应根据汉字在液晶屏上的显示位置设定写入数据的液晶控制器显示缓冲区地址, 具体Write-Hz 如下:

  void Write-Hz( Uchar x ,U char y, Uint p) // 写汉字

  // x , y 为汉字在液晶屏的显示位置坐标,

  // p 为要显示的汉字在数组中的下标。

  {

  Uchar i, low-ad, hig h??ad;

  Uint addr ess, tp;

  address= ( Uint) x * Wide+ y ; / / * *

  // 根据要显示汉字在液晶屏幕的横坐标和纵坐标

  // 设定液晶控制器的显示缓冲区的偏移地址

  tp= address;

  for ( i= 0; i< 16; i+ + ) / / 写左半部

  {

  low-ad= ( Uchar) ( tp & 0x f f) ;

  hig h-ad= ( Uchar) ( tp 8) ;

  Disp-address( low-ad, high-ad) ;

  / / 设定写入地址

  Lcd-Wait ( ) ;

  Lcd-Data = * ( VBYT E( Hz-Dot+ p+ i ) ) ;

  / / 从EEPROM 中提取汉字字模

  Lcd-Wait ( ) ;

  Lcd-Code= 0xC4; / / 写数据命令

  tp= tp+ Wide;

  }

  address+ + ;

  tp= address;

  fo r( i= 0; i< 16; i+ + ) / / 写右半部

  {

  low-ad= ( U char) ( tp & 0xf f ) ;

  hig h-ad= ( Uchar) ( tp 8) ;

  Disp-address( low??ad, high??ad) ;

  Lcd-Wait ( ) ;

  Lcd-Data = * ( VBYTE ( Hz-Dot+ p+16+ i) ) ;

  Lcd-Wait ( ) ;

  Lcd-Code= 0xC4;

  tp= tp+ Wide;

  }

  }

  函数Wr ite??Hz 的参数x 和y 对应液晶屏幕的显示位置, 以屏幕左上角为原点, x 为纵坐标, y为横坐标, 其在液晶控制器显示缓冲区中的地址通过行* * 计算出, 该行中Wide 为事先定义的液晶屏每行字节数, 对于DG12864 液晶模块而言,Wide 为16。

  函数Write-Hz 根据16×16 点阵汉字在液晶控制器显示缓冲区的存放形式, 依次改变显示地址, 先将左半部1~ 16 个字节写入显示缓冲区, 再写入右半部17~ 32 个字节。设"合肥"两字存放在2864 中最前列, 则"合"字模首字节在2864 中的偏移地址为0, 共32 个字节, 紧跟在后面的肥!字模的首地址为0x20, 若要液晶模块显示合肥!两字, 只要在程序中带显示地址参数调用该函数即可。如:

  Write-Hz( 0, 4, 0) ; / / 合

  Write-Hz( 0, 10, 0x20) ; / / 肥

  4 结 语

  本文介绍了图形液晶的汉字显示方法, 并以8051 单片机为基础, 结合液晶模块与单片机的典型接口电路, 叙述了使用EEPROM 或EPROM存放汉字字模的方法, 并给出C51 程序例子, 具有很强的使用指导性。

关键字:液晶显示器  汉字显示 编辑:探路者 引用地址:液晶显示器的汉字显示方法

上一篇:Led背光致New iPad散热过量
下一篇:LED路灯电源使用环境与影响分析

推荐阅读最新更新时间:2023-10-18 16:52

PIC单片机+LCD12864显示汉字程序
#include pic.h #define RS RD2 #define CS2 RD1 #define CS1 RD0 #define E RD4 #define RW RD3 #define BUSY RC7 const unsigned char tab2 ={ /*-- 文字: 福 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x08,0x08,0x89,0xCE,0x28,0x18,0x02,0x7A,0x4A,0x4A,0x4A,0x4A,0x4A,0x7A,0x02,0x00, 0x02,0x01,0x00,0xFF,0x01,0x02,0xF
[单片机]
PIC单片机+LCD12864<font color='red'>显示</font><font color='red'>汉字</font>程序
TFT液晶显示器与CRT显示器的比较
液晶显示器和CRT显示器无论是在电路组成、工作原理,还是在性能参数等各方面均有较大的区别,下面简要进行分析。 1.电路组成的不同点 LCD的电路组成框图如图1所示,主要由驱动板、电源板、高压板、按键控制板等组成。CRT显示器的电路组成框图如图2所示。     图1 液晶显示器的组成框图     图2 CRT显示器的电路组成框图 从图2中可以看出,CRT显示器主要由开关电源、视频信号处理电路、控制电路、行场小信号处理电路、行输出、场输出、枕校、高压电路及显像管等组成。 可以看出,LCD与CRT显示器在电路组成上有较大的差别,LCD显然不是在CRT显示器的基础上发展起来的,具备CRT显示
[电源管理]
TFT<font color='red'>液晶显示</font>器与CRT<font color='red'>显示</font>器的比较
基于AT89C51单片机的LED汉字显示屏的设计与仿真
O 引言 LED显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。它具有发光率高、使用寿命长、组态灵活、色彩丰富以及对室内外环境适应能力强等优点。并广泛的用于公交汽车、商店、体育场馆、车站、学校、银行、高速公路等公共场所的信息发布和广告宣传。LED显示屏发展较快,本文讲述了基于AT89C51单片机16×16LED汉字点阵滚动显示的基本原理、硬件组成与设计、程序编写与调试、Proteus软件仿真等基本环节和相关技术。 1 硬件电路组成及工作原理 本产品采用以AT89C51单片机为核心芯片的电路来实现,主要由AT89C51芯片、时钟电路、复位电路、列扫描驱动电路(74HCl54)、16×16LED点阵5部分组
[单片机]
基于AT89C51单片机的LED<font color='red'>汉字</font><font color='red'>显示</font>屏的设计与仿真
如何将液晶显示器改为电视机
有源矩阵液晶显示器 (AMLCD) 渐渐受到广大的消费者欢迎。以一般家庭来说,家中客厅的大屏幕电视机很多都已改用液晶显示的一种。电视机的画面素质要求极为严格,而且售价也要大众化,因此要满足消费者的要求并不容易。利用有源矩阵液晶显示器生产平面显示电视机的厂商必须设法提高画面清晰度及色彩的亮丽程度,并降低其售价,才可望进一步扩大市场占有率。 厂商若想改造液晶显示器的生产线,改为生产电视机,便要克服显示技术上的几个问题。首先,较大的屏幕及格式上的不同是必须解决的问题。大部分笔记本电脑都采用 14 英吋的 XGA 格式 (1024x768 像素),而大部分台式机液晶显示监视器都采用 17 英吋的 SXGA 格式 (1280x1024)。大
[嵌入式]
MSP430与液晶显示器的串行接口方案
摘要:针对利用微控制器(MCU)控制液晶显示驱动器(LCD)的应用开发实例,提出一种采用串行方式来设计微控制器和液晶显示驱动器之间接口的方案。该方案是在现有点阵式液晶显示屏上附加一个MCU,通过程序设计利用MCU的I/O端口去模拟I2C串行总线,从而实现利用MCU去控制LCD的目的;同时介绍一种在图符液晶显示系统中显示动态曲线的技术和实现方法。 关键词:液晶显示驱动器 I2C串行总线 MSP430 1 概述 点阵式液晶与外部的硬件接口简单,能以点阵或图形方式显示出各种信息,因此在电子设计中得到广泛应用。但是,对它的接口设计必须遵循一定的硬件和时序规范,不同的液晶显示驱动器,可能需要采用不同的接口方式和控制指令才能够实现所需
[单片机]
基于Protues的16×32点阵LED汉字显示屏的设计
单片机系统设计一般包括硬件电路设计和程序设计2个方面,调试过程一般分为软件调试、硬件测试、系统调试3个过程。软件调试一般比较容易,但如果要进行硬件电路测试和系统调试则比较麻烦,因为这2个过程必须在整个电路制作完成后进行,而且电路板的制作、元器件的安装、焊接费时费力。 如果采用单片机系统仿真软件Proteus,则不用制作具体的电路板也能够完成以上工作,在使用Proteus进行系统虚拟开发成功之后再进行实际制作,可提高开发效率,降低开发成本,提高开发速度。 Pmteus是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其他EDA工具软件的仿真功能,也是目前最好的仿真单片机及外围器件的工具。
[电源管理]
基于Protues的16×32点阵LED<font color='red'>汉字</font><font color='red'>显示</font>屏的设计
基于AT89C51单片机的LED汉字显示屏设计方案
  O 引言   LED显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。它具有发光率高、使用寿命长、组态灵活、色彩丰富以及对室内外环境适应能力强等优点。并广泛的用于公交汽车、商店、体育场馆、车站、学校、银行、高速公路等公共场所的信息发布和广告宣传。LED显示屏发展较快,本文讲述了基于AT89C51单片机16×16LED汉字点阵滚动显示的基本原理、硬件组成与设计、程序编写与调试、Proteus软件仿真等基本环节和相关技术。   1 硬件电路组成及工作原理   本产品采用以AT89C51单片机为核心芯片的电路来实现,主要由AT89C51芯片、时钟电路、复位电路、列扫描驱动电路(74HCl54)、16×1
[单片机]
基于AT89C51单片机的LED<font color='red'>汉字</font><font color='red'>显示</font>屏设计方案
点阵式汉字LED显示屏的制作
电路中行方向由p0口和p2口完成扫描,由于p0口没有上拉电阻,因此接一个4.7k*8的排阻上拉。 如没有排阻,也可用8个普通的4.7k 1/8w电阻。为提供负载能力,接16个2n5551的NPN三极管驱动。 列方向则由4—16译码器74LS154完成扫描,它由89C51的P1.0---P1.3控制。同样,驱动部分则是16个2N5401的三极管完成的。 电路的供电为一片LM7805三端稳压器,耗电电流为100Ma左右。 然后找一个电脑硬盘的数据线, 截取所需的长度,分别将行,列线引出至电路的相关管脚即可。原理图为了简洁,故只画出了示意图,行列方向只画出了2个三极管,屏幕只画出4个发光管, 实际
[电源管理]
点阵式<font color='red'>汉字</font>LED<font color='red'>显示</font>屏的制作
小广播
最新电源管理文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved