当前位置:首页 > 单片机 > 单片机
[导读]摘 要:以8031单片机控制MGLS-240128液晶显示器为例,介绍利用CCDOS中的汉字库(HZK16)实现多级汉字菜单显示的方法。当显示内容改变时,不需要更改程序,只要更改菜单参数即可显示。 关键词:液晶显示器;MGLS

摘  要:以8031单片机控制MGLS-240128液晶显示器为例,介绍利用CCDOS中的汉字库(HZK16)实现多级汉字菜单显示的方法。当显示内容改变时,不需要更改程序,只要更改菜单参数即可显示。
    关键词:液晶显示器;MGLS-240128;汉字库;多级菜单

1. 引言
  目前常用的小型显示器有LCD和LED ,LED显示器只能显示数字和有限个英文字符,不能显示汉字,显示内容不直观,操作人员只能根据约定格式了解显示内容。而LCD则可显示各种汉字和图形,能实现中文菜单显示,便于操作,并且功耗低。因此LCD得到广泛应用。用LCD显示汉字时,一般采用自制汉字模和汉字编码,当显示内容较多时, 字模库容量很大,汉字的编码亦很难记住,给编程造成困难,当显示内容改变时,字模库也要作相应变化,工作量大。这里介绍一种直接利用CCDOS中的汉字库(HZK16)显示汉字多级菜单的方法。将HZK16和菜单内容固化在EPROM中,从而方便地实现了多级汉字菜单的显示,充分发挥了LCD的优点。

2. MGLS-240128显示模块简介及接口电路

  本文使用的显示模块是MGLS-240128,它的点阵数是240×128,如显示16×16点阵的汉字,可显示8行,每行15个字。MGLS-240128模块内藏HD61830控制器,模块的电原理框图如图1所示。

  有时在菜单显示中,显示的页数很多。为了便于在EPROM中定位,在计算机中编辑菜单时,应在每页菜单前加pxx:其中p表示一页开始,xx为该页序号,冒号表示以下为该页的内容。回车可换行到下一行并进入中文编辑状态输入,需要显示的内容。每页分8行,每行15个汉字或字符(包括空格)。在编辑的文件中,每行结尾有回车、换行符。这样,每一页菜单中,pxx以ASCII码形式存放,每个汉字以机器内码形式存放,每个机器内码占两字节。每行结束还有回车换行符,共有9行。这样每页长度为4+8×15×2×+9×2=262字节。若一共有40页,则存储器共需:40×262=10480字节。图2给出一菜单示例。国标GB2312-80把汉字分为94区,每区94个字符。其中1~15区是图形符号和字母,16~55区是一级汉字,共3755个。对于一般显示,前55区就足够了。在HZK16中,每一字符占32字节,共需32×55×94=165440字节。
  为了存储汉字字模和显示内容,约需180k字节存储器,可选用一片27020。其硬件原理图如图3所示,为了简便起见,只画出光标移动键、回车键和返回键,供操作时参考。图中的ROM分为两部分,一部分是2764,内装用户程序,一部分是27020,内装字库和菜单,因为程序必须从0000H开始执行,所以2764的地址空间为0000H~1FFFH,27020的地址空间为8000H~FFFFH。

3. 利用CCDOS中的汉字库显示汉字
  在计算机汉字系统中,每个汉字内码为二字节编码,字节的最高位置1,而ASCII码为7位编码,最高位为0。因此,可根据字符值大于还是小于128来判断它是汉字还是ASCII码。汉字地址码是指在一个汉字库中,某一汉字字形信息存放在库中的逻辑地址的编码。地址码=[(内码第一字节-AIH)×94+(内码第二字节-AIH)]×32。
  27020被分为8区,每区占32k字节。汉字字模存于0~6区,而菜单存在第7区,通过P1口实现选区。因此,寻找一个汉字的字模信息首先要确定此汉字所处的区数;再确定在此区中的地址(字模地址)。区数号=地址码/32768的商。字模地址=(地址码/32768的余数)×32+8000H。如汉字“唐”的机器内码是CCC6H,地址码=[(CCH-AIH)×94+(C6H-AIH)]×32=4079×32。区数号=4079×32/32768的商=4,字模地址=(4079×32/32768的余数)×32+8000=83E0H。
  由于在图形方式下,显示一个汉字的介绍文章很多,而且方法也大同小异,因此不再详细介绍一个汉字的显示过程,这里只给出一个流程。如图4所示。

 


 

 

4. 一页菜单的显示方法
  显示16×16点阵的汉字时,显示屏被划为8×15个方格。每页菜单也是8×15个字符,排列格式一样,因此每个字符可被放在一个方格内。若每页菜单中的字符坐标记为x,y,表示字符位于显示屏的第x行,第y列方格内。坐标原点在左上角。一页菜单的显示流程图如图5所示。
5. 多级菜单的显示
  显示菜单时,需把光标放在菜单和第一选项序号处,当要选其他项时,按动光标移动键,使光标放到待选项序号处,再按回车键,便进入下一级菜单。当要返回上一级菜单时,按返回键即可。为了达到以上的要求,首先要为每页菜单建立一个表格(菜单表格),表格的内容(即菜单参数)如下:第一字节放此页菜单待选项数。后面依次放各选项序号在屏幕中的x,y坐标和选项所对应菜单在EPROM中的首地址。这样,每个选项占四字节,最后两字节放在上级菜单在EPROM中的首地址。为了便于寻找,应使每个表格长度一样,至少应等于选项数最多的那页菜单所需的表格长度。如最多选项有8个,则格长度=1+8×4+2=35。如果某页菜单无选项,除了表格中最后两字节填上级菜单的地址外,其余地方填0。把所有的表格按页号顺序放在一起,形成一个总表格。把其首地址称为表格基地址。在程序中给每级菜单都设一个选项计数器。初值为0,每按一下光标移动键,选项计数器加1。光标处汉字反白(黑底白字),一般汉字为白底黑字。实现过程如下:由需反白字符的x,y值算出此字符字模在显示缓冲区(DDRAM)中的位置,从DDRAM中读出字模并取反白后送回原处。
  光标显示子程序如图6所示,键处理子程序如图7所示。

6. 结束语
  在实际工作中运用此技术显示多级菜单时,由于编程简单方便,避免了自制汉字库的繁杂工作。并且可以把整个程序作为一个模块,只需更改菜单表格的内容(即菜单参数),就可显示各种内容的菜单。为了操作更方便,可加光标上移键。当末级菜单有多页时,可加翻页键。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭