c语言软件如何控制机器,硬件和软件是如何结合的?代码如何控制机器?

本文从二进制理论出发,介绍了数字电路如何通过逻辑门实现运算,进而讲解了CPU如何通过编程、总线和通讯协议控制硬件设备。通过例子解释了CPU如何协调蓝牙设备工作,并探讨了逻辑门的物理实现——MOSFET在电子行业中的应用。
摘要由CSDN通过智能技术生成

原标题:硬件和软件是如何结合的?代码如何控制机器?

我们不妨从最底层开始往上走。

1. 二进制理论

众所周知,电脑,手机以及其他大量的电子设备,都是基于复杂的数字电路进行工作的。而数字电路则通过循环往复地完成一系列的指令,来输出我们想要的结果。

那究竟里面的工作原理是什么样子的呢?

首先,我们需要一套数字理论。

上帝说,我们需要一个理论。于是莱布尼茨诞生了。

莱布尼茨提出了二进制,这成为了现代计算机理论的基础。至于是老子启发了他,还是他自己坐而悟道想出了二进制,其实已经不重要了。有了二进制,一切变得简单起来:

我们可以只用1 和0 来代表所有数字,进行和十进制一样的代数运算。虽然对于人脑来说,二进制非常不雅观, 比如:

10001010101010101010 * 0101001101010 = 0101101001000001010011100110100。

但它对于计算机来说, 则最简洁,最直观,最高效。

1.1 二进制运算

每一位都只可能是1或者0,运算符号也就是加减乘除。虽然长,位数多,但速度极快!因为,但就每一位来说,运算之后,只会有几种情况:1 + 1 -> 0, 进一位(, 这个)1 + 0 -> 1.0 + 1 -> 1.0 + 0 -> 0.

所以说,《三体》中,刘慈欣讲到人肉计算机一说。单个运算单元只需要记住特定指令相对应的操作即可,甚至连加减乘除都不需要会。 但这个在现实里面并不可能完成。假设这个运算恒纪元的程序有10000条指令(但显然这个条件都不成立,因为这个程序必然很复杂,涉及复杂的浮点运算和逻辑算法,甚至还有平方开放积分微分,10000条机器代码都不够塞牙缝的), 每条指令需要100个逻辑单元,每个单元的运算时间1秒钟,那么整个程序就需要1000000s (11天13小时46分钟)。。。所以可能程序还没算完,乱纪元又来了,所有人来不及脱水都死了。这还不算发盒饭,上厕所时间。

1.2 二进制逻辑

而且,电脑可以理解是非对错了。计算机以1表示“对”,“是”,“正确”。以0表示“错”,‘否’,‘错误’。然后又引进了“或”,‘与’,‘否定’,等逻辑语句。

我们用 || 表示“或”,表示两者有一个成立即成立(我是学工科的(1) || 我是学计算机的(0) = 我没有女朋友(1))。0 || 0 = 0 0 || 1 = 1 1 || 0 = 1 1 || 1 = 1

我们用&& 表示“与”,表示两者都成立方可成立。(我是学工科的(1)&& 我是男的(1) = 我没有女朋友(1))。0 && 0 = 0 0 && 1 = 0 1 && 0 = 0 1 && 1 = 1

2. 数字电路的实现

2.1. 逻辑门

我们有了数字理论,那怎么才能做出逻辑电路呢?怎么才能用来运算呢?我们引入这些理想的逻辑门,靠他们来作运算。

3136f3dd86fa97ad4271d3cb5bb5963b.png

这个就是与门,除非两个输入都是1,则输出1, 否则输出0.

1f5e275b9df44689180a857b2dc826ad.png

这个就是或门,除非两个输入都是0,则输出0,否则输出1.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值