图解:你管这破玩意叫计算机?
导读:灯泡到计算机的思想之旅。
01 编码与电路——信号的转换
我:亮亮灭灭亮 喜:灭亮亮灭灭 欢:亮灭亮灭亮 你:亮亮亮灭灭
02 门电路——信号的关联
03 加法器——信号的计算
04 时钟——信号的震荡
05 RAM——保存信号
如果输入端为 1,改变"某控制端"信号(信号由 0 变化到 1 这个瞬间),则输出端变为 1,之后输出端仍然保持(存储)着刚刚的 1。 如果输入端为 0,改变"某控制端"信号,则输出端变为 0,之后输出端仍然保持(存储)着刚刚的 0。
06 程序——自动化
用控制面板在 RAM 的地址 0~6 处存上 1~7 这几个数字的,在上一节已经实现了。 当计数器的值是 0 时,数据 1 被输出到加法器进行计算,此时加法器 A=1,B=0,计算结果为 1,但记住锁存器存储的是上一次的加法器输出 0,这次的计算结果要等下一次锁存器遇到上升沿信号。 当计数器的值是 1 时, 数据 2 被输入到加法器,此时锁存器存储了上一次的计算结果 1,并将这个 1 输出给小灯泡,并同时回传到加法器的B,所以此时加法器 A=2,B=1,计算结果为 3 当计数器的值是 3 时,以此类推,请看下图
07 程序指令
add:把 RAM 这个位置处的值进行累加 nop:忽略此处的值(也就是什么都不做) halt:停止(禁止计数器的值加一)
遇到 nop 指令(0x00),那输出就将锁存器的 W 位禁止,不允许锁存器写操作,这样累加结果就不会录入。 再比如遇到输入为 halt 指令(0x05),就将计数器的 EN 位禁止,不允许计数器 +1,这样就达到了停止的效果。
后记
评论