编码进化

回忆上次内容

  • x86、arm、riscv等基础架构
  • 都是二进制的
  • 包括各种数据、指令
  • 但是我们接触到的东西
  • 都是屏幕显示出来的字符
  • 计算机 显示出来的
  • 一个个具体的字型

[oeasy]python0104_指示灯_显示_LED_辉光管_霓虹灯_输出设备

  • 计算机中用来展示的字型
  • 究竟是 如何进化的 呢?🤔🤔

模拟电路时代

  • 电压表、示波器
  • 都是 输出设备

[oeasy]python0104_指示灯_显示_LED_辉光管_霓虹灯_输入输出_02

  • 甚至可以
  • 用来 玩游戏
  • 当时用什么
  • 输入输出呢?

输入输出(io)

  • 最基本的 输入设备(input)
  • 是 电键 (key)
  • 输入 0或1

[oeasy]python0104_指示灯_显示_LED_辉光管_霓虹灯_输入输出_03

  • 最基本的输出是什么呢?

基本输出

  • 最基本的 输出设备(output)
  • 是 发光二极管(Led)
  • 输出 0或1

[oeasy]python0104_指示灯_显示_LED_辉光管_霓虹灯_输入输出_04

  • LED
  • 全称 Light-Emitting Diode
  • 发光 二极管
  • 电键 和 发光二极管
  • ​都​​是 纯纯二进制
  • 可以 做点什么好玩的吗?

井字棋

  • 1950s 的游戏

[oeasy]python0104_指示灯_显示_LED_辉光管_霓虹灯_输出设备_05

  • 在剑桥 的 EDSAC 上

闪烁的灯

  • 可以用 文氏电路 控制
  • 小灯闪烁

[oeasy]python0104_指示灯_显示_LED_辉光管_霓虹灯_输入输出_06

流水灯

  • 可以 制作
  • 多灯闪烁

[oeasy]python0104_指示灯_显示_LED_辉光管_霓虹灯_输出设备_07

  • 配合555定时器
  • 制作流水效果

多彩的灯

  • LED 的颜色
  • 多了起来

[oeasy]python0104_指示灯_显示_LED_辉光管_霓虹灯_十进制数字_08

  • 可以让 不同颜色的灯
  • 闪烁 起来

[oeasy]python0104_指示灯_显示_LED_辉光管_霓虹灯_输入输出_09

  • 这东西很常见

红绿灯

[oeasy]python0104_指示灯_显示_LED_辉光管_霓虹灯_十进制数字_10

  • 红绿灯
  • 控制灯管 延迟 的 时间

调音台

  • mixer console

[oeasy]python0104_指示灯_显示_LED_辉光管_霓虹灯_十进制数字_11

  • 设置音量显示电平

双色灯

  • 有的LED
  • 可以发出两种颜色

[oeasy]python0104_指示灯_显示_LED_辉光管_霓虹灯_输入输出_12

  • 这样 一个灯头
  • 就可以 显示 不同颜色 了
  • 数字电路
  • 进入 cpu时代 之后呢?

主机面板

  • 大型主机(Main Frame)

[oeasy]python0104_指示灯_显示_LED_辉光管_霓虹灯_十进制数字_13

  • 控制台(console)

[oeasy]python0104_指示灯_显示_LED_辉光管_霓虹灯_输入输出_14

  • 有 ​​个人计算机​​用的 吗?

pc指示灯

  • 牛郎星8800
  • 操作数 和 操作码
  • 输入
  • 从电键键入
  • 或从纸带读取
  • 输出
  • 在发光二极管

[oeasy]python0104_指示灯_显示_LED_辉光管_霓虹灯_输出设备_15

  • 整个过程
  • 使用 纯纯二进制 面板
  • 如何显示 十进制数字 呢?

十进制数字显示

  • 辉光管
  • Nixie tube
  • ['niksi tju:b]

[oeasy]python0104_指示灯_显示_LED_辉光管_霓虹灯_十进制数字_16

  • 诞生于 1960-1970 年代
  • 橘红色的光 给人 温暖的感觉
  • 甚至
  • 发展出 五颜六色的霓虹灯牌

[oeasy]python0104_指示灯_显示_LED_辉光管_霓虹灯_十进制数字_17

  • 为什么 辉光管 能 显示数字呢?

辉光管原理

  • 辉光管 本质上
  • 是 带选片的 霓虹灯

[oeasy]python0104_指示灯_显示_LED_辉光管_霓虹灯_输出设备_18

  • 10根 输入信号

[oeasy]python0104_指示灯_显示_LED_辉光管_霓虹灯_十进制数字_19

  • 哪个输入信号 为 1
  • 哪个霓虹灯 发光
  • 如何控制输入信号呢?

74141

  • 硬件解码器(decode)
  • 将 用BCD编码的 4-bit 数据
  • BCD(Binary Coded Decimal)
  • 二进制 编码的 十进制数字
  • 解码为
  • 10-bit 的 辉光管 选片信号

[oeasy]python0104_指示灯_显示_LED_辉光管_霓虹灯_输出设备_20

  • 总共 16根管脚
  • 16-pin

[oeasy]python0104_指示灯_显示_LED_辉光管_霓虹灯_十进制数字_21

  • 74141 是怎么 解码的呢?

解码过程

  • 74141
  • 将晶体(Transistor)三极管(Triode)
  • 集成为 逻辑门(Logical gate)电路
  • 使用 逻辑门电路 组合 输入输出
  • 4-bit 输入信号
  • 10-bit 输出信号

[oeasy]python0104_指示灯_显示_LED_辉光管_霓虹灯_输出设备_22

  • 74141 是 辉光管 的 ​​驱动​​(Driver)

驱动

  • 辉光管 是 硬件输出设备(Device)
  • 74141N
  • 是 辉光管的 ​​驱动(driver)​
  • 将 传来的4-bit的BCD数字(digit)
  • 解码(decode) 为10-bit信号中的一路
  • 作为 辉光管的 选片信号

[oeasy]python0104_指示灯_显示_LED_辉光管_霓虹灯_输出设备_23

  • 今天的输出硬件
  • 也要安装 软件(software)驱动(driver)

[oeasy]python0104_指示灯_显示_LED_辉光管_霓虹灯_十进制数字_24

  • ​driver​​ 是什么意思 呢?

driver 词源

  • drive 驱赶
  • 狩猎时 驱赶猎物
  • 放牧时 放马放羊放牛
  • 驾驶马车、牛车时 赶牲口

[oeasy]python0104_指示灯_显示_LED_辉光管_霓虹灯_十进制数字_25

  • driver 司机驾驶
  • 自行车
  • 摩托车
  • 1889 火车
  • 1896 汽车

[oeasy]python0104_指示灯_显示_LED_辉光管_霓虹灯_十进制数字_26

总结

  • 这次回顾了
  • 指示灯
  • 辉光管
  • 并了解了 驱动(driver)
  • 驱动 就是
  • 控制设备 工作的人(模块)
  • 辉光管离我们的生活很远了

[oeasy]python0104_指示灯_显示_LED_辉光管_霓虹灯_输入输出_27

  • 辉光管
  • 离我们生活 太远