有人知道有关此主题的任何资源吗?
我正在为2x16 LCD显示器开发嵌入式应用程序。理想情况下,我希望有一个通用(独立显示)框架,可以在任何显示器上虚拟使用 - 一个或多个段LED,1x16,2x16 LCD等。 还想了解这种小型用户界面的一般准则。
编辑:我对高级功能感兴趣,如何组织用户界面 - 菜单,选项和用户输入。我们不会在这里讨论LCD控制器的问题。
答案 0 :(得分:4)
我会将其设计为单线界面,使用更多线条可以为您提供更多空间。
我会选择至少4个按钮:
如果您指定线宽(如16),那么这适用于16x2,16x1和16个7段显示....在设计菜单上的文本时,您会考虑到这一点。
如果您添加更多按钮,UI会更有用,我会考虑这些按优先级排序,但这些并不重要:
您将拥有一个主菜单,可以将您带到嵌套的子菜单或操作项。
我举一个例子,让我们假设您正在做一个可以在16x1或16x2上工作的数字时钟。
主屏幕就像08:15P SUN101908 当您按下菜单键时,它将显示一个菜单(设置时间,设置日期,设置闹钟,设置显示),使用向上和向下移动项目,然后单击确定以选择项目。
如果您选择“设置时间”,则向上和向下箭头将更改小时数,然后确定将接受并移至分钟选择...等。
如果您有数字键盘,则使用起来会更简单。
答案 1 :(得分:2)
如果您指的是2行16字符显示,它们通常是基于像素的,并且将具有集成控制器,因为它们控制起来要复杂得多。我过去使用的2x16和4x16 LCD设备实际上有一个半字节宽的接口,命令以<command>[<address>][<data>]
样式发送到设备,有效命令所需的半字节数由命令本身。如果链接到目标设备会有帮助,因为从制造商到制造商似乎没有真正的标准。
对于分段LED和LCD,有一个标准布局,用于从小精灵管开始的所谓七段设备。这是一个显示此细分的图表:
a
---
f| g |b
---
e| |c
---
d
另一个问题是您是想直接驱动显示器还是使用控制器IC。驱动七段LED非常容易,因为它们通常具有共用阴极或阳极,您只需要能够吸收或提供足够的电流。直接驱动LCD会稍微复杂一些,因为应用于像素或段的极性必须不断翻转以避免损坏设备。找到具有执行此功能的集成时钟的控制器要容易得多。
答案 2 :(得分:2)
我认为1x16和2x16 LCD之间的差异非常大,你不应该努力创建一个可以同时处理这两者的GUI库 - 就像你不尝试创建一个可以同时处理CURSES和Cocoa的GUI库一样作为后端(好吧,有人做了,但是......错了)。
如果显示的那么少,你的GUI应该是非常面向域的......也就是说,如果不知道你的域是什么,我不能告诉你什么是好的概念。
答案 3 :(得分:2)
显示屏的大小将对用户界面产生巨大影响。
1行仅对单级菜单来说足够大,尽管我认为即使这样也是推动它。我将所有功能都作为按钮,显示器仅用于显示数据。
对于多级菜单,2行就足够了。在菜单模式中,顶行用于指示它们在菜单树中的位置,第二行用于菜单选择。我不会向菜单推荐多个级别,或者用户会忘记它们的位置,也很难记住菜单树中的位置。在功能模式中,顶行可用于指示所选功能,第二行可用于指示数据。您可以使用向上菜单确定按钮,但我会考虑仍然使用专用于功能的按钮。
4行适用于菜单。与上面的布局类似,额外的行有助于用户记住它们在菜单树中的位置。它可以帮助他们在空间上对其进行可视化。在这种情况下,我会建议上下菜单确定按钮,没有特定的功能键。特定功能键有时会使用户对菜单范例感到困惑。
对于1或2行显示器,我不打算使用数字键盘,并且完全放弃了QWERTY键盘。如果你能负担得起房地产把这么多按钮放在前面那么你欠你的用户更大的显示!想象一下QWERTY的1 x 16显示屏。荒谬。 UI的复杂性应该反映设备的复杂性。
考虑Osama的单线时钟示例。这可以通过两个按钮而不是菜单来实现。这些按钮可以称为“设置”和“调整”。
操作将是:
数字键盘过度,从工程角度来看,硬件和成本会更高。这就是闹钟上没有数字键盘的原因。
答案 4 :(得分:1)
我不知道为此明确目的而构建的任何“项目”或库。
我建议您采用具有“屏幕和字段”概念的“显示层”代码的方法。屏幕负责“拥有”屏幕上的所有字段,字段负责指定显示的内容,字段影响的变量以及影响字段值的输入方法。这些字段还存储了前后场设置/验证功能的任何函数指针。
这样做有助于维护相当一致的用户界面。代码也将集中在一个位置,因此调试起来可能更容易。
答案 5 :(得分:1)
SONY的jogdial也是一个不错的选择:上/下/按(输入)/按下&amp;持有(逃跑)。如果jogdial模块不可用。然后尝试拆卸鼠标滚轮。
答案 6 :(得分:0)
类似任天堂的控制器很容易制作,几乎可以用于任何应用程序。您只需要8把钥匙; 4个用于D-pad,2个用于中间,2个用于A和B按钮。创建这种控制器非常简单,对于用户来说非常直观。它也是用户可以握在手中的东西,使其比安装的控件更加用户友好。