0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于OCMJ5X10芯片实现嵌入式系统人机界面的设计

电子设计 来源:单片机与嵌入式系统应用 作者:孟臣,李敏 2020-10-23 10:10 次阅读

1 概 述

由于图形点阵液晶显示模块具有显示信息丰富(可显示汉字、字符、曲线、图形)、功耗低、体积小、质量轻、寿命长、不产生电磁辐射污染等优点,因而是单片机系统中理想的显示器件。近年来被广泛应用于单片机控制的智能仪器仪表工业控制领域、通信器材和家用电器中。目前,国内在单片机系统中用于中文显示时,使用的液晶显示模块主要存在以下几方面的不足。

① 占用ROM空间大。以图形方式显示汉字,每个汉字将占用32字节的ROM空间,因此限制了显示汉字字符的数量。此点对内部Flash闪存数量较小的单片机,影响尤为严重。

② 与单片机的硬件接口电路复杂。8根数据线外,尚需使用片选、寄存器选择、读/写选择、使能控制等控制线,使得对单片机的硬件资源占用较为严重。

③ 接口时序复杂,软件编程繁复。

上述的几点内容限制了液晶显示技术在单片机系统中的应用。

这里介绍的OCMJ5X10是160×80点阵的中文图文液晶图形显示器模块。该模块的内部由于含有国标一级简体字库,使得汉字的显示异常方便;同时,该模块与单片机的硬件接口除数据总线外,仅使用了REQ/BUSY两根握手信号线,简化了与单片机的硬件接口电路设计。上述特点对软件、硬件资源均十分紧张的单片机系统来说是十分重要的。

2 主要特点及引脚定义

以下是OCMJ5X10中文液晶显示模块的主要特性。

① OCMJ5X10中文液晶显示器模块内含 GB 2312 16×16点阵国标一级简体汉字和 ASCII 8×8(半高)及8×16(全高)点阵英文字库。用户输入区位码或 ASCII 码即可实现文本显示。

② OCMJ5X10中文液晶显示模块也可用作一般的点阵图形显示器,提供位点阵和字节点阵两种图形显示功能。用户可在指定的屏幕位置上以点为单位或以字节为单位进行图形显示。完全兼容一般的图形点阵模块。

③ OCMJ5X10中文液晶显示模块可以实现汉字、ASCII 码、点阵图形和变化曲线的同屏显示,并可通过字节点阵图形方式造字。

④ OCMJ5X10中文液晶显示模块具有上/下/左/右移动当前显示屏幕及清除屏幕的命令,一改传统的使用大量的设置命令进行初始化的方法。 OCMJ5X10 中文模块所有的设置初始化工作都是在上电时自动完成的,实现了“即插即用”;同时,保留了一条专用的复位线供用户选择使用,可对工作中的模块进行软件或硬件强制复位。规划整齐的10个用户接口命令代码,非常容易记忆。标准用户硬件接口采用REQ/BUSY 握手协议,简单可靠。

⑤ OCMJ5X10中文液晶显示模块使用+5V单电源,同时由模块内部提供显示驱动负电压,简化了系统电源的设计。该模块还具有LED背光源。

OCMJ5X10中文图文液晶显示器的引脚说明如表1所列。

表1 OCMJ5X10引脚说明

基于OCMJ5X10芯片实现嵌入式系统人机界面的设计

3 硬件接口协议及接口时序

OCMJ5X10模块与CPU的接口除了使用DB0~DB7口8根数据线外,仅使用了REQ和BUSY两根控制线,构成请求/应答(REQ /BUSY)握手方式,省略了传统模块接口方式的片选、读写控制、指令/数据选择、使能控制等控制线,从而使硬件接口及软件时序变得非常简单。在硬件资源十分紧张的应用系统中,也可采用REQ单线延时控制方式,从而把硬件资源占用降至最低。接口协议如下:当BUSY线为高电平时(BUSY =1),表示模块忙于内部处理,不能接收用户命令;而BUSY为低电平时(BUSY =0),表示模块空闲,等待接收用户命令。CPU可在BUSY为低后的任意时刻开始发送命令。首先,把用户命令的当前字节放到数据线上,接着发送高电平 REQ 信号,通知模块,请求处理当前数据线上的命令或数据。模块在收到外部的REQ高电平信号后,立即读取数据线上的命令或数据,同时将应答线BUSY变为高电平,表明模块已收到数据并正在忙于对此数据的内部处理。此时,用户对模块的写操作已经完成,可以撤消数据线上的信号并可做模块显示以外的其它工作,也可不断地查询BUSY是否为低。如果BUSY =0,说明模块对用户的写操作已经执行完毕,可以再送下一个数据。如向模块发出一个完整的显示汉字的命令,包括显示坐标及汉字代码在内共需5个字节,模块在接收到最后一个字节后,才开始执行整个命令的内部操作;因此,最后一个字节的应答BUSY 高电平(BUSY =1)持续时间较长。这里以写入汉字命令的时序为例,给出 图1所示的OCMJ5X10时序图,对应的具体时间参数说明如表2所列。

表 2 OCMJ5X10模块时间参数

4 用户命令

OCMJ5X10模块共有3类10条命令,每条命令分为操作码和操作数两部分,操作数为十六进制数。下面介绍该模块的用户命令。

(1)显示国标汉字

命令格式 F0 XX YY QQ WW

XX:以汉字为单位的屏幕行坐标值。

YY:以汉字为单位的屏幕列坐标值。

QQ WW:坐标位置上要显示的GB 2312汉字区位码。

OCMJ5X10模块由于内部含有中文字库,因此中文字符的显示非常简单,只需给出该汉字的区位码即可显示该字。区位码表可参见GB2312字符集。

(2)显示8×8 ASCII字符

命令格式 F1 XX YY AS

该命令为4字节命令(最长执行时间为0.8ms,ts2= 0.8ms)。

XX:以ASCII码为单位的屏幕行坐标值。

YY:以ASCII码为单位的屏幕列坐标值。

AS:坐标位置上要显示的ASCII 字符码。

(3)显示8×16 ASCII字符

命令格式 F9 XX YY AS

操作数意义同上。

(4)显示位点阵

命令格式 F2 XX YY

该命令为3字节命令(最长执行时间为0.1ms,ts2= 0.1ms)。

(5)显示字节点阵

命令格式 F3 XX YY BT

该命令为4字节命令(最长执行时间为0.1ms,ts2= 0.1ms)。

(6)清 屏

命令格式 F4

该命令为单字节命令(最长执行时间为11ms,ts2=11ms),其功能为将屏幕清空。

(7)上 移

命令格式 F5

该命令为单字节命令(最长执行时间为25ms,ts2=25ms),其功能为将屏幕向上移动一个点阵行。

(8)下 移

命令格式 F6

该命令为单字节命令(最长执行时间为30ms,ts2=30ms),其功能为将屏幕向下移动一个点阵行。

(9)左 移

命令格式 F7

该命令为单字节命令(最长执行时间为12ms,ts2=12ms),其功能为将屏幕向左移动一个点阵行。

(10)右 移

命令格式 F8

该命令为单字节命令(最长执行时间为12ms,ts2=12ms),其功能为将屏幕向右移动一个点阵行。

5 具体应用

由于OCMJ5X10内部具有中文字库,且使用了简单的两线握手协议,因而将其应用在嵌入式系统中,可简化显示电路的硬件接口设计及软件编程。虽然模块与单片机之间数据的传输采用并行模式,占用单片机系统的硬件资源相对较多,但是相应显示软件的编制却要比采用串行接口模式的中文字库液晶模块相对简单。尤其是图形显示界面设计,利用OCMJ5X10提供的显示字节点阵命令(线绘图),可方便、快捷地绘制出显示图形。此点在绘图速度、ROM空间占用等方面优于串行接口模式的液晶模块。下面给出OCMJ5X10在嵌入式系统中的具体应用,包括硬件接口电路及软件编程。

5.1 硬件接口电路

这里以AT89C52单片机为例,给出OCMJ5X10液晶显示模块与单片机的接口电路。单片机与模块采用间接控制方式和REQ/BUSY握手方式。 AT89C52的P1.0~P1.7口与模块的DB0~DB7数据线相连,P3.4与模块BUSY线相连,P3.5与模块REQ线相连;晶振为 12MHz,模块采用上电自动复位。AT89C52与OCMJ5X10的接口电路如图2所示。

5.2 显示软件

下面给出与上述硬件电路配套的显示子程序。其包括初始化、显示汉字、显示8×16点阵ASCII字符、点绘图及线绘图子程序。可根据显示需要在主程序的相应位置调用,即可实现相应的显示功能。OCMJ5X10内部含有GB 2312一级字库,可满足绝大部分应用系统汉字显示的需要。对于一级国标字库内所没有的汉字或需要显示复杂图形时,可通过调用绘点及绘线子程序来实现任意复杂汉字或图形的显示。

;位定义

BUSY BIT P3.4

REQ BIT P3.5

;数据定义

X DATA 30H ;屏幕行坐标缓冲区

Y DATA 31H ;屏幕列坐标缓冲区

DATAH DATA 32H ;显示值高位

DATAL DATA 33H ;显示值低位

;初始化子程序

INT: MOV SP,#60H ;设堆栈

CLR REQ ;请求线清0

SETB BUSY ;将P3.4设为输入口

RET

;写模块子程序

SUB1: JB BUSY ,SUB1 ;确信模块空闲

MOV P1 , A ;向总线送数椐

NOP ;等待数据总线稳定

SETB REQ ;向模块发请求命令

WAIT: JNB BUSY,WAIT ;等待模块响应

CLR REQ ;清REQ

RET ;返回

;写汉字程序

HZ: MOV A , #0F0H ;写显示汉字命令

ACALL SUB1

MOV A , X

ACALL SUB1 ;写屏幕行坐标值

MOV A , Y

ACALL SUB1 ;写屏幕列坐标值

MOV A , DATAH

ACALL SUB1 ;写区位码高位

MOV A , DATAL

ACALL SUB1 ;写区位码低位

RET

;写8×16 ASCII码程序

ASC2:MOV A , #0F9H ;写显示8×16 ASCII

ACALL SUB1 ;字符命令

MOV A , X

ACALL SUB1 ;写屏幕行坐标值

MOV A , Y

ACALL SUB1 ;写屏幕列坐标值

MOV A , DATAL

ACALL SUB1 ;写字符ASCII码

RET

;点绘图子程序

HD: MOV A , #0F2H;写显示位点阵命令

ACALL SUB1

MOV A , X ;写点屏幕行坐标值

ACALL SUB1

MOV A , Y ;写点屏幕列坐标值

ACALL SUB1

RET

;线绘图子程序

HX: MOV A , #0F3H;写显示位点阵命令

ACALL SUB1

MOV A , X ;写点屏幕行坐标值

ACALL SUB1

MOV A , Y ;写点屏幕列坐标值

ACALL SUB1

MOV A , DATAL

RET

;清屏程序

CLR: MOV A , #0F4H ;写清屏命令

ACALL SUB1

RET

结 语

利用OCMJ5X10中文图文液晶模块相对简单的硬件接口及简单的用户命令,可为嵌入式系统设计出显示信息量大且显示信息丰富的全中文人机界面,避免了传统液晶模块中文图形显示界面复杂的硬件接口设计及软件编程。该模块为嵌入式系统人机界面设计提供了一种较好的解决方案。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口电路
    +关注

    关注

    8

    文章

    461

    浏览量

    57037
  • 嵌入式
    +关注

    关注

    5065

    文章

    18997

    浏览量

    302615
  • asic
    +关注

    关注

    34

    文章

    1184

    浏览量

    120278
  • 液晶显示
    +关注

    关注

    6

    文章

    582

    浏览量

    40254
  • 人机界面
    +关注

    关注

    5

    文章

    524

    浏览量

    44093
收藏 人收藏

    评论

    相关推荐

    嵌入式人机界面,PLC人机界面,单片机人机界面

    人机界面开发的负担和提高开发效率,专心于专业产品的开发,避免重复性劳动。为您大大地短了产品的开发周期。 嵌入式人机界面组态软件HMIMaker有以下几方面的功能: (1)强大的
    发表于 12-23 13:16

    人机界面的开发与应用

    人机界面的开发与应用彭彦卿,厦门理工学院电子与电气工程系,厦门市厦港新村72号605,361005[摘 要] 研究人机界面主画面、参数设定与显示画面、报警显示画面的开发与应用
    发表于 11-01 09:25 21次下载

    人机界面设计与应用

    本专题为你介绍人机界面设计及相关应用。内容包括人机界面人机交互的含义与区别,人机界面硬件选型、开发软件下载,人机界面技术资料,
    发表于 11-30 13:53
    <b class='flag-5'>人机界面</b>设计与应用

    基于WindowsCE的车载电脑系统人机界面的实现

    本文介绍了基于Windows CE的车载电脑系统人机界面的设计及其实现,着重论述了虚拟仪表界面和混合动力界面的设计过程与
    发表于 04-18 14:12 0次下载

    人机界面的基础指南

    本文档内容介绍了基于人机界面的基础指南,包含了型号大全以及选型指南。
    发表于 09-23 16:11 1次下载

    ARM主板,嵌入式主板,ARM工控主板,嵌入式工控机控制系统人机界面组态软件开发方案

    ARM主板,嵌入式主板,ARM工控主板,嵌入式工控机控制系统人机界面组态软件开发方案
    发表于 10-25 08:57 21次下载
    ARM主板,<b class='flag-5'>嵌入式</b>主板,ARM工控主板,<b class='flag-5'>嵌入式</b>工控机控制<b class='flag-5'>系统</b>的<b class='flag-5'>人机界面</b>组态软件开发方案

    人机界面的发展历程和组成结构及工作原理,人机界面如何控制plc?

    人机界面又称用户界面或使用者界面,是人与计算机之间传递、交换信息的媒介和对话接口,是计算机系统的重要组成部分。人机界面的组成结构及工作原理,
    发表于 12-12 14:42 7039次阅读

    人机界面设计案例分析

    本文开始对人机界面的定义进行了详细的介绍,其次阐述了人机界面的设计原则和人机界面的设计过程,最后对人机界面设计的三个案例进行了分析。
    发表于 03-12 10:25 3.2w次阅读

    基于Android操作系统实现车载人机界面应用程序的设计

    提出了利用Google的Android作为车载虚拟仪表人机界面的软件开发平台。在Android系统框架上实现虚拟仪表的人机界面,阐述了如何对Android现有
    发表于 04-06 18:18 2851次阅读
    基于Android操作<b class='flag-5'>系统</b><b class='flag-5'>实现</b>车载<b class='flag-5'>人机界面</b>应用程序的设计

    人机界面(HMI)的典型应用

    HMI是人机界面的简写,它为PLC控制系统、I/O模块或者其他控制系统提供一个人性化的操作界面,而人机界面则通过RS232、485、MODB
    发表于 09-11 14:04 6401次阅读
    <b class='flag-5'>人机界面</b>(HMI)的典型应用

    人机界面是什么意思_人机界面的特征

    的功能、性能和响应速度等因素。近年来,随着人工智能、虚拟现实、增强现实等技术的发展,人机界面的形式和方式也在不断地变化和创新。
    发表于 03-15 17:02 4652次阅读

    人机界面的应用

    人机界面的应用 HMI是人机界面的简写,它为PLC控制系统、I/O模块或者其他控制系统提供一个人性化的操作界面,而
    发表于 04-14 11:02 499次阅读

    人机界面产品中有操作系统吗?

    任何人机界面产品都有系统软件部分。系统软件运行在人机界面的处理器上,支持多任务处理。处理器需要一个小的操作系统管理
    发表于 04-14 15:21 661次阅读

    人机界面是什么意思 人机界面属于什么设备 人机界面的基本功能有哪些

    人机界面是指人和计算机之间的交互界面,包括硬件和软件。它使得人们可以通过各种输入设备(如键盘、鼠标、触屏等)向计算机输入信息,并通过各种输出设备(如显示器、音频设备等)获得计算机的反馈和输出信息。人机界面的设计需要考虑到易用性、
    的头像 发表于 04-15 11:03 8237次阅读

    嵌入式智能家居终端人机界面设计与实现

    电子发烧友网站提供《嵌入式智能家居终端人机界面设计与实现.zip》资料免费下载
    发表于 11-17 10:18 1次下载
    <b class='flag-5'>嵌入式</b>智能家居终端<b class='flag-5'>人机界面</b>设计与<b class='flag-5'>实现</b>