位置:51电子网 » 技术资料 » 接口电路

液晶显示器汉字字模存储方法

发布时间:2008/5/28 0:00:00 访问次数:483

  液晶显示器件(lcd)独具的低压、微功耗特性使他在单片机系统中特得到了广泛的应用,常用的液晶显示模块分为数显液晶模块、点阵字符液晶模块和点阵图形液晶模块,其中图形液晶模块在我国应用较为广泛,因为汉字不能象西文字符那样用字符模块即可显示,要想显示汉字必须用图形模块。

1 液晶模块显示汉字方法

  使用图形液晶模块以点阵形式来显示汉字和图形,每8个点组成1个字节,每个点用一个二进制位表示,存1的点显示时在屏上显示一个亮点,存0的点则在屏上不显示,最常用的16×16的汉字点阵由32个字节组成。

  以在我国应用较为普及的液晶显示驱动控制器t6963c为例,在液晶屏上横向8个点为1个字节数据。

  其他规格的汉字存放方式以此类推。

2 液晶控制器典型接口电路

  通过单片机将已提取的汉字的字模输入液晶控制器,即可按设定的液晶模块显示屏上现实需要的汉字。

  液晶模块与单片机的接口电路,在图中选用我国应非常广泛的8051单片机作为mcu,采用dg12864(128×64)液晶模块,其内置的液晶显示驱动控制器为日本东芝公司的t6963c。

  在电路中,地址线a12-a15和wr,rd信号通过gal16v8译码出外扩芯片的片选信号,其中液晶的译码地址为0xe000,将地址线a0与液晶控制口的c/d相连。当a0为低时液晶控制器接收数据,a0为高时液晶控制器接收命令码,因此液晶数据端口地址为0xe000,液晶命令端口为0xe001,采用keil c51进行程序设计,在程序中可进行如下定义。

#define xbyte((unsigned char volatile xdata* )0)

#define lcd_data xbyte[0xe000] //液晶数据端口

#define lcd_code xbyte[0xe001] //液晶命令端口

  单片机的数据线通过74hc245双向缓冲器与液晶控制器的数据口相连,用液晶控制器的片选信号/lcd_cs作为74hc245的使能信号,单片机的写信号/wr控制数据传送方向。/wr为低时,单片机数据写入液晶控制器;/wr为高时,cpu读取液晶控制器的数据和状态;

3 汉字字模存储及提取方法

  在单片机系统中对字模的存储,根据单片机的程序存储容量和其寻址空间情况,可采取3种方式。

  (1)将提取的汉字字模数据作为常量数组存放在程序存储区内,这种方法较为常用,针对程序不大或单片机无外部扩展数据存储区功能的情况。

  如下面程序所示,将提取的要显示汉字的字模数据定义成常量数组,如要显示合肥”两字。

  再编制汉字显示子函数write_hz。其中要调用另外两个子函数lcd_wait和disp_address。lcd_wait为读取液晶控制器是否忙函数,而disp_address为液晶控制器显示缓冲区地址设置函数,可根据液晶控制器资料编制[1]

  函数write_hz的参数x和y对应液晶屏幕的显示位置,其与液晶控制器显示缓冲区中的地址通过行**可计算出,该行中的wide为事先定义的液晶屏每行字节数,对于dg12864液晶而言,wide为16。

  函数write_hz根据16×16点阵汉字液晶控制器显示缓冲区的存放形式,依次改变显示地址,先将左半部1-16个字节写入显示缓冲区,再写入右半部17-32个字节。若要液晶显示“合肥”两字,只要在程序中带显示地区参数调用该函数即可。如:

write_hz(0,4,0);//合

write_hz(0,10,0x20);//肥

  (2)将提取的汉字字模数据存放在eprom或e2prom内,作为扩展的数据存储器供单片机调用[2]

  采用哈佛结构的单片机,如8051单片机及其派生产品,程序存储器(rom)和数据存储器(ram)可分别寻址,51单片机rom和ram最大的寻址空间均为64k,通常来说,对于中型的嵌入式系统,尤其是带液晶的单片机系统,64k的程序空间并不富裕,而将汉字字模作为常量数组会大大占

  液晶显示器件(lcd)独具的低压、微功耗特性使他在单片机系统中特得到了广泛的应用,常用的液晶显示模块分为数显液晶模块、点阵字符液晶模块和点阵图形液晶模块,其中图形液晶模块在我国应用较为广泛,因为汉字不能象西文字符那样用字符模块即可显示,要想显示汉字必须用图形模块。

1 液晶模块显示汉字方法

  使用图形液晶模块以点阵形式来显示汉字和图形,每8个点组成1个字节,每个点用一个二进制位表示,存1的点显示时在屏上显示一个亮点,存0的点则在屏上不显示,最常用的16×16的汉字点阵由32个字节组成。

  以在我国应用较为普及的液晶显示驱动控制器t6963c为例,在液晶屏上横向8个点为1个字节数据。

  其他规格的汉字存放方式以此类推。

2 液晶控制器典型接口电路

  通过单片机将已提取的汉字的字模输入液晶控制器,即可按设定的液晶模块显示屏上现实需要的汉字。

  液晶模块与单片机的接口电路,在图中选用我国应非常广泛的8051单片机作为mcu,采用dg12864(128×64)液晶模块,其内置的液晶显示驱动控制器为日本东芝公司的t6963c。

  在电路中,地址线a12-a15和wr,rd信号通过gal16v8译码出外扩芯片的片选信号,其中液晶的译码地址为0xe000,将地址线a0与液晶控制口的c/d相连。当a0为低时液晶控制器接收数据,a0为高时液晶控制器接收命令码,因此液晶数据端口地址为0xe000,液晶命令端口为0xe001,采用keil c51进行程序设计,在程序中可进行如下定义。

#define xbyte((unsigned char volatile xdata* )0)

#define lcd_data xbyte[0xe000] //液晶数据端口

#define lcd_code xbyte[0xe001] //液晶命令端口

  单片机的数据线通过74hc245双向缓冲器与液晶控制器的数据口相连,用液晶控制器的片选信号/lcd_cs作为74hc245的使能信号,单片机的写信号/wr控制数据传送方向。/wr为低时,单片机数据写入液晶控制器;/wr为高时,cpu读取液晶控制器的数据和状态;

3 汉字字模存储及提取方法

  在单片机系统中对字模的存储,根据单片机的程序存储容量和其寻址空间情况,可采取3种方式。

  (1)将提取的汉字字模数据作为常量数组存放在程序存储区内,这种方法较为常用,针对程序不大或单片机无外部扩展数据存储区功能的情况。

  如下面程序所示,将提取的要显示汉字的字模数据定义成常量数组,如要显示合肥”两字。

  再编制汉字显示子函数write_hz。其中要调用另外两个子函数lcd_wait和disp_address。lcd_wait为读取液晶控制器是否忙函数,而disp_address为液晶控制器显示缓冲区地址设置函数,可根据液晶控制器资料编制[1]

  函数write_hz的参数x和y对应液晶屏幕的显示位置,其与液晶控制器显示缓冲区中的地址通过行**可计算出,该行中的wide为事先定义的液晶屏每行字节数,对于dg12864液晶而言,wide为16。

  函数write_hz根据16×16点阵汉字液晶控制器显示缓冲区的存放形式,依次改变显示地址,先将左半部1-16个字节写入显示缓冲区,再写入右半部17-32个字节。若要液晶显示“合肥”两字,只要在程序中带显示地区参数调用该函数即可。如:

write_hz(0,4,0);//合

write_hz(0,10,0x20);//肥

  (2)将提取的汉字字模数据存放在eprom或e2prom内,作为扩展的数据存储器供单片机调用[2]

  采用哈佛结构的单片机,如8051单片机及其派生产品,程序存储器(rom)和数据存储器(ram)可分别寻址,51单片机rom和ram最大的寻址空间均为64k,通常来说,对于中型的嵌入式系统,尤其是带液晶的单片机系统,64k的程序空间并不富裕,而将汉字字模作为常量数组会大大占

相关IC型号

热门点击

 

推荐技术资料

耳机放大器
    为了在听音乐时不影响家人,我萌生了做一台耳机放大器的想... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!