键盘输入的内容为什么会显示到屏幕上?这其中到底发生了什么?这个问题很有意思。回答这个问题你的知识储备越丰富那这条线就越长。这明显是一个开放性的话题,在此只尝试做一个浅薄的回答。

第一 常识判断

很显然这是一个信号传输的过程,这是一种一一对应的关系,输入一个数字显示一个数字,输入一种组合按键,会自动翻译为特定字符。这是通过生活常识和逻辑判断能得出的结果。

第二 基于软件的理解

如果是用C写单片机软件,键盘扫描、OLED显示的过程和这个类似,这是一个编码采集->处理->显示的过程。

如果使用Qt/python等,这就是键盘事件的识别->处理->更新UI显示的过程。

对于电脑的操作系统而言,输入的是键盘事件,输出的是屏幕显示,这些功能都封装成了基本的API。深究细节的话,系统是怎么识别到有键盘输入的?是否有特定的进程在统一管理?屏幕显示在软件层面调用的最后一个程序是什么?它控制的是什么物理部件?很显然这是分时的,那系统是怎么把这些逻辑或者时序有序胶合起来的?

软件和系统发展的方向都是为了更高效(更方便)组织代码或者更充分利用硬件。相反的软件做的越好越傻瓜越易用,越是掩盖了其内部的原理/细节,所以即便你知道软件的每一行代码表示什么那还是不知道到底物理世界发生了什么,所以这个问题还要继续往下走。

第三 基于硬件的理解

不管多复杂的设备、工具都是由最简单的功能部分组成,没有人能讲到每一个细节,但是对原理上的大致认识还是要有的。

键盘本质上和单板上的按键阵列没有区别,只是集成了编码模块,编码的作用可能更多是在于标准化此处不表,编码并不是直接传输到屏幕,而是通过USB这样的电气协议,只谈硬件那就是一根USB。

按照以上描述方式,电信号的传输到达电脑主板,信号经过复杂的电路(芯片)变换,最终将编码信号转换为了一串二进制保存在了内存或者显存中,显示器显示的过程实际上是根据这些二进制数据来不断刷新屏幕。

内存中的字符编码对应的用于显示的二进制是如何传输到VGA显示器的,涉及到VGA这样的电气协议,物理上是特定字符对应的信息被翻译成模拟电压信号,通过VGA线传输到显示器中。

显示器电路翻译了这些模拟电压,根据模拟电压的不同实时刷新着特定像素点的颜色,由于视觉暂存的效果,很多个像素点最终拼成了我们看到的字符。

以上,提到USB、VGA这些外设传输协议,没有提到USB作为外设->CPU识别之间板内传输的各种协议,总之,最终这是将差分的电平信号转换为CPU的电平信号,中间可能有入关的串行,并行传输等等。

到了CPU这一块,就到了芯片设计这个领域,CPU接收到了键盘输入导致的电平信号之后,怎么就能转移数据、逻辑运算了呢?这里又能设计到板上那些硬件模块呢?这个问题或许太复杂了,那就先排除一下硬盘吧,像硬盘读写这类很耗时的IO操作是不可能在这瞬间发生的,如果你不Ctrl+S,CPU是不会主动吧这个字符保存到硬盘的。

很显然,这些能影响显示的电平信息是暂存在了某些地方,内存或者显存就是干这个事情的,至少这是一个中介处。

至于CPU为什么能搬运电平信息(bit数据)?这是通过CPU指令实现的,CPU指令又是什么东西?这是一些时序逻辑和组合逻辑电路组成的硬件玩意儿。那时序……太多问题了,那还是先去了解一下计算机的发展史,什么是打孔纸带、打孔卡片吧……

第四 看山还是山

或许对事物的理解终究会回到“看山还是山”的境界,难道不是吗?

这还是信号传输

具体是:键盘上的高低电平信号--(物理线路传输、软件和硬件的协同处理)-->显示器上的控制像素点的高低电平信号

无论电平经过了多少次转换,在什么时序(时间点)中转换,转换为什么样的电压,最终它变成了一些串行的或者并行的能够使像素上的LED亮和灭的高低电平。

【最后】

这是2014年,苏州,和一位医药行业的舍友讨论的话题,如今翻出来,发现世界依然很大,时间依然太少。

有趣的问题:键盘打字如何显示到屏幕中?相关推荐

  1. Android 曝光采集,商品view曝光量的统计,判断RecyclerView中某子view是否可见 view是否显示在屏幕中 view展示次数统计...

    近期pm提出需要统计首页商品的曝光亮,由于我们的首页是用的recylerview实现的,这里就来讲下如何使用监听recylerview的滚动事件来实现子view的曝光量统计,我们这里说的view都是列 ...

  2. 【VUE】web高德地图海量点标记,全部居中显示在屏幕中

    Map类的setBounds方法可以重新调整视角,让所有点标记全部居中显示在屏幕中.亲测有效,整理了一下笔记如下: https://lbs.amap.com/api/javascript-api/re ...

  3. 如何在python中显示电脑中的图片-python如何实现多个图片显示在屏幕上?

    pygame的三个方法(屏幕上显示需要的图片) yuhu102319582018-12-16 python将多幅图片显示在一张图片上 wugui1111116282018-06-15 iOS 图片显示 ...

  4. 图像模块,实验三,二维码读取程序,显示在屏幕上

    步骤 1.运行示例二维码图像,生成二维码,读取二维码 看下效果. 需要读懂程序. 建议看星瞳的视频教程. 2.结合LCD显示二维码信息. 新建一个程序 把LCDtest.py的程序拷贝进行. 然后在里 ...

  5. 0005 键盘打字如何练成像黑客一样的飞速

    相信大家看过很多电影里面,黑客在打电脑键盘的时候,手指飞快的移动敲击键盘,给人的感觉是好厉害! 那么作为电脑初学者的我们,通过怎样的练习才能达到那样的速度呢? 正所谓磨刀不误砍柴工,在学习编程之前,先 ...

  6. 海湾主机汉字注释表打字出_电脑打字打不出来_电脑上打字只显示字母打不出汉字是怎么回事?...

    电脑上打字只显示字母打不出汉字是怎么回事? 电脑打字只显示字母,打不出汉字是因为你是在英文模式上,转换成中文模式就能打出字来了. 电脑打字不出中文是怎么回事? 电脑打字不出中文可能是你没有安装拼音输入 ...

  7. Win11打字不显示选字框怎么办?Win11打字不显示选字框的解决方法

    现在有很多小伙伴都有在使用Win11系统了,不过在使用Win11系统的过程中难免会遇到各种各样的问题,例如在打字的时候没有显示出选字框,那么遇到这种情况应该要怎么办呢?下面就和小编一起来看看打字不显示 ...

  8. 在VC中实现模拟键盘,输入内容并显示在ListBox中。

    网上找的,还没试过,希望对楼主有帮助 模拟键盘按键 自动输入文字 键盘对于每个操作电脑的人员来说是最熟悉不过的了.键盘上的按键可分为两类: 按下后会在电脑的输入窗口上出现对应字符的按键,如字母键和数字 ...

  9. python 1033 旧键盘打字 (20 分)

    1033 旧键盘打字 (20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在 2 行 ...

最新文章

  1. 机器学习防止模型过拟合的讲解
  2. 澎思科技马原:AI安防竞争还未结束,落地进入后发优势时代 | MEET2020
  3. python操作js中的输入_Python调用JavaScript代码的方法
  4. Algorithm Gossip (22) 中序式转后序式(前序式)
  5. 运维基础(5)Ansible
  6. 六个iPhone6不会火爆的理由
  7. VTK:网格之SubdivisionDemo
  8. 替代反射调用的几种方式及性能测试
  9. WinEdt LaTex(一)—— hello world!
  10. Windows系统CVE整理
  11. WordPress 简约大气昼夜免费导航-NDNAV主题
  12. 揭秘直播带货的收割套路
  13. python微博评论爬虫_详解用python写网络爬虫-爬取新浪微博评论
  14. python+selenium从excel读取成语到谷歌搜索得到搜索结论数
  15. Pyrene-PEG-Biotin,芘丁酸聚乙二醇生物素,Biotin-PEG-Pyrene
  16. 陈强教授《机器学习及R应用》课程第十一章作业
  17. mysql:InnoDB关键特性:自适应哈希索引(AHI)
  18. sd敢达g世纪android,SD敢达G世纪 世界/超越世界 安卓模拟器金手指代码亲测有用...
  19. 详解163、CN2-GT和CN2-GIA的区别
  20. QuickBI-自建数据库MySQL连接

热门文章

  1. java源码混淆编译工具使用演示(ProGuard)
  2. 小程序手动修改购物车数量的问题
  3. 北斗RTK高精度定位在AI领域的应用
  4. MARMOT土拨鼠FRW辐轮王中国儿童自行车十大名牌
  5. C# AutoResetEvent / ManualResetEvent
  6. 生物大分子平台(7)
  7. 南科大计算机专业博士授予权,计算机科学与技术、数学2个一级学科博士授予权正式获批...
  8. SAP 系统设置不允许到对象XXX的修改或系统更改选项不允许更改对象
  9. Android Studio LayoutInspector 超时错误解决
  10. authenticator_如何将Microsoft Authenticator移至新手机