跳转到内容

Alcor6L/eLua/mizar32.lcd

来自维基教科书,开放世界中的开放书籍

此模块包含用于驱动 Mizar32 显示模块的双行字符 LCD 面板的功能。

从物理上讲,显示屏每行有 16 个字符,但内部有 40 个字符的 2 行内存。它一次显示这 40 列中的 16 列,并有各种方法来确定这 40 列中的哪一列显示在 16 列的显示屏上。如果您只想显示 16x2 字符,则 resetgotoprint 函数就足够了。

mizar32.lcd.reset

[编辑 | 编辑源代码]

初始化显示屏,将所有内容重置为初始状态:清除屏幕,无光标,显示 40 列内存的 1-16 列,准备打印到 (1,1),从左到右写入文本,并在每个字符后将光标向右移动一位。您不必在程序开始时调用重置,但这样做将确保您的程序在显示屏被以前的运行留在了奇怪的状态下时仍然可以工作。

mizar32.lcd.reset()

mizar32.lcd.setup

[编辑 | 编辑源代码]

这可以用来设置 LCD 显示屏的一些奇怪的操作模式。两个参数都是可选的,如果您省略它们,它们将默认设置为 false,这将设置合理的模式。

mizar32.lcd.setup( display_shift, right_to_left )
  • display_shift - 如果为真,则在您随后打印的每个字符中,光标将在字符内存中移动一个位置,但显示屏的内容也将向相反方向水平移动一个位置,从而使光标保持在物理显示屏的同一列。这可以用来实现“滚动文本”效果。但是请注意,当光标从 40 列移动到 1 列或反之时,它会翻转到另一行。
  • right_to_left - 如果为真,文本将从右到左打印:光标将在字符内存中向左移动一个位置,并且,如果也启用了显示屏移动,则显示屏的内容将向右移动,从而使光标保持在屏幕上的同一列。

mizar32.lcd.clear

[编辑 | 编辑源代码]

清除显示屏,将光标移动到左上角(位置 1,1)并重置显示屏移动以显示 1 到 16 列。

mizar32.lcd.clear()

mizar32.lcd.home

[编辑 | 编辑源代码]

将光标移动到左上角(位置 1,1)并重置显示屏移动。

mizar32.lcd.home()

mizar32.lcd.goto

[编辑 | 编辑源代码]

将光标移动到指定的行和列。

mizar32.lcd.goto( row, column )
  • row - 一个数字(1 或 2)表示您要移动到的行。
  • column - 一个数字(1 到 40)表示该行中字符内存中的位置。

mizar32.lcd.getpos

[编辑 | 编辑源代码]
row, column = mizar32.lcd.getpos()

返回当前光标位置。

返回

  • row - 一个数字(1 或 2)表示当前行。
  • column - 一个数字(1 到 40)表示字符内存中的当前列。

mizar32.lcd.print

[编辑 | 编辑源代码]

从当前光标位置开始写入 LCD 字符内存。光标将为每个打印的字符前进一个位置。当它超过 40 列时,它会移动到另一行的 1 列(反之亦然,当从右到左打印时)。

mizar32.lcd.print( [data1] [, data2] ... [datan] )
  • data - 每个数据项可以是字符串或整数。字符串是显示 ASCII 文本消息的正常方式。整数参数应具有 0 到 255 的值以显示单个字符,该字符可以是用户定义的字符 0-7,常规的 ASCII 字符 32-125 以及 126 和 127 代表左右箭头以及代码为 160-255 的中文字符、希腊字符和数学符号。

mizar32.lcd.cursor

[编辑 | 编辑源代码]

设置在光标位置显示的光标类型,或将光标向左或向右移动。

mizar32.lcd.cursor( what )
  • what - 一个字符串,用于说明应该做什么
    • "none""line""block" 分别在光标位置显示不可见光标、恒定下划线或闪烁的实心块。
    • "left""right" 将光标在字符内存中和显示屏上向左或向右移动一个位置,而不会更改底层字符。在这种情况下,显示屏从不移动,并且,像往常一样,光标在一行的 40 列和另一行的 1 列之间循环。

mizar32.lcd.display

[编辑 | 编辑源代码]

打开或关闭物理显示屏,或将显示的字符向左或向右移动。

mizar32.lcd.display( what )
  • what - 一个字符串,用于说明应该做什么
    • "off""on" 分别关闭或重新打开物理显示屏。当显示屏关闭时,它看起来是空白的,但字符内存的内容、光标的位置和类型、用户定义的字符和设置模式都会被记住,并且您可以在显示屏关闭时写入字符内存并执行所有其他操作。这使您能够更新显示屏,而不会让观看者看到过多的闪烁。
    • "left""right" 将显示的字符向左或向右移动一位。例如,如果它显示的是通常的 1-16 列,并且您说 mizar32.lcd.display("left"),那么它将显示 2-17 列:可见字符向左移动,但字符内存的窗口向右移动。

mizar32.lcd.definechar

[编辑 | 编辑源代码]

对八个用户可定义字符中的一个进行编程,其代码为 0 到 7。定义后,可以使用 mizar32.lcd.print(n) 显示字符,其中 n 是 0 到 7 之间的数字。如果正在显示所讨论的字符,其可见形式将立即在显示屏上发生变化。在通电时,8 个字符被定义为随机垃圾。

mizar32.lcd.definechar( code, glyph )
  • code - 一个数字(0 到 7)表示您希望重新定义的字符。
  • glyph - 一个最多包含八个数字的表格,以从上到下的顺序给出字符八行的位模式。每个数字的值从 0 到 31,用于定义行中 5 个位中的哪一个应为黑色。像素的值从左到右依次为 16、8、4、2 和 1。例如,{ 1, 3, 7, 15, 31, 15, 7, 3, 1, 0 } 将定义一个指向左侧的实心三角形,位于前 7 行。额外的行将被忽略,缺失的行将被空白填充。

mizar32.lcd.buttons

[编辑 | 编辑源代码]

指示当前按下五个用户按钮中的哪一个。

buttons = mizar32.lcd.buttons()

返回

  • buttons - 一个包含最多五个字符 L、R、U、D 和 S 的字符串,用于指示当前是否按下了左、右、上、下和选择按钮。如果没有任何按钮被按下,则返回一个空字符串。硬件允许可靠地检测选择按钮,以及最多两个其他四个按钮:如果左、右、上和下中有三个按钮被按下,则返回全部四个按钮。
华夏公益教科书