嵌入式智能仪器中汉字输入与显示接口设计

2012-11-15 01:49高美珍洪家平
关键词:智能仪表主程序液晶显示

高美珍,洪家平

(1.湖北师范学院 物理与电子科学学院,湖北 黄石 435002;2.湖北师范学院 计算机科学与技术学院 ,湖北 黄石 435002)

0 概述

随着智能仪器仪表在我国使用的越来越普遍, 智能仪表中要求使用汉字的情况也越来越多,这就涉及到智能仪表上汉字的输入与显示问题。由于智能仪表大多数是由8/16位的单片机组成,而这些单片机的I/O端口又非常有限,这就限制了智能仪器仪表系统中大量中文信息的输入。如果要较好地解决上面的问题,一种途径是通过设计一个通用PC机键盘与智能仪表系统中单片机的接口,通过这样一个接口,就可以做到在智能仪器仪表中像在PC机一样,任意输入或显示需要的大量汉字信息。

本系统采用通用PC机的PS/2键盘与51系列单片机AT89C52连接,使得通过PS/2键盘可以实现各种字符、数字的输入,还可以采用拼音或五笔等输入法实现汉字的输入,并能将对应的汉字在LED显示屏上显示输出。由于每一个汉字机内点阵码约占32字节,这样的话,常用汉字的点阵码要占约256K的空间,所以将点阵信息直接存储在容量小的AT89C52单片机中不太可能,如果使用带汉字字模的片外存储芯片,又会使得电路变得复杂。为了更有效地解决这一问题,本文采用带内置汉字库的ST7920控制器的液晶模块12864M,通过ST7920模块可以大大简化电路的结构和编程方法,同时也可以提高编程效率和汉字显示的速度。

1 键盘接口及工作原理

通用计算机键盘按接口形式可分为PC/AT、 PS/2、 USB和无线接口等几种类型。以PS/2 接口键盘为例,如图 1是PS/2键盘的6 针引脚插头。引脚及其功能定义见表1所示。

表1 PS/2键盘引脚及定义

图1 PS/2键盘引脚排列图

PS/2通用计算机键盘是一种以微控制器8048为主的智能键盘。微控制器8048 对键盘上的各键逐次扫描而得到某个键的动作信息,并且将其以扫描码的形式保存到存储器中。所以当键盘上有键按下或释放按键时,键盘扫描就会检测到该键的动作从而产生相应的扫描码。通常扫描码由一个或多个字节构成。下表2列出了主键盘区部分键的扫描码:

表2 主键盘区部分按键及其对应的扫描码

按键扫描码存放到内部缓冲存储器后,键盘与PC机通过串行通讯,将扫描码传输给PC 机后即可进行键盘识别。

2 系统接口硬件组成及工作原理

本系统采用的单片机是AT89C52,液晶显示模块是采用内置ST7920控制器的12864M, ST7920可以显示英文、中文字符及图形,内置有8000多个中文汉字(16×16点阵)、128个字符点阵显示RAM(GDRAM)的模块。

2.1 液晶显示模块与智能仪表硬件接口

如图2所示是智能仪表的CPU与液晶显示模块及PS/2键盘接口的硬件连接电路,通常液晶显示模块12864M与智能仪表系统中的单片机有并行和串行两种连接方法,串行接口比较简单,但是串行接口系统显示文本的速度比较慢,而并行接口较串行复杂,但是并行接口可以大大提高显示速度,所以本文所介绍的系统采用并行接口连接方式。

2.2 液晶显示控制模块ST7920的工作原理

图2中的液晶显示模块为12864M,它是内置有ST7920控制器的液晶显示模块,只要传入所要显示的英文字符的ASCII码或汉字的区位编码,液晶显示模块会自动计算其国标码和机内码,即可以根据编程命令立即将字符在指定位置显示出来。

2.3 PS/2键盘与智能仪表的硬件接口工作原理

当首次给键盘上电时,键盘电路产生复位信号,键盘开始POST自检。如果POST自检无误,键盘即向单片机发送0AAH,然后开始键盘扫描。单片机收到0AAH后,允许键盘传送数据,将数据线和时钟线置为高电平,此时数据线和时钟线上的电平就由键盘控制。

接口时钟信号由键盘提供,键盘完成扫描后,将扫描码存放到内部缓冲存储器中。在发送扫描码之前,键盘先检测键盘接口数据线和时钟线上的电平;如果时钟线为低电平,则表明单片机禁止键盘发送数据,键盘将扫描码继续保存在缓冲存储器中;只有当数据线和时钟线上电平均为高时,才允许键盘发送数据。此时键盘向主机发送数据和时钟信号。

键盘发送数据时,先拉低数据线电平,再发送数据位等信号。每位数据在时钟脉冲下降沿有效,在时钟脉冲高电平期间变化。数据发送完毕后,保持数据线和时钟线为高电平。

当单片机请求发送数据时,单片机将数据线拉低,键盘进入接收数据状态并发送时钟信号。每位数据均为时钟脉冲上升沿有效,在时钟脉冲低电平期间变化。键盘接收完数据后,将停止位拉低作为应答信号,表示数据接收完毕。

图2 单片机与液晶显示模块及PS/2键盘接口的硬件连接原理图

3 汉字输入与显示软接口设计

汉字输入与显示软件主要分为几大部分:即系统主程序、中断服务程序、汉字输入法程序、汉字显示程序和键盘接口程序等模块。

近日,云南省在“2018第四届中国PPP融资论坛”举办了PPP项目推介会。云南16州市带来了76个重点项目,总投资1643亿元,涉及交通运输、市政综合开发、生态建设和环境保护、农林水以及教育、医疗、卫生、旅游等17个公共服务领域。

3.1 系统主程序与中断服务程序模块

如图3和图4是系统主程序和中断服务程序流程图,图3和图4中的“其它主程序”用于智能仪表的其它事件处理,比如数据采集与处理程序、系统报警处理程序等。

系统主程序要求先对系统中的各部分进行初始化,然后置CLOCK、DATA线高电平为数据接收做准备,再对键盘进行POST上电自检,如果AT89C52单片机接收到了OAAH信号,就允许键盘传输数据,此时即可打开并等待中断响应,最后处理系统中的“其它主程序”。

如图4所示是系统中断服务程序流程图,因为键盘有键被按下后,会触发产生一个中断信号,此时会直接调用接收键盘扫描码子程序来接收被按下键的扫描码,然后对该扫描码进行奇偶校验,奇偶校验正确的话,就将DATA线拉低,调用键盘发送命令子程序重发扫描码,如果奇偶校验不正确,系统可以执行“其它主程序”后开中断,再返回系统主程序。

3.2 汉字显示的软接口

汉字显示程序模块中重要的是对ST7920液晶显示控制器进行编程控制。ST7920的汉字或文本显示RAM提供4行(每行8个汉字)的空间,当写入文本显示RAM时,可以分别显示CGROM、HCGROM与CGRAM的字型;ST7920A可以显示三种字型,分别是半宽的HCGROM字型、CGRAM字型及中文CGROM字型。三种字型的选择,由在DDRAM中写入的编码选择,各种字型对应写入命令的方法及详细编码范围如表3.

表3 ST7920显示的字型种类、命令及编码范围

图3 系统主程序流程图 图4 系统中断服务程序流程图

下面一段程序就是显示“欢迎使用ST7920”的代码(初始化及其它部分代码省略):

……

MOV A,#80H ;在LCD屏的第一行显示汉字:欢迎使用ST7920

LCALL WRITE_COM

MOV R4, #8

MOV DPTR,#HZCODE

D: CLR A

MOVC A, @A+DPTR

INC DPTR

LCALL WRITE_DAT

CLR A

MOVC A, @A+DPTR

INC DPTR

LCALL WRITE_DAT

DJNZ R4, D

HZCODE: DB '欢迎使用ST7920'

4 结束语

由于本系统采用了与通用PS/2键盘的连接接口和由ST7920控制的液晶显示模块,不仅使得智能仪器系统中信息的大量输入与显示变得可能和简捷,也使得智能仪器中键盘的数量得到了较大的扩充。本系统不仅可以输入和显示汉字,还可以输入和显示标点符号,以及其它的字符或符号。这些都为小容量ROM的智能仪器提供了一种汉字输入与显示的解决方法。

参考文献:

[1]刘进军,高美珍.基于单片机的汉字输入法的实现[J].国外电子元器件,2006,(12):25~28.

[2]李少卿,周杏鹏.通用计算机键盘在智能化仪器中的软硬件接口技术及应用[J].轻型汽车技术,2002,(9):42~44.

[3]徐卓农,张永忠.单片机系统中的汉字显示[J].单片机与嵌入式系统应用,2001,(7):31~34.

[4]胡 伟,季晓衡.单片机C程序设计及应用实例[M].北京:北京航空航天出版社,2003.

[5]洪家平.中文图形显示控制芯片ST7920的原理与应用[J].国外电子元器件,2005,(1):38~40.

猜你喜欢
智能仪表主程序液晶显示
智能仪表的抗干扰和故障诊断研究
浅谈数控铣削技术代码程序的嵌套方式研究
电控冰箱软件模块化设计
智能仪表技术及工业自动化应用发展分析
智能仪表在动态称重系统中的应用
智能仪表在工业自动化控制中的运用研究
时光倒流 换回PotPlayer老图标
122×32 点阵液晶显示汉字原理实验
界面致稳型柔性胆甾相液晶显示器件的制备与性能
未经授权的第三方软件侵权问题研究
——以“腾讯与360之争”为视角*