基于51单片机的图形液晶显示器汉字显示方法分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include <reg52.h> #include <absacc.h> #define uchar unsigned char #define lcd_cmd XBYTE[0x8100] / / 图形液晶显示器指令通道地址 #define lcd_dat XBYTE[0x8000] / / 图形液晶显示器数据通道地址 void wait01(void); / / 查询读写指令和读写数据状态位 void wait03(void); // 查询数据自动写状态位 void wr_dat(uchar dat); // 写数据子程序 void wr_cmd(uchar cmd); // 写指令子程序 void wr_2para(uchar para1,uchar para2,uchar cmd); / / 双字节参数指令写入函数 void wr_1para(uchar para,uchar cmd); / / 单字节参数指令写入函数 void wr_npara(uchar cmd);// 无参数指令写入函数 void lcd_init(void); // 初始化LCD void lcd_show_haizi(uchar* ch,uchar x,uchar wide); / / 显示汉字程序 Code const unsigned char ch[ ] = {0x08,0x08, 0x08,0x12,0x12,0x32,0x51,0x91,0x10, 0x10,0x10,0x10,0x11,0x12,0x14,0x18,0x00,0x80, 0x64,0x24,0x04,0x08,0x08,0x10,0x90,0xA0,0x40, 0xA0,0x10,0x08,0x0E,0x04 , // 仪 0x01,0x01,0x7F, 0x01,0x3F,0x01,0x01,0xFF,0x02, 0x05,0x0C,0x34,0xC4,0x05,0x06,0x04,0x00,0x08, 0xFC,0x00,0xF8,0x00,0x04,0xFE,0x00,0x10,0xA0, 0x40,0x30,0x0E,0x04,0x00};// 表 主程序中首先调用 l c d _ i n i t ( ) 初始化液晶显示器,具 体 内 容 如 下: void lcd_init(void){ wr_2para(0x00,0x00,0x42); / / 设置图形显示区域首地址 wr_2para(0x10,0x00,0x43); / / 设置图形显示区域宽度,即一行显示占字节数 wr_npara(0xa7); // 光标形状设置 wr_npara(0x98); // 显示开关设置 } 接着调用 lcd_show_haizi(uchar* ch,uchar x,uchar wide) 显示汉字,c h 为指针指向字模常量数组首地址,x 为 显示缓冲区初始地址,w i d e 为一行显示所占字节数,具体 内 容 如 下: void lcd_show_haizi(uchar* ch,uchar x,uchar wide)
0 引 言 随着计算机、通讯、软件等的快速发展与成熟,仪器
仪表向着智能化方面发展。新型仪器仪表的终端显示也更 直观、准确、实时。以前普遍用于仪器仪表显示终端的发 光二极管(LED)和字符液晶显示器(alphanumeric LCD)由 于不能方便的显示中文和图形正逐渐被淘汰。图形液晶显 示器(graphical LCD)不仅可以显示数字和字符,还可以 显示汉字或任意图形,这使得显示界面更加友好直观,能 完成各种复杂的显示。本文详细分析了图形液晶显示器汉 字显示的两种方法,并以 5 1 单片机为控制单元在P r o t e u s I S I S 中进行了仿真实现。
关键词:图形液晶显示器; 汉字显示方法; 5 1 单片机; P r o t e u s I S I S 仿真 Abstract: In one type of graphics LCD for example, discusses two LCD display method of Chinese characters, compares the characteristics of two kinds Chinese characters displaying methods. To 51 SCM for control unit, this paper introduces the typical LCD and SCM interface circuit. Writes typical 51 SCM control program through the Keil C51. Implements the simulation of two Chinese characters displaying methods by Proteus ISIS . Key words: Graphics LCD ; Chinese characters displaying methods ; 51 SCM ; Proteus ISIS simulation 中图分类号:T H 7 0 文献标识码:B 文章编号:1 0 0 1 - 9 2 2 7 ( 2 0 1 1 ) 0 6 - 0 0 7 0 - 0 3
一个 1 6 × 1 6 点阵的汉字占用四个字符的位置,按照 从上到下从左到右的原则,划分为左上、左下、右上和右 下四个字符。如一个汉字的左上定义为字符代码 0 x 8 0 则 左下、右上、右下的字符代码分别为 0x81、0x82、0x83,由 字符代码计算出字符发生器区首地址,将该汉字字模数据 存储在连续的 3 2 个地址中。显示该汉字时,先指定文本显 示区的首地址,它与显示屏左上角字符位对应,占据显示 屏上一个字符位,显示屏与文本显示缓冲区对应关系同表 3 所示,然后将四个字符代码存储到相应的文本显示缓冲 区中,即可在显示屏上显示该汉字。
基于 5 1 单片机的图形液晶显示器汉字显示方法分析 陈一鸣
基于51单片机的图形液晶显示器汉字显示方法分析
陈一鸣 (武钢研究院 湖北武汉,430080)
摘 要:以某型图形液晶显示器为例,详细讨论了液晶显示器的两种汉字显示方法,比较了两种汉字显示方 法的各自特点。以 5 1 单片机为控制单元,介绍了液晶显示器与单片机的典型接口电路。通过 K e i l C 5 1 编写了基于 5 1 单片机的典型控制程序。在 P r o t e u s I S I S 中对两种汉字显示方法进行了仿真实现。
采用图形属性显示汉字,是通过点阵来实现的。最常 用的是1 6 × 1 6 点阵的汉字字模,一个 1 6 × 1 6 点阵的汉字 字模用 3 2 个字节表示,汉字的取模顺序一般按照从上到 下从左到右的顺序。把要显示汉字的字模代码按照一定的 顺序写入图形显示缓冲区即可显示该汉字。
表2 文本显示区和图形显示区首地址、宽度设置
23/24/28 to 80C51. [2] 童诗白,华成英编著.模拟电子技术基础[M].北京:高等教育出
表3 显示屏与显示缓冲区对应关系
文本显示区和图形显示区的首地址通过T 6 9 6 3 指令设 置如表 2 所示,它们都对应于显示屏左上角字符位或字节 位,文本区宽度(字节数 / 行)设置和图形区宽度(字节数 / 行)设置用于调整一行显示所占显示缓冲区的字节数,从
收稿日期:2011-07-30 作者简介: 陈一鸣( 1 9 8 4 - ) , 男, 助理工程师, 主要从事检测技 术与自动化装置方面的研究工作。
(下转第7 5 页)
71
《自动化与仪器仪表》2011 年第 6 期(总第 158 期)
图1 2 4 结 论
本产品是一款功能完备且成本低廉的温度巡检报警
控制器,集采集、显示、报警、通信等功能于一体,可以广 泛用于工业现场实现多路温度信号的检测与报警, 具有较 好的应用前景。
参考文献 [1] Crystal,Aplilcaition note of interfacing the CS5521/22/
《自动化与仪器仪表》2011 年第 6 期(总第 158 期) 户自定义的。T6963C 控制器可以通过指令屏蔽掉内部字符 发生器,代码 0 x 0 0 ~0 x f f 全部为外部字符发生器所拥有, 所以用户最多可以自定义 2 5 6 个字符。 一个 8 × 8 点阵的字符需要8 个字节的存储空间来存 储显示代码,用户自定义字符的显示代码存储在显示缓冲 区的字符发生器区。在 T6963C 控制器中字符发生器区的地 址通过字符发生器偏置寄存器设置。字符发生器偏置寄存 器设置了字符发生器区的高 5 位地址,因此字符发器区有 2 K 存储空间,刚好存储 2 5 6 个字符的显示代码。字符显示 代码 8 个字节的首地址通过表 4 方式获得。如高 5 位地址设 置为 0 0 0 1 1 字符代码为 0 x 8 0 ,则字符发生器区首地址为 0x1c00。 表4 字符显示代码首地址计算
2 图形液晶显示器汉字显示仿真实现 在Proteus ISIS 中,以AT89C52 单片机为控制单元实
现图形液晶显示器汉字显示仿真。AT89C52 单片机的 P 0 口 做 8 位数据口与图形液晶显示器的数据口 D 0 ~D 7 连接并兼 做地址总线低8 位。P2 口做地址总线高8 位,P2.7 经与非门 74s00 与图形液晶显示器 CE 端相连作为片选信号,P2.0 与 图形液晶显示器C / D 端相连作为命令数据选择信号。 AT89C52 单片机的P3.6/WR、P3.7/RD 分别与图形液晶显示 器的 W R 、R D 相连[3],系统硬件连接如图 1 所示。
通过 T6963C 指令可以将 8K 显示缓冲区划分为文本区、 图形区和字符发生器(C G R A M )区[2],如表 1 所示。
表1 8K显示缓冲区划分
而确定显示屏与显示缓冲区单元的对应关系。 在 图 形 属 性 显 示 情 况 下 ,先 指 定 图 形 显 示 区 的 首 地
址,它与显示屏左上角字节位对应,占据显示屏上一个字 节位。显示屏与图形显示缓冲区对应关系如表 3 所示。表 中 F D 是显示缓冲区中图形显示区首址,W D 是图形显示区 宽 度 ,即 显 示 屏 一 行 显 示 所 占 图 形 显 示 缓 冲 区 字 节 数 ,n 是显示屏显示行数。
1 图形液晶显示器汉字显示方法 图形液晶显示器主要有基于图形属性显示和基于文
本属性显示两种汉字显示方法[1]。本文以某型 240 × 128 点 阵图形液晶显示器为例讨论两种方法的实现,该液晶显示 器以 T6963C 为控制器,有 8K 显示缓冲区(RAM)。 1.1 基于图形属性汉字显示
图1 系统硬件连接图
2.1 图形属性汉字显示仿真 采用 Keil C51 进行程序设计,以显示汉字“仪表”为
例。根据系统硬件连接图,图形液晶显示器指令通道地址 0 x 8 1 0 0 ,数据通道地址为 0 x 8 0 0 0 。通过字模提取软件按照 从 上 到 下 从 左 到 右 的 取 模 顺 序 提 取“ 仪 表 ”两 字 的 字 模 , 以 C 语言格式建立字模常量数组,在程序中进行如下定 义:
70
1.2 基于文本属性汉字显示 采用文本属性显示汉字是将汉字以字符的形式来显
示,对于一个 8 × 8 点阵的字符,一个 1 6 × 1 6 点阵的汉字 要占用四个字符的位置。T 6 9 6 3 C 控制器字符发生器有2 5 6 个字符,自带的内部字符发生器(CGROM)有 128 个字符也有 128 个 字符,其代码为 0 x 8 0 ~0 x f f ,外部字符发生器的字符是用
相关文档
最新文档