键盘
| 库: | 输入/输出 |
| 引入版本: | 2.2.0 |
| 外观: |
|
行为
该组件允许电路读取用户从键盘输入字符(字符必须能用 7 位 ASCII 码表示)。使用手形工具
单击该组件后,用户即可输入字符;输入的字符会累积到一个缓冲区中。在任意时刻,缓冲区最左侧字符的 ASCII 值都会从最右侧输出端输出。当时钟输入被触发时,缓冲区最左侧字符会从缓冲区移除,随后新的最左侧字符会从最右侧输出端输出。
缓冲区支持的字符包括所有可打印 ASCII 字符,以及空格、换行、退格和 Ctrl-L。另外,按下左方向键与右方向键可在缓冲区内移动光标;按下 Delete 键会删除光标右侧的字符(若存在)。
该组件在一定意义上是异步的:当缓冲区为空且用户输入一个字符时,该字符会立即作为输出送出,而无需等待时钟脉冲。
引脚
- 西侧边缘,以三角形标识(输入,位宽为 1)
-
时钟:当
读使能
引脚不为 0 且该输入被触发时,缓冲区最左侧字符会被删除,输出将更新以反映缓冲区的新状态。 - 南侧边缘,最左侧引脚(输入,位宽为 1)
- 读使能:当该输入为 1(或悬空或错误值)时,一个时钟沿将会消耗缓冲区最左侧字符;当读使能为 0 时,时钟输入会被忽略。
- 南侧边缘,从左数第 2 个引脚(输入,位宽为 1)
- 清空:当为 1 时,缓冲区会被清空,并且不再接受后续输入的字符。
- 南侧边缘,从右数第 2 个引脚(输出,位宽为 1)
- 可用:当缓冲区至少包含 1 个字符时为 1;当缓冲区为空时为 0。
- 南侧边缘,最右侧引脚(输出,位宽为 7)
- 数据:输出缓冲区最左侧字符的 7 位 ASCII 码;若缓冲区为空,则输出 0。
属性
- 缓冲区长度
- 缓冲区一次可容纳的字符数量。
- 触发方式
-
若为
上升沿
,则当时钟输入从 0 变为 1 时(且读使能允许),会消耗缓冲区最左侧字符;若为下降沿
,则在时钟输入从 1 变为 0 时发生该操作。
手形工具行为
在组件上按下鼠标按钮可使该组件获得键盘焦点,并显示一个竖线光标。
此后输入的每个字符都会被插入到缓冲区中,前提是缓冲区未达到容量上限,且该字符属于组件支持的范围:7 位 ASCII 码内的可打印字符,以及空格、退格、换行与 Ctrl-L。此外,用户可通过左/右方向键改变光标在缓冲区中的位置,并可通过 Delete 键删除光标右侧的缓冲区字符(若存在)。
文本工具行为
无。