#创作挑战赛#

1897年,英国物理学家汤姆生发现了电子,拉开了现代科技的开端和信息时代的序幕。

随后出现的电子三极管,让人们构造复杂的电子电路成为了可能。

模拟电路需要c语言基础吗(从模拟电路到C语言编程)(1)

电子管

1,电子三极管,

电子三极管是一种真空的玻璃管,它的一端在高温下可以放出电子(负极),另一端是可以接收电子的金属板(正极)。

在管子的中间有一个栅极(基极),可以调节正负极之间的电子通量,从而影响电流的大小。

模拟电路需要c语言基础吗(从模拟电路到C语言编程)(2)

电子三极管的原理

上图是简单的原理图:

1,电子三极管的灯丝一般是由在高温下很容易放出电子的金属制成。

2,电子在电压作用下飞向真空玻璃管的正极,所以它是可以单向导电的。

电子带负电,所以它只能飞向正极,而不能反着。

如果没有栅极,那么它就是个电子二极管

3,加了栅极之后,栅极电压的微小变化,就可以影响正负极之间的电子通量,从而影响整个回路的电流,所以它也有信号的放大作用

晶体三极管发明之前,人们就是用这种三极管来制作电子电路的。

俄罗斯在电子管领域应该是很强的。

电子管设备的特点就是大,而且工作电压高,笨重。

据说,米格25的雷达功率大到可以烤熟兔子[捂脸]

2,晶体三极管,

1947年,美国的肖克利发明了晶体管,让电子电路的体积重量都迅速变小。

从这之后,电子设备携带更方便,使用更广泛。

例如,过去老人们爱拿来听小说的收音机,也就一巴掌大小,它的核心元器件就是晶体三极管。

不过,这些电路都是模拟电路

3,模拟电路,

模拟电路的特点就是,功能很强大,但精度不一定多高。

如下图,一个电容卡在那里,就可以高通滤波

模拟电路需要c语言基础吗(从模拟电路到C语言编程)(3)

电容的特点是通交流、阻直流,通高频、阻低频

直流信号会被阻断,而低频信号和高频信号的容抗不一样,被削弱的程度也不一样。

所以,一个电容就可以把不同频率的信号分开。

要是写代码去滤波,至少也得写个快速傅立叶变换(FFT):

1)傅立叶变换之后,数字信号就从时域变到频域了,

2)然后,把需要的频率选出来,不用的频率对应的系数清零

3)再变回时域,

4)反正要写几百行的代码,比一个电容一个电阻麻烦多了。

如果要低通滤波,就把电容和电阻的位置互换就行:

高频信号的容抗很小,都通过旁路电容流走了,剩下的低频信号通过电阻传递到下一级。

如果写代码去滤波,也要先FFT,然后把不用的频率清零,再反FFT变回时域,一样的麻烦。

模拟电路需要c语言基础吗(从模拟电路到C语言编程)(4)

所以,模拟电路的功能是很强大的,但是精度不够,因为单个元器件的精度受制于当前的工艺

并且,精度越高的模拟电路,越容易受到导线长度的影响。

三极管的工作状态一旦漂移了,那调试起来肯定非常的酸爽[捂脸]

然后,人们就发明了数字电路

4,数字电路,

数字电路,只使用三极管的2个状态:导通截止,不使用三极管的放大

这样,三极管的状态就很难漂移了。

毕竟,三体问题很难搞,但二体问题还是很好搞的。

所以,数字电路的远比模拟电路更稳定,整个电路系统的正常工作范围更大,抗干扰能力更强。

模拟电路需要c语言基础吗(从模拟电路到C语言编程)(5)

数字电路,非门

如图:

1)三极管只要导通的时候,输出就是低电压,被认为是0,

2)三极管截止的时候,输出就是高电压,被认为是1,

3)三极管的基极与发射极之间的电压 Vbe > 0.7v 就导通,低于0.7v就截止。

在电子电路中,0.7v 是个很大的电压范围,它实际上就是电路状态的一个容错区间

只要输入误差别大到跟 0.7v 是一个数量级,那么电路的状态就是正常的。

可以要求输入信号的电压波动范围只能是0.1v,也就是4.9-5为高电位,0-0.1为低电位,那么就算有点误差,三极管的状态也不至于就漂移了。

至于更复杂的功能,当然用更多组这样的电路累积出来

这样,人们在设计电路时就突破了工艺的限制。

既然是数字电路,可以进行逻辑运算,那它当然是可编程的

然后,软件就诞生了!

5,软件编程,

数字电路可以编程,是它相较于模拟电路的一个巨大的优点。

改功能的时候可以不用改硬件只改代码就行了[呲牙]

这在灵活度上,远不是模拟电路可比的!

这时可以认为计算机编程语言就出现了!

最早的编程语言,是在纸带上打孔的机器语言:有孔或没孔就表示0或1。

这种编程方式还是非常让人头疼的。

然后就有了汇编器,可以把简单的英文单词数字转化成机器码:这就是汇编语言。

汇编语言比机器语言倒是有了很大的进步了,但一样让人头疼。

汇编语言只能用寄存器名字表示数据,没法给每个数据起个有明显含义的变量名字。

调过汇编代码的都知道,函数大了之后跟踪哪个寄存器里存的是哪个变量,非常的困难。

总之一句话,汇编代码的可读性很差。

然后,人们发明了很多高级语言,可以统称为C前语言

pascal, basic, 都是C语言出现之前就有的编程语言,但是说实话,真不如C语言好用。

1970年,丹尼斯-里奇肯-汤普森估计是受够了这些老语言了,他们发明了C语言

“物理学的大厦建成了,后人所能做的只是修修补补。”

除了一朵乌云,就是不crash在第一现场的内存BUG[捂脸]

模拟电路需要c语言基础吗(从模拟电路到C语言编程)(6)

,