LCD1602汉字显示技术在万年历中的应用及Proteus仿真
LCD1602 是一款最常用也是最便宜的液晶显示屏,广泛应用于智能仪表、通信、办公自动化设备中。其主要作用是显示 ASCII 码字符,因此又被称作“字符型显示器件”。但是,对于内部没有标准汉字库的液晶显示器要显示汉字,需要经过三步骤:第一步,取得想要的中文或者图形的字模数据;第二步,将取得的汉字字模数据保存到液晶存储器内部;第三步,将汉字显示到需要位置,使用 Proteus 仿真或下载调试。
LCD1602 的内部存储器有三种:DDRAM、CGROM 和 CGRAM。DDRAM 存储器是和显示屏的内容对应的,1602 内部的 DDRAM 有 80 字节,显示屏上第一行的内容对应 DDRAM 中 80H 到 8FH 的内容,第二行的内容对应 DDRAM 中 C0H 到 CFH 的内容,每行 16 个,共 2 行,16×2 共显示 32 个字符。
CGROM 称为字符发生 ROM,其作用是存储各种字符的码,保存了厂家生产时固化在 LCM 中的点阵型显示数据。1602 液晶模块内部的字符发生存储器 CGROM 已经存储了 160 个不同的点阵字 符图形,有阿拉伯数字、英文文字的大小写、常用的符号、和日文假名等,这部分代码与 ASCII 码基本一致。
CGRAM 称为字符发生 RAM,是厂家留给用户自己定义点阵型显示数据的,作用是存储用户自定义的字符代码。用户自定义字符代码有 2 种格式:5×8 点阵格式和 5×11 点阵格式。CGRAM 数量为 64 个字节,采用 5×8 点阵格式时,每 8 个字节存储一个自定义字符代码,一共可容纳 8 个自定义字符。
使用 LCD1602 显示汉字需要建立自定义汉字点阵字库,使用 Proteus 环境仿真显示汉字。在实际应用中,使其成为一款具有中文界面的显示器件。这一种用法提供了良好的人机界面,不需要使用者有英文水平,降低了开发成本,而且可以更广泛的在智能仪表、通信和控制等领域推广。
在汉字取模过程中,每个字节为 8 个 bit,当以 5×8 点阵格式取模时,每个自己前 3 个 bit 为零,以 1 表示亮,0 表示暗,汉字 “年” “月” “日” 三个字取模如表 1 所示。
在汉字点阵数组的建立过程中,单片机内部 RAM 空间不足,需要将汉字点阵数据以数组形式保存在程序存储器空间。使用 unsigned char 类型的数组来存储汉字点阵数据,例如 unsigned char code hanzi[][8]={{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}}。
在 Proteus 环境中,可以使用仿真工具来显示汉字,使用 C 语言编程来实现汉字的显示。通过使用 LCD1602 显示汉字,可以提供良好的人机界面,降低开发成本,并且可以更广泛的在智能仪表、通信和控制等领域推广。