新闻中心

EEPW首页>光电显示>设计应用> 一种用于嵌入式系统的液晶显示单元设计

一种用于嵌入式系统的液晶显示单元设计

作者: 时间:2009-03-25 来源:网络 收藏

状态0: 准备接收一帧数据
状态1: 正在接收一帧数据,且上一次接收到的字节不是转义字符
状态2: 正在接收一帧数据,且上一次接收到的字节是转义字符
接收一个字节后,根据当前状态和接收到的字符a,进行状态转换,并舍弃转义字符等多余字节,将有效数据放入接收缓冲数组。当接收到有效的结束符END后,单片机将置缓冲满标志。单片机读到该标志,即可分析缓冲区中的数据,执行相应显示操作,并在操作后,清除缓冲满标志并向的主CPU发出可以接收数据的应答字符(0x55)。

本文引用地址://m.amcfsurvey.com/article/169529.htm

3.图形用户界面()程序
前述已能满足简单的显示要求。在此基础上本文使用C语言编写了通用的程序,出类VB的包含窗体和简单控件的界面,实现简单的可视化的操作:如按钮按压、文本输入、标签显示、选择框选择、软件菜单、窗体加载、位图显示、控件的Tab聚焦等。程序采用分层和模块化的思想,其分层结构如图3所示。这样,可以减少程序间的耦合,便于程序的完善和升级。

3.1 逻辑设备层基本绘图函数(LD.C)
最底层的硬件设备层的绘图函数(HD.C)是显示命令帧的发送,采用液晶屏的绝对坐标(屏左上角为坐标零点)绘图,逻辑设备层的函数则是基于用户定义的当前“窗口”相对坐标(窗口左上角为坐标零点)绘图,窗口的位置任意。这里说的“窗口”就是当前显示的可操作范围,也称为“窗口上下文”。
绘图工具函数是一些内联函数和宏定义,创建当前的窗口上下文,完成绝对坐标与相对坐标相互转换,进行绘图元素的移动、复制,设置字间距、行间距等。基于窗口裁减的绘图函数调用各种绘图工具函数和硬件设备层的绘图函数,实现了点、线、汉字、字符、平面和3D矩形框的绘制,位图加载等,并将超出窗口范围的部分裁减掉(忽略不画)。
3.2 窗体/控件的设计
窗体(Form)和控件全部由结构体来定义。简单控件的共性是均为矩形框(平面的或3D的),所以都可以由公共结构体Gwidget加上各自的个性化属性和行为方式派生得到。控件属性(或状态)包括:按下/弹起(对Button控件)、聚焦/失去焦点、允许/禁止接受用户输入(区分Label和Text)等。基于GWidget可以派生Button、Label、Text、SelBox、menu等控件。Gwidget结构体成员包括“窗口”信息、控件ID(唯一标识一个控件)、控件属性/状态、控件边界宽度(实现3D显示)、默认的控件消息响应函数指针(如ButtonOnMsg)。
窗体(Form)既是一个独立的实体,又是控件的容器,管理属于它的所有控件并传递和响应消息。其结构体成员主要有:窗口上下文、消息响应函数指针、标题字符串指针、所含的控件数组指针、所含控件数、当前聚焦的控件ID等。
3.3消息响应机制
针对具体的应用要求,可以设计出各种各样的窗体(界面),每一个窗体包含多个控件。有的控件可以接受用户字符串和数字输入(Text控件)。这些窗体通过软件菜单组织起来。菜单为多叉树结构,最下一级菜单指向一个窗体或执行某个功能。同一级菜单包含并管理一个或多个菜单项。菜单结构体成员主要有:包含各菜单项的数组指针、菜单项个数、指向上级菜单的指针(可以为空)等,而菜单项结构体则包含指向下一级菜单的指针(可以为空)、指向一个窗体的指针(可以为空)、消息响应函数指针等。主程序和GUI之间的消息传递(或函数调用)机制如图4所示,虚线空心箭头指示消息的传递方向。

4.结束语
本文设计的具有接口,不仅在接入方面提供了方便,也为在设计时,使用PC机并行地进行显示软件设计提供了途径。用C语言编写的GUI程序可以方便地移植到各种基于操作系统的应用中,占用空间小,使用简单,通用性好,能满足一些较复杂界面显示的要求,其已经在笔者开发的多个嵌入式系统中得到应用。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭