代码的深思

  对于软件如何控制硬件(比如:在单片机里写个1,一个引脚置高),大部分人是没有真正想过,或者想了也没想明白,这个问题在我们所学的教科书里是没有的,其实总结下来就是这句话:世界上没有软件,软件只是对硬件的一种反映,就像意识是对世界的一种反映是一样的!

先说代码:

  我们是用电脑的键盘来输入的指令,每一个指令都对应一个ASCII码,而这里的ASCII码就是有序电压的高低,即我们输入的是电压的高低,你所看到代码是这些电压的高低控制显示器所显示的图像,其实电脑也不知道它是什么,只知道这样显示。

  结论:代码其实就是存储在存储器(内存、硬盘或者闪存等等)中有序电压的高低。

再说编译:

  编译是一个有序电压的高低向另一种有序电压高低的一种转换过程,下面以52单片机为例,我们编译是从表示ASCII码的那种有序电压高低转换为52单片机能够识别的另一种规定好的有序电压高低,即表示HEX文件的电压高低。

  结论:编译出的结果还是电脑中存储的有序电压高低。

到单片机烧录:

  接下俩就是烧录,理解了上面两点就很容易理解下面的内容,烧录就是电脑中的有序电压高低通过数据线传输到单片机中的ROM中。

接下来ROM就可以释放其中的电压来控制外围的电路。

  总结:从代码的编辑到最后对电路的控制都是电压在起作用,只是为了方面我们而给我们展现的形式不一样而已,而其本质都是电压,这样也就不存在转换。

所以就有了这句话:世界上没有软件,软件只是对硬件的一种反映,就像意识是对世界的一种反映是一样的!

再补充一下:

  只要提到0/1,提到软件,这个问题就是没法理解的,因为软件【包括0/1】和硬件始终存在一道无法跨越的鸿沟;

  我们所写的0只是在电脑显示器上电平的呈现形式,这个所谓的0【实质是电平】可以传输到单片机中的ROM中,当然电平可以控制电平!

知乎链接