代码是如何控制硬件的?
敲入代码,其实就是通过键盘敲入高低电平,虽然之间经过了好几轮抽象和转换。
程序本身就是高低电平的组合;它通过在CPU上执行来模拟各种决策过程;同时,计算机就是一堆开关;那么,通过指令向某些地址写出数据(访问特定地址是通过各种寻址机制/指令完成的,归根结底也可以说是通过开关切换,改变了电路拓扑),就等于开启/关闭了对应地址上的某个开关;这个开关可以是类似CPU内部那样的一组三极管,也可以是通向另外一个继电器的信号线——这个信号就促使继电器闭合,于是电机导通……
就好象人开汽车一样,神经发出的微不足道的电脉冲经过肌肉放大,影响了涉及数百甚至数千马力的能量洪流的发动机/变速箱的运转,然后汽车就开走了
顺带一提。今年录制了一套免费的系统入门单片机教程还有几百套学生的毕设资料,想要私信我就可以
软件在工作的时候也是实体,软件的实质就是电流信号,用电压的高低代表不同是信息,用这些电流信号去控制逻辑电路的通断,靠逻辑电路的通断来控制硬件的工作。
说到底软件就是起到一个开关信号的作用,开关要工作,必需保证硬件是加电的,没有接通电源的硬件是无法用软件来控制的。就好比没有插上电源的台灯,你怎么按开关都是不会亮的。
任何软件在运行前都要有一个将其转化为电流信号的实体化过程,你写在纸上的软件代码是永远也不能控制硬件的。早期电脑用人工接线输入程序,相当于用人体的力量将软件代码实体化为电信号;现在我们用的软盘、硬盘是通过磁头将程序代码转化为电信号,光盘需要通过光头将程序代码转化为电信号等等,比如CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码。它把指令分解成一系列的微操作,然后发出各种控制命令,执行微操作系列,从而完成一条指令的执行。
利用你输入的能量改变输出的结果,形成多米诺骨牌一样的效应,最后输出了结果,就比如你按手机音量键,给单片机一个信号,就是用硬件控制了硬件,屏幕显示音量变化,通过你按键开始的,或者你触摸屏幕,用语音控制,总之就是人为的输入一个能量,在硬件上形成了一个信号,才能驱动信号,而软件只是一种显现出来的状态而已,你用键盘输入的汇编,C,JAVA,都是人为输入了硬件的信号,才有你以为的软件控制硬件,但是启始的信号都来自人为的输入。
彩蛋:
码字不易,特别分享一些免费的入门单片机教程还有几百套整理的学生毕设材料,私信我就可以~或者全网同名:华维单片机编程