电路和编程关系

来源:互联网 发布:99.9%软件 编辑:程序博客网 时间:2024/05/21 07:01
1、电路编程(设计)与软件编程的区别表面上看只是一个图形形式,一个是文字形式;但实质上有很大的不同。
2、计算机编程实际上是“按步骤解决问题”:把解决问题的方法分成若干的大步骤,每个大步骤又分为若干个小步骤,一直分下去,直到分不可分;然后计算机就按照步骤来一丝不苟的执行。这种“按步骤解决问题”的思路很利于执行。
3、与计算机编程不同,电路是连续工作的,没有“步骤”一说。数据(电流或电压)持续的流入一个器件,经过一个器件加工后,又流出这个器件。例如放大器,会只要通电,就会持续不断的对输入信号放大,在工作范围内,输出信号一直与输入信号成正比或反比。数字电路同样如此,例如二输入与门,其输出信号时时刻刻是两个输入信号的与。即使有时钟参与的时序数字电路,可认为时钟也是一个输入信号,同样脱离不了上述规律。即使不把时钟当作输入信号,时序电路也没有“步骤”,只是信号处理不再是连续的,而是离散的而已。
4、综上所述,计算机编程关注的是解决问题的步骤。如果步骤太多(程序规模较大),则编程时很容膝疏忽某些步骤,造成程序隐含的BUG。而电路设计关注的是数据流动,每个器件都对数据进行特定的处理,数据按照指定的方式路径流过这些器件后,自然就解决了要解决的问题。因此,电路的行为比计算机编程更容易预测,更容易理解,也就更不容易出错。计算机领域中,硬件发展的速度远高于软件发展的速度就很好的证明了这一点。
=======================================================
比如说,现在你手头有三个开关,控制着3个电灯。这个电路是固定的吧?好,这时你在你口袋里找到一张纸条,上面写着:打开第一个灯,其他不变。你这样做了,第一个灯亮了。现在,灯是显示器,控制灯的电路是硬件(用于运算的逻辑电路),你的头是硬件(处理器),你的口袋是硬件(程序存储器),那张纸条是软件(指令)。硬件虽然是固定的,但可以处理不同的状态(开关开和关,对应1,0),所以软件就有了用武之地了。在时钟控制下,数字电路把程序存储器中的软件代码一个一个取出,交给另一块数字逻辑电路(开关),得到一个结果(灯亮了),就完成了运算,如果有无数个这样的逻辑电路以不同方式组合,那么就有可以得到更复杂的结果。