的HMIwincc画面手自动按钮切换不了如何通过按钮来切换

软硬件结合,快速熟悉掌握PLC(可编程控制器),老司机带你翱翔 - 快资讯
需要开启 JavaScript 才能正常打开页面人机界面HMI串口屏菜单控件应用教程 - 单片机/MCU论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
人机界面HMI串口屏菜单控件应用教程
<div class=""
1. 适用范围文档适合大彩科技经济型、基本型、物联型、86盒系列等串口屏产品。2. 开发环境版本1.& &&&VisualTFT软件版本:V3.0.0.749 及以上;版本查看:(1)打开软件,右下角显示的软件版本号。(2)打开VisualTFT,点击帮助-&关于VisualTFT可以查看当前软件版本号。 2.& &&&串口屏硬件版本:V2.22.915.XXX及以上。版本查看:&&(1) 查看屏幕背面版本号贴纸。&&(2) VisualTFT与屏幕联机成功后,右下角显示的版本号。3. 功能概述菜单控件,弹出菜单供用户进行选择,选择后快速地将所选数据显示在屏幕上。把菜单控件放置在一个新建画面中,菜单控件放置完成。 4. 技术实现4.1& && &属性窗口属性窗口是对控件属性进行更改的一个界面,熟悉属性窗口可以更好地对控件功能进行应用。1.& &&&控件设置(1)&&菜单外观:分为单色和自定义图片。A:选择单色,可进行菜单字体以及背景部分设置。B:选择自定义图片,同时设置弹起时、按下时的图片。注:若设置自定义图片,并且需要用到裁剪功能,请将图片分辨率调整为屏幕分辨率大小,此处不建议使用裁剪功能。(2)&&字体:可以选择字体的大小。(3)&&背景色:选择菜单控件的背景色。(4)&&前景色:选择菜单控件上文字的颜色。2.& &&&菜单设置(1)&&菜单风格:分为弹出菜单和固定菜单。A:弹出菜单,菜单需要点击按钮或者发出指令,菜单会弹出来。B:固定菜单,菜单一直固定显示在屏幕上 。(2)&&菜单方向:水平或者垂直,建议按需设置,调试查看哪种方向适合使用。(3)&&菜单项数:显示菜单有多少项。(4)&&菜单数据:选中菜单中的选项后显示在文本控件上的数据,数据由用户自定义,数据与数据之间用半角“;”隔开。(5)&&多语言选项:可以设置语言数;选项以半角分号隔开。4.2& && &查看ID& &&&要完成控件的功能应用,前提必须知道怎么查看控件和画面的ID。1.& &&&查看控件ID当前画面图标左上角的数字即为控件的ID。2.& &&&查看画面ID& && &点击资源窗口,可以查看每个画面对应的ID。4.3& &&&例程操作菜单控件要在屏幕上进行选择,并在屏幕上进行显示,需要协同文本控件和按钮控件进行使用。所以我们在画面中,需要放置一个按钮控件、一个文本控件、一个菜单控件,如图 4-7所示。注:当我们数据比较庞大的时候,可以用一个按钮控件匹配多个菜单控件。插入控件后,我们对插入的三个控件分别进行设置。1.& &&&对菜单控件属性窗口进行设置菜单外观→自定义图片;弹起时的图片→选择弹起时的图片UI;按下时的图片→选择按下时的图片UI;菜单风格→弹出菜单;菜单方向→水平;菜单项数→“5”;菜单数据→“57.7;100;220;230;无效;”。2.& &&&对文本控件属性窗口进行设置清空文本框;对齐方式→居中对齐;输入方式→用户主机输入。3.& &&&对按钮控件属性窗口设置注:串口屏硬件版本号V2.22.793.XXX以前,包括793在内的产品,弹出菜单功能不支持直接设置按钮控件触控用途为“弹出菜单”,否则工程下载到硬件时将导致弹出菜单是无法正常使用的;如需正常使用弹出菜单,请使用上面介绍的开关描述功能进行设置。我司后续新产品将全面支持此功能。因为产品固件更迭的原因,所以这里设置按钮控件的属性窗口有两种方法:A:如果固件版本为793之前的版本(老版本),对按钮控件属性设置,触控用途→开关描述;设置对内按下时指令(下面详细介绍设置指令方法)。对内按下时指令设置方法:打开指令助手,在指令助手中选择下拉菜单,设置选择当前画面ID、当前菜单控件ID、 “显示下拉菜单”、当前文本控件ID
在按钮属性窗口中,鼠标左键点击标示区域,会弹出“...”的展开标志。然后点击“...”的展开标志。
系统会弹出一个输入框,把复制的指令填充到输入框中。B:如果固件版本为793之后的版本(新版本),对按钮控件属性设置,触控用途→弹出菜单;菜单控件ID→“1”;文本控件ID→“2”。4.& &&&模拟仿真编译无误后,运行模拟器测试效果。
主要详情可以下载附件进行浏览!!!!!
下载积分: 积分 -1 分
549.98 KB, 下载次数: 6, 下载积分: 积分 -1 分
最近下载过的用户(2)
刚好手上有几块,试试。顺便出~~~
Powered by
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司摘要/HMI人机界面
HMI  HMI是 Machine
的缩写,“人机接口”,也叫。人机界面(又称用户界面或使用者界面)是系统和用户之间进行交互和信息交换的媒介, 它实现信息的内部形式与人类可以接受形式之间的转换。凡参与人机信息交流的领域都存在 着人机界面。
  HMI的接口种类很多,有RS232,,RJ45网线接口,
  举个例子来说,在一座工厂里头,我们要搜集工厂各个区域的温度、湿度以及工厂中机器的状态等等的信息透过一台主控器监视并记录这些参数,并在一些意外状况发生的时候能够加以处理。这便是一个很典型的/HMI的运用,一般而言,HMI系统必须有几项基本的能力:
  实时的资料趋势显示——把撷取的资料立即显示在屏幕上。
  自动记录资料——自动将资料储存至数据库中,以便日后查看。
  历史资料趋势显示——把数据库中的资料作可视化的呈现。
  报表的产生与打印——能把资料转换成报表的格式,并能够打印出来。
  图形接口控制——操作者能够透过图形接口直接控制机台等装置。
  警报的产生与记录——使用者可以定义一些警报产生的条件,
  比方说温度过度或压力超过,在这样的条件下系统会产生警报,通知作业员处理。HMI人机界面常识  1、人机界面产品的定义 连接可编程序控制器(PLC)、变频器、直流调速器、仪表等工业控制设备,利用显示屏显示,通过输入单元(如触摸屏、键盘、鼠标等)写入工作参数或输入操作命令,实现人与机器信息交互的数字设备,由硬件和软件两部分组成。
  2、人机界面(HMI)产品的组成及工作原理
  人机界面产品由硬件和软件两部分组成,硬件部分包括处理器、显示单元、输入单元、通讯接口、数据等,其中处理器的性能决定了HMI 产品的性能高低,是HMI的核心单元。根据HMI的产品等级不同,处理器可分别选用8位、16位、32位的处理器。HMI软件一般分为两部分,即运行于 HMI硬件中的系统软件和运行于PC机Windows操作系统下的画面组态软件(如JB-HMI画面组态软件)。使用者都必须先使用HMI的画面组态软件制作“工程文件”,再通过PC机和HMI 产品的串行通讯口,把编制好的“工程文件”下载到HMI的处理器中运行。
  3、人机界面产品的基本功能及选型指标
  基本功能:
  设备工作状态显示,如指示灯、按钮、文字、图形、曲线等
  数据、文字输入操作,打印输出
  生产配方存储,设备生产数据记录
  简单的逻辑和数值运算
  可连接多种工业控制设备组网
  选型指标:
  显示屏尺寸及色彩,分辨率
  HMI的处理器速度性能
  输入方式:触摸屏或薄膜键盘
  画面存贮容量,注意厂商标注的容量单位是字节(byte)、还是位(bit)
  通讯口种类及数量,是否支持打印功能
  4、人机界面产品分类
  薄膜键输入的HMI,显示尺寸小于5.7ˊ,画面组态软件免费,属初级产品。如POP-HMI 小型人机界面 触摸屏输入的HMI,显示屏尺寸为5.7ˊ~12.1ˊ,画面组态软件免费,属中级产品
  基于平板PC计算机的、多种通讯口的、高性能HMI,显示尺寸大于10.4ˊ,画面组态软件收费,属高端产品
  5、人机界面的使用方法
  明确监控任务要求,选择适合的HMI产品
  在PC机上用画面组态软件编辑“工程文件”
  测试并保存已编辑好的“工程文件”
  PC机连接HMI硬件,下载“工程文件”到HMI中
  连接HMI和工业控制器(如PLC、仪表等),实现人机交互
产品介绍/HMI人机界面
   -SmartPanels 中性的设计最适合OEM厂商,HMI适合所有工业自动化使用,可连接多款PLC,可选购多种网络接口,高效能 HMI具备多样的选择及具有竞争力的价格,可靠、高效、聪明的硬件及坚固的外壳,高质量产品,最佳的特点,动画编辑多样、高分辨率的图形,采用C语言程序设计,面板 7&以上可选购不锈钢前框,IP 66K防护等级,可应用于严酷的环境。
功能特点-BrainChild/HMI人机界面
  1、4种屏幕尺寸,分别为 4.3&, 7&, 10& & 15& 。
BrainChild人机界面功能特点  2、分成4个高功能HMI 450, 750, ,及1个经济型HMI 730 , 共5个型号。
  3、触控式彩色屏幕,高分辨率,高达65,536色彩显示。
  4、内建Ethernet,USB Host,2个串行端口,SD卡插槽。
  5、网络接口PROFIBUS-DP,PROFINET(1或2埠),DeviceNet,EtherNet/IP, CANopen, ,CC-Link, ControlNet & CompoNet。
  6、高阶可信赖的 WinCE 6.0&平台,具备多项高效率特性且处理复杂多变化的控制。
  7、选购的不锈钢金属外壳适用于食品,药品以及石化与天然气等产业。
  8、坚固的不锈钢金属前框,具备IP66K,适用于需高防护的防水&防尘产业,光滑的表面,容易清洗,不残留水渍。 9、内建大容量 128 MB Flash ROM及128/256MB SDRAM。
  10、USB Host可支持,随身碟,键盘与鼠标,另可选购声音输出埠。
  11、屏幕可远选择水平或垂直方式安装。
  12、广宽的工作电源11-36 VDC 或 90-250 VAC,可供选择。
  13、显示面板采用LED背光源,具备高亮度,并符合安全,环保,耐久等需求。
  14、针对OEM客户,提供开放式 WinCE 6.0&平台。
人机界面产品问答-BrainChild/HMI人机界面
  1、人机界面与人们常说的“触摸屏”有什么区别?
  从严格意义上来说,两者是有本质上的区别的。因为“触摸屏”仅是人机界面产品中可能用到的硬件部分,是一种替代鼠标及键盘部分功能,安装在显示屏前端的;而人机界面产品则是一种包含硬件和软件的人机交互设备。在工业中,人们常把具有触摸输入功能的人机界面产品称为“触摸屏”,但这是不科学的。
  2、人机界面和组态软件有什么区别?
  人机界面产品,常被大家称为“触摸屏”,包含HMI硬件和相应的专用画面组态软件,一般情况下,不同厂家的HMI硬件使用不同的画面组态软件,连接的主要设备种类是PLC。而组态软件是运行于PC硬件平台、windows操作系统下的一个通用产品,和PC机或一起也可以组成HMI产品;通用的组态软件支持的设备种类非常多,如各种PLC、PC板卡、仪表、变频器、模块等设备,而且由于PC的硬件平台性能强大(主要反应在在速度和存储容量上),通用组态软件的功能也强很多,适用于大型的监控系统中。
  3、人机界面产品中是否有操作系统?
  任何人机界面产品都有系统软件部分,系统软件运行在HMI的处理器中,支持多任务处理功能,处理器中需有小型的操作系统软件的运行。基于平板计算机的高性能人机界面产品中,一般使用,等通用的。
  4、人机界面只能连接PLC吗?
  不。人机界面产品是为了解决PLC的人机交互问题而产生的,但随着和技术的发展,很多工业控制设备都具备了串口通讯能力,所以只要有串口通讯能力的工业控制设备,如变频器、直流调速器、温控仪表、数采模块等都可以连接人机界面产品,来实现人机交互功能。
  5、人机界面只能通过标准的串行通讯口与其它设备相连接吗?
  大多数情况下是这样的。但随着计算机和数字电路技术的发展,人机界面产品的接口能力越来越强。除了传统的串行(RS232、 /RS485)通讯接口外,有些人机界面产品已具有网口、并口、口等,它们就可与具有网口、并口、USB口等接口的工业控制设备相连接,来实现设备的人机的交互。
  6、是否有通讯功能的设备一定能和人机界面产品连接?
  应该是这样的。因为通用的人机界面产品都提供了大量的、可供选择的常用设备通讯;一般情况下,只要在人机界面的画面组态软件中选择与连接设备相对应的通讯驱动程序,就可以完成HMI和设备的通讯连接。如果所选HMI产品的组态软件中没有要连接设备的通讯驱动程序,用户则可以把要连接设备的通讯口类型和协议内容告知HMI产品的生产商,请HMI厂商代为编制该设备的通讯驱动程序。
  7、PC机加触摸屏,能否直接与PLC通讯,完成HMI的功能?
  当然可以。不过还要编制相应的HMI软件,才能使PC机成为一个真正的HMI产品。
  8、未来人机界面的发展趋势是什么?
  随着数字电路和计算机技术的发展,未来的人机界面产品在功能上的高、中、低划分将越来越不明显,HMI的功能将越来越丰富;5.7寸以上的 HMI产品将全部是彩色显示屏,屏的寿命也将更长。由于成本的降低,HMI产品将以平板PC计算机为HMI硬件的高端产品为主,因为这种高端的产品在处理器速度、存储容量、通讯接口种类和数量、组网能力、软件上都有较大的优势,是未来HMI产品的发展方向。当然,小尺寸的(显示尺寸小于 5.7寸)HMI产品,由于其在体积和价格上的优势,随着其功能的进一步增强(如增加IO功能),将在小型机械设备的人机中得到广泛应用。
&|&相关影像
互动百科的词条(含所附图片)系由网友上传,如果涉嫌侵权,请与客服联系,我们将按照法律之相关规定及时进行处理。未经许可,禁止商业网站等复制、抓取本站内容;合理使用者,请注明来源于www.baike.com。
登录后使用互动百科的服务,将会得到个性化的提示和帮助,还有机会和专业认证智愿者沟通。
此词条还可添加&
编辑次数:4次
参与编辑人数:4位
最近更新时间: 17:19:59
贡献光荣榜
扫码下载APP北京迪文科技有限公司智能显示终端开发指南目 录Ver2.01 终端正常工作的硬件基础...................................................................................... 2 1.1 选择合适的供电电源 ................................................................................... 2 1.2 串口的连接.............................................................................................. 3 2 基本约定......................................................................................................... 4 2.1 书写规范 ................................................................................................ 4 2.2 坐标系 ................................................................................................... 5 2.3 颜色和调色板 ........................................................................................... 5 2.4 迪文 HMI 指令集 ........................................................................................ 6 3 迪文终端演示开发助理使用说明 ............................................................................. 7 3.1 软件概述 ................................................................................................ 7 3.2 软件主界面.............................................................................................. 8 3.3 系统控制台.............................................................................................. 9 3.4 终端仿真 ...............................................................................................11 3.5 功能面板(常用指令图示说明) ....................................................................12 3.6 通讯记录 ...............................................................................................19 3.7 状态栏 ..................................................................................................19 4 文本功能........................................................................................................20 4.1 字符编码 ...............................................................................................20 4.2 字库的生成和使用.....................................................................................21 4.3 文本显示(printf()函数的实现)..................................................................22 4.4 文本输入(scanf()函数的实现) ...................................................................24 5 图形功能........................................................................................................25 5.1 实时动态曲线图显示 ..................................................................................25 5.2 进度条的实现 ..........................................................................................27 5.3 模拟仪表板的实现.....................................................................................28 5.4 使用暂存缓冲区方便的实现历史曲线回放(M100 内核终端不支持) ...........................29 5.5 如何设计类似 Windows 风格的图形界面 ............................................................32 5.6 区域图片(照片)实时刷新 ..........................................................................33 6 外设和附加功能 ...............................................................................................34 6.1 键盘接口 ...............................................................................................34 6.2 触摸屏 ..................................................................................................36 6.3 访问 32MB 用户存储器.................................................................................40 6.4 使用终端的“拼音输入法”实现中文输入 .........................................................42 6.5 使用终端的“数据排序算法”对测量数据进行处理...............................................44 7 使用配置文件来简化设计.....................................................................................45 7.1 让 HMI 自动进行触控界面切换 .......................................................................45 7.2 方便的调用不同图标显示 ............................................................................47 附录 1 DP104B 评估板原理图(51 单片机应用) .............................................................48 附录 2 51 单片机汇编语言(ASM51)程序设计概要 .........................................................49 附录 3 PLC 开发迪文终端指南(S7-200) ....................................................................52 附录 4 软件模拟串口(ASM51) ................................................................................55 附录 5 迪文 HMI(串口智能显示终端)选型指南 ............................................................57 附录 6 修订记录和联系方式 ....................................................................................58专业创造价值,诚信赢得未来1 北京迪文科技有限公司1 终端正常工作的硬件基础1.1 选择合适的供电电源智能显示终端开发指南Ver2.01.1.1 迪文终端两种功耗标注方式的区别 标注方式 A 举例:DC7-28V 5VA 采用这种标注方式,说明: a.对应的终端必须使用直流电源工作; b.工作电压范围是 7-28V,即在这个范围内任何电压,终端均可以正常工作; c.5VA 说明终端的功耗是 5VA,基本上是恒功率工作,选择电源功率一般比额定值大 20%就可以了。 对应这款终端,可以选择 9V 6W、12V 6W 或者 24V 6W 的电源给终端供电。注意供电电压不同时, 电流会不同(9V 为 560mA,12V 为 420mA,24V 为 210mA) 。 标注方式 B 举例:DC7-15V 150mA 采用这种标注方式,说明: a.对应的终端必须使用直流电源工作; b.工作电压范围是 7-15V,即在这个范围内任何电压,终端均可以正常工作; c.150mA 说明终端的电流消耗是 150mA, 基本上是恒电流工作, 选择电源的电流一般比额定值大 20% 就可以了。 对应这款终端,可以选择 9V 200mA 或者 12V 200mA 的电源给终端供电。注意供电电压不同时,功 率会不同(9V 为 1.1W,12V 为 1.8W) 。 对于 A 型终端,一般功耗比较大,我们选择靠近上限电压的电源供电,以降低供电电流,降低线路 损耗;同时比较高的供电电压,抗电网电源波动的能力也会强一些(电网干扰往往是欠压形式) 。 对于 B 型终端,我们一般选择靠近下限电压的稳压电源供电,以降低功耗,减少终端本身的发热, 由于工作电压靠近下限,推荐采用开关电源供电以提高抗电网干扰能力。 1.1.2 抑制电源干扰 尽管迪文的终端产品在电源上已经做了大量处理,但是,在有些工业现场有强干扰的情况下(比如 电源接地错误、特大工频炉辐射、感应雷干扰等) ,终端的抗干扰能力还是有限,需要客户自己选择以 下推荐的几种处理方法之一或组合使用来提高抗电源干扰能力: a.尽可能把整个电路系统和干扰源共地(等电位) ,但不要让干扰电流从本机地环路中流过; b.供电时,尽可能把功率大、干扰大的电路放在前级; c.如果有条件,使用独立的电源供电; d.在市电侧,使用 1:1 的隔离变压器做电源隔离; e.在线路上,组合使用气体放电管、压敏电阻和 TVS 管来吸收干扰; f.尽可能使用电阻吸收的方式,而不是电容或者电感滤波的方式来滤除地环路上的干扰; g.注意,在直流电源上串电感滤波时,如果电源波动很大,电感的自感(或和临近电感的互感)电 动势会带来很大的干扰,尤其对 CPU、存储器等电源敏感器件。这种情况下,把电感换成一个电阻,滤 波效果要更好。 1.1.3 电源选择不合适的常见故障 终端不断复位重启; 终端工作一会儿后黑屏, 断电凉一会后上电又可以工作一段时间 (多见于使用功率不够的铁心 变压器降压、整流滤波的线性电源供电) ; 使用 DC/DC 电源模块(比如 Vicor 公司相关产品)供电,由于这些模块一般都是直接对 220V 整流后开关稳压处理, 如果接地处理不好, 会使输出地线带电 (220V 或 110V) 对共地的设备没有影响, , 但一旦地线故障或者有真正的大地接上地线(比如用示波器探头的负极去夹持地线)时,就会放电对设 备造成严重损坏(比如存储器内容丢失、CPU 烧毁等) ;专业创造价值,诚信赢得未来2 北京迪文科技有限公司1.2 串口的连接1.2.1 PC 机 DB9 串口(针式连接器)针脚定义针脚 1 2 3 4 5 6 7 8 9 注: 定 义 DCD RXD TXD DTR GND DSR RTS CTS RI 数据方向 输入 输入 输出 输出 GND 输入 输出 输入 输入 说 明 载波检测 接收数据 输出数据 数据终端准备好 公共地 数据设备准备好 请求传送 清除以传送 振铃指示 表 1-2-1智能显示终端开发指南Ver2.0和迪文 232 终端连接 DD DOUT DIN DD GND DTR(BUSY) DD DD DD表 1-2-1 中, “输入”表示数据输入到 PC, “输出”表示数据从 PC 输出。 当两个 RS232 串口设备数据线连接正确时,用万用表电压档测量,TXD 和 RXD 数据线应该都是负电压; RS232 串口空载时,用万用表电压档测量,数据发送数据线(TXD)应该是负电平。1.2.2 串口电平的转换图 1-2-1图 1-2-2图 1-2-1 是 3.3V 和 5V 电平的 TTL 串口转换电路,其中 SS14 可用其它压降小于 0.3V 的肖特基二 极管代替。 图 1-2-2 是 3.3V 或 5V 电平的 TTL 串口到 RS232 电平串口的转换电路。 1.2.3 RS485 接口的处理 迪文智能显示终端一般采用 RS232 接口,但是 PLC 等设备,或者信号需要远传时,往往需要使用抗 干扰能力更好的 RS485 差分信号传输,这时就需要 RS232/RS485 转换电路。常见的无源 RS232/RS485 转换器和迪文显示终端的连接电路如下:图 1-2-3 注: 由于迪文显示终端不允许串口窃电,所以要外供一个“窃电”电源; 有些 RS232/RS485 接口的 485 引脚定义可能和上图刚好相反,判别的方法是使用万用表电压档测量 RS485 接口 DB9 插针的 1、2 脚电位,高电位的是 A 线(485+) ,低电位的是 B 线(485-) 。专业创造价值,诚信赢得未来3 北京迪文科技有限公司2 基本约定2.1 书写规范智能显示终端开发指南Ver2.0在本文档中,约定以下书写规范: 用数据前加“0x”或数据后加“H”的方式表示 16 进制数据; 比如,0xAA 或 AAH 都表示 16 进制数据 AA。 为了方便用户直接应用,串口指令都使用 16 进制格式书写,并不加任何标记; 比如,AA 52 表示串口下发的两个字节 16 进制数据 0xAA 和 0x52,并且 AA 先发送; 用’’表示文本信息; 比如’迪文 OK’表示字符串“迪文 OK” ,其对应的 16 进制内码是 0xB5CF 0xCEC4 0x4F 0x4B; 用(x,y)表示显示屏上的坐标位置; 比如(0,0)表示 x=0,y=0 的坐标原点。 迪文智能终端,字数据都采用 MSB 方式传送,所以本文档中也采用 MSB 方式,即高字节在前; 比如,0x1234 表示串口传送时,0x12 先传送,0x34 后传送。 应用举例: 从(0,0)位置显示 32×32 点阵的汉字字符串“北京迪文科技” ,指令可能会有以下几种方式表示。 方式 1:0xAA 0x55 (0,0) ‘北京迪文科技’ 方式 2: 串口下发指令:AA 55 00 00 00 00 B1 B1 BE A9 B5 CF CE C4 BF C6 BC BC CC 33 C3 3C指令 含义 指令 含义 注: 上表中 0XB1B1 是汉字’北’的内码(GB2312 或 GBK 编码) ; 指令中的显示坐标位置(x,y)指字符串第一个文字( “北” )的左上角位置; 指令在终端执行后,显示结果如图 2-1-1 所示。 AA 帧头 BE A9 京 55 32 点阵文本显示指令 B5 CF 迪 00 00 X 坐标 0 CE C4 BF C6 文 科 表 2-1-1 00 00 Y 坐标 0 BC BC 技 B1 B1 北 CC 33 C3 3C 帧尾图 2-1-1专业创造价值,诚信赢得未来4 北京迪文科技有限公司2.2 坐标系智能显示终端开发指南Ver2.0迪文智能显示终端的坐标系与普通笛卡尔坐标系不同, 而与通常的图像坐标系相同, 即以可视区域 的左上角作为坐标系原点,向右为 X 轴正向,向下为 Y 轴正向。如图 2-2-1 所示。 (0,0) X轴?A(x,y)Y轴图 2-2-1 迪文显示终端的坐标系在迪文显示终端指令中,统一以 4 个字节来表示坐标位置,X、Y 坐标分别以两个字节进行表示, 坐标的表示范围为 0-65535。 例如,假设 A 点坐标为(275,412) ,则在迪文显示终端中用 16 进制数据表示为: X=0x0113 Y=0x019C2.3 颜色和调色板2.3.1 调色板 16 迪文智能显示终端采用 16 位颜色模式,最多可表现出 2 =65536 种颜色(65K 真彩色) 。 16 位颜色的表示采用 5R6G5B 调色板模式。即每个像素点用 16 位(两个字节)来表示,其中红色 分量(R)占 5 位、绿色分量(G)占 6 位、蓝色分量(B)占 5 位。 调色板高字节(高 8bit VD15-VD8) 调色板低字节(低 8bit VD7-VD0) 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 R4 R3 R2 R1 R0 G5 G4 G3 G2 G1 G0 B4 B3 B2 B1 B0 红色调色板 绿色调色板 蓝色调色板表 2-3-1 调色板定义比如:深红=0xF800 深绿=0x07E0 深蓝=0x001F 2.3.2 前景色与背景色 前景色为进行图形操作时点、 图形所显示的颜色, 线、 即指令集中的 COLOR, 上电默认白色 (0xFFFF) 。 背景色即指令集中的 BKCOLOR,上电默认为蓝色(0x001F) 。 图 2-3-1 中文字显示的白色即为前景色 COLOR,背景的蓝色即为背景色 BKCOLOR。图 2-3-1专业创造价值,诚信赢得未来5 北京迪文科技有限公司2.4 迪文 HMI 指令集类 握 别 手 指令 0x00 0x40 0x41 0x42 0x43 0x44 0x53 0x54 0x55 0x6E 0x6F 0x98 0x50 0x51 0x74 0x72 0x56 0x6D 0x75 0x76 0x57 0x59 0x69 0x52 0x5A 0x5B 0x5C 0x60 0x61 0x62 0x63 0x70 0x71 0xE2 0x99 0x9A 0xC0智能显示终端开发指南T 系列 √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ × × √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ × × × × × √ × × × × × × × × × √ √ × × √ × × × × × × × × × × × √ S 系列 √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ × √ √ √ √ √ √ √ √ √ √ √ √ √ × √ √ × × √ √ √ √ × × × × √ × √ × √Ver2.0K 系列 √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ × × √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √显示参数配置文本显示置点线段和多边形 圆弧和圆域 矩形框区域操作图片/图标显示 动画支持 暂存缓冲区数据库操作 键盘操作触摸屏操作 蜂鸣器控制 背光控制 时钟操作 参数配置 实用算法声音操作配置文件操作 (简易 OS) 软件升级说 明 查看配置和版本信息 设置调色板 调色板位数: T=16bit 65K 色 设置字符显示间距 S=16bit 65K 色 取色到背景色调色板 K=18bit 262K 色 取色到前景色调色板 设置光标显示模式 8×8 点阵 ASCII 字符 16×16 点阵 GBK 字符串显示 32×32 点阵 GB2312 字符串显示 12×12 点阵 GBK 字符串显示 24×24 点阵 GB2312 字符串显示 任意点阵,任意编码字符串显示 背景色置多个点(删除点) 前景色置多个点 动态曲线快速置点 直接显存操作 连接多条线(多边形) 删除多条线(多边形) 快速显示连续的同底垂直线段(频谱) 快速显示折线图 反色/显示 多个圆弧或圆域 显示多个矩形框 删除多个矩形框 清屏 多个指定区域清除 多个指定区域填充 多个指定区域反色 多个指定区域左环移 多个指定区域右环移 多个指定区域左移 多个指定区域右移 显示保存在终端中的一幅全屏图像 存储器: T=96MB 从保存在终端的一幅图片剪切一部分显示 S=96MB 将当前显示画面保存到终端中 K=992MB 用户自定义图标显示 打开/关闭用户预先设置的动画显示 写数据到暂存缓冲区 01=显示暂存缓冲区预置的数据点 0xC1 02=显示暂存缓冲区预置的数据线 03=使用暂存缓冲区的数据点连线(曲线动态缩放) 0xF2 修改字库 0x90 写数据到用户数据库(32MB) 0x91 从用户数据库读数据(32MB) 0x71 键码上传 0xE5 配置键码接口 0x72 触摸屏松开后,最后一次数据上传(可 0xE0 指令设置关闭) 0x73 触摸屏按下时,数据上传(可 0xE0 指令设置只传 1 次) 0xE4 触摸屏校准 0x78 触控界面自动切换模式下,预设键码自动上传。 0x79 蜂鸣器鸣叫一声(100mS) 0x5E 关闭背光 0x5F 打开背光或 PWM 方式调节背光亮度 0x9B 启用/关闭时钟自动叠加显示 0xE7 设置时钟 0xE0 配置用户串口速率、触摸屏数据上传格式 01=基于一级字库的拼音输入法 0xB0 02=计算(A×B+C)/D 03=无符号整数(2 字节)数组排序 0x30 播放指定存储位置的音乐 0x32 实时音量调节 0x33 立即停止播放 0x3F 声音操作指令应答 触控界面自动切换(0x1E 字库文件) 自动动画播放(0x1C 字库文件) 图标字符定义(0x1D 字库文件) 用户指令配置文件(0x1F 字库文件) 串口在线升级内核软件专业创造价值,诚信赢得未来6 北京迪文科技有限公司3 迪文终端演示开发助理使用说明3.1 软件概述智能显示终端开发指南Ver2.03.1.1 软件用途 本软件的目的是提供使用迪文系列智能显示终端产品的用户提供一个有效的演示、 评估平台, 加快 用户的研发进度。 3.1.2 软件运行 本软件可以运行在 PC 及其兼容机上,使用 WINDOWS XP 操作系统,需要有微软.net Framework 2.0 或以上版本基础类库的支持。 本软件为绿色免安装类型, 用户直接点击如图 3-1-1 所示的图标即可运行。图 3-1-1 迪文终端演示开发助理的安装和运行3.1.3 系统配置要求 硬件:奔腾 IV 及以上 CPU,256M 以上内存的 PC 及其兼容机, 。 操作系统: WINDOWS /XP 通讯方式:下位机为迪文系列显示终端产品,通过 RS-232 串口或 USB 与 PC 相连。 其他:软件配置文件为“Terminal.ini” ,需与本软件可执行文件放在同一文件夹下,如图 3-1-1 所示。 3.1.4 软件安装 直接点击解压软件的压缩包,把可执行文件和配置文件放在同一文件夹下,然后点击 “DWIN_DA_V2.exe”运行软件。专业创造价值,诚信赢得未来7 北京迪文科技有限公司3.2 软件主界面智能显示终端开发指南Ver2.0BCD A图 3-2-1 迪文演示开发助理主界面如图 3-2-1 所示,主界面共分五个部分,分别是: A:系统控制台; B:终端仿真; C:功能面板; D:通讯记录; E:状态栏。 下面详细介绍各部分功能和操作方法。E专业创造价值,诚信赢得未来8 北京迪文科技有限公司3.3 系统控制台智能显示终端开发指南Ver2.0串口状态指示图 3-3-1 系统控制台系统控制台负责控制软件与终端的通讯连接、设置全局参数等。 串口参数 在串口参数中,端口号下拉列表列出了当前 PC 端可以打开的全部串口端口号。在打开串口与终端 建立连接前请先选择正确的串口端口号。 若不能确定当前所使用的串口, 请点击 windows “开始” “控 -& 制面板”-&“性能和维护”-&“系统” ,在“硬件”选项卡的“设备管理器”的“端口(COM 和 LPT) ” 中查看,如图 3-3-2 所示。图 3-3-2 Windows 控制面板中查看系统可用的串口波特率下拉列表列出了终端所支持的全部可能的波特率, 在打开串口与终端建立连接前请先选择正 确的串口波特率。 (迪文终端出厂缺省波特率为 115200 bps) ; 端口检测按钮用于在端口发生变化时 (如插入 USB-RS232 转换接口) 查找当前 PC 可打开的全部串 , 口端口,并显示在串口号下拉列表。 迪文智能显示终端的 USB 接口使用了 Silicon_LABs 公司的 CP2102 接口 IC,相关驱动可以在 www.silabs.com 网站上下载。专业创造价值,诚信赢得未来9 北京迪文科技有限公司智能显示终端开发指南Ver2.0在端口号和波特率设定完毕后,可打开串口。此时软件将主动向终端发送握手指令,若顺利收到终 端的回复,表明通讯链路建立,此时串口状态指示灯将变为绿色,在状态栏相应位置显示“打开” 。如 图 3-3-3 所示。图 3-3-3 串口打开并和终端握手正常的界面若未收到终端的回复,说明通讯链路有问题(如连接线故障、波特率不匹配等) 。串口仍将打开, 但串口状态指示灯显示为黄色,状态栏显示“未通过握手验证” 。如图 3-3-4 所示。图 3-3-4 串口打开正常但和终端握手失败的界面终端参数 迪文智能显示终端系列产品, 因型号不同所采用的 TFT 屏的分辨率也不尽相同, 这将直接影响到软 件向终端下发图片以及图形操作的正确性, 因此在使用本软件对终端进行操作前一定要选择与终端相匹 配的分辨率参数。若下拉列表中未包含当前终端的分辨率,可自行添加。在自定义的输入框输入正确数 值后,点击“确定”将自定义数值加入下拉列表。图 3-3-5 终端参数设置界面终端方向是为满足不同用户对图片下发的特殊需求而设置。 通过设置该项参数, 可免去用户对原始 图片的旋转操作,直接下载。 调色板 调色板功能控制终端的前景色和背景色设置。 两个色块分别表示终端的前景色和背景色, 双击色块 可弹出颜色选择窗口,用户可选择需要的颜色并确定,软件将自动向终端发送颜色设定指令。此外,在 新设定背景色之后,软件主面板的终端仿真区若尚未加载图片,则会刷新为与背景色相同的颜色。专业创造价值,诚信赢得未来10 北京迪文科技有限公司3.4 终端仿真智能显示终端开发指南Ver2.0终端仿真用于在最大程度上模拟迪文终端的屏幕。 用户可使用鼠标在其上进行操作, 如绘制点、 线、 圆、矩形,拾取当前点颜色,获取当前坐标等。 获取坐标 当鼠标在仿真区划过时,状态栏将显示对应的在终端上的坐标。在其后的文本、图形绘制等需要使 用坐标定位的情况下,用鼠标点击仿真区可直接将坐标值填入。图 3-4-1 直接从屏幕上获取坐标值获取颜色 终端仿真区右下角有一个取色开关, 当取色开关打开, 且有图片加载到仿真区时取色操作才起作用。 鼠标点击仿真区,将显示鼠标点击的颜色,该颜色值按迪文终端显存颜色格式为 2 字节数据(5R6G5B) 。图 3-4-2 直接在图片上取色专业创造价值,诚信赢得未来11 北京迪文科技有限公司3.5 功能面板(常用指令图示说明)智能显示终端开发指南Ver2.0文本 “文本”功能负责对终端进行文本指令操作。迪文终端的文本指令分为标准和扩展两种模式。图 3-5-1标准模式(模式一) 采用终端预置字库进行显示, 用户只需选择需要的字库和坐标即可。 字符显示位置的坐标可由用户 自行输入也可在终端仿真区用鼠标点击获得; 字符显示位置的坐标是指显示字符串第一个文字的左上角 位置。 预置字库为:8×8 点阵 ASCII 字库、12 点阵 GBK 宋体、16 点阵 GBK 宋体、24 点阵 GB2312 宋体以 及 32 点阵 GB2312 宋体。 标准模式使用终端调色板设置的前景色和背景色作为文本的前景色和背景色, 并且前景色和背景色 均显示出来。 扩展模式(模式二) 在该模式中,用户需自行指定坐标、字库编号、显示方式、编码方式、点阵大小以及文本的前景色 和背景色(独立于终端调色板的前景色和背景色) 。文本的前景色和背景色的设定方式同终端前景色和 背景色的设定方式。 显示方式:包括“前景色改变背景色改变” “前景色改变背景色不变”和“前景色不变背景色改 、 变”三种方式。 以设置前景色为白色,背景色为蓝色,在迪文显示终端上显示“北京 DWIN1234”来说明 3 种方式 的区别,如图 3-5-2 所示。图 3-5-2A 前景色和背景色均显示图 3-5-2B 前景色显示 背景色不显示图 3-5-2A 前景色不显示 背景色显示注意,文本输入框中,发送文本长度有限制,汉字最多 118 个,数字和英文字母最多 236 个;汉字 和 ASCII 字符混排时,不要超过 236 个半角字符(1 个 ASCII 字符算 1 个半角字符,1 个汉字算 2 个半 角字符) 。 BIG5 码和 Shift-JIS(日文)显示 用户在使用 BIG5 编码字库显示繁体中文或使用 SJIS 编码字库显示日文片假名时, 要注意以下两点: a.选择对应的编码字库和字符分辨率; b.要发送的文本应为繁体中文或日文片假名,可用输入法(如搜狗)的软键盘进行输入。专业创造价值,诚信赢得未来12 北京迪文科技有限公司智能显示终端开发指南Ver2.0图形 “图形”功能负责对终端进行图形指令操作。包括点、线、区域操作三部分。图 3-5-3点操作 在指定坐标绘制一个像素大小的点, 可选择以终端前景色显示或以终端背景色显示。 在终端模拟区 用鼠标点击即可在终端相应位置绘制(但在模拟区不会显示) 。 线操作 在指定起始点和结束点之间绘制一条线段, 可选择以终端前景色显示或以终端背景色显示。 在终端 模拟区用鼠标左键连续点击可在终端相应位置绘制连续的线段,鼠标右键单击结束绘制。图 3-5-4 终端显示连线操作结果注意,智能终端本身的线段显示指令,是把串口下发的多个坐标位置用线段连接(比如,下发多边 形的顶点坐标即可自动连线成多边形) ,而演示软件仅仅只是演示了把鼠标点击的两点连线。区域操作 包括“圆形区域显示”“矩形区域显示”和“矩形区域移动”3 部分。 、 圆形区域显示 圆形区域位置确定方法 第一步:在仿真区点击第一次,确定圆形区域圆心位置; 第二步:点击第二次,确定圆形区域的边界,即确定圆的半径。 4 种圆形区域显示的不同效果(终端调色板前景色为白色,背景色为蓝色) :图 3-5-5A 显示圆弧图 3-5-5B 反色圆弧图 3-5-5C 显示圆域图 3-5-5D 反色圆域圆弧的边界宽度仅为一个像素,若希望加宽圆弧的边界宽度(厚度) ,可采用半径递增(递减)的 方法,用多个空心圆组成宽边界的圆弧。专业创造价值,诚信赢得未来13 北京迪文科技有限公司智能显示终端开发指南Ver2.0矩形区域显示 以下示例中设置终端调色板前景色为白色,背景色为红色。 显示矩形框:以终端前景色在终端上显示一个空心矩形,如图 3-5-6A 所示。 删除矩形框:以终端背景色在终端上显示一个空心矩形,如图 3-5-6B 所示。图 3-5-6A 显示矩形框图 3-5-6B 删除矩形框矩形框线宽为 1 个像素,若想显示宽边(粗线)矩形框,可用多个矩形框组成宽边界的空心矩形。 显示矩形域:以终端前景色显示一个实心矩形区域,如图 3-5-7A 所示。 清除矩形域:以终端背景色显示一个实心矩形区域,如图 3-5-7B 所示。 反色矩形域:在终端上反色显示一个实心矩形区域;如图 3-5-7C 所示。图 3-5-7A 显示(填充)矩形域图 3-5-7B 清除矩形域图 3-5-7C 反色矩形域矩形区域移动 左环移:指定区域进行向左环移操作(移动像素数由用户设定,取值范围为 1-16) 如图 3-5-8A 所示; , 右环移:指定区域进行向右环移操作,如图 3-5-8B 所示; 左移右清除:指定区域进行向左移动操作,右边空出部分由背景色填充,如图 3-5-8C 所示; 右移左清除:指定区域进行向右移动操作,左边空出部分由背景色填充,如图 3-5-8D 所示;图 3-5-8A 左环移图 3-5-8B 右环移图3-5-8C 左移右清除图 3-5-8D 右移左清除小结: 区域移动指令可与线段绘制指令相配合用于显示动态曲线。 具体思路为: 使用左移右清除将旧曲线左移,右边清除出新的区域,在新区域中绘制新的曲线。 反复操作,可令曲线区域最右端始终为新的数据,并且曲线在“移动” 。专业创造价值,诚信赢得未来14 北京迪文科技有限公司智能显示终端开发指南Ver2.0图片下发 “图片下发”功能是本软件中最重要的组成部分,负责对智能终端进行图片下发操作。支持单幅图 片下发、多幅图片下发和历史记录下发 3 种方式。图 3-5-9 图片下发界面单幅图片下发 在图片路径输入要下发的图片路径,或点击旁边的按钮选择图片。 点击“单幅下发”按钮,完成图片下发。注意,此时要确保串口打开并与终端正常通讯。 完成下发后,在“存储位置”输入目标存储位置号,点击“保存”按钮将刚刚下发的图片保存至智 能终端。注意,单幅下发如不执行保存操作,图片将无法保存至终端。 3 种图片下发模式,如图 3-5-10 所示。图 3-5-10A 0°(正常)下发模式图 3-5-10B 90°下发模式图3-5-10C 270°下发模式多幅图片下发 在单幅图片下发中,选择图片后,可点击“加入列表”将图片路径加入多幅列表;也可点击“列表 选择”按钮选择多幅图片,并将路径加入列表。 对于多幅列表中的列表项,可使用列表操作中各按钮对其进行操作。 多幅图片下发时图片存储位置预先指定,下发时自动保存;存储位置显示在列表中,可通过双击字 段进行修改; 点击 “发送全部” 按钮将列表中的图片依次下发, 在下发过程中软件将出现假死现象 (鼠标无响应) , 属正常,请耐心等待,发送结束后会恢复正常。 历史记录下发 在多幅下发完成后,将自动把列表中内容更新至历史列表; 用户可点击“历史保存”按钮将本次下发内容保存至历史记录文件(*.log) ; 用户如想重复以前的下发,可点击“历史导入”按钮导入以前的发送记录。前提是要保证记录的路 径下图片是存在的; 单幅图片下发历史记录不保存。专业创造价值,诚信赢得未来15 北京迪文科技有限公司智能显示终端开发指南Ver2.0显示参数 “显示参数”功能负责对终端进行显示参数设定操作。包括字符间距、触摸板校准、光标显示和背 光亮度控制四部分。图 3-5-11 显示参数界面字符间距 设置终端上显示文本的行间距和列间距(0-127 的非负整数) ,输入数值后点击“设定”按钮完成 设定。字符间距的设定,只改变后续文本显示的字符间距。不同行业间距的显示效果如图 3-5-12 所示。图 3-5-12A 列间距=0图 3-5-12B 列间距=10图 3-5-12C 行间距=0图 3-5-12D 行间距=10触摸板校准 点击“校准”按钮将向终端发送触摸板校准指令,然后根据智能终端提示点击不同屏幕位置对触摸 板进行校准。 光标显示 对终端上显示的光标进行各参数设置,包括光标的显示和关闭,光标出现的位置,以及光标的宽和 高(1-31 的非负整数) 。点击“设定”按钮完成对光标的设定。光标启用后,会自动在智能显示终端上 以 1Hz 的频率闪烁。图 3-5-13 在(50,50)位置显示宽为 2,高为 10 的光标背光亮度控制 使用“开”和“关”按钮控制智能显示终端背光的开闭或关闭。 LED 背光的智能显示终端支持 64 级背光亮度调节,可用鼠标拖动滑块进行调整。图 3-5-14A背光亮度为 64(满亮度)图 3-5-14B背光亮度为 16(25%亮度)专业创造价值,诚信赢得未来16 北京迪文科技有限公司智能显示终端开发指南Ver2.0拼音输入法 “拼音输入法”功能负责对终端进行拼音查询演示操作。图 3-5-15 拼音输入法演示界面在该页面板上设置了 26 个字母的模拟键盘,用户可用鼠标点击字母进行输入,也可在文本框处直 接输入(不可超过 6 个字母,不支持模糊查询) 。 输入完成后,点击“Enter”按钮发送查询指令,终端返回的该拼音下的汉字将在上方显示。 点击“清除显示”按钮清除显示的拼音查询结果。 点击“退格”按钮,可对文本框内待查询的拼音进行退格操作。 如图 3-5-15,输入拼音“TIAN”进行查询 串口将发送 AA B0 01 54 49 41 4E CC 33 C3 3C 串口将接收到 AA B0 01 08 CC EC CC ED CC EE CC EF CC F0 CC F1 CC F2 CC F3 CC 33 C3 3C 软件显示 TIAN:天 添 填 田 甜 恬 舔 腆专业创造价值,诚信赢得未来17 北京迪文科技有限公司字库下载 “字库”功能负责对终端进行字库下发操作。智能显示终端开发指南Ver2.0图 3-5-16 字库下发界面迪文终端支持的字库分为大小两种: 32 个最大 128KB 容量的小字库,存储位置为 0-31(0x00-0x1F) 号位置为默认 8×8 ASCII 字符 。0 库,不允许修改。 28 个最大 1MB 的字库, 单个字库可装下 16 点阵内的 GBK 扩展字库或 32 点阵内的 GB2312 二级字库。 字库允许组合使用,最大可拼接为 1 个 28MB 的特大字库。 同图片类似,字库文件可进行单个下发或批量下发。 首先要为欲下发的字库文件指定位置, 位置号根据字库文件的大小不同而不同。 然后选择字库文件, 点击“下发”按钮进行单个下发。或者点击“加入列表”将字库文件路径放入列表,点击“批量下发” 按钮下发。 扩展 “扩展”功能为用户提供了两项扩展的功能: a.发送 16 进制自写指令; b.查询任意颜色的 16 位(5R6G5B)编码。图 3-5-17 扩展功能界面自写指令 自写指令功能用于向终端发送 16 进制指令串。 用户在文本框中填入要发送的指令串,点击“发送”按钮向终端发送( “←”按钮进行退格操作) 。 颜色速查 颜色查找功能可帮助用户快速得到所需颜色的 16 位(5R6G5B)编码。 用户点击颜色框,弹出颜色选择对话框;选择所需颜色,点击确定;在右边将显示对应颜色的 16 位(5R6G5B)编码。专业创造价值,诚信赢得未来18 北京迪文科技有限公司3.6 通讯记录智能显示终端开发指南Ver2.0图 3-6-1 通讯记录界面如图 3-6-1 所示, 在通讯记录区中显示了软件与智能显示终端的通讯记录, 包括通讯的日期、 时间、 发送/接收以及通讯数据。此处向用户提供了迪文终端指令的标准,用户可将指令复制到如串口调试助 手中直接发送,或者作为单片机等设备开发时的参考。图 3-6-2 通讯记录的复制点击记录清除按钮可清除记录区的全部通讯记录, 不可撤销; 点击记录保存按钮可将记录区的全部 记录保存为*.log 日志文件(路径为本软件应用程序所在文件夹) ,以备日后查找参考使用。3.7 状态栏状态栏显示当前软件的串口参数、坐标、数据下发进度等信息。图 3-7-1 状态栏 A图 3-7-2 状态栏 B专业创造价值,诚信赢得未来19 北京迪文科技有限公司4 文本功能4.1 字符编码智能显示终端开发指南Ver2.0字符编码就是以二进制的数字来对应字符集的字符,目前用得最普遍的字符集是 ANSI,对应 ANSI 字符集的二进制编码就称为 ANSI 码(更通俗的叫做 ASCII 码) ,DOS 和 Windows 系统都使用了 ANSI 码, 但在系统中使用的字符编码要经过二进制转换,称为系统内码。 由于 ANSI 码是单一字节(8 位二进制数)的编码集,最多只能表示 256 个字符,不能表示众多的 汉字字符,各个国家和地区在 ANSI 码的基础上又设计了各种不同的汉字编码集,以能够处理大数量的 汉字字符。这些编码使用单字节来表示 ANSI 的英文字符(即兼容 ANSI 码) ,使用双字节来表示汉字字 符。在微软的主页对部分的编码有比较详细的列表,大家可以参考一下,地址: http://www.microsoft.com/globaldev/reference/WinCP.mspx。 GB2312 汉字编码标准 GB2312 码是中华人民共和国国家汉字信息交换用编码,全称《信息交换用汉字编码字符集--基本 集》 ,由国家标准总局发布,1981 年 5 月 1 日实施,通行于大陆,新加坡等地也使用此编码。 GB2312 收录简化汉字及符号、字母、日文假名等共 7445 个图形字符,其中汉字占 6763 个。GB2312 规定“对任意一个图形字符都采用两个字节表示,每个字节均采用七位编码表示” ,习惯上称第一个字 节为“区码(高字节),第二个字节为“位码(低字节)。GB2312-80 包含了大部分常用的一、二级汉 ” ” 字和 9 区的符号。 该字符集是几乎所有的中文系统和国际化的软件都支持的中文字符集, 这也是最基本 的中文字符集。其编码范围是区码 0xA1-0xFE,位码 0xA1-0xFE;汉字从 0xB0A1 开始,结束于 0xF7FE。 GBK 汉字编码标准 由于 GB2312 标准表示的汉字有限,所以对其进行扩展,形成了 GBK 汉字编码标准,称为扩展码。 GBK 标准高字节为 0x81-0xFE,低字节分两部分,一是 0x40-0x7E,二是 0x80-0xFE。其中和 GB2312 相同的区域,字完全相同。扩展部分大概是按部件(部首)和笔顺(笔画)从 GB13000 中取出再排列入 GBK 中。GBK 基本上把所有的汉字都包含进来了。 BIG5 繁体中文编码标准 BIG5 是台湾地区的繁体中文编码标准,简称“大五码” 。如不去考虑特殊符号,及后来的七个扩充 字,BIG5 的排序方式如下。将所有的字分成两大群:常用字区与次常用字区,每一个字区分别用笔画 来排序,同一个笔画的字,依部首来排。BIG5 码把代码表分为 89 个区, 每个字由两个字节组成,其 高字节编码范围为 0xA1-0xF9, 低字节编码范围为 0x40-0x7E 与 0xA1-0xFE, 总计收入 13868 个字 (包 括 5401 个常用字、7652 个次常用字、7 个扩充字、以及 808 个各式符号)。 HANGUL 韩文编码标准 HANGUL 码是韩国文字常用的一种编码,他的编码规则与我们现行的 GBK 编码规则是一样的。 Shift-JIS 日文编码标准 Shift-JIS 码(即 S-JIS 码)是在 Windows 系统中比较常用的一个日文编码。它也是由两个字节组 成。高字节是从 0x81-0x84,0x87-0x9F,0xE0-0xEA,0xED-0xEE,0xFA-0xFC,低字节是从 0x40-0xFC。 Unicode 通用字符编码标准 因为世界各国语言文字的不同,导致了编码的混乱,给信息交互和传递带来了很大的不便(比如中 国发一条短消息到美国的手机,如果编码标准不同,显示就会是一堆乱码)。国际标准组织于1984 年4 月成立ISO/IECJTC1/SC2/WG2 工作组,针对各国文字、符号进行统一性编码。1991年美国跨国公司成立 Unicode Consortium, 并于1991 年10 月与WG2达成协议, 采用同一编码字集。 目前Unicode 是采用16 位 编码体系,其字符集内容与ISO10646 的BMP(Basic Multilingual Plane)相同。Unicode 于1992 年6 月通过DIS(Draf International Standard),目前版本V2.0 于1996 公布,内容包含符号6811 个, 汉字20902 个,韩文拼音11172 个,造字区6400 个,保留20249 个,共计65534 个字符。UNICODE的第 一个区(高字节=0x00),与ANSI编码完全相同,即我们常说的ASCII字符表。专业创造价值,诚信赢得未来20 北京迪文科技有限公司4.2 字库的生成和使用智能显示终端开发指南Ver2.0迪文的智能显示终端不仅支持 GB2312/GBK 中文编码标准, 也支持 BIG5、 HANGUL、 S-JIS 和 Unicode 字符编码标准,使文本的显示非常方便。 迪文的智能显示终端采用点阵字库,一共有 32MB 的字库空间,被分割成 32 个 128KB 的小字库和 28 个 1MB 的大字库,并且字库允许合并、组合使用。要显示出不同大小、不同字体、不同编码方式的 文本,就需要涉及到字库的提取问题。在互联网上有很多基于 Windows 平台的字模提取软件,迪文智能 显示终端支持最常见的字库格式,推荐使用 TS3 点阵字库生成器来生成用户需要的字库。图 4-2-1 TS3 点阵字库生成器的界面使用 TS3 提取 ASCII 字符时,请选择 Unicode 编码方式,并在自定义范围中选择 F 即可, 如图 4-2-2 所示。图 4-2-2 TS3 点阵字库生成器提取 ASCII 字符的界面对于用户的特殊要求字库,比如要求数码管效果的数字符号,手指状的光标等,用户可以做成指定 点阵的、单色 BMP 图片 mail 到 ,迪文的工程师会帮你生成智能显示终端支持的字库 格式以方便调用。专业创造价值,诚信赢得未来21 北京迪文科技有限公司4.3 文本显示(printf()函数的实现)智能显示终端开发指南Ver2.0迪文智能显示终端的文本显示指令有 6 条,如表 4-3-1 所示。指令 0x53 0x54 0x55 0x6E 0x6F 0x98 显示数据 显示文本 显示 8×8 点阵 ASCII 字符串 显示 16×16 点阵汉字串(GBK) 显示 32×32 点阵汉字串 (GB2312) 显示 12×12 点阵汉字串(GBK) 显示 24×24 点阵汉字串(GB2312)x+y+String显示颜色由调色板指 定, 显示模式为前景色 和背景色均显示。x+y+Lib_ID+C_Mode+C_dots+Color+ 用指定颜色和显示模式,显示任意编码方式、任意大小的文本。 Bcolor+String 显示坐标位置(x,y)指字符串第一个文字的左上角坐标; 显示字符间距由 0x41 指令设置,遇到行末自动换行显示; String 指要显示字符的内码字符串,符合 GBK 标准; ASCII 字符将自动采用半角显示,0x0D、0x0A 将被处理成“回车(x=0) ”和“换行(y=y+行间距); ” 表 4-3-1 迪文智能显示终端的文本显示指令4.3.1 固定内容文本的显示 固定内容的文本一般用来做界面提示信息, 推荐直接在软件中写成完整的指令, 直接用一个发送数 据串的子程序发送即可,相关程序的 C 和 ASM51 参考代码如下://发送数据串的 C 程序,0xCC 33 C3 3C 为迪文智能显示 //终端的帧结束符 void String(*Str) {unsigned char d1,d2,d3,d4; d1=0x00; for(;;) {Txbyte(*Str); //串口发送一个字节数据 d1=d2; d2=d3; d3=d4; d4=*S Str++; if(d1==0xcc&&d2==0x33&&d3==0xc3&&d4=0x3c) {}} } ;发送数据串的 ASM51 程序 STRING: CLR A MOVC A,@A+DPTR MOV SBUF,A JNB TI,$ CLR TI INC DPTR MOV D1,D2 MOV D2,D3 MOV D3,D4 MOV D4,A MOV A,D1 CJNE A,#0CCH,STRING MOV A,D2 CJNE A,#33H,STRING MOV A,D3 CJNE A,#0C3H,STRING MOV A,D4 CJNE A,#3CH,STRING RET;发送到串口使用上面的 String()函数来显示固定内容的文本是非常方便的,比如要在屏幕的(20,100)位置 显示 32×32 点阵的文本’Wecome to 迪文科技’,即使以汇编代码,也可以这样简单的实现。MOV LCALL STR1: DPTR,#STR1 STRINGDW 0AA55H,20,100 DB &#39;Wecome to 迪文科技&#39;,0CCH,33H,0C3H,3CH4.3.2 背景图片上叠加文本显示 有些时候,我们需要在背景图片上叠加文本显示,而不要改变原来的背景,这时有两种情况: 1.要显示的文本位置,背景是纯色的。 使用 0x42 指令(取指定位置颜色到背景色调色板) ,然后再显示文本,这样显示出来的文本的背景 色就同背景图片的底色相同, 如图 4-3-1A 所示的 “12:33:40” 时钟显示。 使用 0x42 指令取色时要注意, 取色的位置要离文本显示的坐标位置向外偏一些,以避免错把文本的显示颜色取上。 2.要显示的文本位置,背景不是纯色的。 使用 0x71 指令和 0x98 指令配合来实现,先使用 0x71 指令把要显示部分的内容用原始图片覆盖, 再用 0x98 指令(设置“前景色显示,背景色不显示”模式)把文本显示出来。如图 4-3-1B 所示。专业创造价值,诚信赢得未来22 北京迪文科技有限公司智能显示终端开发指南Ver2.0图 4-3-1A 在纯色背景上叠加文本显示(12:33:40)图 4-3-1B 在非纯色的背景上叠加文本显示(DEMO MODE)4.3.3 变量的显示 数据变量 迪文智能显示终端不支持对数据类型的处理, 用户需要把要显示的数据转变成 ASCII 文本才能在终 端上正确显示出来。比如,要把数据 127(0x7F)在终端上显示,必须要把 127 转变成 0x31 0x32 0x37 发送给终端才可以。相关程序的 C 和 ASM51 参考代码如下://数据变量的显示 void Printn(int x,y,char n) { unsigned char a,b; Txbyte(0xAA); Txbyte(0x54); //显示 8*16 的 ASCII 字符 Txword(x); //显示位置的 x,y 坐标 Txword(y); a=n/100; //把数据转变为 ASCII 码 Txbyte(a+0x30); b=(n-a*100)/10; Txbyte(b+0x30); a=n-100*a-10*b; Txbyte(a+0x30); TxEOF(); //发送 CC 33 C3 3C } ;数据变量的显示 PRINTN:PUSH MOV LCALL MOV MOV LCALL MOV MOV LCALL POP MOV DIV ADD LCALL MOV MOV DIV ADD LCALL MOV ADD LCALL LCALL RET ACC DPTR,#0AA54H TXWORD DPH,PSXH DPL,PSXL TXWORD DPH,PSYH DPL,PSYL TXWORD ACC B,#100 AB A,#30H TXBYTE A,B B,#10 AB A,#30H TXBYTE A,B A,#30H TXBYTE TXEOF ;要显示的数据 ;8×16 点阵的 ASCII 字符 ;x 坐标;y 坐标;发送 CC 33 C3 3C文本变量 在汇编程序设计中,用前面的 STRING()函数可以很方便的实现文本变量的显示。而在 C 语言中, 我们可以考虑构造一个类似标准 C 的屏幕打印函数 Prints()来实现。//调用举例 Prints(0,0,”北京迪文科技有限公司欢迎您使用真彩色智能显示终端!”) void Prints(int x,int y,unsigned char *s) {Txbyte(0xAA); //帧头 0xAA Txbyte(0x54); //0x54=16 点阵字符串,0x55=32 点阵 0x6E=12 点阵 0x6F=24 点阵 0x98=任意点阵 Txword(x); //发送 x 坐标 Txword(y); //发送 y 坐标 while(*s) //发送字符串内容 {Txbyte(*s); s++;} TxEOF();} //发送帧结束符 cc 33 c3 3c专业创造价值,诚信赢得未来23 北京迪文科技有限公司4.4 文本输入(scanf()函数的实现)智能显示终端开发指南Ver2.0在很多情况下,我们需要通过键盘或者触摸屏进行数据等文本的输入,使用迪文智能显示终端,可 以很方便的实现这些操作。 下面的例子,我们利用触摸屏键盘进行温度设定, “OK”键确认, “CE”键退出。构造一个类似标准 C 的输入函数 Scanfn()来实现,相关的 C 参考代码如下:图 4-4-1 文本输入界面示例//键盘输入函数,输入格式为 XX.X Scanfn() { char d[4], d[0]=0x30; d[1]=0x30; d[2]=&#39;.&#39;; d[3]=0x30; for(;;) {if(kbhit()) {if(keycode==&#39;E&#39;) //确认键 {} if(keycode==&#39;C&#39;) //取消键 {} d[0]=d[1]; //每输入一个数就左移一位,修改为 n=(n*10+(keycode-0x30))就是标准输入法 d[1]=d[3]; d[3]= prints(682,110,*d); //显示数据 }} n=d[0]*100+d[1]*10+d[3]; //返回数据 return(n);}上面的代码示例是按照工业中应用比较广泛的 “防错误输入法” 设计, 即当输入错误时, 不用退出, 重新输入一遍即可。算法通过每输入一个新数据,整个数据窗口就左移一位来实现,这种方法在人机交 互中应用非常广泛,我们在后面的很多例程中会多次用到。专业创造价值,诚信赢得未来24 北京迪文科技有限公司5 图形功能5.1 实时动态曲线图显示智能显示终端开发指南Ver2.0在迪文智能显示终端的应用中, 我们经常会需要实时描出变量的曲线趋势图, 比如温度随时间变化 的曲线,心电监护仪的呼吸波曲线等。 这里,我们用显示时△y/△x 的值来定义曲线的变化幅度,把曲线按照其变化幅度的大小,分成两 大类:一类是呼吸波、瞬间电流等变化幅度很大的曲线,我们称之为“大动态曲线” ;另一类是温度等 变化幅度不大的曲线,我们称之为“小动态曲线” 。这两类曲线,在迪文智能显示终端上可以用不同的 办法来完美实现,下面分别说明。 5.1.1 小动态曲线图实时显示的实现 迪文智能显示终端有一条 0x74 指令是专门为用户方便的实现小动态曲线的显示而设置的。指令 0x74 数 据 说 明 (X+YS+YE+Bkcolor)+(Y1+Color1)+… +(Yi+Colori) 1、 YS 为 Y 坐标起点,YE 为 Y 坐标终点。 2、 以指定的颜色(Bkcolor)擦除从(X,YS)至(X,YE)的垂直线; 3、 在(X,Yi)位置置颜色为 COLORi 的点;可以同时在不同位置置 多个点。 注意:并不会改变预先设置的调色板属性 表 5-1-1 0x74 指令说明图 5-1-1 小动态曲线的实现使用 0x74 指令实现实时小动态曲线图显示,就是把采样点当成 x 轴,不同变量采样结果作为 y 轴 的不同点,通过不停的采样输出刷新(x++)来实现。下面是图 5-1-1 例程的 C 参考代码。//使用 0x74 指令在迪文智能显示终端上显示温度曲线的例程 int x,t_now,t_ x=10; //把位置初始化在显示窗口的左侧起始边界;显示窗口为(10,10)到(790,310) for(;;) {rdtmp(); //读当前温度值到 t_now Txword(x); //曲线的当前(采样)位置 Txword(10); //(曲线显示窗口)y 轴起始坐标位置 Txword(310); //(曲线显示窗口)y 轴结束坐标位置 Txword(0x0000); //(曲线显示窗口)背景颜色为黑色 Txword(t_now); //描当前温度位置 Txword(0xf800); //当前温度用红色显示 Txword(t_set); //描设定温度位置 Txword(0x07e0); //设定温度用绿色显示 TxEOF(); //发送 0xCC 33 C3 3C 帧结束符 x++; //下一个位置 if(x&790) {x=10;} //如果到达窗口的右侧边界,就把位置回复到左侧起始边界 delay(1);} //采样延时 1mS上面的例程中,通过在 TxEOF()函数之前增加其它的采样点数据(位置和颜色) ,可以很方便的实 现多条曲线的同时实时显示。专业创造价值,诚信赢得未来25 北京迪文科技有限公司智能显示终端开发指南Ver2.05.1.2 大动态曲线图实时显示的实现 由于变化幅度大, 大动态曲线不能再用动态描点来实现, 否则这些过于离散的点很难让人看出真正 的曲线模样,尤其是在多条曲线叠在一起同时显示时,情况会更加严重。 大动态曲线可以通过组合使用迪文智能显示终端的 0x56(连线)和 0x5A(区域清除)指令来实现。指令 0x56 0x5A 数 据 (X0+Y0)+…+(Xi+Yi) (XS+YS+XE+YE)K 说 明 把指定的点用线段连接。 清除(背景色填充)矩形区域。 S,YS)为矩形域左上角, E+YE)为右下角坐标。 (X (X 表 5-1-2 0x56 和 0x5A 指令说明其基本思路就是先把将要显示曲线的区域用 0x5A 指令清除, 然后把最近的两个采样点用线段连接; 不停的重复上面的过程,就实现了“动态”的曲线。如图 5-1-2A 和图 5-1-2B 所示。图 5-1-2A 大动态曲线的实现:先用 0x5A 指令清除将显示的区域(白色框只是为了说明问题的方便,实际看不到)图 5-1-2B 大动态曲线的实现:用 0x56 指令连线变量的最近两个位置(白色框只是为了说明问题的方便,实际看不到)下面是图 5-1-2 例程的 C 参考代码。//在迪文 DMTWN 800×480 真彩色 TFT 智能显示终端上评估大动态曲线显示 int x,v1_now,v1_old,v2_now,v2_ x=10; //显示窗口为(10,10)到(790,470) v1_old=0; //v1 赋初值 v2_old=0; //v2 赋初值 for(;;) {adpro(); //读取 A/D 采样结果到 v1_now,v2_now clrw(x,10,x+3,470); //使用 0x5A 指令清除将要连线的窗口; 如果背景不变, 使用 0x71 指令。 setcolor(0x07e0); //设置显示颜色为绿色 line(x,v1_old,x+3,v1_now); //连线参数 1 的最近两个结果 setcolor(0xf800); //设置显示颜色为红色 line(x,v2_old,x+3,v2_now); //连线参数 2 的最近两个结果 x=x+3; //下一个坐标位置 if(x&787) //判断 x 坐标是否越界 787=790-3 {x=10;} v1_old=v1_ v2_old=v2_ delay(10);} //A/D 延时 10mS专业创造价值,诚信赢得未来 26 北京迪文科技有限公司5.2 进度条的实现智能显示终端开发指南Ver2.0进度条(如图 5-2-1) ,顾名思义,就是反应一个事件进程的图标,通过该图形能让人们简单明了 的了解事物的进程情况。当然,工业自动化现场显示的棒状图也可以看作是“竖立”起来的进度条。图 5-2-1 进度条简单的进度条,可以通过组合使用迪文智能显示终端的 0x59、0x5A 和 0x5B 指令来实现。基本思路 是先用 0x59 指令勾画出进度条的外廓线, 然后依据进度状态, 使用 0x5B 指令填充进度部分, 使用 0x5A 指令清除剩余的进度部分;当进度变化时,重复 0x5B 和 0x5A 指令即可。如图 5-2-2 所示。指令 0x59 0x5A 0x5B 数 据 (XS+YS+XE+YE)K (XS+YS+XE+YE)K (XS+YS+XE+YE)K 说 明 显示矩形框。 S,YS)为矩形框左上角, E+YE)为右下角坐标。 (X (X 清除(背景色填充)矩形区域。 S,YS)为矩形域左上角, E+YE)为右下角坐标。 (X (X 填充(前景色填充)矩形区域。 S,YS)为矩形域左上角, E+YE)为右下角坐标。 (X (X 表 5-2-1 进度条相关指令说明图 5-2-2A 使用 0x59 勾画轮廓图 5-2-2B 使用 0x5B 填充进度区域图 5-2-2C 使用 0x5A 清除非进度区域//下面的代码实现了简单进度条的显示,进度条左上角坐标是(x,y) ,宽度为 100*20 void status(int x,int y,unsigned char step)//(x,y)为进度条内框左上角,step 为进度 {setcolor(0x001f); //设置进度条外框颜色为蓝色 rectan(x-2,y-2,x+104,y+22); //用 0x59 指令画矩形框,作为外框,外框的厚度为 4 个像素 rectan(x,y,x+102,y+20); setcolor2(0x07e0,0xffff); //设置前景色为绿色,背景色为白色 fillw(x+1,y+1,x+1+step,y+19); //使用 0x5B 指令,前景色填充进度区域 clrw(x+2+step,y+1,x+101,y+19);} //使用 0x5A 指令,背景色清除非进度区域专业创造价值,诚信赢得未来27 北京迪文科技有限公司5.3 模拟仪表板的实现智能显示终端开发指南Ver2.0工业现场,为了显示的直观生动,常常模拟“仪表板”的显示效果,由于涉及到不规则形状区域的 处理,不能直接使用进度条填充的办法实现。我们可以把仪表板所有的可能显示状态做成小图片,把这 些小图片拼接成一幅或多幅图片,保存到智能显示终端中,然后使用 0x71 图片剪切指令来根据显示状 态要求从这些图片上“剪切”指定的仪表状态到指定的仪表板显示位置显示来实现。指令 0x71 数 据 说 明 将存储在显示终端 FLASH 中,索引号为 PICNUM 的图片中, S,YS)为左上角, (X (XE,YE)为右下角坐标的显示区域剪切到当前屏幕的(X,Y)位置显示出来。 表 5-3-1 0x71 图片剪切指令说明PICNUM+ XS+YS+XE+YE+X+Y下面,通过一个 C 程序具体说明一个模拟油压表的实现过程。示例的模拟油压表共有 10 个不同的 指针状态,拼接在一幅 640×480 的图片上,如图 5-3-1 所示。图 5-3-1 拼接了 10 个不同指针状态仪表板的图片//在(x,y)位置显示模拟的油压表 oilmeter(int x,int y,unsigned char p) {int x0,y0; Txword(0xAA71); //图片剪切指令 0x71 Txbyte(0x0A); //拼接的油压表图片保存在 Flash 第 10 幅图片位置 x0=(p%5)*108; //发送被剪切小图标的左上角 x 坐标 Txword(x0); y0=(p/5)*240; //发送被剪切小图标的左上角 y 坐标 Txword(y0); Txword(x0+107); //发送被剪切小图标的右上角 x 坐标 Txword(y0+239); //发送被剪切小图标的右上角 y 坐标 Txword(x); //发送油压表显示位置的 x 坐标 Txword(y); //发送油压表显示位置的 y 坐标 TxEOF();} //发送 0xCC 33 C3 3C 帧结束符使用 0x71 指令,配合界面分解和图片设计,可以实现非常复杂的图形界面。 更方便的调用,可以使用配置文件来实现,请参考本文档 7.2 节。专业创造价值,诚信赢得未来28 北京迪文科技有限公司智能显示终端开发指南Ver2.05.4 使用暂存缓冲区方便的实现历史曲线回放(M100 内核终端不支持)在应用中,经常需要把历史记录的曲线调出来查看,而在查看中,往往需要对历史数据进行快速回 放,典型的,比如: 把任意一个指定时间段的数据波形快速调出来回放; 窗口滑动显示:类似透过开动的火车窗口看窗外景色的效果(屏幕显示区域类似火车窗户) ; 配合按键或触摸屏的快速的翻页切换。 要完美的实现上面的功能,采用“5.1 动态曲线图实时显示”的办法是行不通的。主要原因是 因为历史回访对数据刷新的实时性要求很高, 回放中用户可能会频繁的来回切换显示记录页, 而迪文智 能显示终端采用串口通信,用户系统的 CPU 一般最多就支持 115200bps 的波特率(2000 点/秒的显示 速度, 正常显示已经非常快了) 如果每次记录页改变, , 都需要通过串口来重新更新数据 (置点或连线) , 串口的数据传送速度低就成了致命的问题。 比如,以 115200bps 波特率在 DMTWT 终端上刷新 1 条满屏(x 方向 800 点)曲线, 需要对 400 个点(连线间距至少为 2,否则会连在一起看不清楚)连线或对 800 个点置点,需要的时间 大约=800×4/(1)=310mS 。这是单条曲线的结果,如果是多条曲线,时间会成比例增 加。对于历史回放来说,帧切换速度要控制到 100ms 以内,300mS 实在是太慢了(以每次按键,图像 窗口右移 50 个数据点为例,上面的通信速度,单条曲线 1 秒最多移动 3 次(150 个数据点) ,已经明显 让人感觉不流畅了) 。如果用户系统的串口速率达不到 115200,比如只有 9600,那么就只好使用一个 小窗口(放大镜效果,减少了每次刷新数据量)来做历史回放了! 为了解决上面的问题,就需要使用迪文智能显示终端的暂存缓冲区高速置点(连线)功能。暂存缓 冲区是在智能显示终端里面开辟的一个 40KW(80KB)的 RAM 区,用户可以事先把需要显示的数据“暂 存”到里面,然后等数据准备好后,通过简单的指令调用让终端直接本地高速访问内部 RAM 来实现指令 的高速同步执行(比如置点速度可以达到 0.1uS/点,对应 107 点/秒) 。暂存缓冲区指令除了执行速度快,显示“同步”外;由于数据保存在存储器里面,用 户可以极其方便的通过修改显示指令访问的存储器首地址来方便的实现平滑的平移显示 (0xC101、0xC102)或曲线缩放(0xC103 指令)效果。暂存缓冲区相关的指令说明如表 5-4-1 所叙。指令 0xC0 数 据 ADRH+ADRL+Data0+…+Datan 0x01+ADRH+ADRL+Pn_H+Pn_L 说 明 写数据到暂存缓冲区,ADRH:L 为首地址,范围 0xFFF,共 40KWord;每个地址两个字节数据。 使用暂存缓冲区的数据置点,ADRH:L 为置点数据的起始存储地址, Pn_H:L 为置点数目,每点 3Word 数据;最多 13653 个点。 缓冲区数据格式:Psx+Psy+Pixel_Color(颜色,MSB) 使用暂存缓冲区的数据连线,ADRH:L 为置点数据的起始存储地址, Ln_H:L 为连线数目,每条线 5Word 数据;最多 8191 条线。 缓冲区数据格式:Xs+Ys+Xe+Ye+Line_Color(颜色,MSB) Address:暂存缓冲区的首地址; X:显示起始位置的 x 坐标; Y:显示 Y 坐标的 0 点(最低点)位置,实际连线点位置=Y-Ly; Line_Number:连线数目,每条线 1 个字,最多 40960 条线; D_X:读缓冲区的点间隔,0x01-0xFF,即每连 1 条线后,缓冲区地 址自动增加 D_X,Address=Address+D_x; Dis_X: 显示的 x 坐标增量, 0x01-0x0F, 即每连 1 条线后 x=x+Dis_x; Color:显示线条的颜色,不改变系统调色板属性; 暂存缓冲区的连线数据格式定义为:Ly(2 字节) ,Ly 为点的高度。 表 5-4-1 暂存缓冲区指令说明0x02+ADRH+ADRL+Ln_H+Ln_L0xC1 0x03+Address+X+Y+Line_Number +D_x+Dis_x+Color专业创造价值,诚信赢得未来29 北京迪文科技有限公司智能显示终端开发指南Ver2.0下面以实现图 5-4-1 的 3 条曲线回放为例来说明暂存缓冲区指令的使用,相关的 C 参考代码如下。//使用迪文智能显示终端的暂存缓冲区功能来实现历史记录的快速、方便回放 int pa[1000],pb[1000],pc[1000]; //历史记录数据 int i,j,x; x=40; for(i=0;i&25;i++) //发送 pa 数据到暂存数据区 {Txword(0xaac0); //写暂存缓冲区指令 Txword(i*120); //缓冲区首地址,pa 数据区 0xFFF,每个点 6 字节 for(j=0;j&40;j++) {Txword(x); //x 坐标 Txword(pa[i*40+j]); //点数据 Txword(0xf800); //颜色 x++; if(x&200) //历史记录窗口位置 x=40-200 {(x=40;}} TxEOF();} //发送帧结束符 x=40; for(i=0;i&25;i++) //发送 pb 数据到暂存数据区 {Txword(0xaac0); Txword(i*120+0x2000); for(j=0;j&40;j++) {Txword(x); Txword(pb[i*40+j]); Txword(0x07e0); x++; if(x&200) {(x=40;}} TxEOF();} //发送 pc 数据到暂存数据区 x=40; for(i=0;i&25;i++) {Txword(0xaac0); Txword(i*120+0x4000); for(j=0;j&40;j++) {Txword(x); Txword(pc[i*40+j]); Txword(0x001f); x++; 图 5-4-1 使用暂存缓冲区来方便的实现历史记录曲线回放 if(x&200) {(x=40;}} TxEOF();} //下面开始通过 0xC1 指令来快速查看历史记录 adr=0; //缓冲区首地址 while(KEYOK) //如果检测到按键,就判断是否要翻页 {if(Kcode==1) //下翻键 {adr=adr+480; //每次翻一个窗口,480=160×3 if(adr&3000) {adr=0;}} if(Kcode==0) //上翻键 {if(adr&480) {adr=480;}专业创造价值,诚信赢得未来30 北京迪文科技有限公司来的曲线智能显示终端开发指南Ver2.0adr=adr-480;} piccut(10,40,300,200,400,40,300,200,400); //把历史记录曲线窗口用 0x71 指令剪切、粘贴,同时清除了原 for(i=0;i&3;i++) {Txword(0xaac1); Txbyte(0x01); Txword(adr+0x2000*i); Txword(160); TXEOF();} KEYOK=FALSE;}//显示历史记录 //暂存缓冲区首地址 pa(i=0) pb(i=1) pc(i=2) //窗口宽度是 160 个点专业创造价值,诚信赢得未来31 北京迪文科技有限公司5.5 如何设计类似 Windows 风格的图形界面智能显示终端开发指南Ver2.0由于迪文智能显示终端的以下 3 大特点,我们强烈建议客户设计“时尚、直观”的“图形”界面来 实现人机交互,如图 5-5-1 所示。拥有标准 128MB,并可以轻松扩充到 1GB 的不压缩图片存储器; 和显示屏等分辨率,精度极高,稳定可靠的模拟触摸屏处理技术; 灵活、简洁的串口操作指令集实现 65K 色的完美演绎。基于以上特点,采用迪文智能显示终端来做人机交互界面(HMI) ,界面的设计过程变成了一个纯粹 “美工”或者“艺术”的设计和体验过程。只要你可以想得出来,基本上迪文终端都可以帮你演绎出来。 由于迪文的触摸屏没有传统 HMI 的数字触摸屏“放置格子”限制,触控区域可随意放置;配合超大、不 压缩的图片存储空间可以让您把界面真正设计成一组交互页, 并且可以用很简单的代码为这些显示页之 间建立“链接” ,简化程序的设计,大大降低开发的难度,如下所示。//链接表的定义 {当前图片,x0,y0,x1,y1,切换的图片} int xdata mlink[][6]={{0,0,0,639,479,2},{0xffff,0,0,0,0,0}}; int i,x,y,n,; //x,y 为触摸位置 i=0; while(TCHOK) {TCHOK=FALSE; //清除触摸标记 n=mlink[i][0]; if(n==0xffff) //0xffff 为链接表的结束符 {} if(n==Pic_n)&&(x&mlink[i][1])&&(y&mlink[i][2])&&(x&mlink[i][3])&&(x&mlink[i][4])) {Pic_n=mlink[i][5]; //取出下一个显示图片界面位置 Picdisp(Pic_n); //显示图片 AA 70 Pic_n CC 33 C3 3C} i++;}上面的 C 程序例子,完成了触摸“链接”的处理,mlink[][]数组的举例是对一个 640×480 的终端,在 显示开机界面(第 0 页)时,点击屏幕的任何一个位置(x0=0,y0=0,x1=639,y1=479)时,将切换到第 2 幅图片显示。用户可以方便的在数组中添加其它的“链接”并把相应的界面保存到智能显示终端中, 即可完成复杂的触控界面设计。可以使用配置文件来让 HMI 实现自动触控切换,请参考本文档 7.1 节。 对于一般的触控产品设计, 上面这几行简单的代码基本上已经把你的触控软件设计任务完成了一多 半,并且将来的产品升级或者界面切换顺序调整,只需要修改 mlink[][]数组的定义即可,一般的美工 或者文员即可完成修改而不需要“劳驾”专业的研发工程师。图 5-5-1 典型的触控界面设计专业创造价值,诚信赢得未来32 北京迪文科技有限公司5.6 区域图片(照片)实时刷新智能显示终端开发指南Ver2.0如图 5-6-1 所示,在某些应用场合,我们可能需要在屏幕一些小区域实时(及时)刷新显示内容, 比如图示的员工照片区域。如果照片是有限并且固定的(比如一个餐厅的电子菜谱) ,我们当然可以先 把照片做好保存到终端中,使用智能显示终端的 0x71 区域剪切、粘贴指令来实现(详见“5.3 模拟仪 表板的实现”。如果图像需要实时刷新(比如网络传过来的照片)或者图像数目过于庞大(比如有上万 ) 名员工,并且每天都有员工入职和离职) ,使用 0x71 指令就达不到要求了,此时需要使用迪文智能显示 终端的 0x72 直接写显存指令来实现区域图片实时刷新。指令0x72说 明 将 数 据 ( DATA0 - DATAn)直接写入显存, ADRH+ADRM+ADRL (ADRH:ADRM:ADRL)为 +DATA0+……+ 显存首地址,每个地址 DATAn 两个字节数据。数据串 长度不能超过 248(n& =248) 。 表 5-6-1 0x72 指令说明数据图 5-6-1 区域图片实时显示示例显存地址计算 假设智能显示终端的横向(x 方向)分辨率为 H,纵向(y 方向)分辨率为 V,则屏幕上(x,y)位 置点的显存地址计算方法是: Adr=(y×H+x) 。 比如, DMTWT 屏幕上 (150,100) 位置, 其显存地址=100×640+150=64150 (0xFA96) 。 像素数据 迪文的 65K 彩色智能显示终端,每个像素点,由两个字节(16bit)的显示数据组成。显示数据按 照 5R6G5B 的调色板组织,发送时高字节在前(MSB)发送。比如,要在上面例子的位置显示一个红色的 点,使用 0x72 指令发送: AA 72 00 FA 96 F8 00 CC 33 C3 3C 宽行和换行的处理 0x72 指令下发数据长度最多为 248 字节(124 个连续的点) ,对于像素点超过 124 点阵的宽行,需 要把数据分割成几帧下发;换行时,由于显存地址不连续,也必须重新计算显存地址然后下发。 下载速度和时间 迪文智能显示终端的串口速度可以用户设定,最高为 921600bps,对于一个 H×V 的小区域图片, 以波特率 B(bps)下发,需要的时间大约为:T=(H×V×2)/( (B×0.1)×0.9) 秒。 比如,128×160 的照片,115200bps 下发到终端显示,大约需要 4 秒,采用 921600bps 下传,则只 需要 0.5 秒。相关的 C 参考代码如下://把一幅 128×160 的照片,下发到迪文 640×480 终端(x,y)为照片左上角位置显示 unsigned char bmp[160][256]; //位图数据 int i,j,k,n; //显存地址 for(i=0;i&160;i++) //每个循环发送一行 {adr=y*480+x; //计算显存首地址,640×480 分辨率终端 k=0; //位图数据的指针位置 for(;;) {n=256-k; //本帧要发送的数据数目,256 是一行 128 像素的数据字节数 if(n==0) {} //本行发送完毕,跳出发送下一行 if(n&248) {n=248;} //每帧最多 248 字节 Txword(0xaa72); //0x72,直接显存操作 Txadr(adr+k); //发送显存首地址 for(j=0;j&n;j++) {Txbyte(bmp[i][k]); //发送位图数据 k++;}}}专业创造价值,诚信赢得未来33 北京迪文科技有限公司6 外设和附加功能智能显示终端开发指南Ver2.0为了用户使用方便, 降低用户系统的复杂程度, 迪文科技生产的智能显示终端集成了很多外设和附 加功能。其中最基本的外设是 4×4(某些型号为 8×8)矩阵键盘接口、4 线触摸屏、背光亮度调节、 用户数据库以及一些方便单片机使用的辅助算法,下面逐一介绍。6.1 键盘接口图 6-1-1 迪文终端(DMTNK)的键盘接口示例图迪文智能显示终端中,和键盘接口相关的指令有两条:0x71(键码上传)和 0xE5(键码配置) ,相 关说明如表 6-1-1 所示。指令 0x71 0xE5 数 据 K_Code 0x55+0xAA+0x5A+0xA5+K0+ +K63 说 明 键盘接口有键按下时,键盘接口键码自动上传。 … 配置键盘接口,K0-K63 对应一个 8 × 矩阵键盘的 64 个单键值;对 于 4×4 键盘,只有部分按键有映射。 表 6-1-1 键盘接口相关指令说明键盘的扫描由智能显示终端自动完成,当按键按下时,终端会自动从串口上传对应的键码,推荐用 户使用串口中断方式来接收键码,相关 C 和 ASM51 参考代码如下://C 串口中断服务程序,定义了数组 Rx_key[3],正确的键码放在 K_code 并置位标记 Key_ok for(i=0;i&2;i++) {Rx_key[i]=Rx_key[i+1];} //移动接收窗口,以方便判断 Rx_key[2]=SBUF; //把接收到的串口数据放在最后 if((Rx_key[0]==0xAA)&&(Rx_key[1]==0x71)&&(Key_ok==FALSE)) //接收完毕并且没有键码未处理 {Key_ok=TRUE; //置位接收成功标记 K_code=Rx_key[2];} //保存键码专业创造价值,诚信赢得未来34 北京迪文科技有限公司;ASM51 串口中断服务程序 MOV RXKEY0,RXKEY1 MOV RXKEY1,RXKRY2 MOV RXKEY2,SBUF CLR RI JB KEYOK,RXKEYE MOV A,RXKEY0 CJNE A,#0AAH,RXKEYE MOV A,RXKEY1 CJNE A,#71H,RXKEYE MOV KEYCODE,RXKEY2 SETB KEYOK RXKEYE: NOP智能显示终端开发指南Ver2.0//移动接收窗口//如果有键码没有处理就不接收新键码 //判断是否接收完毕//置位键码接收成功标记直接使用 16 进制的键码对用户程序的处理是非常不方便的, 所以终端设置了 0xE5 指令, 通过 0xE5 指令,用户可以方便的把键盘上的按键和上传的键码对应起来,提高程序的可读性。使用 0xE5 指令来 配置键码,需要 3 个步骤,下面以把图 6-1-1 键盘的键码对应成 ASCII 字符(即按 1 键上传 0x31 键码) 为例来说明。 键码配置第 1 步:先把整个键码顺序排列。 串口发送下面的指令: AA E5 55 AA 5A A5 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F CC 33 C3 3C 键码配置第 2 步:测试键码。 按压键盘所有的按键,把串口上传的键码填到对应按键位置,获得一个键码表,见表 6-1-2 的“顺 序键码”列。按 键 顺序键码 需要的键码 按 键 顺序键码 需要的键码 0 0x00 0x30 8 0x10 0x38 1 0x01 0x31 9 0x11 0x39 2 0x02 0x32 A 0x12 0x41 3 4 0x03 0x08 0x33 0x34 B C 0x13 0x18 0x42 0x43 表 6-1-2 键码测试表 5 0x09 0x35 D 0x19 0x44 6 0x0A 0x36 E 0x1A 0x45 7 0x0B 0x37 F 0x1B 0x46键码配置第 3 步:获得新的键码配置表并下发到智能显示终端。 根据第 2 步测试的键码,我们用“需要的键码”去取代原来“顺序键码”位置,并把不需要的键码 修改为 0xFF(或其它不使用的键码,比如 0x00 以提高抗干扰能力),获得了我们需要的键码配置表,用 0xE5 指令下发到终端即可。之后,再按压“1”键,终端上传的键码将是 0x31。 AA E5 55 AA 5A A5 30 31 32 33 FF FF FF FF 34 35 36 37 FF FF FF FF 38 39 41 42 FF FF FF FF 43 44 45 46 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF CC 33 C3 3C专业创造价值,诚信赢

我要回帖

更多关于 wincc按钮打开小画面 的文章

 

随机推荐