码迷,mamicode.com
首页 > 其他好文 > 详细

什么是软件

时间:2020-01-21 20:03:06      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:接下来   方便   raw   status   电视   actual   这一   自己实现   cdb   

咱们先谈谈电子产品的发展历程,你就知道什么是软件,什么是硬件了。

在爱迪生发明灯泡的年代,灯泡在通上电后开始发光,灯泡就是个纯粹的电子产品,如今,这个灯泡也是个纯粹的硬件产品。只不过当时不叫硬件产品。

随着电子行业的发展,在晶体管(电子行业的分水岭器件)问世之后,出现了数字逻辑电路。数字逻辑电路应用到电子产品中后,从此将电子产品划分成了两个领域,分别称为“硬件”和“软件”。要理解硬件和软件,就要先理解数字逻辑电路。

数字逻辑电路有两个关键词,“数字”和“逻辑电路”。这是两个划时代的概念。

什么是“数字”?

我们都知道,1根电线上有“没电”和“有电”两种状态,如果用A表示“没电”,用B表示“有电”,1根电线的两种状态就可以分别表示为A和B。当然A也可以表示为数字0,B也可以表示为数字1.

那如果2根电线组合起来,每根电线都有“没电”和“有电”两种状态,若同样用A和B表示,那2根电线组合起来,我们就可以表示出来4种状态,分别是AA,AB,BA,BB。

如果我们把这4种状态也用数字表示:

AA代表数字0,

AB代表数字1,

BA代表数字2,

BB代表数字3.

我们发现。2根导线的状态可以表示的数字范围是0-3.

那如果有3根电线呢?同样每根电线的状态用A和B表示,那么3根电线组合起来后,我们就可以表示出8种状态,分别是AAA,AAB,ABA,ABB,BAA,BAB,BBA,BBB。我们重新把这8种状态也对应成数字:

AAA代表数字0.

AAB代表数字1.

ABA代表数字2.

ABB代表数字3.

BAA代表数字4.

BAB代表数字5.

BBA代表数字6.

BBB代表数字7.

我们发现,3根电线,可以表示的数字范围为0-7.

如果电线的数量继续增加,我们会发现,多根电线组合起来,可以代表更多的数字了。如果用16根电线组合起来,表示的数字范围竟然可以到0-65535,这就是数字思维,虽然每根导线只有2种状态,但是多根导线组合起来后,表示的东西就很多了。我们把电线状态表示为数字的过程称为“编码”。反过来,每个数字也对应特定的导线状态,我们把通过数字对应导线状态的过程,称为“解码”。

当然,多根导线组合的状态,不仅可以编码为数字,也可以表示别的东西,比如:

第1根导线没电,第2根导线没电,可以编码为汉字“关”。

而看到“关”,我们就知道第1根导线没电,第2根导线没电。

第1根导线没电,第2根导线有电,可以编码为汉字“注”。

而看到“注”,我们就知道第1根导线没电,第2根导线有电。

第1根导线有电,第2根导线没电,可以编码为汉字“下”。

而看到“下”,我们就知道第1根导线有电,第2根导线没电。

第1根导线有电,第2根导线有电,可以编码为汉字“我”。

而看到“我”,我们就知道第1根导线有电,第2根导线有电。

所以2根导线就可以表示“关注下我”这4个汉字,“数字”代表的不是方法,而是一种“智慧”。不得感叹,前辈们思维真是妙哉。1根导线只能表示2种状态,所以数字逻辑也叫做“二进制”。二进制是电子产品的灵魂。电报就是基于以上原理制作的。

此时,电线上加电,则电线有电,电线上不加电,则电线没有电。“有电”和“没电”两种状态需要我们手动给电线“上电”或者“下电”,很不方便。所以电报仍然是个纯粹的电子产品,也是个纯粹的硬件产品。

而半导体材料的诞生,成功地改变了这一格局,所以接下来我们了解下半导体材料组成的“逻辑电路”。

那什么是逻辑电路呢?

说逻辑电路之前,我们需要先了解下二极管和三极管这两种“半导体”材料,我们都知道在一根金属线两端加上电压,金属线上就会产生电流,产生电流的这种状态我们称为“导电”或者“导通”,能导电的材料我们称为导体。而在塑料线两端加上大电压,产生电流也几乎为0,不能导电,“不能导电”我们又称为“绝缘”或者“截止”,像塑料一样的材料我们称为绝缘体。

此时,一根线能否导电,完全取决于它是什么材料。但是半导体材料就奇妙了,半导体材料在满足某种条件后,它会导通,不满足某条件,它就绝缘,不导通。同样的一根线,能否导电,尽然可以靠改变外界条件来改变。这个特性改变了世界。

典型的半导体代表性材料有二极管和三极管。

二极管可以理解成这样一种导线,如果A端电压大于B端电压,则A与B之间“导通”,如果A端电压小于B端电压,则A与B之间“绝缘”。

 

技术图片

 

三极管可以理解成是3根接在一起的导线,如果在C端加上电压后,A与B之间“导通”。在C端不加电,A与B之间“绝缘”。

 

技术图片

 

从单个器件看,我们看不出它的奇妙之处,但是多个器件组合起来,配合“欧姆定律”与“二进制”时,就奇妙了。我们发现,用这些材料搭建起来一个电路后,竟然可以存储某个数字,于是存储器电路诞生了。同样用这些材料搭建起来一个电路后,这个电路竟然自己实现了从0数到100的累加,于是,加法器电路诞生了。如果用存储器电路来控制1个三极管电路,我们发现同样的材料组成的电路,能不能导电,不再取决于你是否给他“上电”或者“下电”,而是取决于往存储器中写的数字,这下子,这个电路用途不再单调了,我可以在存储器中写0,你可以在存储器中写1。同样的一个电路,通过写不同的东西,竟然有了不同的功能。

从此之后,电子产品的功能不再受限于电路了,同样的一套电路,往存储器写不同的0和1,竟然可以实现不同的功能。于是“电子行业”也分成了两派,一派称为“硬件”,他们继承老本,负责搭建电路。另外一派称为“软件”,他们负责往存储器中写不同的数字,来控制同一套电路实现用户所需要的功能。比如手机,我们做了同样一套电路,软件通过写存储器控制,就可以让手机实现电视功能,打电话功能,视频聊天功能。从此开启了智能电子产品的新纪元。

至此,硬件是什么?想必大家心里有概念了。硬件就是指电路,而软件指的是电路存储器中,用于实现某特定功能的一堆0和1。

后来人们觉得用0和1来控制电路,显然有点复杂,根本记不住,于是就有了C语言、JAVA等高级编程语言。通过编译环境,把printf(“Hello World”)这些人类语言转换成0和1文件,再存储到电子产品中,让电子产品运行。这个过程就叫软件编程。

什么是软件

标签:接下来   方便   raw   status   电视   actual   这一   自己实现   cdb   

原文地址:https://www.cnblogs.com/gjfarr/p/12222764.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!