4

有人知道有关此主题的任何资源吗?

我正在为 2x16 LCD 显示器开发嵌入式应用程序。理想情况下,我希望有一个通用(独立于显示器)框架,几乎可以在任何显示器上使用 - 一个或多个段 LED、1x16、2x16 LCD 等。还想了解此类小型显示器的一般指南用户界面。

编辑:我对高级功能感兴趣,如何组织用户界面——菜单、选项和用户输入。我们不在这里讨论 LCD 控制器的问题。

4

7 回答 7

4

我会为单行界面设计它,使用更多的行会给你更多的空间。

我会选择至少 4 个按钮:

  • 菜单
  • 向上
  • 向下
  • 好的

如果您指定线宽(如 16),那么这将适用于 16x2、16x1 和 16 个 7 段显示器......您在设计菜单上的文本时会考虑到这一点。

如果您添加更多按钮,UI 会更有用,我会考虑这些,按优先级排序,但这些不是必需的:

  • 左右
  • 数字键
  • QWERTY

您将拥有一个主菜单,它将带您进入嵌套的子菜单或操作项。

我举个例子,假设你正在做一个可以在 16x1 或 16x2 上工作的数字时钟。

主屏幕类似于 08:15P SUN101908 当您按菜单键时,它会显示一个菜单(设置时间、设置日期、设置闹钟、设置显示),用 UP&DOWN 移动项目,然后 OK 选择一个项目.

如果您选择“设置时间”,向上和向下箭头将更改小时,确定将接受并移至分钟选择...等。

如果你有一个数字小键盘,使用起来会更简单。

于 2008-10-19T10:57:29.507 回答
2

如果您指的是 2 行 x 16 字符显示器,它们通常是基于像素的,并且将具有集成控制器,因为它们的控制要复杂得多。我过去使用的 2x16 和 4x16 LCD 设备实际上具有半字节宽的接口,并且命令以<command>[<address>][<data>]样式发送到设备,有效命令所需的半字节数由命令本身决定。如果您链接到目标设备会有所帮助,因为制造商之间似乎确实没有标准。

对于分段 LED 和 LCD,所谓的七段器件有一个标准布局,该布局从像素管开始。这是显示此细分的图表:

   a
  ---
f| g |b
  ---
e|   |c
  ---
   d

另一个问题是您是想直接驱动显示器还是使用控制器 IC。驱动七段 LED 非常容易,因为它们通常有一个共同的阴极或阳极,您只需要能够吸收或提供足够的电流。直接驱动 LCD 稍微复杂一些,因为施加到像素或段的极性必须不断翻转以避免损坏设备。找到具有执行此功能的集成时钟的控制器要容易得多。

于 2008-10-19T09:36:03.070 回答
2

我认为 1x16 和 2x16 LCD 之间的差异如此之大,以至于您不应该努力创建一个可以同时处理两者的 GUI 库 - 就像您不尝试创建一个可以同时处理 CURSES 和 Cocoa 作为后端的 GUI 库一样(好吧,有人这样做了,但这是……错误的)。

由于显示如此之少,您的 GUI 应该是非常面向领域的……也就是说,如果不知道您的领域是什么,我无法告诉您什么是好的概念。

于 2008-10-21T23:17:34.053 回答
2

显示器的尺寸将对用户界面产生巨大影响。

1 行只够容纳一个单级菜单,尽管我认为即使这样也能推动它。我会将所有功能作为按钮,而显示器仅用于显示数据。

对于多级菜单,2 行就足够了。在菜单模式下,第一行用于指示它们在菜单树中的位置,第二行可用于菜单选择。我不会向菜单推荐很多级别,否则用户会忘记他们在哪里,并且也很难记住菜单树中的内容。在功能模式下,第一行可用于指示所选功能,第二行可用于指示数据。您可以使用按钮的向上向下菜单确定,但我会考虑仍然使用专用于功能的按钮。

4 行适合菜单。与上面的布局类似,额外的行帮助用户记住他们在菜单树中的位置。它可以帮助他们在空间上对其进行可视化。在这种情况下,我会推荐向上向下菜单确定按钮,而不是特定的功能键。特定的功能键有时会使用户对菜单范例感到困惑。

我不会为 1 行或 2 行显示器的数字键盘而烦恼,并完全放弃 QWERTY 键盘。如果您能负担得起将这么多按钮放在前面的空间,那么您应该为用户提供更大的显示!想象一下带有 1 x 16 显示屏的 QWERTY。荒谬的。UI 的复杂性应该反映设备的复杂性。

考虑 Osama 的单线时钟示例。这可以通过两个按钮和无菜单来实现。这些按钮可以称为“设置”和“调整”。

操作将是:

  1. 正常 - 显示屏显示时间和日期:08:15P SUN101908
  2. 闹钟 - 按“设置” - 显示屏显示闹钟,小时闪烁,按“调整”增加小时,再次按设置更改分钟,再次更改开/关状态。例如:AL:08:00 关闭
  3. 再次按“设置”(或按住设置)随着时间的推移会发生同样的事情。在一定时间内不按按钮也会使菜单超时。

数字键盘将是多余的,从工程的角度来看,更多的硬件和更多的成本。这就是为什么闹钟上没有数字键盘的原因。

于 2008-10-26T10:12:15.177 回答
1

我不知道为此明确目的而构建的任何“项目”或库。

我建议您采用在屏幕和字段概念上运行的“显示层”代码的方法。屏幕负责“拥有”屏幕上的所有字段,字段负责指定显示的内容、字段影响的变量以及影响字段值的输入法。这些字段还存储指向前和后字段设置/验证函数的任何函数指针。

这样做将帮助您保持相当一致的 UI。代码也将集中在一个地方,因此可能更容易调试。

于 2008-10-21T20:39:54.590 回答
1

类似任天堂的控制器制作简单,几乎可以用于任何应用程序。您只需要 8 把钥匙;4 个用于方向键,2 个在中间,2 个用于 A 和 B 按钮。创建这种控制器非常简单,对用户来说非常直观。它也是用户可以握在手中的东西,使其比安装的控件更加用户友好。

于 2008-10-21T20:55:55.480 回答
1

SONY 的缓动盘也是一个不错的选择:上/下/按(进入)/按住(退出)。如果 jogdial 模块不可用。然后尝试拆卸鼠标滚轮。

于 2012-03-27T03:03:59.370 回答