0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

代码如何控制硬件的?

汽车电子技术 来源:华维单片机编程 作者: 华维 2023-02-09 17:21 次阅读


我们学习单片机时,把代码编译后烧录到单片机上,单片机就能控制外设工作,如LED的亮灭闪烁。

那么,代码是如何控制硬件的呢?

敲入代码,其实就是通过键盘敲入高低电平,虽然之间经过了好几轮抽象和转换。


程序本身就是高低电平的组合;它通过在CPU上执行来模拟各种决策过程;同时,计算机就是一堆开关。


那么,通过指令向某些地址写出数据(访问特定地址是通过各种寻址机制/指令完成的,归根结底也可以说是通过开关切换,改变了电路拓扑),就等于开启/关闭了对应地址上的某个开关;这个开关可以是类似CPU内部那样的一组三极管,也可以是通向另外一个继电器的信号线——这个信号就促使继电器闭合,于是电机导通……


就好象人开汽车一样,神经发出的微不足道的电脉冲经过肌肉放大,影响了涉及数百甚至数千马力的能量洪流的发动机/变速箱的运转,然后汽车就开走了。

软件在工作的时候也是实体,软件的实质就是电流信号,用电压的高低代表不同是信息,用这些电流信号去控制逻辑电路的通断,靠逻辑电路的通断来控制硬件的工作。


说到底软件就是起到一个开关信号的作用,开关要工作,必须保证硬件是加电的,没有接通电源的硬件是无法用软件来控制的。就好比没有插上电源的台灯,你怎么按开关都是不会亮的。


任何软件在运行前都要有一个将其转化为电流信号的实体化过程,你写在纸上的软件代码是永远也不能控制硬件的。


早期电脑用人工接线输入程序,相当于用人体的力量将软件代码实体化为电信号;现在我们用的软盘、硬盘是通过磁头将程序代码转化为电信号,光盘需要通过光头将程序代码转化为电信号等等。


比如CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码。它把指令分解成一系列的微操作,然后发出各种控制命令,执行微操作系列,从而完成一条指令的执行。


利用你输入的能量改变输出的结果,形成多米诺骨牌一样的效应,最后输出了结果,就比如你按手机音量键,给单片机一个信号,就是用硬件控制了硬件,屏幕显示音量变化,通过你按键开始的,或者你触摸屏幕,用语音控制,总之就是人为的输入一个能量,在硬件上形成了一个信号,才能驱动信号,而软件只是一种显现出来的状态而已,你用键盘输入的汇编,C,Java,都是人为输入了硬件的信号,才有你以为的软件控制硬件,但是启始的信号都来自人为的输入。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6001

    文章

    43973

    浏览量

    620835
  • 代码
    +关注

    关注

    30

    文章

    4555

    浏览量

    66767
  • 烧录
    +关注

    关注

    8

    文章

    221

    浏览量

    35191
收藏 人收藏

    评论

    相关推荐

    如何使用MATLAB代码控制连接到Arduino板的LED

    在 MATLAB 软件中为 Arduino 设置硬件支持包后,我们将使用 MATLAB 代码控制连接到 Arduino 板的 LED。
    的头像 发表于 11-16 17:36 6416次阅读
    如何使用MATLAB<b class='flag-5'>代码</b><b class='flag-5'>控制</b>连接到Arduino板的LED

    单片机基础:代码如何控制硬件的?

    继电器是一种利用电磁铁控制的开关;当向电磁铁通电时就产生磁场,而这个磁场就会吸合或者分离开关,从而实现“以微弱电流控制另一条电路的通断”这个功能。
    发表于 02-21 14:43 448次阅读
    单片机基础:<b class='flag-5'>代码</b>如何<b class='flag-5'>控制</b><b class='flag-5'>硬件</b>的?

    零编码生成智能硬件APP代码

    本帖最后由 机智小编 于 2017-3-29 13:59 编辑 为了降低开发智能硬件APP开发门槛,降低开发资源的投入,机智云在《APP开源框架》基础上进一步推出了实现项目完整控制功能的APP
    发表于 03-29 09:52

    如何优化控制算法的代码

    编者按:在电力电子控制应用中,优化控制算法的代码,是开发人员常常要考虑的问题。在更多的时间内执行更多的算法,就意味着更高的控制频率和更快的系统响应。下面这篇文章来网络,很全面的总结了在
    发表于 08-30 07:57

    Python控制硬件

    端口,使用 pyvisa 库来控制仪器设备等。首先,你需要在计算机上安装相应的库,然后就可以使用 Python 代码控制硬件了。例如,如果你要
    发表于 03-26 19:42

    基于开放源代码硬件设计方法研究

    基于开放源代码硬件设计方法研究 摘要:可重用性是当今超大规模集成电路设计的必要元素。与传统的封闭源代码付费IP 相比,开源硬件以共享设计文档和IP
    发表于 02-10 13:50 9次下载

    基于开放源代码硬件设计方法研究

    可重用性是当今超大规模集成电路设计的必要元素。与传统的封闭源代码付费IP 相比,开源硬件以共享设计文档和IP 模块的方式为硬件设计的重用提供了更加彻底有效的解决办法。
    发表于 04-23 08:40 18次下载

    STM32按键控制小车代码

    好用的stm32小车代码,STM32按键控制小车代码,STM32按键控制小车代码,STM32按键控制
    发表于 06-08 16:28 49次下载

    华清远见FPGA代码-FPGA片上硬件乘法器的使用

    华清远见FPGA代码-FPGA片上硬件乘法器的使用
    发表于 10-27 18:07 10次下载

    探析源代码如何在硬件上运行

    C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。
    的头像 发表于 01-07 16:22 3540次阅读
    探析源<b class='flag-5'>代码</b>如何在<b class='flag-5'>硬件</b>上运行

    关于C程序源代码是如何在硬件上运行的?

    C程序源代码是如何在硬件上运行的?
    的头像 发表于 02-05 12:37 2524次阅读

    舵机控制那些事(附STM32代码!!!)

    舵机控制那些事(附STM32代码!!!)
    发表于 12-08 18:51 48次下载
    舵机<b class='flag-5'>控制</b>那些事(附STM32<b class='flag-5'>代码</b>!!!)

    基于STM32单片机触摸屏硬件检测使用库文件设计源代码

    基于STM32单片机触摸屏硬件检测使用库文件设计源代码
    发表于 04-26 14:50 0次下载

    代码是如何控制硬件的?

    先说代码: 我们是用电脑的键盘来输入的指令,每一个指令都对应一个ASCII码,而这里的ASCII码就是有序的电压的高低(或电流的有无,下面只提电压的高低),即我们输入的是电压的高低,你所看到代码是这些电压的高低控制显示器所显示的
    的头像 发表于 05-12 14:19 1148次阅读
    <b class='flag-5'>代码</b>是如何<b class='flag-5'>控制</b><b class='flag-5'>硬件</b>的?

    单片机如何通过代码控制硬件:一名工程师的分享

    今天跟大家聊聊单片机是怎样通过代码来操控硬件的。作为一名单片机工程师,我们平时的工作就像是给单片机编写“指令集”,让它按照我们的意图去驱动各种硬件设备。
    的头像 发表于 03-06 14:46 503次阅读
    单片机如何通过<b class='flag-5'>代码</b><b class='flag-5'>控制</b><b class='flag-5'>硬件</b>:一名工程师的分享