b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

敲下键盘时,扫描码怎么传给8042了?

电脑杂谈  发布时间:2021-01-16 18:17:01  来源:网络整理

一段时间以来,我一直在试图弄清楚我在键盘上打字时的操作系统,以便可以看到正在显示的字符

现在,我将总结一下过程,并消除与我一样的孩子。

1)首先知道键盘的组成; 6位计数器通过两个八对一扫描键盘。当键盘上没有任何键时,扫描将随着计数器循环而重复。

这样想。扫描是一束光。当没有按键时,灯光可以在键盘上的任何地方移动。

dos 从键盘输入一个字符并回显到视频显示器上_dos 从键盘输入一个字符并回显到视频显示器上_c语言输入一串字符

2)如果按下一个键,扫描将找到信号(按下该键后,光线将无法穿过),该信号将停止计数器并将扫描代码发送到8042。

每个键的位置由一组数字表示,这就是所谓的扫描代码。

您可能很好奇,为什么将扫描代码传递给8042?其实很简单,它直接与电路相连。

3)8042将扫描代码放入缓冲区,并告诉8259A产生了中断。

c语言输入一串字符_dos 从键盘输入一个字符并回显到视频显示器上_dos 从键盘输入一个字符并回显到视频显示器上

缓冲区大小为1个字节。如果此时在键盘上按了新键,则8042将不再接收它,并等待缓冲区被清除。

4)8259A识别键盘中断,并将CPU的中断寄存器的特定位置设置为1。

请注意,到目前为止,cpu正在执行其他程序或处于空闲状态,并且根本没有响应键盘按下事件。尽管描述更加复杂,但过程实际上非常快。

5)接下来是典型的中断处理过程。 cpu执行一条指令后,它会发现有一个中断,进入中断周期,并通过IDT映射将其处理转移到键盘处理程序。

6)键盘处理程序的第一步是将扫描代码从8042缓冲区(仅一个字节)移至键盘缓冲区(可调整链接列表的大小,如果没有用,则无用)太大),这时可以接受下一个字符键。

7)如果键盘缓冲区不为空,则开始处理这些键码,首先将扫描码转换为ASCII码

如果它是可打印字符(例如a),则显示它

其他功能键将得到相应处理。

c语言输入一串字符_dos 从键盘输入一个字符并回显到视频显示器上_dos 从键盘输入一个字符并回显到视频显示器上

最后是显示过程:

可以通过调用BIOS或写视频存储器来实现。

1向字符的ASCII码添加一些属性(例如颜色控制,最简单的rgb,此时仅最纯的rgb三种颜色及其叠加组合总共为8),这些属性也用01表示, 0表示什么都不表示,1表示将其放在视频内存中(集成显示屏是内存中的特定位置)。

2字符通过读取此特定位置的数据,将ASCII代码及其属性信息转换为一个光点矩阵,1表示有光。

c语言输入一串字符_dos 从键盘输入一个字符并回显到视频显示器上_dos 从键盘输入一个字符并回显到视频显示器上

字符实际上是一个rom,并且使用映射函数来实现这种转换。

如果ASCII = 65,则字符会将其转换为一个光点矩阵,并且颜色将由后面的3支控制。

3可以将点矩阵用作显示器的输入信号。每个点由3支电子(分别为rgb)组成。

复制到:从键盘输入到显示器上显示字符的详细过程

参考:编写支持键盘输入和屏幕输出的内核


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-348286-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...